/* Exodus Cigar Association — global CSS entry. Imports only. */
/* Webfonts. NOTE: no vendor font binaries were supplied with the brand assets;
   these are Google Fonts substitutions chosen to match the intended personality.
   Libre Caslon = heritage editorial serif. Libre Franklin = clean contemporary sans. */
@import url("https://fonts.googleapis.com/css2?family=Libre+Caslon+Display&family=Libre+Caslon+Text:ital,wght@0,400;0,700;1,400&family=Libre+Franklin:ital,wght@0,300..700;1,400&display=swap");

:root{
  --font-display:"Libre Caslon Display","Libre Caslon Text",Georgia,"Times New Roman",serif;
  --font-serif:"Libre Caslon Text",Georgia,"Times New Roman",serif;
  --font-body:"Libre Franklin","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-mono:ui-monospace,"SFMono-Regular",Menlo,monospace;
}

:root{
  /* ── Base ramps ───────────────────────────────── */
  /* Blackened espresso — page grounds */
  --espresso-950:#0E0C0A;
  --espresso-900:#14120F;
  --espresso-850:#1B1815;
  --espresso-800:#221E1A;

  /* Dark walnut — secondary surfaces, decorative */
  --walnut-900:#241C17;
  --walnut-800:#2B211B;
  --walnut-700:#3A2A21;
  --walnut-600:#4A362A;

  /* Cognac / tobacco — secondary brand */
  --cognac-700:#6F4629;
  --cognac-600:#8A5A37;
  --cognac-500:#A66A3F;

  /* Warm amber — primary accent */
  --amber-600:#B87C30;
  --amber-500:#C58A3A;
  --amber-400:#D5A052;
  --amber-300:#E0B672;

  /* Muted bronze — subtle premium accents */
  --bronze-600:#8E6C40;
  --bronze-500:#A88455;

  /* Brand gold — from the club crest. Mark only, never UI. */
  --crest-gold:#F2C230;
  --crest-black:#1A1A1A;

  /* Parchment / cream — light text & light surfaces */
  --parchment-100:#F3EBDD;
  --parchment-200:#E9DFC9;
  --parchment-300:#DCD1BB;

  /* Soft neutrals — secondary text */
  --neutral-400:#C7BDB0;
  --neutral-500:#B9B0A3;
  --neutral-600:#948B7F;
  --neutral-700:#6E665C;

  /* Restrained semantics */
  --green-500:#7A9A63;
  --green-300:#9DBA88;
  --gold-warn-500:#C9A03E;
  --gold-warn-300:#DFBE6C;
  --rust-500:#B4573F;
  --rust-300:#D0836C;

  /* ── Semantic aliases ─────────────────────────── */
  --background-primary:var(--espresso-900);
  --background-secondary:var(--espresso-850);
  --background-inverse:var(--parchment-200);

  --surface-primary:var(--espresso-850);
  --surface-elevated:var(--espresso-800);
  --surface-walnut:var(--walnut-800);
  --surface-sunken:var(--espresso-950);
  --surface-light:var(--parchment-200);

  --text-primary:var(--parchment-100);
  --text-secondary:var(--neutral-400);
  --text-muted:var(--neutral-600);
  --text-accent:var(--amber-400);
  --text-on-accent:var(--espresso-950);
  --text-on-light:var(--espresso-900);
  --text-link:var(--amber-400);
  --text-link-hover:var(--amber-300);

  --accent-primary:var(--amber-500);
  --accent-primary-hover:var(--amber-400);
  --accent-secondary:var(--cognac-600);
  --accent-secondary-hover:var(--cognac-500);
  --accent-bronze:var(--bronze-500);

  --border-default:rgba(233,223,201,.12);
  --border-strong:rgba(233,223,201,.24);
  --border-walnut:rgba(166,106,63,.30);
  --border-accent:var(--amber-500);
  --border-on-light:rgba(20,18,15,.16);

  --status-success:var(--green-500);
  --status-success-text:var(--green-300);
  --status-warning:var(--gold-warn-500);
  --status-warning-text:var(--gold-warn-300);
  --status-error:var(--rust-500);
  --status-error-text:var(--rust-300);

  --focus-ring:var(--amber-400);
  --focus-ring-shadow:0 0 0 2px var(--espresso-900),0 0 0 4px var(--amber-400); /* @kind shadow */

  /* Overlays & light — used over photography */
  --overlay-hero:linear-gradient(180deg,rgba(14,12,10,.72) 0%,rgba(14,12,10,.42) 38%,rgba(14,12,10,.86) 100%); /* @kind color */
  --overlay-hero-side:linear-gradient(90deg,rgba(14,12,10,.88) 0%,rgba(14,12,10,.60) 46%,rgba(14,12,10,.20) 100%); /* @kind color */
  --overlay-card:linear-gradient(180deg,rgba(14,12,10,0) 30%,rgba(14,12,10,.85) 100%); /* @kind color */
  --overlay-scrim:rgba(14,12,10,.62);
  --ember-glow:radial-gradient(60% 80% at 50% 100%,rgba(197,138,58,.20) 0%,rgba(197,138,58,0) 70%); /* @kind color */
}

