/* ═══════════════════════════════════════════════════════
   common.css
   Shared styles: tokens, reset, layout, typography,
   buttons, navigation, footer, scroll-reveal, a11y, print
   ═══════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────
   SELF-HOSTED FONTS
   Files live in /fonts/
   woff2 only — all modern browsers support it.
   font-display: swap keeps text visible during load.
───────────────────────────────────────── */
/* Cormorant Garamond — 300 normal */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-v21-latin-300.woff2') format('woff2');
}

/* Cormorant Garamond — 300 italic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-v21-latin-300italic.woff2') format('woff2');
}

/* Cormorant Garamond — 600 normal */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-v21-latin-600.woff2') format('woff2');
}

/* Cormorant Garamond — 600 italic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-v21-latin-600italic.woff2') format('woff2');
}

/* Cormorant Garamond — 700 normal */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-v21-latin-700.woff2') format('woff2');
}

/* Outfit — 400 */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/outfit-v15-latin-regular.woff2') format('woff2');
}

/* Outfit — 500 */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/outfit-v15-latin-500.woff2') format('woff2');
}

/* Outfit — 600 */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/outfit-v15-latin-600.woff2') format('woff2');
}

/* Outfit — 700 */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/outfit-v15-latin-700.woff2') format('woff2');
}

/* DM Mono — 400 */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dm-mono-v16-latin-regular.woff2') format('woff2');
}

/* DM Mono — 500 */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dm-mono-v16-latin-500.woff2') format('woff2');
}
/* ─────────────────────────────────────────
   DESIGN TOKENS
───────────────────────────────────────── */
:root {
  /* Navy palette */
  --navy-950: #040D18;
  --navy-900: #0A1929;
  --navy-800: #0D2340;
  --navy-700: #122D52;
  --navy-600: #1B3A5C;
  --navy-500: #234A75;
  --navy-400: #2E6DA4;
  --navy-100: #D6E8F7;
  --navy-50:  #EEF6FD;

  /* Gold palette */
  --gold-700: #8F5C00;
  --gold-600: #B07800;
  --gold-500: #C9940A;
  --gold-400: #D4A82A;
  --gold-300: #E2C060;
  --gold-200: #EDD48A;
  --gold-100: #F5E8BF;
  --gold-50:  #FBF6E8;

  /* Neutrals */
  --white:     #FFFFFF;
  --off-white: #FAFAF8;
  --cream:     #F7F4EE;
  --warm-100:  #F0EDE6;
  --warm-200:  #E4DFDA;
  --warm-300:  #CCC8C0;
  --ink-800:   #1A1A1A;
  --ink-700:   #2E2E2E;
  --ink-600:   #444;
  --ink-500:   #666;
  --ink-400:   #888;
  --ink-300:   #AAA;
  --ink-100:   #E8E8E8;

  /* Typography */
  --font-d: 'Cormorant Garamond', Georgia, serif;
  --font-b: 'Outfit', system-ui, sans-serif;
  --font-m: 'DM Mono', 'Courier New', monospace;

  /* Layout */
  --max-w: 1240px;

  /* Easing */
  --ease: cubic-bezier(.4, 0, .2, 1);

  /* Shadows */
  --sh-sm: 0 1px 3px rgba(10,25,41,.08), 0 1px 2px rgba(10,25,41,.04);
  --sh-md: 0 4px 16px rgba(10,25,41,.10), 0 2px 6px rgba(10,25,41,.06);
  --sh-lg: 0 12px 40px rgba(10,25,41,.14), 0 4px 12px rgba(10,25,41,.08);
  --sh-xl: 0 24px 64px rgba(10,25,41,.18), 0 8px 24px rgba(10,25,41,.10);

  /* Spacing scale */
  --sp-4:  4px;
  --sp-8:  8px;
  --sp-12: 12px;
  --sp-16: 16px;
  --sp-20: 20px;
  --sp-24: 24px;
  --sp-32: 32px;
  --sp-40: 40px;
  --sp-48: 48px;
  --sp-64: 64px;
  --sp-80: 80px;
}


/* ─────────────────────────────────────────
   RESET
───────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-b);
  font-size: clamp(14px, 1.6vw, 16px);
  background: var(--off-white);
  color: var(--ink-800);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img, svg {
  max-width: 100%;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}


/* ─────────────────────────────────────────
   LAYOUT
───────────────────────────────────────── */
.wrap {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 80px);
}

