/* GP Journey — shared nav + footer chrome styles.
   Paired with /site-chrome.js, which generates the #mainNav / .mobile-menu /
   footer.site markup these rules target. Self-contained token set below so
   this works regardless of what variables the host page's own :root defines.
   Load this AFTER the page's own <style> block so these rules win over any
   leftover per-page nav/footer CSS with matching specificity. */

header.site, .mobile-menu, footer.site, #gpPromoBar {
  --deep:#1C1714; --gold:#A8832A; --gold-light:#C9A84C; --gold-glow:rgba(168,131,42,.10);
  --emerald:#2A6B52; --emerald-lt:#3A9B6B;
  --paper:#FAF6EF; --cream:#FFFDF8; --coral:#C04A4A;
  --border:rgba(168,131,42,.28); --border-faint:rgba(168,131,42,.12);
  --txt-soft:#7A6B5A;
  --fd:'Cormorant Garamond',serif; --fs:'Sora','Inter',system-ui,sans-serif; --fb:'Inter',system-ui,sans-serif;
}

/* ---- promo bar (time-boxed site-wide sale banner; auto-removed by
   site-chrome.js once the sale ends, or immediately on dismiss — see
   the "Promo bar" block there for the cutoff date and dismiss key) ---- */
#gpPromoBar{position:sticky;top:0;left:0;right:0;z-index:401;background:var(--deep);color:var(--cream);font-family:var(--fb);}
#gpPromoBar .promo-in{max-width:1180px;margin:0 auto;padding:11px 44px 11px 20px;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.87rem;line-height:1.5;letter-spacing:.01em;}
#gpPromoBar .promo-in strong{font-weight:700;}
#gpPromoBar .promo-code{font:inherit;color:inherit;font-weight:800;letter-spacing:.05em;text-decoration:underline;text-decoration-color:rgba(255,253,248,.55);text-underline-offset:3px;cursor:pointer;border:0;background:none;padding:1px 4px;margin:0 -4px;border-radius:4px;transition:background-color .2s;}
#gpPromoBar .promo-code:hover{text-decoration-color:currentColor;}
#gpPromoBar .promo-code.just-copied{background-color:rgba(255,253,248,.22);}
#gpPromoBar .promo-close{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:0;color:inherit;opacity:.65;width:24px;height:24px;font-size:1.05rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:opacity .18s;}
#gpPromoBar .promo-close:hover{opacity:1;}
@media(max-width:620px){#gpPromoBar .promo-in{font-size:.8rem;padding:10px 40px 10px 16px;}}

/* ---- header / nav ---- */
header.site{position:sticky;top:var(--gpj-banner-h,0px);left:0;right:0;z-index:400;background:rgba(250,246,239,.92);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border-faint);transition:box-shadow .3s, top .18s ease;}
header.site.scrolled{box-shadow:0 10px 30px rgba(28,23,20,.10);}
header.site .nav-in{max-width:1180px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:30px;height:72px;transition:height .3s ease;}
header.site.scrolled .nav-in{height:56px;}
header.site .logo{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--deep);}
header.site .logo-mark{width:36px;height:36px;flex:none;transition:width .3s ease,height .3s ease;}
header.site.scrolled .logo-mark{width:30px;height:30px;}
header.site .logo-word{font-family:var(--fd);font-weight:700;font-size:1.25rem;color:var(--deep);transition:font-size .3s ease;}
header.site.scrolled .logo-word{font-size:1.05rem;}
header.site .logo-word em{font-style:italic;color:var(--gold);}

.mobile-menu-head .logo{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--deep);}
.mobile-menu-head .logo-mark{width:36px;height:36px;flex:none;}
.mobile-menu-head .logo-word{font-family:var(--fd);font-weight:700;font-size:1.25rem;color:var(--deep);}
.mobile-menu-head .logo-word em{font-style:italic;color:var(--gold);}

header.site .nav-links{display:flex;align-items:center;justify-content:center;gap:26px;flex:1;list-style:none;}
header.site .nav-links a{font-family:var(--fs);font-weight:600;font-size:.9rem;color:var(--deep);text-decoration:none;position:relative;padding:6px 0;}
header.site .nav-links a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--gold);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .3s ease;}
header.site .nav-links a:hover::after,header.site .nav-links a:focus-visible::after,header.site .nav-links a.nav-active::after{transform:scaleX(1);}

header.site .nav-dropdown{position:relative;}
header.site .nav-dropdown>a{display:flex;align-items:center;gap:.3rem;cursor:pointer;}
header.site .nav-dropdown>a::before{content:'▾';font-size:.65rem;opacity:.7;transition:transform .25s;order:2;}
header.site .nav-dropdown.open>a::before{transform:rotate(180deg);}
header.site .dropdown-menu{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(6px);opacity:0;visibility:hidden;min-width:210px;background:var(--cream);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 45px rgba(28,23,20,.16);padding:.5rem;transition:opacity .2s,transform .2s,visibility .2s;z-index:10;}
header.site .nav-dropdown.open .dropdown-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
header.site .dropdown-menu a{display:block;padding:.6rem .85rem;border-radius:8px;font-size:.85rem;font-weight:600;white-space:nowrap;}
header.site .dropdown-menu a:hover{background:var(--gold-glow);}
header.site .dropdown-menu a::after{display:none;}