:root{
  /* Mobile-first sizes; scaled up at breakpoints below. /* @kind font */ */
  --text-hero:44px;   /* @kind font */
  --text-h1:36px;     /* @kind font */
  --text-h2:28px;     /* @kind font */
  --text-h3:22px;     /* @kind font */
  --text-h4:19px;     /* @kind font */
  --text-body-lg:17px;/* @kind font */
  --text-body:16px;   /* @kind font */
  --text-small:15px;  /* @kind font */
  --text-caption:13px;/* @kind font */
  --text-eyebrow:12px;/* @kind font */
  --text-stat:56px;   /* @kind font */

  --leading-tight:1.05;    /* @kind other */
  --leading-snug:1.16;     /* @kind other */
  --leading-heading:1.24;  /* @kind other */
  --leading-body:1.65;     /* @kind other */
  --leading-relaxed:1.75;  /* @kind other */

  --tracking-display:-.015em; /* @kind other */
  --tracking-heading:-.01em;  /* @kind other */
  --tracking-body:0;          /* @kind other */
  --tracking-eyebrow:.16em;   /* @kind other */
  --tracking-label:.08em;     /* @kind other */

  --weight-light:300;    /* @kind other */
  --weight-regular:400;  /* @kind other */
  --weight-medium:500;   /* @kind other */
  --weight-semibold:600; /* @kind other */
  --weight-bold:700;     /* @kind other */
}
/* Tablet — 768px and up */
@media (min-width:768px){
  :root{
    --text-hero:64px;--text-h1:52px;--text-h2:40px;--text-h3:28px;--text-h4:22px;
    --text-body-lg:19px;--text-body:17px;--text-stat:80px;
  }
}
/* Desktop — 1200px and up */
@media (min-width:1200px){
  :root{
    --text-hero:88px;--text-h1:72px;--text-h2:52px;--text-h3:36px;--text-h4:28px;
    --text-body-lg:21px;--text-body:18px;--text-stat:112px;
  }
}

:root{
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:24px;
  --space-6:32px;
  --space-7:40px;
  --space-8:48px;
  --space-9:64px;
  --space-10:80px;
  --space-11:96px;
  --space-12:120px;

  /* Section rhythm — mobile floor, scaled up below. */
  --space-section-y:48px;       /* @kind spacing */
  --space-section-y-tight:40px; /* @kind spacing */
  --space-stack-gap:16px;       /* @kind spacing */
}
@media (min-width:768px){:root{--space-section-y:88px;--space-section-y-tight:64px;--space-stack-gap:20px}}
@media (min-width:1200px){:root{--space-section-y:120px;--space-section-y-tight:80px;--space-stack-gap:24px}}

:root{
  --size-container-max:1320px;    /* @kind spacing */
  --size-container-narrow:960px;  /* @kind spacing */
  --size-container-text:720px;    /* @kind spacing */
  --space-gutter:20px;            /* @kind spacing */
  --grid-columns:12;              /* @kind other */
  --space-grid-gap:16px;          /* @kind spacing */

  --size-header-height:64px;          /* @kind spacing */
  --size-header-height-scrolled:64px; /* @kind spacing */

  --size-hero-home-min:78vh;   /* @kind spacing */
  --size-hero-internal:340px;  /* @kind spacing */

  --ratio-cinematic:21/9; /* @kind other */
  --ratio-hero:16/9;      /* @kind other */
  --ratio-feature:4/3;    /* @kind other */
  --ratio-event:3/2;      /* @kind other */
  --ratio-portrait:4/5;   /* @kind other */
  --ratio-square:1/1;     /* @kind other */
}
@media (min-width:768px){:root{--space-gutter:40px;--space-grid-gap:24px;--size-header-height:88px;--size-header-height-scrolled:72px;--size-hero-home-min:84vh;--size-hero-internal:460px}}
@media (min-width:1200px){:root{--space-gutter:64px;--space-grid-gap:32px;--size-hero-home-min:88vh;--size-hero-internal:600px}}