.section    { padding: clamp(56px, 8vw, 96px) 0; }
.section-lg { padding: clamp(64px, 10vw, 120px) 0; }
.section-sm { padding: clamp(32px, 5vw, 64px) 0; }


/* ─────────────────────────────────────────
   TYPOGRAPHY
───────────────────────────────────────── */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-m);
  font-size: clamp(9px, 1.2vw, 10px);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: var(--gold-700);
  margin-bottom: 16px;
}
.eyebrow::before {
  content: '';
  width: 24px;
  height: 1px;
  background: currentColor;
  flex-shrink: 0;
}
.eyebrow-light { color: var(--gold-300); }
.eyebrow-c     { justify-content: center; }

.h1 {
  font-family: var(--font-d);
  font-size: clamp(38px, 6vw, 72px);
  font-weight: 300;
  line-height: 1.06;
  letter-spacing: -1px;
  color: var(--white);
}
.h1 em       { font-style: italic; color: var(--gold-300); }
.h1 strong   { font-weight: 700; }

.h2 {
  font-family: var(--font-d);
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.5px;
  color: var(--navy-700);
}
.h2 em { font-style: italic; font-weight: 300; }

.h3 {
  font-family: var(--font-d);
  font-size: clamp(20px, 2.5vw, 28px);
  font-weight: 600;
  line-height: 1.15;
  color: var(--navy-700);
}

.lead {
  font-size: clamp(15px, 1.8vw, 18px);
  color: var(--ink-500);
  line-height: 1.75;
  font-weight: 300;
}


/* ─────────────────────────────────────────
   BUTTONS  (min 44px touch target — WCAG 2.5.5)
───────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font-b);
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition:
    transform 200ms var(--ease),
    box-shadow 200ms var(--ease),
    background 200ms var(--ease);
  white-space: nowrap;
  letter-spacing: .2px;
  min-height: 44px;
  border-radius: 3px;
  text-align: center;
}

.btn-lg { font-size: clamp(13px, 1.4vw, 15px); padding: 13px clamp(20px, 2.5vw, 28px); }
.btn-md { font-size: 14px;  padding: 11px clamp(16px, 2vw, 22px); }
.btn-sm { font-size: 12px;  padding: 8px 16px; }

.btn-gold {
  background: var(--gold-400);
  color: var(--navy-900);
  box-shadow: 0 2px 8px rgba(212,168,42,.3);
}
.btn-gold:hover {
  background: var(--gold-300);
  box-shadow: 0 6px 20px rgba(212,168,42,.4);
  transform: translateY(-1px);
}
.btn-gold:focus-visible { outline: 3px solid var(--gold-300); outline-offset: 2px; }

.btn-navy {
  background: var(--navy-600);
  color: var(--white);
  box-shadow: 0 2px 8px rgba(27,58,92,.25);
}
.btn-navy:hover {
  background: var(--navy-700);
  box-shadow: 0 6px 20px rgba(27,58,92,.35);
  transform: translateY(-1px);
}
.btn-navy:focus-visible { outline: 3px solid var(--navy-400); outline-offset: 2px; }

.btn-ghost-light {
  background: transparent;
  color: var(--white);
  border: 1.5px solid rgba(255,255,255,.25);
}
.btn-ghost-light:hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.45);
}
.btn-ghost-light:focus-visible { outline: 3px solid rgba(255,255,255,.5); outline-offset: 2px; }

.btn-outline-navy {
  background: transparent;
  color: var(--navy-600);
  border: 1.5px solid var(--navy-400);
}
.btn-outline-navy:hover { background: var(--navy-50); }
.btn-outline-navy:focus-visible { outline: 3px solid var(--navy-400); outline-offset: 2px; }

/* Arrow badge inside buttons */
.arr {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(0,0,0,.12);
  font-size: 10px;
  flex-shrink: 0;
  transition: transform 200ms var(--ease);
}
.btn-gold .arr { background: rgba(10,25,41,.15); }
.btn:hover .arr { transform: translateX(3px); }


/* ─────────────────────────────────────────
   SKIP LINK (accessibility — WCAG 2.4.1)
───────────────────────────────────────── */
.skip-link {
  position: absolute;
  top: -60px;
  left: 8px;
  background: var(--gold-400);
  color: var(--navy-900);
  padding: 10px 16px;
  border-radius: 0 0 4px 4px;
  font-size: 13px;
  font-weight: 700;
  z-index: 9999;
  transition: top .2s;
}
.skip-link:focus { top: 0; }