header.site .nav-actions{display:flex;align-items:center;gap:12px;margin-left:auto;}
@keyframes ctaShine{0%{background-position:200% 0}100%{background-position:-200% 0}}
header.site .btn-ghost-nav{font-family:var(--fd);font-size:.95rem;font-weight:600;color:#fff;background:linear-gradient(100deg,var(--gold) 0,var(--gold) 42%,var(--gold-light) 50%,var(--gold) 58%,var(--gold) 100%);background-size:220% 100%;border:none;border-radius:999px;padding:.5rem 1.2rem;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;box-shadow:0 2px 14px rgba(168,131,42,.28);transition:box-shadow .25s,transform .2s;animation:ctaShine 4.5s linear infinite;}
header.site .btn-ghost-nav:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(168,131,42,.35);}
header.site .btn-nav-primary{font-family:var(--fd);font-size:.95rem;font-weight:600;color:#fff;background:linear-gradient(100deg,var(--emerald) 0,var(--emerald) 42%,#4FB587 50%,var(--emerald) 58%,var(--emerald) 100%);background-size:220% 100%;border:none;border-radius:999px;padding:.52rem 1.3rem;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;box-shadow:0 2px 14px rgba(42,107,82,.28);transition:box-shadow .25s,transform .2s;animation:ctaShine 4.5s linear infinite;animation-delay:.5s;}
header.site .btn-nav-primary:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(42,107,82,.35);}

header.site .nav-hamburger{display:none;background:none;border:0;width:44px;height:44px;position:relative;z-index:420;flex:none;}
header.site .nav-hamburger span{position:absolute;left:11px;right:11px;height:2px;border-radius:2px;background:var(--deep);transition:.3s ease;}
header.site .nav-hamburger span:nth-child(1){top:16px;}
header.site .nav-hamburger span:nth-child(2){top:22px;}
header.site .nav-hamburger span:nth-child(3){top:28px;}
header.site .nav-hamburger.open span:nth-child(1){top:22px;transform:rotate(45deg);}
header.site .nav-hamburger.open span:nth-child(2){opacity:0;}
header.site .nav-hamburger.open span:nth-child(3){top:22px;transform:rotate(-45deg);}

@media(max-width:960px){
  header.site .nav-links,header.site .nav-actions .btn-ghost-nav,header.site .nav-actions .btn-nav-primary{display:none;}
  header.site .nav-hamburger{display:block;}
}