:root{
  --radius-sm:4px;
  --radius-md:8px;
  --radius-lg:12px;
  --radius-pill:999px;

  --border-width:1px; /* @kind other */
  --border-width-thick:2px; /* @kind other */
  --rule-accent:2px solid var(--amber-500); /* @kind other */

  --shadow-sm:0 1px 2px rgba(8,6,5,.40),0 2px 10px rgba(8,6,5,.28);
  --shadow-md:0 4px 8px rgba(8,6,5,.38),0 12px 32px rgba(8,6,5,.34);
  --shadow-modal:0 24px 64px rgba(8,6,5,.62),0 2px 8px rgba(8,6,5,.48);
  --shadow-text-hero:0 2px 24px rgba(14,12,10,.75);
  --shadow-inset-top:inset 0 1px 0 rgba(243,235,221,.06); /* @kind shadow */
}

:root{
  --motion-fast:150ms; /* @kind other */
  --motion-standard:220ms; /* @kind other */
  --motion-slow:480ms; /* @kind other */
  --motion-hero:1100ms; /* @kind other */
  --ease-standard:cubic-bezier(.32,.72,.32,1); /* @kind other */
  --ease-out:cubic-bezier(.16,1,.3,1); /* @kind other */
  --ease-in-out:cubic-bezier(.5,0,.5,1); /* @kind other */
  --transition-base:var(--motion-standard) var(--ease-standard); /* @kind other */
}
@media (prefers-reduced-motion:reduce){
  :root{--motion-fast:1ms; /* @kind other */
    --motion-standard:1ms; /* @kind other */
    --motion-slow:1ms; /* @kind other */
    --motion-hero:1ms; /* @kind other */}
  *,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--background-primary);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--leading-body);letter-spacing:var(--tracking-body);-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font-display);font-weight:var(--weight-regular);color:var(--text-primary);letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);text-wrap:balance}
h1{font-size:var(--text-h1);line-height:var(--leading-snug)}
h2{font-size:var(--text-h2)}
h3{font-size:var(--text-h3);font-family:var(--font-serif)}
h4{font-size:var(--text-h4);font-family:var(--font-serif)}
p{margin:0}
a{color:var(--text-link);text-decoration:none;transition:color var(--transition-base)}
a:hover{color:var(--text-link-hover)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:var(--radius-sm)}
img{max-width:100%;display:block}
hr{border:0;border-top:var(--border-width) solid var(--border-default);margin:var(--space-8) 0}
::selection{background:var(--amber-500);color:var(--espresso-950)}
blockquote{margin:0}
button,input,select,textarea{font:inherit;color:inherit}

/* Small set of layout + treatment helpers used across kits. */
.ex-container{width:100%;max-width:var(--size-container-max);margin-inline:auto;padding-inline:var(--space-gutter)}
.ex-container--narrow{max-width:var(--size-container-narrow)}
.ex-container--text{max-width:var(--size-container-text)}
.ex-section{padding-block:var(--space-section-y)}
.ex-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-grid-gap)}
@media (max-width:1023px){.ex-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media (max-width:639px){.ex-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

.ex-eyebrow{font-family:var(--font-body);font-size:var(--text-eyebrow);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-accent)}
.ex-display{font-family:var(--font-display);font-size:var(--text-hero);line-height:var(--leading-tight);letter-spacing:var(--tracking-display)}

/* Warm grade for photography — never heavier than this. */
.ex-img{width:100%;height:100%;object-fit:cover;filter:saturate(.94) contrast(1.04) sepia(.07) brightness(.92)}
.ex-img--warm{filter:saturate(1.02) contrast(1.06) sepia(.10) brightness(.86)}
.ex-scrim{position:absolute;inset:0;background:var(--overlay-hero);pointer-events:none}
.ex-scrim--side{background:var(--overlay-hero-side)}
.ex-scrim--card{background:var(--overlay-card)}
.ex-rule{width:56px;height:0;border-top:var(--rule-accent)}
.ex-texture{background-image:radial-gradient(rgba(243,235,221,.035) 1px,transparent 1px);background-size:3px 3px}
.ex-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}