/* ─────────────────────────────────────────
   NAVIGATION  (WordPress-ready header)
   Single menu source — CSS toggles desktop
   horizontal ↔ mobile full-screen overlay.
───────────────────────────────────────── */

.site-header {
  position: sticky;
  top: 0;
  z-index: 500;
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--warm-200);
  box-shadow: 0 1px 12px rgba(10,25,41,.06);
}

.nav-wrap {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 64px);
  height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

/* Logo */
.nav-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.nav-logo-mark {
  width: 45px;
  height: 45px;
  border-radius: 4px;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--gold-400), var(--gold-200));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-d);
  font-size: 20px;
  font-weight: 700;
  color: var(--navy-900);
}

.nav-brand-name {
  font-family: var(--font-d);
  font-size: clamp(13px, 1.4vw, 17px);
  font-weight: 600;
  color: var(--navy-700);
  line-height: 1.2;
  white-space: nowrap;
}

.nav-brand-tag {
  font-family: var(--font-m);
  font-size: 9px;
  color: var(--gold-700);
  letter-spacing: 2px;
  text-transform: uppercase;
  display: block;
  margin-top: 2px;
}

/* Right-side wrapper — holds menu + CTA */
.nav-right {
  display: flex;
  align-items: center;
  flex: 1;
  justify-content: flex-end;
  gap: 0;
}

/* Desktop menu — horizontal */
ul.nav-menu {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
  justify-content: center;
  list-style: none;
}

ul.nav-menu > li { position: relative; }

ul.nav-menu > li > a {
  display: block;
  font-family: var(--font-b);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink-600);
  padding: 8px 12px;
  border-radius: 4px;
  white-space: nowrap;
  transition: background 150ms var(--ease), color 150ms var(--ease);
  line-height: 1;
}
ul.nav-menu > li > a:hover { background: var(--navy-50); color: var(--navy-600); }

/* WordPress active-page classes */
ul.nav-menu > li.current-menu-item > a,
ul.nav-menu > li.current_page_item > a,
ul.nav-menu > li.current-menu-ancestor > a,
ul.nav-menu > li.current_page_ancestor > a {
  background: var(--navy-50);
  color: var(--navy-600);
  font-weight: 600;
}

/* CTA button */
.nav-cta-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-b);
  font-size: 13px;
  font-weight: 600;
  color: var(--navy-900);
  background: var(--gold-400);
  padding: 9px 18px;
  border-radius: 3px;
  white-space: nowrap;
  min-height: 38px;
  margin-left: 12px;
  box-shadow: 0 2px 8px rgba(212,168,42,.28);
  transition:
    background 200ms var(--ease),
    box-shadow 200ms var(--ease),
    transform 200ms var(--ease);
}
.nav-cta-btn:hover {
  background: var(--gold-300);
  box-shadow: 0 6px 20px rgba(212,168,42,.38);
  transform: translateY(-1px);
}

/* Hamburger — hidden on desktop */
.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: none;
  background: none;
  cursor: pointer;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border-radius: 4px;
  flex-shrink: 0;
  padding: 0;
  z-index: 600;
}
.nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--ink-700);
  border-radius: 1px;
  transition: transform .25s var(--ease), opacity .2s var(--ease);
}
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.newsletter {
    display: flex;
    column-gap: 10px;
    flex-direction: row;
}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
    color: #575757;
    margin-top: 6px;
    text-align: center;
}
.wpcf7 form.sent .wpcf7-response-output {
    color: #FFF;
    font-size: 15px;
	    margin-top: 0;
}

/* ── Mobile ≤ 768px — overlay drawer ── */
@media (max-width: 768px) {
  .nav-toggle { display: flex; }
  /* .nav-brand-tag { display: none; } */
  .nav-brand-tag{font-size: 7px;}

  .nav-right {
    position: fixed;
    top: 68px;
    left: 0; right: 0; bottom: 0;
    z-index: 499;
    background: var(--white);
    overflow-y: auto;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    padding: 16px 20px 40px;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-8px);
    transition:
      opacity .22s var(--ease),
      transform .22s var(--ease),
      visibility 0s .22s;
  }
  .nav-right.is-open {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    height: fit-content;
    transition:
      opacity .22s var(--ease),
      transform .22s var(--ease),
      visibility 0s 0s;
  }

  ul.nav-menu {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    flex: none;
    justify-content: flex-start;
    width: 100%;
  }
  ul.nav-menu > li > a {
    font-size: 16px;
    padding: 13px 16px;
    border-radius: 6px;
    color: var(--ink-700);
  }

  .nav-cta-btn {
    display: flex;
    width: 100%;
    justify-content: center;
    font-size: 15px;
    padding: 14px 20px;
    min-height: 48px;
    margin-left: 0;
    margin-top: 20px;
    border-top: 1px solid var(--warm-200);
    border-radius: 3px;
  }
}

