/* Pacific Point Wealth Management — rebuild theme
   Palette from live brand: navy #14344d, gold #c7a04e (brand-asset-grab) */
:root{
  --navy:#173a55;
  --navy-deep:#102b40;
  --navy-soft:#1d4266;
  --gold:#c7a04e;
  --gold-light:#d9b96e;
  --gold-soft:rgba(199,160,78,.12);
  --ink:#2c2926;          /* warm charcoal body text (Root-like), not cold navy */
  --muted:#6f695e;        /* warm gray */
  --bg:#faf6ef;           /* warm ivory page background */
  --bg-warm:#f5eee1;
  --bg-alt:#f1e8d9;       /* warm sand for alternating sections */
  --card:#fffdfa;         /* near-white card, a hair warm, pops on cream */
  --line:#e9e0cf;         /* warm hairline */
  --line-soft:#f0e8d9;
  --radius:16px;
  --shadow:0 22px 55px rgba(58,44,20,.10);
  --shadow-sm:0 10px 28px rgba(58,44,20,.07);
  --font-head:'Rubik',Arial,sans-serif;
  --font-body:'Roboto',Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--ink);background:var(--bg);line-height:1.75;font-size:17px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:var(--navy);text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-head);color:var(--navy);line-height:1.14;font-weight:700}
h1{font-size:clamp(2.3rem,5vw,3.9rem);letter-spacing:-.022em;font-weight:600}
h2{font-size:clamp(1.8rem,3.4vw,2.7rem);letter-spacing:-.015em;font-weight:600}
h3{font-size:clamp(1.22rem,2.2vw,1.55rem);letter-spacing:-.005em}
p{text-wrap:pretty}
.container{max-width:1180px;margin:0 auto;padding:0 24px}
.narrow{max-width:800px}

/* Buttons — original design: squared 6px corners, bold uppercase, gold fill / white-outlined navy */
.btn{display:inline-block;font-family:var(--font-head);font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:.86rem;padding:16px 34px;border-radius:10px;border:2px solid transparent;cursor:pointer;transition:transform .2s ease,background .2s ease,box-shadow .2s ease,color .2s ease,border-color .2s ease;text-align:center}
.btn-gold{background:var(--gold);color:#fff;box-shadow:0 10px 24px rgba(199,160,78,.28)}
.btn-gold:hover{background:var(--gold-light);transform:translateY(-2px);box-shadow:0 14px 30px rgba(199,160,78,.34)}
.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-navy:hover{background:var(--navy-soft);transform:translateY(-2px)}
.btn-outline{background:rgba(20,52,77,.35);color:#fff;border-color:#fff}
.btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.btn-lg{padding:18px 40px;font-size:1rem}

/* Compass section divider (original signature element) */
.compass-divider{display:flex;align-items:center;gap:26px;max-width:900px;margin:0 auto 48px}
.compass-divider::before,.compass-divider::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold-light),transparent);opacity:.55}
.compass-divider img{width:46px;height:46px}

