/* Site chrome — V7 header and footer (every template). Uses the V7 tokens in tokens.css. */

html{scroll-padding-top:114px}
@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;max-width:none;margin:0;padding:0;background:rgba(255,255,255,.98);border-bottom:1px solid var(--cloud-300)}
body.admin-bar .site-header{top:32px}
.site-header__inner{display:flex;align-items:center;gap:26px;max-width:1440px;min-height:90px;margin:0 auto;padding:0 40px}
.site-brand{display:flex;align-items:center;gap:12px;flex:none;color:inherit;text-decoration:none}
.site-brand__mark{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:7px;background:var(--brand-500);color:#fff;font-family:var(--font-display,"Montserrat",Arial,sans-serif);font-size:16px;font-weight:800;line-height:1}
.site-brand__name{display:block;font-family:var(--font-display,"Montserrat",Arial,sans-serif);font-size:15px;font-weight:800;line-height:1.1;letter-spacing:.13em;color:var(--ink-950)}
.site-brand__tag{display:block;padding-left:16px;border-left:1px solid var(--cloud-400);font-size:11.5px;font-weight:700;line-height:1.45;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-700)}
.site-nav{position:relative;flex:1 1 auto;display:flex;align-items:center;justify-content:flex-end;gap:26px}
.site-nav__list{display:flex;align-items:center;justify-content:flex-end;gap:26px;margin:0;padding:0;list-style:none}
.site-nav__list a{font-size:15px;font-weight:600;color:var(--ink-800);text-decoration:none;white-space:nowrap}
.site-nav__list a:hover{color:var(--brand-600)}
.site-nav__list .is-current a,.site-nav__list a[aria-current="page"]{color:var(--brand-600)}
.site-header__cta{flex:none}
.site-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border:1px solid transparent;border-radius:6px;background:var(--brand-500);color:#fff;font-family:var(--font-inter,"Inter",Arial,sans-serif);font-size:15px;font-weight:700;text-decoration:none;cursor:pointer;transition:background .18s,transform .18s}
.site-btn:hover{background:var(--brand-600);transform:translateY(-1px)}

/* ---------- footer ---------- */
/* Light surface on purpose: the uploaded logo is an opaque white square, so on a
   dark footer it can only become a white plate or a flat white mark. On a light
   footer the real, full-colour logo sits exactly as it does in the header. */
.site-footer{position:relative;max-width:none;margin:0;padding:0;background:var(--cloud-50);color:var(--ink-800);font-family:var(--font-inter,"Inter",Arial,sans-serif);text-align:left;border-top:1px solid var(--cloud-300)}
.site-footer::before{content:"";position:absolute;top:-1px;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--brand-500),var(--brand-400) 48%,var(--heat-500))}
.site-footer__inner{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:56px;align-items:start;max-width:1440px;margin:0 auto;padding:64px 40px 0}
.site-footer .site-brand__img{margin:0}
.site-footer__tagline{margin-top:24px;font-size:14px;line-height:1.75;color:var(--metal-700);max-width:42ch}

/* footer link columns — grouped like the page tree, not one long nav bar */
.site-footer__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 28px}
.site-footer__col-title{display:block;margin:0 0 16px;font-size:11px;font-weight:700;line-height:1.4;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-600);text-decoration:none}
a.site-footer__col-title:hover{color:var(--brand-700)}
.site-footer__col-list{margin:0;padding:0;list-style:none}
.site-footer__col-list li+li{margin-top:11px}
.site-footer__col-list a{font-size:13.5px;font-weight:500;line-height:1.5;color:var(--ink-800);text-decoration:none}
.site-footer__col-list a:hover{color:var(--brand-600)}