/* Desktop — ensure overlay styles never apply */
@media (min-width: 769px) {
  .nav-toggle { display: none !important; }
  .nav-right {
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    position: static !important;
    background: transparent !important;
    overflow: visible !important;
    padding: 0 !important;
  }
}


/* ─────────────────────────────────────────
   FOOTER
───────────────────────────────────────── */
.footer {
  background: var(--navy-950);
  padding: clamp(40px, 6vw, 64px) 0 clamp(24px, 3vw, 32px);
}

.footer-top {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: clamp(32px, 5vw, 80px);
  margin-bottom: clamp(32px, 5vw, 56px);
  padding-bottom: clamp(32px, 5vw, 48px);
  border-bottom: 1px solid rgba(255,255,255,.07);
}

.footer-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

.footer-lm {
  width: 30px;
  height: 30px;
  border-radius: 3px;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--gold-400), var(--gold-200));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-d);
  font-size: 14px;
  font-weight: 700;
  color: var(--navy-900);
}

.footer-bn {
  font-family: var(--font-d);
  font-size: 14px;
  font-weight: 600;
  color: var(--white);
}

.footer-bt {
  display: block;
  font-family: var(--font-m);
  font-size: 7px;
  color: rgba(255,255,255,.6);
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-top: 2px;
}

.footer-desc {
  font-size: 13px;
  color: rgba(255,255,255,.6);
  line-height: 1.7;
  margin-bottom: 18px;
}

.footer-mkts {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}

.fm-t {
  font-family: var(--font-m);
  font-size: 9px;
  padding: 3px 7px;
  border-radius: 2px;
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.6);
  border: 1px solid rgba(255,255,255,.07);
  letter-spacing: .8px;
}

.footer-cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(16px, 3vw, 32px);
}

.fc-head {
  font-family: var(--font-m);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--gold-400);
  margin-bottom: 16px;
  display: block;
}

.footer-cols ul { list-style: none; }
.footer-cols li { margin-bottom: 9px; }
.footer-cols a  {
  font-size: 12.5px;
  color: rgba(255,255,255,.6);
  transition: color 180ms;
}
.footer-cols a:hover { color: rgba(255,255,255,.75); }

.footer-btm {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.footer-copy {
  font-size: 11px;
  color: rgba(255,255,255,.6);
  font-family: var(--font-m);
  letter-spacing: .5px;
}

.footer-leg { display: flex; gap: 16px; }
.footer-leg a {
  font-size: 11px;
  color: rgba(255,255,255,.6);
  transition: color 180ms;
}
.footer-leg a:hover { color: rgba(255,255,255,.5); }


/* ─────────────────────────────────────────
   SCROLL REVEAL  (transform only — GPU-cheap)
───────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .55s var(--ease), transform .55s var(--ease);
}
.reveal.vis { opacity: 1; transform: translateY(0); }

.d1 { transition-delay: .08s; }
.d2 { transition-delay: .16s; }
.d3 { transition-delay: .24s; }
.d4 { transition-delay: .32s; }


/* ─────────────────────────────────────────
   RESPONSIVE — TABLET (768–1024px)
   Nav & Footer rules only
───────────────────────────────────────── */
@media (max-width: 1024px) {

  /* Nav: handled by the header's own @media block above */

  /* Footer */
  .footer-top  { grid-template-columns: 1fr; }
  .footer-cols { grid-template-columns: repeat(2, 1fr); }
}


/* ─────────────────────────────────────────
   RESPONSIVE — MOBILE (<767px)
   Nav & Footer rules only
───────────────────────────────────────── */
@media (max-width: 767px) {

  /* Footer */
  .footer-cols { grid-template-columns: 1fr 1fr; }
  .footer-btm  { flex-direction: column; align-items: flex-start; }
  .newsletter {
    flex-direction: column;
    row-gap: 10px;
}
.wpcf7 form.sent .wpcf7-response-output {
    color: #FFF;
    font-size: 15px;
    margin: 10px 0 0;
}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
    margin: 10px 0 0;
}
}


