/* =========================================================================
   ACE Holdings NJ — site.css
   Shared across every page: reset, base type, header/nav, footer,
   section wrappers, home hero video, contact form, and the WordPress
   "Additional CSS" rules that actually affect the rendered pages.
   Page content styles live in ace.css (shared content system),
   home.css (home page only) and pages/<slug>.css (small per-page extras).
   ========================================================================= */

:root{
  --ace-green:#1F6B4A;
  --ace-green-dark:#17533A;
  --ace-green-light:#8FB8A0;
  --ace-cream:#F5F2EC;
  --ace-black:#0E0F0E;
  --ace-head:'Cormorant Garamond',Georgia,serif;
  --ace-body:'Lato',Helvetica,Arial,sans-serif;
  --ace-ink:#2D2E32;
}

/* ---- Reset / base (subset of the Hello Elementor reset that is visible) ---- */
*,*::before,*::after{box-sizing:border-box}
html{line-height:1.15;-webkit-text-size-adjust:100%}
body{margin:0;background:#F7F7F7;color:#5A5A5A;font-family:var(--ace-body);font-size:16px;font-weight:400;line-height:1.5;overflow-x:clip}
img{border-style:none;height:auto;max-width:100%}
a{background-color:transparent;color:#C36;text-decoration:none}
button,input,textarea{font:inherit;margin:0}
.skip-link{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:8px;top:8px;width:auto;height:auto;z-index:100000;padding:12px 20px;background:#fff;color:#141414;font:700 14px/1 var(--ace-body)}

/* ---- Section wrappers (one per former Elementor container) ---- */
.sec{position:relative;display:flex;flex-direction:column;width:100%}
.sec>.ace-c{width:100%}
.sec--hero{background:#0D0F0E}
.sec--cream{background:#F5F2EC}
.sec--dark{background:#141414}

/* ---- Home hero: background video over a poster image ---- */
.sec--video{overflow:hidden;
  background-image:linear-gradient(90deg,rgba(10,12,11,.55) 0%,rgba(10,12,11,.28) 45%,rgba(10,12,11,0) 75%),url(../img/3902060265.webp);
  background-size:cover;background-position:50% 38%;background-repeat:no-repeat}
@media (min-width:768px){.sec--video{background-size:max(120%,180vh) auto;background-position:50% 30%}}
@media (max-width:767px){.sec--video{background-position:40% 40%}}
.sec--video .bg-video{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}
.sec--video .bg-video video{display:block;width:100%;height:100%;object-fit:cover}

/* =========================================================================
   Header
   ========================================================================= */
.site-header{position:fixed;top:0;left:0;right:0;z-index:999;height:80px;background-color:transparent;
  transition:background-color .3s ease,box-shadow .3s ease,height .3s ease,backdrop-filter .3s ease}
.site-header::before{content:"";position:absolute;top:0;left:0;right:0;height:160px;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.45) 60%,rgba(0,0,0,0) 100%);transition:opacity .3s ease}
.is-scrolled .site-header{height:72px;background-color:rgba(14,15,14,.95);
  box-shadow:0 1px 0 rgba(255,255,255,.06),0 8px 24px rgba(0,0,0,.18);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.is-scrolled .site-header::before{opacity:0}

.hdr-bar{display:flex;align-items:center;gap:20px;height:100%;padding:0 80px 0 60px}
.hdr-left{flex:1 1 auto;display:flex;align-items:center;gap:20px;min-width:0}
.hdr-logo{display:block;flex:none;line-height:0}
.hdr-logo img{display:block;width:calc(48px*600/227);height:48px;max-width:none;object-fit:cover;object-position:50% 45.58%;
  filter:brightness(0) invert(1) drop-shadow(0 1px 3px rgba(0,0,0,.35));transition:width .3s ease,height .3s ease}
.is-scrolled .hdr-logo img{width:calc(36px*600/227);height:36px}
.hdr-nav{width:75%;padding-left:50px;display:flex;justify-content:center;align-items:center}

.nav-main ul{list-style:none;margin:0;padding:0}
.nav-main>ul{display:flex;align-items:center}
.nav-main li{position:relative}
.nav-main>ul>li>a{position:relative;display:flex;align-items:center;margin:0 17.5px;padding:10px 18px;
  font:500 14px/16.8px var(--ace-body);letter-spacing:.5px;color:#fff;opacity:.85;white-space:nowrap;
  text-shadow:0 1px 2px rgba(0,0,0,.45),0 0 12px rgba(0,0,0,.3);transition:opacity .3s,color .3s}
.nav-main>ul>li:first-child>a{margin-left:0}
.nav-main>ul>li:last-child>a{margin-right:0}
.nav-main>ul>li>a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;z-index:2;background:#8FB8A0;
  opacity:0;transform:scaleX(0);transition:opacity .3s,transform .3s}
.nav-main>ul>li>a:hover,.nav-main>ul>li>a:focus-visible,.nav-main>ul>li>a[aria-current=page]{opacity:1}
.nav-main>ul>li>a:hover::after,.nav-main>ul>li>a:focus-visible::after,.nav-main>ul>li>a[aria-current=page]::after{opacity:1;transform:scaleX(1)}
.nav-main .sub{display:none;position:absolute;top:100%;left:17.5px;z-index:10;background:rgba(14,15,14,.97);border-top:1px solid rgba(255,255,255,.12)}
.nav-main li:hover>.sub,.nav-main li:focus-within>.sub{display:block}
.nav-sub-a,.nav-mobile a{display:flex;padding:10px 30px;font:500 15px/20px var(--ace-body);letter-spacing:.5px;color:#fff;white-space:nowrap;transition:color .4s,background-color .4s}
.nav-sub-a:hover,.nav-sub-a:focus-visible,.nav-sub-a[aria-current=page],
.nav-mobile a:hover,.nav-mobile a:focus-visible,.nav-mobile a[aria-current=page]{color:#8FB8A0;background-color:rgba(255,255,255,.04)}

.hdr-cta{flex:none;width:167px;display:flex;justify-content:center}
.btn-talk{display:inline-block;padding:12px 24px;font:600 12px/14.4px var(--ace-body);letter-spacing:1.8px;text-transform:uppercase;
  color:#fff;background:#1F6B4A;border:1px solid #1F6B4A;border-radius:2px;transition:background-color .25s,border-color .25s,transform .25s}
.btn-talk:hover,.btn-talk:focus-visible{background:#17533A;border-color:#17533A;color:#fff;transform:translateY(-1px)}

.nav-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;padding:6px;margin:0;border:0;border-radius:0;
  background:transparent;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent}
.nav-toggle svg{width:22px;height:22px;fill:currentColor}
.nav-toggle .i-close,.nav-open .nav-toggle .i-menu{display:none}
.nav-open .nav-toggle .i-close{display:block}

.nav-mobile{display:none}

@media (max-width:1024px){
  .nav-main,.hdr-cta{display:none}
  .nav-toggle{display:flex}
  .hdr-left{justify-content:space-between}
  .hdr-nav{width:50%}
  .nav-mobile{display:block;position:absolute;left:0;right:0;top:76px;z-index:9997;background:rgba(14,15,14,.97);
    border-top:1px solid rgba(255,255,255,.12);max-height:0;overflow:hidden;transform:scaleY(0);transform-origin:top;
    visibility:hidden;transition:max-height .3s,transform .3s,visibility 0s .3s}
  .nav-open .nav-mobile{max-height:calc(100vh - 76px);overflow-y:auto;transform:none;visibility:visible;transition:max-height .3s,transform .3s}
  .nav-mobile ul{list-style:none;margin:0;padding:0}
  .nav-mobile a{justify-content:center;white-space:normal}
  .nav-mobile .sub{display:none;border-top:1px solid rgba(255,255,255,.12)}
  .nav-mobile .is-open>.sub{display:block}
}
@media (max-width:767px){
  .hdr-bar{padding:0 20px}
  .hdr-logo img{width:calc(40px*600/227);height:40px}
  .is-scrolled .hdr-logo img{width:calc(40px*600/227);height:40px}
  .is-scrolled .nav-mobile{top:72px}
}

/* =========================================================================
   Footer: green rule with the A mark centred, name left, year right
   ========================================================================= */
.site-footer{position:relative;height:76px;overflow:hidden;background:#1E1F22;color:#A3A4A7}
.site-footer::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1140px,100% - 48px);height:2px;
  background:linear-gradient(#1F6B4A,#1F6B4A) left center/calc(50% - 30px) 2px no-repeat,linear-gradient(#1F6B4A,#1F6B4A) right center/calc(50% - 30px) 2px no-repeat}
.site-footer::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:36px;height:38px;background-color:#8FB8A0;
  -webkit-mask:url(../img/ace-a-mark.svg) center/contain no-repeat;mask:url(../img/ace-a-mark.svg) center/contain no-repeat}
.ftr-l,.ftr-r{position:absolute;top:50%;transform:translateY(-50%);height:20px;margin:0;font:400 10.5px/20px var(--ace-body);letter-spacing:3px;
  text-transform:uppercase;white-space:nowrap;color:#A3A4A7;background:#1E1F22}
.ftr-l{left:max(24px,50% - 570px);padding:0 16px 0 0}
.ftr-r{right:max(24px,50% - 570px);padding:0 0 0 16px;margin-right:-3px}
@media (max-width:600px){
  .site-footer{height:60px}
  .site-footer::before{width:calc(100% - 32px);height:1.5px;background-size:calc(50% - 22px) 1.5px,calc(50% - 22px) 1.5px}
  .site-footer::after{width:26px;height:28px}
  .ftr-l,.ftr-r{font-size:8.5px;letter-spacing:1.6px}
  .ftr-l{left:16px;padding-right:10px}
  .ftr-r{right:16px;padding-left:10px;margin-right:-1.6px}
}

/* =========================================================================
   Contact form (static replacement for the Elementor Pro form)
   ========================================================================= */
.contact-grid{display:flex;justify-content:space-between;align-items:flex-start;gap:0 8%;width:100%;max-width:1280px;margin:0 auto;padding:0 64px 160px}
.contact-grid>.ace-c{width:40%;flex:none;max-width:100%}
.contact-form-col{flex:none;width:52%;max-width:100%}
.contact-form .fields{display:flex;flex-wrap:wrap;margin:0 -5px -10px}
.contact-form .field{display:flex;flex-wrap:wrap;align-items:center;width:100%;padding:0 5px;margin:0 0 8px}
.contact-form .field--half{width:50%}
.contact-form label.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.contact-form input,.contact-form textarea{display:block;width:100%;min-height:48px;margin:0;padding:20px 0 14px;border:0;border-bottom:1px solid #D9D3C8;border-radius:0;
  background:transparent;color:#141414;font:300 17px/23.8px 'Lato',sans-serif;outline:none;box-shadow:none;transition:border-color .3s;-webkit-appearance:none;appearance:none}
.contact-form textarea{min-height:150px;height:150px;resize:vertical}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#8C857B;opacity:1}
.contact-form input:focus,.contact-form textarea:focus{border-bottom-color:#1F6B4A}
.contact-form .actions{display:flex;flex-wrap:wrap;align-items:flex-end;width:100%;padding:0 5px;margin:36px 0 8px}
.contact-form button{display:block;width:100%;min-height:40px;padding:20px 38px;border:1px solid #1F6B4A;border-radius:0;background:#1F6B4A;color:#fff;
  font:700 12px/12px 'Lato',sans-serif;letter-spacing:2.5px;text-transform:uppercase;cursor:pointer;transition:background-color .25s,border-color .25s,transform .25s}
.contact-form button:hover,.contact-form button:focus-visible{background:#17533A;border-color:#17533A;transform:translateY(-1px)}
.contact-form .form-note{width:100%;padding:12px 5px 0;font:400 14px/1.5 var(--ace-body);color:#8C857B}
.contact-form .form-note:empty{display:none}
@media (max-width:767px){
  .contact-grid{flex-direction:column;flex-wrap:wrap;gap:56px;padding:0 22px 96px}
  .contact-grid>.ace-c,.contact-form-col{width:100%}
}
@media (max-width:1024px){.contact-form .field--half{width:100%}}

/* =========================================================================
   Rules carried over from WordPress "Additional CSS" (only those that
   still match something on the rebuilt pages; original order kept)
   ========================================================================= */
body, p, li, a, span, input, textarea, select { font-family: var(--ace-body) !important; }
h1, h2, h3, h4, h5, h6 { font-family: var(--ace-head) !important; letter-spacing: 0px !important; }
h1 { font-size: 56px !important; font-weight: 400 !important; line-height: 1.15 !important; }
h2 { font-size: 40px !important; font-weight: 400 !important; line-height: 1.2 !important; }
h3 { font-weight: 500 !important; }
@media (max-width: 767px){h1 { font-size: 34px !important; }}
@media (max-width: 767px){h2 { font-size: 28px !important; }}
p { font-size: 17px !important; line-height: 1.7 !important; }
h1, h2 { margin-bottom: 0px !important; }
h3 { font-size: 26px !important; line-height: 1.25 !important; }
.ace-c[class*="-hero"]:not(.ace-c-hero):not(.ace-c-properties-hero):not(.ace-c-about-hero):not(.ace-c-ventures-hero):not(.ace-c-contact-hero) .hero .sub { border-top: 0px !important; padding-top: 0px !important; justify-content: flex-start !important; }
.ace-c[class*="-hero"]:not(.ace-c-hero):not(.ace-c-properties-hero):not(.ace-c-about-hero):not(.ace-c-ventures-hero):not(.ace-c-contact-hero) .hero .sub .btn { display: none !important; }
.ace-c[class*="-hero"]:not(.ace-c-hero):not(.ace-c-properties-hero):not(.ace-c-about-hero):not(.ace-c-ventures-hero):not(.ace-c-contact-hero) .hero h1 { margin-bottom: 20px !important; }
.ace-c-hero .hero::after { background: radial-gradient(70% 60% at 18% 78%, rgba(10, 12, 11, 0.38) 0%, rgba(10, 12, 11, 0) 70%), linear-gradient(90deg, rgba(10, 12, 11, 0.85) 0%, rgba(10, 12, 11, 0.58) 45%, rgba(10, 12, 11, 0.15) 100%), linear-gradient(0deg, rgba(10, 12, 11, 0.66), transparent 45%) !important; }
.ace-c-hero .hero h1, .ace-c-hero .hero .sub p, .ace-c-hero .hero .eyebrow { text-shadow: rgba(0, 0, 0, 0.35) 0px 1px 3px, rgba(0, 0, 0, 0.25) 0px 0px 24px; }
@media (max-width: 767px){body .ace-c .hero .eyebrow { display: block !important; font-size: 11px !important; letter-spacing: 2px !important; line-height: 1.8 !important; }}
@media (max-width: 767px){body .ace-c .hero .eyebrow::before { display: inline-block !important; vertical-align: middle !important; margin-right: 12px !important; }}
@media (max-width: 767px){body .ace-c .facts span, body .ace-c .stat span { font-size: 11.5px !important; letter-spacing: 1.8px !important; }}
.ace-c[class*="-hero"]:not(.ace-c-about-hero):not(.ace-c-ventures-hero):not(.ace-c-properties-hero):not(.ace-c-contact-hero) .hero.pg::before { content: ""; position: absolute; z-index: 1; pointer-events: none; top: -4%; right: -6%; width: min(52vw, 760px); aspect-ratio: 632 / 672; background: rgb(255, 255, 255); opacity: 0.06; -webkit-mask: url(../img/ace-a-mark.svg) center center / contain no-repeat; mask: url(../img/ace-a-mark.svg) center center / contain no-repeat; }
@media (max-width: 900px){.ace-c[class*="-hero"]:not(.ace-c-about-hero):not(.ace-c-ventures-hero):not(.ace-c-properties-hero):not(.ace-c-contact-hero) .hero.pg::before { width: 78vw; top: 12%; right: -22%; }}
.ace-c.ace-c-hero .ace-hero-a { display: none !important; }
.ace-c:is(.ace-c-about-hero, .ace-c-ventures-hero, .ace-c-properties-hero, .ace-c-contact-hero) .hero.pg::before, .ace-c.ace-c-hero .hero::before { content: ""; position: absolute; z-index: 1; pointer-events: none; top: -4%; right: -6%; width: min(52vw, 760px); aspect-ratio: 632 / 672; background: rgb(255, 255, 255); opacity: 0.06; -webkit-mask: url(../img/ace-a-mark.svg) center center / contain no-repeat; mask: url(../img/ace-a-mark.svg) center center / contain no-repeat; }
@media (max-width: 900px){.ace-c:is(.ace-c-about-hero, .ace-c-ventures-hero, .ace-c-properties-hero, .ace-c-contact-hero) .hero.pg::before, .ace-c.ace-c-hero .hero::before { width: 78vw; top: 12%; right: -22%; }}
.ace-c.ace-c-hero .hero::before { opacity: 0.11; }
.ace-c:is(.ace-c-properties-hero, .ace-c-about-hero, .ace-c-ventures-hero, .ace-c-contact-hero) .hero.pg .eyebrow { display: none !important; }
.ace-c:is(.ace-c-properties-hero, .ace-c-about-hero, .ace-c-ventures-hero, .ace-c-contact-hero) .hero .sub .btn { display: none !important; }
.ace-c-mission .label .t > span:last-child, .ace-c-mission .img .tag, .ace-c-mission .eyebrow, .ace-c-mission .body p:first-child { display: none !important; }
.ace-c-mission .grid { align-items: center !important; }
.ace-c-mission blockquote { margin: 0px 0px 40px !important; }
.ace-c-mission .body { grid-template-columns: 1fr !important; max-width: 520px; }
.ace-c-mission .body + div { margin-top: 36px !important; }
.ace-c-about-intro .label .t > span:last-child, .ace-c[class*="-overview"] .label .t > span:last-child, .ace-c[class*="-videos"] .label .t > span:last-child, .ace-c[class*="-cta"] .label .t > span:last-child, .ace-c-contact-label .label .t > span:last-child, .ace-c:is(.ace-c-ventures-humble, .ace-c-ventures-ritas) .label .t > span:last-child { display: none !important; }
.ace-c-about-intro .tag, .ace-c[class*="-overview"] .tag { display: none !important; }
.ace-c[class*="-overview"] .eyebrow { display: none !important; }
.ace-c[class*="-hero"]:not(.ace-c-hero) .hero.pg .eyebrow { display: none !important; }

.contact-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}

/* Public policy navigation: keep links visible at mobile widths. */
.site-footer.site-footer--legal{height:auto;min-height:130px;overflow:visible;padding-bottom:56px}
.policy-footer-links{display:flex;justify-content:center;flex-wrap:wrap;gap:16px 28px;padding:86px 20px 0;font-family:Lato,sans-serif;font-size:14px;position:relative;z-index:1}
.policy-footer-links a{color:#eae6de;text-decoration:underline;text-underline-offset:4px}
.policy-footer-links a:focus-visible{outline:2px solid #d8b970;outline-offset:5px}