/* Exodus homepage — layout classes. Grid/flow definitions live here (not inline) so
   media queries can adapt them. All values come from design-system tokens. */
@keyframes exReveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.ex-reveal{animation:exReveal var(--motion-slow,480ms) var(--ease-standard,cubic-bezier(.32,.72,.32,1)) both}
@media (prefers-reduced-motion:reduce){.ex-reveal{animation:none}}

.stack{display:flex;flex-direction:column}
.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.gap-7{gap:var(--space-7)}.gap-8{gap:var(--space-8)}.gap-9{gap:var(--space-9)}

/* Hero slider — bright, centered, cinematic. The design-system Hero component's
   own darkening filter and double scrim are dialled back here so the lounge
   photography reads warm and lit rather than gloomy. */
.hero-stack{display:grid;position:relative;isolation:isolate}
.hero-stack>*{grid-area:1/1}
.hero-slide{display:grid;transition:opacity 1100ms var(--ease-standard,cubic-bezier(.32,.72,.32,1))}
@media (prefers-reduced-motion:reduce){.hero-slide{transition:none}}
.hero-slide>section{grid-area:1/1;min-height:min(56svh,660px) !important;align-items:flex-start !important}
.hero-slide>section>img{filter:saturate(1.04) contrast(1.03) sepia(.04) brightness(1.02) !important;transform:scale(1.02)}
.hero-slide>section>span:nth-of-type(1){background:linear-gradient(100deg,rgba(14,12,10,.94) 0%,rgba(14,12,10,.86) 26%,rgba(14,12,10,.56) 48%,rgba(14,12,10,.2) 68%,rgba(14,12,10,.04) 100%) !important}
.hero-slide>section>span:nth-of-type(2){background:linear-gradient(180deg,rgba(14,12,10,.34) 0%,rgba(14,12,10,0) 26%,rgba(14,12,10,0) 62%,rgba(14,12,10,.42) 100%) !important;opacity:1 !important}
/* Content is centred in a viewport-height box: the padding only clears the fixed
   header and the controls, so the CTAs never get pushed below the fold. */
.hero-slide>section>div{padding-top:calc(var(--hdr-h,0px) + var(--space-5)) !important;padding-bottom:calc(var(--space-7) + 44px) !important}
.hero-slide>section>div>div>*{flex:0 0 auto}
.hero-slide h1{font-size:clamp(40px,5.2vw,68px)}
.hero-slide>section>div>div{gap:var(--space-4) !important}
.hero-slide>section>div>div>p:not(.hero-title){font-size:var(--text-body) !important;max-width:52ch}
.hero-slide .hero-title{font-size:clamp(40px,5.2vw,68px)}
.hero-slide h1,.hero-slide .hero-sub--lead{text-shadow:0 2px 26px rgba(14,12,10,.85),0 1px 3px rgba(14,12,10,.6)}
.hero-slide p{text-shadow:0 1px 16px rgba(14,12,10,.85)}
.hero-stats{display:flex;flex-wrap:wrap;gap:var(--space-7)}

.hero-controls{position:absolute;z-index:3;bottom:var(--space-5);left:var(--space-gutter);right:var(--space-gutter);display:flex;align-items:center;justify-content:flex-start;gap:var(--space-4)}
.hero-dots{display:flex;align-items:center;gap:var(--space-3)}
.hero-dot{width:20px;height:44px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}
.hero-dot>span{display:block;width:100%;height:3px;border-radius:2px;background:rgba(243,235,221,.36);transition:background var(--transition-base,220ms),width var(--transition-base,220ms)}
.hero-dot[aria-current="true"]{width:52px}
.hero-dot[aria-current="true"]>span{background:var(--accent-primary)}
.hero-arrow{width:44px;height:44px;display:grid;place-items:center;background:rgba(14,12,10,.42);border:1px solid var(--border-strong);border-radius:var(--radius-sm,4px);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-base,220ms),background var(--transition-base,220ms)}
.hero-arrow:hover{border-color:var(--accent-primary);background:rgba(14,12,10,.6)}
.ex-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* Ash & Ale supplied artwork sits inside the centred copy column, so it shares
   the same vertical centring instead of adding height above it. */
