/* Site-wide styles: tokens, reset, nav, mobile menu, section helpers, footer, cookie banner.
   Loaded on every page. Page-family rules live in home.css / inner.css / legal.css / team.css. */

:root{
        --navy:#0A1628;
        --navy-2:#11203B;
        --navy-deep:#060D1A;
        --paper:#F4F0E8;
        --paper-2:#EAE5DA;
        --paper-3:#FBF9F3;
        --ink:#0A0A0A;
        --ink-soft:#2A2A2A;
        --muted:#6A6A6A;
        --muted-2:#9A958C;
        --on-navy:#E8DFC7;
        --gold:#B89968;
        --gold-deep:#8B6F3F;
        --gold-tint:rgba(156,124,58,.08);
        --gold-glow:rgba(197,165,114,.16);
        --line:rgba(20,20,20,.14);
        --line-soft:rgba(20,20,20,.08);
        --line-on-navy:rgba(232,223,199,.14);
        --line-on-navy-soft:rgba(232,223,199,.08);
        --ease-out:cubic-bezier(.23,1,.32,1);
      }
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:'Switzer',Georgia,serif;background:var(--paper);color:var(--ink);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.005em}
a{color:inherit}
img{display:block;max-width:100%}
button{font-family:inherit}
.skip-link{position:absolute;top:-100%;left:0;background:var(--paper);color:var(--ink);padding:8px 16px;font-size:.85rem;z-index:9999;transition:top .2s}
.skip-link:focus{top:0}
/* ────────── Nav (cream/white unified bar) ────────── */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:18px 56px;display:flex;justify-content:space-between;align-items:center;color:var(--ink);background:rgba(244,240,232,.96);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid var(--line-soft);transition:padding .35s ease,box-shadow .35s ease}
.nav.scrolled{padding:14px 56px;box-shadow:0 6px 24px -16px rgba(6,13,26,.18)}
.nav .logo{display:inline-flex;align-items:center;text-decoration:none;color:var(--navy);--logo-window:#fff}
.nav .logo .logo-svg{height:44px;width:auto;display:block}
.nav-right{display:flex;align-items:center;gap:32px}
.nav-links{display:flex;align-items:center;gap:30px;font-family:'Switzer',sans-serif;font-size:14.5px;font-weight:400;list-style:none}
.nav-links a{text-decoration:none;color:inherit;opacity:.82;transition:opacity .2s ease}
.nav-links a:hover{opacity:1}
.nav-cta{font-family:'Switzer',sans-serif;font-size:14px;font-weight:500;color:var(--paper);background:var(--navy);padding:10px 18px;border-radius:2px;text-decoration:none;transition:background .2s ease,transform .16s var(--ease-out)}
.nav-cta:hover{background:var(--navy-deep)}
.nav-cta:active{transform:scale(.98)}
.nav-burger{display:none;background:transparent;border:0;padding:6px;cursor:pointer;color:inherit}
.nav-burger span{display:block;width:22px;height:1px;background:currentColor;margin:6px 0;transition:transform .3s var(--ease-out),opacity .3s ease}
.nav-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger.open span:nth-child(2){opacity:0}
.nav-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--navy-deep);color:var(--on-navy);z-index:99;padding:120px 32px 40px;opacity:0;pointer-events:none;transition:opacity .35s ease;display:flex;flex-direction:column;gap:28px}
.mobile-menu.open{opacity:1;pointer-events:all}
.mobile-menu a{font-family:'Switzer',sans-serif;font-size:28px;font-weight:400;letter-spacing:-.022em;text-decoration:none;color:inherit;opacity:.88;transition:opacity .2s ease}
.mobile-menu a:hover{opacity:1}
/* ────────── Section base ────────── */
section{position:relative}
.section-pad{padding:120px 56px}
.max{max-width:1280px;margin:0 auto}
.kicker{font-family:'Switzer',sans-serif;font-size:13.5px;font-weight:400;letter-spacing:.002em;margin-bottom:22px}
.section-cream .kicker{color:var(--gold-deep)}
.section-navy .kicker{color:var(--gold)}
.section-title{font-family:'Switzer',sans-serif;font-weight:500;font-size:42px;line-height:1.04;letter-spacing:-.030em;max-width:820px;margin-bottom:60px}
.section-cream .section-title{color:var(--ink)}
.section-navy .section-title{color:var(--on-navy)}
.section-cream{background:var(--paper);color:var(--ink)}
.section-navy{background:var(--navy);color:var(--on-navy)}
.reveal{opacity:0;transform:translateY(14px);transition:opacity .55s var(--ease-out),transform .65s var(--ease-out)}
.reveal.in{opacity:1;transform:translateY(0)}
.services-col h3{font-family:'Switzer',sans-serif;font-weight:500;font-size:22px;letter-spacing:-.018em;color:var(--ink);margin-bottom:14px}
.services-col p{font-family:'Switzer',sans-serif;font-size:15.5px;color:var(--ink-soft);line-height:1.65}
/* ────────── Footer (navy-deep) ────────── */
.footer{background:var(--navy-deep);color:var(--on-navy);padding:80px 56px 40px}
.footer-inner{max-width:1280px;margin:0 auto}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:64px;padding-bottom:56px;border-bottom:1px solid var(--line-on-navy-soft)}
.footer-brand .footer-logo{display:inline-flex;align-items:center;margin-bottom:14px;color:var(--gold);--logo-window:var(--navy-deep)}
.footer-brand .footer-logo .logo-svg{height:56px;width:auto;display:block}
.footer-brand .footer-brand-desc{font-family:'Switzer',sans-serif;font-size:14.5px;color:rgba(232,223,199,.62);line-height:1.55;max-width:340px}
.footer-col-title{font-family:'Switzer',sans-serif;font-weight:500;font-size:13px;color:rgba(232,223,199,.62);margin-bottom:20px;letter-spacing:.002em}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.footer-col a{font-family:'Switzer',sans-serif;font-size:14.5px;color:var(--on-navy);text-decoration:none;opacity:.85;transition:opacity .2s ease}
.footer-col a:hover{opacity:1}
.footer-bottom{padding-top:28px;display:flex;flex-direction:column;gap:14px}
.footer-legal{font-family:'Switzer',sans-serif;font-size:12.5px;color:rgba(232,223,199,.5);line-height:1.6;max-width:980px}
.footer-copy{font-family:'Switzer',sans-serif;font-size:12.5px;color:rgba(232,223,199,.5)}
@media (max-width:1100px) {
  .section-pad,.nav,.nav.scrolled,.footer{padding-left:40px;padding-right:40px}
  .section-title{font-size:36px}
}
@media (max-width:880px) {
  .nav-links,.nav-cta{display:none}
  .nav-burger{display:block}
  .section-pad{padding:80px 32px}
  .nav,.nav.scrolled,.footer{padding-left:24px;padding-right:24px}
  .footer-top{grid-template-columns:1fr;gap:40px}
  .section-title{font-size:30px;margin-bottom:40px}
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.15s!important}
  .reveal{transform:none}
  .nav-cta:active{transform:none}
}
/* ── Cookie Consent Banner ─────────────────────────────── */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:1000;background:var(--navy-deep);color:var(--on-navy);padding:22px 28px;box-shadow:0 -8px 32px -12px rgba(6,13,26,.35);transform:translateY(110%);transition:transform .4s var(--ease-out);border-top:1px solid var(--line-on-navy-soft)}
.cookie-banner.visible{transform:translateY(0)}
.cookie-banner-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.cookie-banner-text{flex:1 1 380px;font-family:'Switzer',sans-serif;font-size:14px;line-height:1.55;color:rgba(232,223,199,.85)}
.cookie-banner-text a{color:var(--gold);text-decoration:underline}
.cookie-banner-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cookie-btn{font-family:'Switzer',sans-serif;font-size:14px;font-weight:500;padding:11px 20px;border-radius:2px;cursor:pointer;border:1px solid transparent;transition:background .2s ease,transform .16s var(--ease-out),border-color .2s ease;white-space:nowrap}
.cookie-btn:active{transform:scale(.97)}
.cookie-btn-accept{background:var(--gold);color:var(--navy-deep)}
.cookie-btn-accept:hover{background:var(--gold-deep)}
.cookie-btn-reject{background:transparent;color:var(--on-navy);border-color:var(--line-on-navy)}
.cookie-btn-reject:hover{border-color:var(--gold)}
.cookie-btn-customise{background:none;border:0;color:var(--on-navy);text-decoration:underline;padding:11px 4px;font-size:14px;font-family:'Switzer',sans-serif;cursor:pointer}
.cookie-panel{max-width:1100px;margin:16px auto 0;padding-top:16px;border-top:1px solid var(--line-on-navy-soft);display:none}
.cookie-panel.open{display:block}
.cookie-panel-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line-on-navy-soft)}
.cookie-panel-row:last-of-type{border-bottom:0}
.cookie-panel-label{font-family:'Switzer',sans-serif;font-size:14px;font-weight:500;color:var(--on-navy);margin-bottom:4px}
.cookie-panel-desc{font-family:'Switzer',sans-serif;font-size:13px;color:rgba(232,223,199,.65);line-height:1.5;max-width:640px}
.cookie-toggle{position:relative;display:inline-block;width:42px;height:24px;flex:0 0 auto}
.cookie-toggle input{opacity:0;width:0;height:0;position:absolute}
.cookie-toggle-track{position:absolute;inset:0;background:rgba(232,223,199,.18);border-radius:24px;transition:background .2s ease;cursor:pointer}
.cookie-toggle-track::before{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;background:var(--on-navy);border-radius:50%;transition:transform .2s ease}
.cookie-toggle input:checked + .cookie-toggle-track{background:var(--gold)}
.cookie-toggle input:checked + .cookie-toggle-track::before{transform:translateX(18px);background:var(--navy-deep)}
.cookie-toggle input:disabled + .cookie-toggle-track{opacity:.5;cursor:not-allowed}
.cookie-panel-save{margin-top:16px;text-align:right}
@media (max-width:680px) {
  .cookie-banner{padding:20px 20px 24px}
  .cookie-banner-inner{flex-direction:column;align-items:stretch;gap:16px}
  .cookie-banner-text{flex:none}
  .cookie-banner-actions{width:100%}
  .cookie-btn-accept,.cookie-btn-reject{flex:1 1 0}
  .cookie-panel-row{flex-direction:column;gap:10px}
}