/* ---- mobile menu ---- */
.mobile-menu{position:fixed;inset:0;z-index:410;background:var(--paper);padding:20px 24px 40px;transform:translateY(-102%);transition:transform .5s cubic-bezier(.7,0,.3,1);display:flex;flex-direction:column;gap:4px;overflow:auto;}
.mobile-menu.open{transform:translateY(0);}
.mobile-menu-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;}
.mobile-menu a{text-decoration:none;color:var(--deep);}
.mobile-menu a.mlink{font-family:var(--fd);font-weight:700;font-size:1.5rem;padding:12px 0;border-bottom:1px dashed var(--border);}
.mobile-help-group{border-bottom:1px dashed var(--border);}
.mobile-help-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;font-family:var(--fd);font-weight:700;font-size:1.5rem;padding:12px 0;background:none;border:0;color:var(--deep);cursor:pointer;text-align:left;}
.mobile-help-toggle .arrow{font-size:1rem;transition:transform .25s;}
.mobile-help-toggle[aria-expanded="true"] .arrow{transform:rotate(180deg);}
.mobile-help-dropdown{max-height:0;overflow:hidden;transition:max-height .3s ease;display:flex;flex-direction:column;}
.mobile-help-dropdown.open{max-height:320px;padding-bottom:10px;}
.mobile-help-dropdown a{font-family:var(--fs);font-weight:600;font-size:1.02rem;padding:.55rem 0 .55rem 1rem;color:var(--txt-soft);}
.mobile-menu-actions{margin-top:20px;display:flex;flex-direction:column;gap:12px;}
.mobile-menu-actions a{display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-weight:600;font-size:1.05rem;padding:.9rem 1.4rem;border-radius:14px;text-decoration:none;}
.mobile-menu-actions .btn-ghost-nav{background:linear-gradient(100deg,var(--gold) 0,var(--gold) 42%,var(--gold-light) 50%,var(--gold) 58%,var(--gold) 100%);background-size:220% 100%;color:#fff;box-shadow:0 2px 14px rgba(168,131,42,.28);animation:ctaShine 4.5s linear infinite;}
.mobile-menu-actions .btn-nav-primary{background:linear-gradient(100deg,var(--emerald) 0,var(--emerald) 42%,#4FB587 50%,var(--emerald) 58%,var(--emerald) 100%);background-size:220% 100%;color:#fff;box-shadow:0 2px 14px rgba(42,107,82,.28);animation:ctaShine 4.5s linear infinite;animation-delay:.5s;}
.mobile-close{background:none;border:1.5px solid var(--border);border-radius:12px;width:44px;height:44px;display:grid;place-items:center;color:var(--deep);flex:none;cursor:pointer;}
.mobile-close:hover{background:var(--deep);color:#fff;border-color:var(--deep);}

@media(prefers-reduced-motion:reduce){
  header.site .btn-ghost-nav,header.site .btn-nav-primary,.mobile-menu-actions .btn-ghost-nav,.mobile-menu-actions .btn-nav-primary{animation:none!important;}
}

/* ---- footer ---- */
footer.site{background:#1C1714;color:#CBBFA4;padding:4.5rem 0 0;}
footer.site .footer-inner{max-width:1180px;margin:0 auto;padding:0 24px;}
footer.site a{color:inherit;text-decoration:none;}
footer.site .footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2.5rem;}
footer.site .footer-brand .logo{display:flex;align-items:center;gap:.65rem;margin-bottom:.85rem;}
footer.site .footer-brand .logo-mark{width:36px;height:36px;flex:none;}
footer.site .footer-brand .logo-word{font-family:var(--fd);font-weight:700;font-size:1.2rem;color:#FFFDF8;}
footer.site .footer-brand .logo-word em{font-style:italic;color:var(--gold-light);}
footer.site .footer-tagline{font-size:.9rem;line-height:1.6;color:#CBBFA4;max-width:34ch;margin-bottom:1.3rem;}
footer.site .footer-newsletter-label{display:block;font-size:.78rem;font-weight:600;color:#9A8A6A;margin-bottom:.5rem;}
footer.site .footer-newsletter-row{display:flex;gap:8px;max-width:340px;}
footer.site .footer-newsletter-row input{flex:1;min-width:0;border-radius:12px;border:1.5px solid rgba(255,253,248,.18);background:rgba(255,253,248,.06);padding:.68rem .85rem;color:#FFFDF8;font-size:.88rem;outline:none;font-family:inherit;transition:.25s;}
footer.site .footer-newsletter-row input:focus{border-color:var(--gold-light);outline:2px solid var(--gold-light);outline-offset:2px;}
footer.site .footer-newsletter-row button{border:0;border-radius:12px;background:var(--gold);color:#FFFDF8;font-weight:700;padding:.68rem 1rem;font-family:inherit;cursor:pointer;transition:.25s;white-space:nowrap;}
footer.site .footer-newsletter-row button:hover{background:var(--gold-light);color:#1C1714;}
footer.site .footer-newsletter-row button:disabled{opacity:.6;cursor:default;}
footer.site .footer-newsletter-msg{margin-top:.6rem;font-size:.78rem;font-weight:600;min-height:1em;}
footer.site .footer-newsletter-msg.error{color:#E8AFA6;}
footer.site .footer-newsletter-msg.success{color:var(--gold-light);}
footer.site .footer-social{display:flex;gap:.65rem;margin-top:1.2rem;}
footer.site .footer-social a{width:36px;height:36px;border-radius:50%;background:rgba(255,253,248,.08);display:flex;align-items:center;justify-content:center;transition:.2s;}
footer.site .footer-social a:hover{background:var(--gold);}
footer.site .footer-social svg{width:16px;height:16px;fill:#CBBFA4;transition:.2s;}
footer.site .footer-social a:hover svg{fill:#1C1714;}
footer.site .footer-col-title{font-family:var(--fs);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#FFFDF8;margin-bottom:1.1rem;}
footer.site .footer-links{list-style:none;display:grid;gap:.7rem;}
footer.site .footer-links a{font-size:.88rem;position:relative;transition:.2s;}
footer.site .footer-links a:hover{color:#FFFDF8;padding-left:12px;}
footer.site .footer-links a::before{content:"\2192";position:absolute;left:-14px;opacity:0;transition:.2s;color:var(--gold-light);}
footer.site .footer-links a:hover::before{left:-6px;opacity:1;}
footer.site .footer-disclaimer{padding:2rem 0 1.6rem;font-size:.76rem;line-height:1.6;color:#9A8A6A;max-width:900px;border-top:1px solid rgba(255,253,248,.08);margin-top:3rem;}
footer.site .footer-bottom{padding:1.5rem 0;display:flex;justify-content:space-between;align-items:center;gap:1.1rem;flex-wrap:wrap;font-size:.8rem;}
footer.site .footer-legal{display:flex;gap:1.3rem;flex-wrap:wrap;}
footer.site .footer-legal a:hover{color:#fff;}

@media(max-width:1020px){footer.site .footer-top{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){footer.site .footer-top{grid-template-columns:1fr;}}