.hero-art{display:block;width:min(230px,22vh);height:auto;margin:0 0 var(--space-4);border-radius:var(--radius-md);box-shadow:0 24px 48px rgba(14,12,10,.6)}
@media (max-width:1023px){.hero-arrow{display:none}}
.hero-sub{display:block;margin-top:var(--space-3);font-family:var(--font-serif);font-size:var(--text-h4);line-height:var(--leading-heading);letter-spacing:0;color:var(--text-accent)}
.hero-sub--lead{margin-top:0;font-family:var(--font-display);font-size:var(--text-h2);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);color:var(--text-primary)}
@media (max-width:1023px){.hero-arrow{display:none}}

/* Site header — one full-width bar: crest + wordmark hard left, nav pushed to the
   upper right with hairline dividers, membership button at the far right. */
.hdr{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;gap:var(--space-6);padding:10px var(--space-6) 10px var(--space-5);background:linear-gradient(180deg,rgba(14,12,10,.82),rgba(14,12,10,.28));border-bottom:1px solid transparent;transition:background var(--transition-base,220ms),padding var(--transition-base,220ms),border-color var(--transition-base,220ms),box-shadow var(--transition-base,220ms)}
.hdr--solid{background:rgba(14,12,10,.96);border-bottom-color:var(--border-default);box-shadow:0 10px 30px rgba(14,12,10,.45);padding-block:6px}
.hdr-brand{display:flex;align-items:center;gap:var(--space-4);text-decoration:none;margin-right:auto;flex:0 0 auto;white-space:nowrap}
.hdr-brand img{height:64px;width:auto;transition:height var(--transition-base,220ms)}
.hdr--solid .hdr-brand img{height:48px}
.hdr-wordmark{display:flex;flex:0 0 auto;flex-direction:column;gap:3px;line-height:1;min-width:max-content;white-space:nowrap}
.hdr-wordmark b{font-family:var(--font-serif);font-weight:700;font-size:22px;letter-spacing:.1em;color:var(--text-primary)}
.hdr--solid .hdr-wordmark b{font-size:20px}
.hdr-wordmark>span{font-family:var(--font-body);font-size:10px;font-weight:600;letter-spacing:.26em;color:var(--accent-bronze)}
.hdr-nav{display:flex;align-items:center;flex:0 1 auto}
.hdr-nav a{position:relative;padding:6px var(--space-5);font-family:var(--font-body);font-size:14px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-primary);text-decoration:none}
.hdr-nav a+a{box-shadow:-1px 0 0 rgba(233,223,201,.22)}
.hdr-nav a::after{content:"";position:absolute;left:var(--space-5);right:var(--space-5);bottom:-6px;height:2px;background:var(--accent-primary);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-base,220ms)}
.hdr-nav a:hover::after{transform:scaleX(1)}
.hdr-cta{margin-left:var(--space-5)}
@media (max-width:1420px){.hdr-nav a{font-size:12.5px;padding-inline:var(--space-4)}.hdr-brand img{height:56px}.hdr-wordmark b{font-size:19px}}
@media (max-width:1279px){.hdr-nav a{font-size:11.5px;padding-inline:11px;letter-spacing:.06em}.hdr-wordmark b{font-size:17px;letter-spacing:.08em}}
@media (max-width:1140px){.hdr-wordmark b{font-size:15px;letter-spacing:.05em}.hdr-brand img{height:48px}}

/* Two-column media + copy */
.split{display:grid;grid-template-columns:1fr;gap:var(--space-8);align-items:center}
.split--reverse .split-media{order:-1}
@media (min-width:900px){.split{grid-template-columns:1fr 1fr;gap:var(--space-10)}.split--reverse .split-media{order:1}}