/* ─────────────────────────────────────────
   RESPONSIVE — SMALL MOBILE (<480px)
   Footer rules only
───────────────────────────────────────── */
@media (max-width: 479px) {
  .footer-cols { grid-template-columns: 1fr; }
}


/* ─────────────────────────────────────────
   ACCESSIBILITY — reduced motion
───────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
  .reveal { opacity: 1; transform: none; }
}


/* ─────────────────────────────────────────
   PRINT — skip heavy chrome
───────────────────────────────────────── */
@media print {
  .nav,
  .cta-ban,
  .trust-bar { display: none; }
  body { font-size: 12pt; }
}


.row {
  display: flex;
  flex-wrap: wrap;

  --gutter-x: 30px;
  --gutter-y: 0;

  margin-left: calc(-1 * var(--gutter-x) / 2);
  margin-right: calc(-1 * var(--gutter-x) / 2);
  margin-top: calc(-1 * var(--gutter-y));
}

.row > * {
  padding-left: calc(var(--gutter-x) / 2);
  padding-right: calc(var(--gutter-x) / 2);
  margin-top: var(--gutter-y);
}

/* ===============================
   COLUMNS BASE
================================= */
.col {
  flex: 1 0 0%;
}

/* auto width */
.col-auto {
  flex: 0 0 auto;
  width: auto;
}

/* ===============================
   12 GRID SYSTEM (DEFAULT)
================================= */
.col-1  { width: 8.333333%; }
.col-2  { width: 16.666667%; }
.col-3  { width: 25%; }
.col-4  { width: 33.333333%; }
.col-5  { width: 41.666667%; }
.col-6  { width: 50%; }
.col-7  { width: 58.333333%; }
.col-8  { width: 66.666667%; }
.col-9  { width: 75%; }
.col-10 { width: 83.333333%; }
.col-11 { width: 91.666667%; }
.col-12 { width: 100%; }

[class*="col-"] {
  flex: 0 0 auto;
}

/* ===============================
   BREAKPOINTS
================================= */

/* SM */
@media (min-width: 576px) {
  .col-sm { flex: 1 0 0%; }

  .col-sm-1  { width: 8.333333%; }
  .col-sm-2  { width: 16.666667%; }
  .col-sm-3  { width: 25%; }
  .col-sm-4  { width: 33.333333%; }
  .col-sm-5  { width: 41.666667%; }
  .col-sm-6  { width: 50%; }
  .col-sm-7  { width: 58.333333%; }
  .col-sm-8  { width: 66.666667%; }
  .col-sm-9  { width: 75%; }
  .col-sm-10 { width: 83.333333%; }
  .col-sm-11 { width: 91.666667%; }
  .col-sm-12 { width: 100%; }
}

/* MD */
@media (min-width: 768px) {
  .col-md { flex: 1 0 0%; }

  .col-md-1  { width: 8.333333%; }
  .col-md-2  { width: 16.666667%; }
  .col-md-3  { width: 25%; }
  .col-md-4  { width: 33.333333%; }
  .col-md-5  { width: 41.666667%; }
  .col-md-6  { width: 50%; }
  .col-md-7  { width: 58.333333%; }
  .col-md-8  { width: 66.666667%; }
  .col-md-9  { width: 75%; }
  .col-md-10 { width: 83.333333%; }
  .col-md-11 { width: 91.666667%; }
  .col-md-12 { width: 100%; }
}

/* LG */
@media (min-width: 992px) {
  .col-lg { flex: 1 0 0%; }

  .col-lg-1  { width: 8.333333%; }
  .col-lg-2  { width: 16.666667%; }
  .col-lg-3  { width: 25%; }
  .col-lg-4  { width: 33.333333%; }
  .col-lg-5  { width: 41.666667%; }
  .col-lg-6  { width: 50%; }
  .col-lg-7  { width: 58.333333%; }
  .col-lg-8  { width: 66.666667%; }
  .col-lg-9  { width: 75%; }
  .col-lg-10 { width: 83.333333%; }
  .col-lg-11 { width: 91.666667%; }
  .col-lg-12 { width: 100%; }
}

/* XL */
@media (min-width: 1200px) {
  .col-xl { flex: 1 0 0%; }

  .col-xl-1  { width: 8.333333%; }
  .col-xl-2  { width: 16.666667%; }
  .col-xl-3  { width: 25%; }
  .col-xl-4  { width: 33.333333%; }
  .col-xl-5  { width: 41.666667%; }
  .col-xl-6  { width: 50%; }
  .col-xl-7  { width: 58.333333%; }
  .col-xl-8  { width: 66.666667%; }
  .col-xl-9  { width: 75%; }
  .col-xl-10 { width: 83.333333%; }
  .col-xl-11 { width: 91.666667%; }
  .col-xl-12 { width: 100%; }
}