/* Gold lead heading + navy highlight label (original video-section treatment) */
.gold-heading{font-family:var(--font-head);font-weight:700;color:var(--gold);font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.2}
.navy-label{display:inline-block;background:var(--navy-deep);color:#fff;padding:4px 18px}

/* Header */
.site-header{background:var(--navy-deep);position:sticky;top:0;z-index:60;box-shadow:0 2px 14px rgba(0,0,0,.25)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;max-width:1560px}
.brand-logo{height:52px;width:auto;align-self:flex-start;flex:0 0 auto}
.main-nav{display:flex;align-items:center;gap:16px;flex-wrap:nowrap}
.main-nav a{color:#e8eef4;font-family:var(--font-head);font-size:.9rem;font-weight:500;white-space:nowrap}
.main-nav a:hover,.main-nav a[aria-current="page"]{color:var(--gold)}
.header-ctas{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.header-ctas .btn{padding:11px 20px;font-size:.8rem}
.login-link{color:#c9d6e2;font-size:.88rem;font-family:var(--font-head);white-space:nowrap}
.login-link:hover{color:var(--gold)}
.header-phone{color:var(--gold);font-family:var(--font-head);font-weight:700;font-size:1rem;white-space:nowrap;letter-spacing:.02em}
.header-phone:hover{color:var(--gold-light)}
.header-phone::before{content:"📞 ";font-size:.9em}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px}
.nav-toggle span{display:block;width:26px;height:3px;background:#fff;margin:5px 0;border-radius:2px;transition:.25s}

/* Hero */
.hero{position:relative;background:var(--navy-deep);color:#fff;overflow:hidden}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.18}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,36,54,.45) 0%,rgba(13,36,54,.78) 100%)}
/* Keep the static-image heroes (interior pages) as dark as before — only the video hero brightens */
.hero:not(:has(.hero-video)) .hero-overlay{background:linear-gradient(180deg,rgba(13,36,54,.72) 0%,rgba(13,36,54,.9) 100%)}
.hero-content{position:relative;z-index:2;padding:110px 0 90px;text-align:center;max-width:900px;margin:0 auto}
.hero h1{color:var(--gold);margin-bottom:18px}
.hero .tagline{font-size:clamp(1.05rem,2vw,1.3rem);color:#dbe5ee;max-width:760px;margin:0 auto 34px}
.hero .gold{color:var(--gold)}
.hero-ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.hero.compact .hero-content{padding:80px 0 64px}

/* Sections */
.section{padding:104px 0}
.section-alt{background:var(--bg-alt)}
.section-navy{background:var(--navy);color:#e6edf3}
.section-navy h2,.section-navy h3{color:#fff}
.section-navy .lead{color:#cdd8df}
.kicker{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.2em;font-size:.78rem;color:var(--gold);font-weight:600;margin-bottom:16px;display:block}
.lead{font-size:1.2rem;line-height:1.7;color:var(--muted);max-width:800px}
.center{text-align:center}
.center .lead{margin:0 auto}
.section-head{margin-bottom:56px}

/* Path cards (home) */
.paths{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.path-card{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);min-height:380px;display:flex;align-items:flex-end;color:#fff}
.path-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.path-card .path-body{position:relative;z-index:2;padding:30px;background:linear-gradient(180deg,rgba(13,36,54,0) 0%,rgba(13,36,54,.92) 60%);width:100%;padding-top:90px}
.path-card h3{color:#fff;margin-bottom:8px}
.path-card p{color:#d5dfe8;font-size:.98rem;margin-bottom:16px}

/* Lists */
.x-list,.check-list{list-style:none;margin:18px 0}
.x-list li,.check-list li{padding:9px 0 9px 36px;position:relative}
.x-list li::before{content:"✕";position:absolute;left:0;top:9px;color:#c0392b;font-weight:700}
.check-list li::before{content:"✓";position:absolute;left:0;top:9px;color:var(--gold);font-weight:700;font-size:1.1rem}
.section-navy .check-list li::before{color:var(--gold-light)}

/* Split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split .img-wrap{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.split .img-wrap img{width:100%;height:100%;object-fit:cover}

/* Cards grid */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:36px;box-shadow:var(--shadow-sm);transition:transform .28s ease,box-shadow .28s ease}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card h3{margin-bottom:12px}
.card p{color:var(--muted);font-size:1rem;line-height:1.65}
.card .card-img{border-radius:10px;overflow:hidden;margin:-30px -30px 20px;aspect-ratio:16/10}
.card .card-img img{width:100%;height:100%;object-fit:cover}
.icon-dot{width:52px;height:52px;border-radius:50%;background:transparent;border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:var(--font-head);font-weight:700;font-size:1.25rem;margin:0 auto 16px}

/* FAQ */
.faq-wrap{max-width:860px;margin:0 auto}
details.faq{border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:14px;overflow:hidden}
details.faq summary{cursor:pointer;list-style:none;padding:20px 52px 20px 24px;font-family:var(--font-head);font-weight:600;color:var(--navy);position:relative;font-size:1.04rem}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);color:var(--gold);font-size:1.5rem;font-weight:400;transition:transform .2s}
details.faq[open] summary::after{transform:translateY(-50%) rotate(45deg)}
details.faq .faq-a{padding:0 24px 22px;color:var(--muted)}

/* Team */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.team-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.team-photo{aspect-ratio:1/1;overflow:hidden;background:var(--bg-alt)}
.team-photo img{width:100%;height:100%;object-fit:cover;object-position:center 18%}
.team-body{padding:24px 26px 30px}
.team-body .role{color:var(--gold);font-family:var(--font-head);font-weight:600;font-size:.88rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}
.team-body p{color:var(--muted);font-size:.95rem}

/* Phases (process) */
.phases{counter-reset:phase;max-width:900px;margin:0 auto}
.phase{display:flex;gap:26px;padding:30px 0;border-bottom:1px solid var(--line)}
.phase:last-child{border-bottom:0}
.phase-num{flex:0 0 64px;height:64px;border-radius:50%;background:var(--navy);color:var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:1.5rem;font-weight:700}
.phase h3{margin-bottom:8px}
.phase p{color:var(--muted)}

/* Calculator */
.calc-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:42px;max-width:760px;margin:0 auto}
.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.field label{display:block;font-family:var(--font-head);font-weight:600;font-size:.92rem;color:var(--navy);margin-bottom:7px}
.field .hint{font-size:.8rem;color:var(--muted);margin-top:5px}
.field input,.field textarea{width:100%;padding:13px 15px;border:1.5px solid var(--line);border-radius:8px;font-family:var(--font-body);font-size:1rem;color:var(--ink);background:#fff}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--gold)}
.prefix-wrap{position:relative}
.prefix-wrap .prefix{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted)}
.prefix-wrap input{padding-left:30px}
.suffix-wrap{position:relative}
.suffix-wrap .suffix{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted)}
#result{margin-top:34px;background:var(--bg-alt);border:1px solid var(--line);border-radius:12px;padding:30px;text-align:center}
#result .range{display:flex;gap:30px;justify-content:center;flex-wrap:wrap;margin:18px 0}
#result .range .val{font-family:var(--font-head);font-size:2rem;font-weight:700;color:var(--navy)}
#result .range .lbl{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.pill{display:inline-block;background:rgba(199,160,78,.15);color:var(--gold);border-radius:100px;padding:6px 18px;font-family:var(--font-head);font-weight:600;font-size:.85rem}
.disclaimer-note{font-size:.85rem;color:var(--muted);margin-top:18px}

/* Forms */
.lead-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:40px;max-width:680px;margin:0 auto}
.lead-form .field{margin-bottom:18px}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;color:var(--muted);margin-bottom:20px}
.consent input{margin-top:4px}
.form-note{margin-top:16px;font-size:.92rem;color:var(--navy);background:rgba(199,160,78,.12);border:1px solid rgba(199,160,78,.4);border-radius:8px;padding:14px 16px;display:none}
.form-note.show{display:block}

/* Video insights */
.reel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.reel-card{position:relative;border:1.5px solid var(--gold);border-radius:12px;overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow);display:block}
.reel-card img,.reel-card video{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.reel-card:hover img,.reel-card:hover video{transform:scale(1.04)}
.media-video{width:100%;border-radius:var(--radius);box-shadow:var(--shadow);display:block}
.reel-card .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(13,36,54,.35)}
.reel-card .play span{width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;color:var(--navy);font-size:1.4rem;padding-left:5px}

/* Steps (booking) */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}

/* CTA band — original pre-footer style: light blue field, navy heading */
.cta-band{background:linear-gradient(180deg,var(--bg-warm) 0%,#ecdfca 100%);color:var(--ink);text-align:center;padding:100px 0}
.cta-band h2{color:var(--navy);margin-bottom:16px}
.cta-band p{color:var(--muted);max-width:680px;margin:0 auto 32px;font-size:1.1rem;line-height:1.7}
.cta-band .btn-outline{background:var(--navy);border-color:var(--navy);color:#fff}
.cta-band .btn-outline:hover{background:var(--navy-soft)}

/* Footer — original design: navy, centered stack, gold-bordered Follow Us box, gold links/icons */
.site-footer{background:var(--navy-deep);color:#eef2f6;padding:64px 0 34px;font-size:.95rem;text-align:center}
.follow-box{max-width:500px;margin:0 auto 36px;border:2px solid var(--gold);border-radius:16px;padding:34px 30px 28px}
.follow-box h4{color:#fff;font-family:var(--font-head);font-size:1.7rem;font-weight:700;margin-bottom:20px}
.site-footer a{color:var(--gold)}
.site-footer a:hover{color:var(--gold-light)}
.socials{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.socials a{width:44px;height:44px;display:flex;align-items:center;justify-content:center}
.socials svg{width:27px;height:27px;fill:var(--gold);transition:fill .2s}
.socials a:hover svg{fill:var(--gold-light)}
.footer-legal-links{color:var(--gold);margin-bottom:26px;font-family:var(--font-head)}
.footer-legal-links .sep{color:#8fa2b3;margin:0 8px}
.footer-disclaimer{max-width:960px;margin:0 auto;font-size:.95rem;color:#eef2f6;line-height:1.8}
.footer-address{margin-top:24px;display:flex;align-items:center;justify-content:center;gap:9px}
.footer-address svg{width:18px;height:18px;fill:var(--gold);flex:0 0 auto}
.footer-bottom{margin-top:22px;font-size:.95rem;color:#eef2f6}

/* Trust strip */
.trust-strip{background:var(--navy);padding:18px 0;border-top:1px solid rgba(255,255,255,.08)}
.trust-items{display:flex;gap:12px 44px;justify-content:center;flex-wrap:wrap}
.trust-items span{color:#dbe5ee;font-family:var(--font-head);font-size:.9rem;letter-spacing:.04em;display:flex;align-items:center;gap:8px}
.trust-items span::before{content:"✓";color:var(--gold);font-weight:700}

/* Testimonials + regulatory disclosure */
.testimonial-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.disclosure-note{font-size:.78rem;color:var(--muted);max-width:860px;margin:26px auto 0;text-align:center;line-height:1.6}

/* Exit-intent modal */
.exit-modal{position:fixed;inset:0;background:rgba(13,36,54,.72);display:none;align-items:center;justify-content:center;z-index:100;padding:22px}
.exit-modal.open{display:flex}
.exit-box{background:#fff;border-radius:var(--radius);max-width:540px;padding:44px 40px;text-align:center;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.4)}
.exit-box h3{margin-bottom:10px}
.exit-box p{color:var(--muted);margin-bottom:22px}
.exit-close{position:absolute;top:10px;right:16px;background:none;border:0;font-size:1.7rem;color:var(--muted);cursor:pointer;line-height:1}

/* Calculator lead capture */
.calc-capture{margin-top:26px;background:#fff;border:2px solid var(--gold);border-radius:12px;padding:26px;text-align:left}
.calc-capture h3{margin-bottom:6px}
.calc-capture p{color:var(--muted);font-size:.95rem;margin-bottom:16px}
.calc-capture .row{display:flex;gap:12px;flex-wrap:wrap}
.calc-capture input{flex:1;min-width:180px;padding:13px 15px;border:1.5px solid var(--line);border-radius:8px;font-size:1rem}
@media(max-width:760px){.testimonial-grid{grid-template-columns:1fr}}

/* Fiduciary trust-badge row (CRO polish near conversion points) */
.trust-badges{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:22px}
.trust-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(199,160,78,.12);border:1px solid rgba(199,160,78,.4);border-radius:100px;padding:8px 16px;font-family:var(--font-head);font-weight:600;font-size:.82rem;color:var(--navy);letter-spacing:.02em}
.trust-badge::before{content:"✓";color:var(--gold);font-weight:700}
.section-navy .trust-badge{background:rgba(255,255,255,.06);border-color:rgba(199,160,78,.5);color:#e6edf3}
.section-navy .trust-badge::before{color:var(--gold-light)}

/* Booklet cover mockup (lead-magnet landing) — mirrors the PDF cover */
.booklet-cover{background:var(--navy-deep);border-radius:var(--radius);box-shadow:var(--shadow);padding:44px 38px;min-height:420px;display:flex;flex-direction:column;gap:20px;position:relative;overflow:hidden;max-width:420px;margin:0 auto}
.booklet-cover::before{content:"";position:absolute;left:0;right:0;top:78px;height:3px;background:var(--gold)}
.booklet-cover .bc-brand{color:var(--gold);font-family:var(--font-head);font-weight:700;font-size:.78rem;letter-spacing:.14em}
.booklet-cover .bc-title{color:#fff;font-family:var(--font-head);font-weight:600;font-size:1.9rem;line-height:1.15;letter-spacing:-.02em;margin-top:56px}
.booklet-cover .bc-title em{color:var(--gold);font-style:normal;display:block}
.booklet-cover .bc-sub{color:#c9d6e2;font-size:.95rem;line-height:1.5;margin-top:auto;border-top:2px solid var(--gold);padding-top:16px;max-width:78%}

/* Reveal (JS-gated so no-JS users always see content) */
html.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
html.js .reveal.in{opacity:1;transform:none}

/* Responsive */
/* The full 6-item nav only fits alongside the logo + phone + CTA on wide desktops.
   Below 1400px it collapses to the hamburger drawer so the header never overflows. */
@media(max-width:1400px){
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--navy-deep);flex-direction:column;padding:18px 22px 26px;gap:4px;align-items:stretch;box-shadow:0 14px 20px rgba(0,0,0,.3)}
  .main-nav.open{display:flex}
  .main-nav a{padding:12px 4px;min-height:44px;display:flex;align-items:center;border-bottom:1px solid rgba(255,255,255,.08);font-size:.98rem}
  .main-nav .drawer-cta{display:flex;justify-content:center;background:var(--gold);color:#fff;border-radius:8px;margin-top:14px;border-bottom:0;font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:.9rem}
  .nav-toggle{display:block}
  .header-ctas .login-link{display:none}
}
@media(min-width:1401px){
  .main-nav .drawer-cta{display:none}
}
@media(max-width:1020px){
  .grid-4{grid-template-columns:1fr 1fr}
}

/* Sticky mobile CTA bar */
.mobile-cta-bar{display:none}
@media(max-width:760px){
  .mobile-cta-bar{position:fixed;bottom:0;left:0;right:0;z-index:70;display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(13,36,54,.97);box-shadow:0 -6px 20px rgba(0,0,0,.3)}
  .mobile-cta-bar .btn{flex:1;padding:13px 8px;font-size:.78rem;min-height:44px}
  body{padding-bottom:76px}
  .exit-modal{z-index:110}
}
@media(max-width:760px){
  .paths,.split,.grid-3,.team-grid,.reel-grid,.steps,.calc-grid{grid-template-columns:1fr}
  .split{gap:30px}
  .footer-grid{grid-template-columns:1fr;gap:30px}
  .hero-content{padding:76px 0 60px}
  .section{padding:56px 0}
  .header-ctas .btn{display:none}
  .header-phone{display:none}
  .calc-card,.lead-form{padding:26px}
}

/* Contact FAB — desktop persistent-CTA pill (hidden <=760px so it never
   collides with .mobile-cta-bar). Expands .fab-actions on .contact-fab.open,
   toggled by the fab-toggle handler in main.js. */
.contact-fab{position:fixed;right:26px;bottom:26px;z-index:75;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.fab-toggle{width:60px;height:60px;border-radius:50%;background:var(--gold);color:#fff;border:0;cursor:pointer;font-size:1.5rem;line-height:1;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;transition:transform .2s ease,background .2s ease}
.fab-toggle:hover{background:var(--gold-light);transform:translateY(-2px)}
.contact-fab.open .fab-toggle{transform:rotate(45deg)}
.fab-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;opacity:0;visibility:hidden;transform:translateY(10px);pointer-events:none;transition:opacity .2s ease,transform .2s ease,visibility .2s}
.contact-fab.open .fab-actions{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.fab-actions .btn{padding:12px 22px;font-size:.82rem;box-shadow:var(--shadow);white-space:nowrap}
@media(max-width:760px){.contact-fab{display:none}}