/* Card grids */
.grid-3{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
@media (min-width:640px){.grid-3{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.grid-3{grid-template-columns:repeat(3,1fr)}}

/* Community photo mosaic */
.mosaic{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}
.mosaic>*:first-child{grid-column:span 2}
@media (min-width:900px){.mosaic{grid-template-columns:repeat(2,1fr);gap:var(--space-5)}}

/* Ash & Ale band */
.aa{position:relative;overflow:hidden;background:var(--surface-walnut);border-block:1px solid var(--border-walnut)}
.aa-inner{position:relative;display:grid;grid-template-columns:1fr;gap:var(--space-7);align-items:center;padding-block:var(--space-9)}
@media (min-width:960px){.aa-inner{grid-template-columns:1.1fr .9fr;gap:var(--space-10)}}
.aa-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.aa-tag{font-family:var(--font-body);font-size:var(--text-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-secondary);padding:6px 12px;border:1px solid var(--border-strong);border-radius:999px}

/* Location */
.loc{display:grid;grid-template-columns:1fr;gap:var(--space-8)}
@media (min-width:900px){.loc{grid-template-columns:1.05fr .95fr;gap:var(--space-10)}}
.loc-facts{display:grid;gap:var(--space-5);padding:var(--space-7);background:var(--surface-primary);border:1px solid var(--border-default);border-radius:var(--radius-md,8px)}
.loc-fact{display:flex;gap:var(--space-4);align-items:flex-start}
.note{font-family:var(--font-body);font-size:var(--text-caption);line-height:var(--leading-relaxed);color:var(--text-muted);border-left:2px solid var(--accent-bronze);padding-left:var(--space-4);margin:0}

/* Podcast teaser */
.pod{display:grid;grid-template-columns:1fr;gap:var(--space-7);align-items:center}
@media (min-width:820px){.pod{grid-template-columns:280px 1fr;gap:var(--space-9)}}

/* Header responsive swap */
.only-desktop{display:none}
.only-mobile{display:block}
@media (min-width:1024px){.only-desktop{display:block}.only-mobile{display:none}}

/* Mobile header bar */
.mbar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:var(--space-4);height:var(--size-header-height);padding-inline:var(--space-gutter);background:rgba(14,12,10,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-default)}
.mbar--transparent{background:linear-gradient(180deg,rgba(14,12,10,.78),rgba(14,12,10,0));border-bottom-color:transparent;backdrop-filter:none}
.mbar-brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;margin-right:auto}
.mbar-burger{width:48px;height:48px;display:grid;place-items:center;gap:5px;background:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm,4px);cursor:pointer;align-content:center}
.mbar-burger>span{display:block;width:20px;height:1.75px;background:var(--text-primary);border-radius:2px}

/* Section heading + action on one row */
.sec-head{display:flex;flex-direction:column;gap:var(--space-5);align-items:flex-start}
@media (min-width:900px){.sec-head{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:var(--space-8)}}

/* Responsive stacking for design-system sections whose grids are set inline */
@media (max-width:1023px){
  .campaign section>div{grid-template-columns:1fr !important}
  .evt-featured>a{grid-template-columns:1fr !important}
  .footer-wrap footer>div>div:first-child{grid-template-columns:1.4fr 1fr 1fr !important}
}
@media (max-width:767px){
  .footer-wrap footer>div>div:first-child{grid-template-columns:1fr 1fr !important}
}
@media (max-width:519px){
  .footer-wrap footer>div>div:first-child{grid-template-columns:1fr !important}
}

a{color:var(--text-link);text-decoration-color:rgba(213,160,82,.4);text-underline-offset:3px}
a:hover{color:var(--text-link-hover)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}

