/* =========================================================
   Proposer Consultants — main.css
   Design tokens first, then components.
   Colour roles are contrast-verified (WCAG AA) — see comments.
   ========================================================= */

:root{
  /* ---- Brand ---- */
  --navy:        #0A1628;   /* 18.13:1 on white  ✅ AA  */
  --navy-700:    #16294a;
  --navy-600:    #22365c;

  --emerald:     #0B7A5A;   /*  5.32:1 on white  ✅ AA  — ALL actions */
  --emerald-700: #096349;
  --emerald-300: #34D399;   /* for use on navy backgrounds */

  --gold:        #C9952F;   /*  2.68:1 — ⚠ large text / icons / rules ONLY */
  --gold-soft:   #FBF3E2;
  --gold-text:   #8A6414;   /*  5.37:1 on white  ✅ AA  — gold-toned small text */

  /* ---- Neutrals ---- */
  --text:        #1B2942;   /* 15.1:1 ✅ */
  --muted:       #5B6B85;   /*  5.40:1 ✅ */
  --surface:     #FFFFFF;
  --soft:        #F4F7FB;
  --border:      #E2E8F2;

  /* ---- Status ---- */
  --success:     #0B7A5A;
  --warning:     #B45309;
  --error:       #B42318;

  /* ---- Scale ---- */
  --maxw: 1200px;
  --r-sm: 10px; --r: 14px; --r-lg: 20px;
  --shadow:    0 8px 30px rgba(16,27,48,.07);
  --shadow-lg: 0 20px 60px rgba(16,27,48,.13);
  --ease: cubic-bezier(.22,.61,.36,1);
  --step: 60ms;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
body,h1,h2,h3,h4,p,ul,figure{margin:0}
ul{padding:0;list-style:none}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none}
html{scroll-behavior:smooth}

body{
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  color:var(--text);background:var(--surface);
  line-height:1.6;-webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{color:var(--navy);line-height:1.18;letter-spacing:-.02em;font-weight:800}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:24px}

/* Accessibility helpers */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--navy);
      color:#fff;padding:12px 20px;border-radius:0 0 var(--r-sm) 0}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--emerald);outline-offset:2px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
         overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:.95rem;
     padding:13px 24px;border-radius:999px;transition:transform .2s var(--ease),
     background-color .2s var(--ease),box-shadow .2s var(--ease)}