/* closing call to action — same palette as the hero: deep ink panel, blue accent */
.site-footer__cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 40px;align-items:center;width:calc(100% - 80px);max-width:1360px;margin:56px auto 0;padding:30px 34px;border-radius:14px;background:radial-gradient(120% 200% at 88% 0%,rgba(75,131,232,.30),rgba(75,131,232,0) 62%),linear-gradient(135deg,var(--ink-950),var(--ink-900) 62%,var(--ink-800));box-shadow:var(--shadow-v7-soft)}
.site-footer__label{margin:0;font-size:10.5px;font-weight:700;line-height:1.4;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-100)}
.site-footer__line{margin-top:12px;font-size:15px;line-height:1.65;color:rgba(255,255,255,.78);max-width:52ch}
.site-footer__cta .site-btn{background:var(--brand-500);color:#fff}
.site-footer__cta .site-btn:hover{background:var(--brand-600);color:#fff}
.site-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;max-width:1440px;margin:48px auto 0;padding:22px 40px 32px;border-top:1px solid var(--cloud-300);font-size:11.5px;line-height:1.6;color:var(--metal-600)}

@media (max-width:1024px){
  .site-header__inner{flex-wrap:wrap;gap:14px;padding:12px 24px;min-height:0}
  .site-nav{order:3;flex-basis:100%;flex-wrap:wrap;justify-content:flex-start;padding-bottom:4px}
  .site-nav__list{gap:20px;justify-content:flex-start;flex-wrap:wrap}
  .site-footer__inner{grid-template-columns:minmax(0,1fr);gap:36px;padding:56px 24px 0}
  .site-footer__cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px}
  .site-footer__cta{width:calc(100% - 48px);margin-top:44px;padding:26px 24px}
  .site-footer__bottom{margin-top:40px;padding:20px 24px 28px}
}
/* hide the header brand tagline where the bar gets tight (nav + search + CTA need the width) */
@media (max-width:1300px){
  .site-header .site-brand__tag{display:none}
}
@media (max-width:720px){
  .site-header__inner{padding:10px 20px;gap:10px}
  .site-brand{gap:10px}
  .site-brand__img{width:80px;height:38px;margin:0 -3px 0 -8px}
  .site-brand__mark{width:34px;height:34px;font-size:14px;border-radius:6px}
  .site-brand__name{font-size:14px;letter-spacing:.1em}
  .site-brand__tag{font-size:10px;letter-spacing:.04em;max-width:170px;padding-left:12px}
  .site-nav__list a,.nav-mega__trigger{font-size:14px}
  .site-header__cta .site-btn{min-height:40px;padding:0 15px;font-size:13px}
  .site-footer__inner{padding:44px 20px 0;gap:30px}
  .site-footer__cta{grid-template-columns:minmax(0,1fr);gap:22px;width:calc(100% - 40px);margin-top:36px;padding:24px 20px}
  .site-footer__bottom{flex-direction:column;margin-top:34px;padding:18px 20px 26px}
}


/* ---------- header navigation: grouped items (hover + keyboard focus) ---------- */
.nav-mega{position:relative}
.nav-mega__trigger{display:inline-flex;align-items:center;gap:7px;padding:0;border:0;background:none;font-family:inherit;font-size:15px;font-weight:600;color:var(--ink-800);white-space:nowrap;cursor:pointer}
.nav-mega__trigger:hover,.nav-mega:focus-within .nav-mega__trigger{color:var(--brand-600)}
.nav-mega.is-current .nav-mega__trigger{color:var(--brand-600)}
.nav-mega__caret{flex:none;width:7px;height:7px;margin-top:-3px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
.nav-mega__panel{position:absolute;top:100%;right:0;z-index:45;padding-top:14px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .18s ease,transform .18s ease,visibility .18s;pointer-events:none}
.nav-mega:hover .nav-mega__panel,.nav-mega:focus-within .nav-mega__panel{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.nav-mega__inner{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;min-width:236px;padding:14px;border:1px solid var(--cloud-300);border-radius:12px;background:var(--cloud-50);box-shadow:var(--shadow-v7-soft)}
.nav-mega__item{display:block;padding:9px 11px;border-radius:6px;font-size:14px;font-weight:600;color:var(--ink-900);white-space:nowrap}
.nav-mega__item:hover{background:var(--cloud-200);color:var(--brand-700)}
@media (max-width:1080px){
  .site-nav__list{gap:16px}
  .nav-mega__panel{display:none}
}

/* brand lockup using the site logo */
.site-brand__logo{display:inline-flex;align-items:center;flex:none}
.site-brand .custom-logo{display:block;width:100px;height:47px;max-height:none;object-fit:cover;object-position:center;margin:0 -4px 0 -10px}
.site-brand__tag{max-width:210px}

/* header search */
.site-search{display:flex;align-items:center;flex:none;overflow:hidden;border:1px solid var(--cloud-400);border-radius:6px;background:var(--cloud-50)}
.site-search:focus-within{border-color:var(--brand-400)}
.site-search__input{border:0;background:none;width:140px;min-height:42px;padding:0 10px;font-family:inherit;font-size:14px;color:var(--ink-900)}
.site-search__input:focus{outline:none}
.site-search__submit{display:grid;place-items:center;width:42px;min-height:42px;border:0;background:none;color:var(--metal-600);cursor:pointer}
.site-search__submit:hover{color:var(--brand-600)}
@media (max-width:1280px){.site-search__input{width:110px}}
@media (max-width:1024px){.site-search{order:4}.site-search__input{width:130px}}
@media (max-width:720px){.site-search{order:4;flex:1 1 100%;width:100%}.site-search__input{flex:1 1 auto;width:auto}}

/* brand logo image (read from the site logo option).
   The uploaded logo is a square canvas whose wordmark sits in a transparent band across the middle,
   so the box crops down to that band with object-fit:cover instead of scaling the whole padded square. */
.site-brand__img{display:block;flex:none;width:100px;height:47px;max-height:none;object-fit:cover;object-position:center;margin:0 -4px 0 -10px}
/* The footer keeps the same logo box as the header — same mark, same size. */