/* XXL */
@media (min-width: 1400px) {
  .col-xxl { flex: 1 0 0%; }

  .col-xxl-1  { width: 8.333333%; }
  .col-xxl-2  { width: 16.666667%; }
  .col-xxl-3  { width: 25%; }
  .col-xxl-4  { width: 33.333333%; }
  .col-xxl-5  { width: 41.666667%; }
  .col-xxl-6  { width: 50%; }
  .col-xxl-7  { width: 58.333333%; }
  .col-xxl-8  { width: 66.666667%; }
  .col-xxl-9  { width: 75%; }
  .col-xxl-10 { width: 83.333333%; }
  .col-xxl-11 { width: 91.666667%; }
  .col-xxl-12 { width: 100%; }
}

/* ===============================
   GUTTERS
================================= */
.g-0 { --gutter-x: 0; --gutter-y: 0; }
.g-1 { --gutter-x: 10px; --gutter-y: 10px; }
.g-2 { --gutter-x: 20px; --gutter-y: 20px; }
.g-3 { --gutter-x: 30px; --gutter-y: 30px; }
.g-4 { --gutter-x: 40px; --gutter-y: 40px; }

.gx-0 { --gutter-x: 0; }
.gx-1 { --gutter-x: 10px; }
.gx-2 { --gutter-x: 20px; }
.gx-3 { --gutter-x: 30px; }

.gy-0 { --gutter-y: 0; }
.gy-1 { --gutter-y: 10px; }
.gy-2 { --gutter-y: 20px; }
.gy-3 { --gutter-y: 30px; }

/* ===============================
   OFFSETS
================================= */
.offset-1  { margin-left: 8.333333%; }
.offset-2  { margin-left: 16.666667%; }
.offset-3  { margin-left: 25%; }
.offset-4  { margin-left: 33.333333%; }
.offset-5  { margin-left: 41.666667%; }
.offset-6  { margin-left: 50%; }

/* ===============================
   ORDER
================================= */
.order-1 { order: 1; }
.order-2 { order: 2; }
.order-3 { order: 3; }
.order-first { order: -1; }
.order-last { order: 999; }
.w-100{min-width: 100%;}


.bc{background:var(--wh);border-bottom:1px solid var(--w200);padding:12px 0}
.bc-inner{max-width:var(--mw);margin:0 auto;padding:0 clamp(20px,5vw,72px);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bc a{font-family:var(--fm);font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:#414141 !important;transition:color 150ms}
.bc a:hover{color:var(--n600)}
.bc-sep{font-size:10px;color:var(--i700)}
.bc-cur{font-family:var(--fm);font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--n600)}
.position-sticky{position: sticky;}
.top-90{top:90px}
.text-start{text-align: left;}
/* ══ CTA BAND ══ */
.cta-band{
  background:var(--n900);position:relative;overflow:hidden;
  padding:clamp(56px,8vw,88px) 0;
}
.cta-band::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 70% at 50% 50%,rgba(212,168,42,.06) 0%,transparent 65%)}
.cta-band::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(212,168,42,.4),transparent)}
.cta-in{position:relative;z-index:1;text-align:left;align-items:center;max-width:1200px;margin:0 auto;padding:0 clamp(20px,5vw,72px)}
.cta-h{font-family:var(--fd);font-size:clamp(28px,4vw,50px);font-weight:300;color:var(--wh);line-height:1.1;letter-spacing:-1px;margin-bottom:16px}
.cta-h em{font-style:italic;color:var(--g300)}
.cta-sub{font-size:clamp(14px,1.6vw,16px);color:rgba(255,255,255,.6);line-height:1.7;margin-bottom:32px;font-weight:300}
.cta-btns{display:flex;justify-content:center;gap:12px;margin-bottom:24px;flex-wrap:wrap}
.cta-ra{display:flex;justify-content:start;gap:clamp(12px,3vw,24px);flex-wrap:wrap}
.cr-item{display:flex;align-items:center;gap:5px;font-size:11px;color:rgba(255,255,255,.6);font-family:var(--fm);letter-spacing:.5px}
.cr-item::before{content:'✓';color:var(--g400);font-size:10px}