.btn-primary{background:var(--emerald);color:#fff}
.btn-primary:hover{background:var(--emerald-700);transform:translateY(-2px);box-shadow:var(--shadow)}
.btn-secondary{background:var(--surface);color:var(--navy);border:1.5px solid var(--border)}
.btn-secondary:hover{border-color:var(--emerald);color:var(--emerald)}
.btn-on-dark{background:var(--emerald-300);color:var(--navy)}
.btn .arrow{transition:transform .2s var(--ease)}
.btn:hover .arrow{transform:translateX(4px)}

/* ---------- Utility bar ---------- */
.util{background:var(--navy);color:#c3d1e6;font-size:.81rem}
.util .wrap{display:flex;justify-content:space-between;align-items:center;
            min-height:38px;gap:16px;flex-wrap:wrap}
.util a{color:#c3d1e6}
.util a:hover{color:#fff}
.util-links{display:flex;gap:18px}
@media(max-width:640px){.util-trust{display:none}}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:var(--surface);
             border-bottom:1px solid var(--border)}
.nav{display:flex;align-items:center;gap:20px;min-height:70px}
.brand{display:flex;align-items:center;gap:11px;flex:none}
.brand img{border-radius:9px}
.brand-text strong{display:block;font-size:1rem;color:var(--navy);line-height:1.15}
.brand-text span{display:block;font-size:.6rem;letter-spacing:.16em;
                 text-transform:uppercase;color:var(--gold-text);font-weight:700}

.mainnav{flex:1}
.mainnav>ul{display:flex;gap:2px}
.nav-item{position:relative}
.nav-item>a{display:flex;align-items:center;gap:7px;padding:12px 14px;
            font-size:.92rem;font-weight:600;border-radius:9px;
            transition:background-color .18s,color .18s}
.nav-item>a:hover{color:var(--emerald);background:var(--soft)}
.caret{width:6px;height:6px;border-right:2px solid currentColor;
       border-bottom:2px solid currentColor;transform:rotate(45deg);
       margin-top:-3px;transition:transform .22s var(--ease)}
.nav-item:hover .caret{transform:rotate(225deg);margin-top:2px}

.mega{position:absolute;top:calc(100% + 6px);left:0;width:460px;
      background:var(--surface);border:1px solid var(--border);
      border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:18px;
      opacity:0;visibility:hidden;transform:translateY(8px);
      transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s}
.nav-item:hover .mega,.nav-item:focus-within .mega{opacity:1;visibility:visible;transform:none}
.mega-blurb{font-size:.78rem;color:var(--muted);margin-bottom:12px;
            padding-bottom:11px;border-bottom:1px solid var(--border)}
.mega-links{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.mega-links a{padding:9px 11px;border-radius:var(--r-sm);transition:background-color .16s}
.mega-links a strong{display:block;font-size:.87rem;color:var(--navy);font-weight:700}
.mega-links a small{display:block;font-size:.73rem;color:var(--muted);line-height:1.35}
.mega-links a:hover{background:var(--soft)}
.mega-links a:hover strong{color:var(--emerald)}

.header-actions{display:flex;align-items:center;gap:10px;flex:none}
.burger{display:none;flex-direction:column;gap:5px;padding:9px}
.burger span{width:24px;height:2px;background:var(--navy);border-radius:2px;transition:.25s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.mobilenav{display:none;position:fixed;inset:108px 0 0;z-index:99;
           background:var(--surface);overflow-y:auto;padding:16px 24px 40px}
.mobilenav.open{display:block}
.mobilenav details{border-bottom:1px solid var(--border)}
.mobilenav summary{padding:15px 2px;font-weight:700;color:var(--navy);
                   cursor:pointer;list-style:none}
.mobilenav summary::-webkit-details-marker{display:none}
.mobilenav details a,.mobile-links{display:block;padding:11px 14px;
                   color:var(--muted);font-weight:600;font-size:.9rem}
.mobile-links{border-bottom:1px solid var(--border);padding:15px 2px;color:var(--navy)}
.mobile-cta{margin-top:18px}
@media(max-width:1080px){
  .mainnav{display:none}
  .burger{display:flex}
  .header-actions .btn{display:none}
}

/* =========================================================
   HERO — the rotating promise.
   ONE thing animates. Everything else holds still.
   ========================================================= */
.hero{position:relative;overflow:hidden;padding:72px 0 84px;
      background:
        radial-gradient(560px 280px at 88% -10%, var(--gold-soft), transparent 70%),
        radial-gradient(520px 300px at -8% 110%, #EAF3EF, transparent 70%),
        var(--surface)}
.hero-inner{max-width:760px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.68rem;
         letter-spacing:.14em;text-transform:uppercase;font-weight:800;
         color:var(--gold-text);border:1px solid #E8D9B4;background:#fff;
         border-radius:999px;padding:6px 14px;margin-bottom:20px}
.hero h1{font-size:clamp(2rem,5vw,3.4rem);margin-bottom:10px}

/* Rotating phrase: masked slide-up. Only transform + opacity animate. */
.rotator{display:block;height:1.24em;overflow:hidden;position:relative}
.rotator-list{display:block;transition:transform .55s var(--ease)}
.rotator-item{display:block;height:1.24em;line-height:1.24em;
              color:var(--emerald);white-space:nowrap}
/* Animated with scaleX, not width: transform is GPU-composited and never
   triggers layout. Animating width here would reflow on every frame. */
.hero-underline{display:block;height:6px;width:200px;max-width:60vw;
                border-radius:3px;
                background:linear-gradient(90deg,#E7B864,var(--gold));
                margin-top:4px;
                transform:scaleX(0);transform-origin:left center;
                transition:transform .5s var(--ease)}
.hero-underline.draw{transform:scaleX(1)}

.hero p.lead{font-size:1.08rem;color:var(--muted);max-width:520px;margin:18px 0 26px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero-note{font-size:.82rem;color:var(--muted);margin-top:14px}

.trust-row{display:flex;gap:34px;margin-top:40px;flex-wrap:wrap}
.trust-row .n{font-size:1.9rem;font-weight:800;color:var(--navy);line-height:1}
.trust-row .l{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;
              color:var(--muted);font-weight:700;margin-top:5px}

/* Staggered entrance — CSS only */
.fade-up{opacity:0;transform:translateY(18px);
         animation:fadeUp .6s var(--ease) forwards}
.fade-up:nth-child(1){animation-delay:calc(var(--step)*0)}
.fade-up:nth-child(2){animation-delay:calc(var(--step)*1)}
.fade-up:nth-child(3){animation-delay:calc(var(--step)*2)}
.fade-up:nth-child(4){animation-delay:calc(var(--step)*3)}
.fade-up:nth-child(5){animation-delay:calc(var(--step)*4)}
@keyframes fadeUp{to{opacity:1;transform:none}}

/* ---------- Sections ---------- */
.section{padding:76px 0}
.section-soft{background:var(--soft)}
.section-head{max-width:680px;margin:0 auto 44px;text-align:center}
.section-tag{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
             font-weight:800;color:var(--gold-text)}
.section-head h2{font-size:clamp(1.6rem,3vw,2.3rem);margin:12px 0}
.section-head p{color:var(--muted)}

/* ---------- Explore panel ---------- */
.explore{display:grid;grid-template-columns:280px 1fr;background:var(--surface);
         border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.explore-list{background:var(--soft);border-right:1px solid var(--border);padding:12px}
.explore-list button{display:block;width:100%;text-align:left;padding:14px 16px;
                     border-radius:var(--r-sm);font-weight:700;font-size:.93rem;
                     color:var(--navy);transition:background-color .18s,color .18s}
.explore-list button:hover{background:var(--surface)}
.explore-list button[aria-selected="true"]{background:var(--navy);color:#fff}
.explore-panel{padding:30px 32px}
.explore-panel h3{font-size:1.25rem;margin-bottom:6px}
.explore-panel .sub{color:var(--muted);font-size:.9rem;margin-bottom:20px}
.explore-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.explore-links a{display:block;padding:13px 15px;border:1px solid var(--border);
                 border-radius:var(--r-sm);font-size:.88rem;font-weight:600;
                 transition:border-color .18s,background-color .18s,color .18s}
.explore-links a:hover{border-color:var(--emerald);background:#F2F9F6;color:var(--emerald)}

/* ---------- Cards ---------- */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:var(--surface);border:1px solid var(--border);
      border-radius:var(--r);padding:24px;transition:transform .22s var(--ease),
      border-color .22s,box-shadow .22s}
.card:hover{transform:translateY(-4px);border-color:var(--emerald);box-shadow:var(--shadow)}
.card .icon{color:var(--gold);margin-bottom:12px}
.card h3{font-size:1rem;margin-bottom:6px}
.card p{font-size:.86rem;color:var(--muted);margin-bottom:14px}
.card .price{display:inline-block;font-size:.73rem;font-weight:700;
             color:var(--emerald);background:#E9F5F0;border-radius:999px;
             padding:3px 11px;margin-bottom:10px}
.card .more{font-size:.83rem;font-weight:700;color:var(--emerald)}

/* ---------- Steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:step}
.step{background:var(--surface);border:1px solid var(--border);
      border-radius:var(--r);padding:26px;position:relative}
.step::before{counter-increment:step;content:"0" counter(step);
              position:absolute;top:16px;right:18px;font-size:2rem;
              font-weight:800;color:var(--gold-soft)}
.step h3{font-size:1rem;margin-bottom:6px}
.step p{font-size:.86rem;color:var(--muted)}

/* ---------- CTA band ---------- */
.cta-band{background:var(--navy);border-radius:var(--r-lg);padding:56px 40px;
          text-align:center;color:#fff;position:relative;overflow:hidden}
.cta-band h2{color:#fff;font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:12px}
.cta-band p{color:#c3d1e6;max-width:520px;margin:0 auto 26px}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy);color:#a9bbd4;padding:60px 0 26px}
.footer-grid{display:grid;grid-template-columns:1.7fr repeat(3,1fr);
             gap:34px;margin-bottom:38px}
.footer-brand img{border-radius:9px;margin-bottom:13px}
.footer-brand strong{color:#fff;display:block;margin-bottom:9px}
.footer-brand p{font-size:.87rem;max-width:300px}
.footer-contact{margin-top:14px}
.footer-head{color:#fff;font-size:.75rem;letter-spacing:.13em;
             text-transform:uppercase;margin-bottom:14px;font-weight:800}
.site-footer a{display:block;color:#a9bbd4;font-size:.87rem;padding:5px 0;
               transition:color .16s}
.site-footer a:hover{color:var(--emerald-300)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:22px;
               text-align:center;font-size:.82rem;color:#8296b4}

.whatsapp{position:fixed;right:20px;bottom:20px;z-index:90;width:54px;height:54px;
          border-radius:50%;background:#1FA855;color:#fff;display:flex;
          align-items:center;justify-content:center;
          box-shadow:0 10px 28px rgba(31,168,85,.36);transition:transform .2s var(--ease)}
.whatsapp:hover{transform:scale(1.08)}

/* ---------- Icons ---------- */
.icon{flex:none;display:inline-block;vertical-align:middle;color:inherit}

/* Card icon in a soft tinted tile */
.icon-wrap{width:44px;height:44px;border-radius:12px;background:var(--gold-soft);
           color:var(--gold-text);display:flex;align-items:center;
           justify-content:center;margin-bottom:14px;
           transition:background-color .22s var(--ease),color .22s var(--ease)}
.card:hover .icon-wrap{background:#E9F5F0;color:var(--emerald)}

/* Category badge above a heading */
.cat-badge{display:inline-flex;align-items:center;justify-content:center;
           width:52px;height:52px;border-radius:14px;background:var(--gold-soft);
           color:var(--gold-text);margin:0 auto 14px}
.section-head .cat-badge{display:flex}
.cat-badge-lg{width:60px;height:60px;border-radius:16px;margin:0 0 16px}

/* Explore tabs */
.explore-list button{display:flex;align-items:center;gap:11px}
.explore-list button .icon{color:var(--gold-text);transition:color .18s}
.explore-list button[aria-selected="true"] .icon{color:var(--emerald-300)}

/* Mega-menu */
.mega-blurb{display:flex;align-items:center;gap:9px}
.mega-blurb .icon{color:var(--gold-text)}
.mega-links a{display:flex;align-items:flex-start;gap:10px}
.mega-links a .icon{color:var(--gold-text);margin-top:2px;transition:color .16s}
.mega-links a:hover .icon{color:var(--emerald)}

/* ---------- Legal / long-form pages ---------- */
.legal h2{font-size:1.12rem;margin:30px 0 10px}
.legal h2:first-of-type{margin-top:0}
.legal p{color:var(--muted);margin-bottom:14px}
.legal a{color:var(--emerald);font-weight:600;text-decoration:underline}
.legal ul{display:grid;gap:10px;margin-bottom:16px;padding-left:18px;
          list-style:disc;color:var(--muted)}

/* ---------- Blog post ---------- */
.post-meta{font-size:.86rem;color:var(--muted);font-weight:600;margin-top:12px}
.post-body p{color:var(--muted);margin-bottom:16px;font-size:1.02rem}
.post-body h2{font-size:1.2rem;margin:30px 0 12px}
.post-body h2:first-of-type{margin-top:0}
.notice{background:var(--gold-soft);border-left:3px solid var(--gold);
        padding:14px 16px;border-radius:0 var(--r-sm) var(--r-sm) 0;
        color:var(--text)!important;font-size:.9rem;margin-bottom:26px}
.notice-ok{background:#E9F5F0;border-left-color:var(--emerald)}
.notice code{background:rgba(0,0,0,.06);padding:1px 5px;border-radius:4px;
             font-size:.86em}

/* ---------- Forms ---------- */
.field{margin-bottom:18px}
.field label{display:block;font-size:.86rem;font-weight:700;color:var(--navy);margin-bottom:6px}
.field label span{color:var(--error)}
.field input,.field select,.field textarea{
  width:100%;padding:12px 14px;border:1.5px solid var(--border);
  border-radius:var(--r-sm);font:inherit;font-size:.94rem;color:var(--text);
  background:var(--surface);transition:border-color .18s,box-shadow .18s}
.field input:hover,.field select:hover,.field textarea:hover{border-color:#c9d5e6}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--emerald);
  box-shadow:0 0 0 3px rgba(11,122,90,.14)}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:var(--error)}
.field textarea{resize:vertical;min-height:120px}
.field .err{color:var(--error);font-size:.82rem;font-weight:600;margin-top:6px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:600px){.field-row{grid-template-columns:1fr}}

/* Contact page two-column layout collapses on tablet */
@media(max-width:900px){
  .wrap>[style*="grid-template-columns:1.3fr"]{grid-template-columns:1fr!important}
}

/* ---------- Reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(22px);
        transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .explore{grid-template-columns:1fr}
  .explore-list{display:flex;overflow-x:auto;border-right:none;
                border-bottom:1px solid var(--border)}
  .explore-list button{white-space:nowrap}
  .explore-links{grid-template-columns:1fr}
  .card-grid,.steps{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .mega{width:min(92vw,460px)}
}
@media(max-width:600px){
  .card-grid,.steps,.footer-grid{grid-template-columns:1fr}
  .section{padding:54px 0}
  .hero{padding:52px 0 62px}
  .trust-row{gap:22px}
}

/* ---------- Motion preference ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
                       transition-duration:.001ms!important;scroll-behavior:auto!important}
  .fade-up{opacity:1;transform:none}
  .reveal{opacity:1;transform:none}
}

/* ---------- Print ---------- */
@media print{
  .util,.site-header,.mobilenav,.whatsapp,.cta-band{display:none}
  body{color:#000}
}