/* Gallery preview: two even rows of three square tiles */
#gallery .ex-grid,#gallery [class*="grid"]{grid-template-columns:repeat(3,1fr) !important}
#gallery button{aspect-ratio:1/1 !important;height:auto !important;margin-top:0 !important}
#gallery img{width:100% !important;height:100% !important;object-fit:cover !important}
@media (max-width:719px){#gallery .ex-grid,#gallery [class*="grid"]{grid-template-columns:repeat(2,1fr) !important}}

/* Interior page masthead + breadcrumbs */
.pagehead{padding-top:calc(var(--hdr-h,88px) + var(--space-9));padding-bottom:var(--space-8);background:var(--background-primary)}
.crumbs{display:flex;gap:var(--space-3);font-family:var(--font-body);font-size:var(--text-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}
.crumbs a{color:var(--text-secondary);text-decoration:none}
.crumbs a:hover{color:var(--text-accent)}
.evt-facts{display:grid;grid-template-columns:1fr;gap:var(--space-4);padding:var(--space-6);background:var(--surface-primary);border:1px solid var(--border-default);border-radius:var(--radius-md)}
@media (min-width:640px){.evt-facts{grid-template-columns:repeat(2,1fr);gap:var(--space-5)}}

/* Graphic-led event cards: hide the audience pill the DS defaults in, and show
   text-bearing artwork whole on an espresso ground instead of cropping it. */
.evt-noaudience a>div:last-child>div:first-child>span:first-child{display:none !important}
.evt-nocta a>div:last-child>span:last-child{display:none !important}
.evt-graphic img{object-fit:contain !important;background:var(--background-primary);filter:none !important}
.evt-graphic a>div:first-child>span:last-child,.evt-graphic a>div:first-child::after{display:none !important}

/* Events index sits right under the page masthead */
.evt-section{padding-top:var(--space-6) !important}

/* Contact page */
.contact-grid{display:grid;grid-template-columns:1fr;gap:var(--space-8)}
@media (min-width:960px){.contact-grid{grid-template-columns:1.15fr .85fr;gap:var(--space-10)}}
.contact-form{display:flex;flex-direction:column;gap:var(--space-7)}
.field-row{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
@media (min-width:560px){.field-row{grid-template-columns:1fr 1fr}}

/* Nav items whose page isn't built yet: present but plainly not clickable */
.hdr-soon{position:relative;display:flex;flex-direction:column;gap:2px;padding:6px var(--space-5);font-family:var(--font-body);font-size:14px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);cursor:default;box-shadow:-1px 0 0 rgba(233,223,201,.22)}
.hdr-soon em{font-family:var(--font-body);font-style:normal;font-size:9px;font-weight:600;letter-spacing:.16em;color:var(--accent-bronze)}
@media (max-width:1420px){.hdr-soon{font-size:12.5px;padding-inline:var(--space-4)}}
@media (max-width:1279px){.hdr-soon{font-size:11.5px;padding-inline:11px;letter-spacing:.06em}}

.grid-2{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
@media (min-width:640px){.grid-2{grid-template-columns:repeat(2,1fr)}}
@media (min-width:560px){.field-row--three{grid-template-columns:1fr 1fr 1fr}}

/* Contact sidebar aligns with the form's first section title, not the band top */
@media (min-width:960px){#contact .contact-grid>aside,#why-join .contact-grid>aside{padding-top:var(--space-7)}}

/* Amenity cards: icon and title share a row, copy sits underneath */
#experience .grid-3>*,#the-lounge .grid-3>*{display:grid !important;grid-template-columns:auto 1fr;column-gap:var(--space-4);row-gap:var(--space-3);align-items:center}
#experience .grid-3>*>span:first-child,#the-lounge .grid-3>*>span:first-child{grid-row:1;grid-column:1}
#experience .grid-3>*>h4,#the-lounge .grid-3>*>h4{grid-row:1;grid-column:2;margin:0}
#experience .grid-3>*>p,#the-lounge .grid-3>*>p{grid-row:2;grid-column:1/-1;margin:0}


/* Exodus — styles the flattened build needs that the React tree used to own:
   the mobile nav sheet and the gallery lightbox. Tokens only. */
.ex-mnav{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;gap:var(--space-7);padding:var(--space-5) var(--space-gutter) var(--space-8);background:var(--background-primary);overflow-y:auto}
.ex-mnav-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5)}
.ex-mnav-top img{height:52px;width:auto}
.ex-mnav-x{width:48px;height:48px;display:grid;place-items:center;font-size:26px;line-height:1;color:var(--text-primary);background:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer}
.ex-mnav-x:hover{border-color:var(--accent-primary)}
.ex-mnav-links{display:flex;flex-direction:column}
.ex-mnav-links a{padding:var(--space-5) 0;font-family:var(--font-display);font-size:var(--text-h3);line-height:var(--leading-heading);color:var(--text-primary);text-decoration:none;border-bottom:1px solid var(--border-default)}
.ex-mnav-links a:hover{color:var(--text-accent)}
.ex-mnav-cta{display:block;padding:18px var(--space-6);text-align:center;font-family:var(--font-body);font-size:var(--text-small);font-weight:600;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-on-accent);background:var(--accent-primary);border-radius:var(--radius-sm);text-decoration:none}
.ex-mnav-cta:hover{background:var(--accent-primary-hover);color:var(--text-on-accent)}
.ex-mnav-foot{margin:0;font-family:var(--font-body);font-size:var(--text-caption);line-height:var(--leading-relaxed);color:var(--text-muted)}

.ex-lightbox{position:fixed;inset:0;z-index:210;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-5);padding:var(--space-7) var(--space-gutter);background:rgba(14,12,10,.88);backdrop-filter:blur(10px)}
.ex-lightbox img{grid-column:2;justify-self:center;max-width:100%;max-height:82vh;width:auto;height:auto;border-radius:var(--radius-md);box-shadow:var(--shadow-modal)}
.ex-lb-nav,.ex-lb-x{width:48px;height:48px;display:grid;place-items:center;color:var(--text-primary);background:rgba(14,12,10,.5);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer}
.ex-lb-nav:hover,.ex-lb-x:hover{border-color:var(--accent-primary)}
.ex-lb-x{position:absolute;top:var(--space-5);right:var(--space-gutter);font-size:24px;line-height:1}
@media (max-width:719px){.ex-lightbox{grid-template-columns:1fr;justify-items:center}.ex-lightbox img{grid-column:1}.ex-lb-nav{position:absolute;bottom:var(--space-6)}.ex-lb-prev{left:var(--space-gutter)}.ex-lb-next{right:var(--space-gutter)}}

/* WPForms output, dressed in Exodus tokens. WPForms ships its own stylesheet;
   set Settings → General → Include Form Styling to "Base only" so these win. */
[data-ex-form-slot] .wpforms-container{margin:0;max-width:none}
[data-ex-form-slot] .wpforms-form{display:flex;flex-direction:column;gap:var(--space-5)}
[data-ex-form-slot] .wpforms-field{padding:0;margin:0}
[data-ex-form-slot] .wpforms-field-label{display:block;margin-bottom:var(--space-3);font-family:var(--font-body);font-size:var(--text-small);font-weight:600;letter-spacing:.04em;color:var(--text-secondary)}
[data-ex-form-slot] .wpforms-required-label{color:var(--accent-primary)}
[data-ex-form-slot] input[type=text],[data-ex-form-slot] input[type=email],[data-ex-form-slot] input[type=tel],[data-ex-form-slot] input[type=url],[data-ex-form-slot] select,[data-ex-form-slot] textarea{width:100%;box-sizing:border-box;padding:14px var(--space-4);font-family:var(--font-body);font-size:var(--text-body);color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);transition:border-color var(--transition-base,220ms),box-shadow var(--transition-base,220ms)}
[data-ex-form-slot] textarea{min-height:132px;resize:vertical}
[data-ex-form-slot] input:hover,[data-ex-form-slot] select:hover,[data-ex-form-slot] textarea:hover{border-color:var(--border-strong)}
[data-ex-form-slot] input:focus,[data-ex-form-slot] select:focus,[data-ex-form-slot] textarea:focus{outline:0;border-color:var(--accent-primary);box-shadow:0 0 0 3px rgba(197,138,58,.2)}
[data-ex-form-slot] ::placeholder{color:var(--text-muted)}
[data-ex-form-slot] .wpforms-field-description{margin-top:var(--space-3);font-family:var(--font-body);font-size:var(--text-caption);line-height:var(--leading-relaxed);color:var(--text-muted)}
[data-ex-form-slot] ul.wpforms-field-required,[data-ex-form-slot] .wpforms-field-radio ul,[data-ex-form-slot] .wpforms-field-checkbox ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}
[data-ex-form-slot] .wpforms-field-radio li,[data-ex-form-slot] .wpforms-field-checkbox li{display:flex;align-items:flex-start;gap:var(--space-3);font-family:var(--font-body);font-size:var(--text-body);color:var(--text-secondary)}
[data-ex-form-slot] input[type=radio],[data-ex-form-slot] input[type=checkbox]{width:20px;height:20px;margin:2px 0 0;accent-color:var(--accent-primary);flex:0 0 auto}
[data-ex-form-slot] .wpforms-submit{font-family:var(--font-body);font-size:var(--text-small);font-weight:600;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-on-accent);background:var(--accent-primary);border:0;border-radius:var(--radius-sm);padding:18px var(--space-7);cursor:pointer;align-self:flex-start;transition:background var(--transition-base,220ms)}
[data-ex-form-slot] .wpforms-submit:hover{background:var(--accent-primary-hover)}
[data-ex-form-slot] .wpforms-error,[data-ex-form-slot] label.wpforms-error{font-family:var(--font-body);font-size:var(--text-caption);color:var(--status-error-text)}
[data-ex-form-slot] input.wpforms-error,[data-ex-form-slot] textarea.wpforms-error,[data-ex-form-slot] select.wpforms-error{border-color:var(--status-error)}
[data-ex-form-slot] .wpforms-confirmation-container-full{padding:var(--space-6);font-family:var(--font-body);color:var(--text-primary);background:var(--surface-elevated);border:1px solid var(--border-default);border-left:2px solid var(--accent-primary);border-radius:var(--radius-sm)}

/* Elementor Canvas resets the page ground; keep the espresso body */
body.elementor-page{background:var(--background-primary)}
.elementor-widget-html>*{margin:0}
