/* ===== BlackEstrie — Design tokens + component system ===== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..900;1,9..144,300..900&family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  /* ---- Primitives: refined brand palette ---- */
  --p-black:        #2f2b23;
  --p-black-soft:   #24211b;
  --p-ink-800:      #1c1a15;
  --p-gold-500:     #ffb906;
  --p-gold-600:     #8a5e00;
  --p-gold-100:     #e5d9c1;
  --p-red-500:      #c92f2f;
  --p-red-600:      #a12323;
  --p-cream:        #e5d9c1;
  --p-terracotta:   #d8613c;
  --p-sage:         #b1c5a4;
  --p-tan:          #c2a990;
  --p-slate:        #b5bdbc;
  --p-grey-900:     #2b2b2b;
  --p-grey-500:     #8a8478;
  --p-grey-200:     #e7e2d6;
  --p-grey-100:     #f9f9f9;
  --p-white:        #ffffff;

  --font-display: 'Fraunces', 'Georgia', serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4.5rem;
  --space-9: 7rem;

  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 4px;
  --radius-pill: 2px;

  --shadow-sm: 0 2px 10px rgba(0,0,0,.08);
  --shadow-md: 0 12px 40px rgba(0,0,0,.16);
  --shadow-gold: 0 10px 30px rgba(255,185,6,.25);
  --shadow-cta: 0 10px 30px rgba(201,47,47,.3);

  --bp-sm: 480px;
  --bp-md: 768px;
  --bp-lg: 1024px;
  --bp-xl: 1280px;

  /* ---- Semantic: what components actually consume ---- */
  --color-bg: var(--p-white);
  --color-bg-alt: var(--p-cream);
  --color-bg-inverse: var(--p-black);
  --color-surface: var(--p-white);
  --color-surface-inverse: var(--p-ink-800);
  --color-border: var(--p-grey-200);
  --color-border-inverse: rgba(255,255,255,.14);

  --color-text: var(--p-black);
  --color-text-soft: var(--p-grey-900);
  --color-text-muted: var(--p-grey-500);
  --color-text-inverse: var(--p-white);
  --color-text-inverse-muted: rgba(255,255,255,.68);

  --color-accent: var(--p-gold-500);
  --color-accent-strong: var(--p-gold-600);
  --color-accent-soft: var(--p-gold-100);
  --color-accent-2: var(--p-terracotta);
  --color-accent-3: var(--p-sage);
  --color-accent-4: var(--p-tan);
  --color-accent-5: var(--p-slate);

  --color-cta: var(--p-red-500);
  --color-cta-strong: var(--p-red-600);
  --color-cta-soft: rgba(201,47,47,.12);

  --radius-card: var(--radius-md);
  --radius-btn: var(--radius-pill);
  --radius-badge: var(--radius-pill);

  --container-w: 1240px;
}

/* ---- Reset ---- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font:inherit;cursor:pointer;}
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.08;
  margin:0 0 var(--space-4);
  overflow-wrap:break-word;
}
p{overflow-wrap:break-word;}
input,textarea,select{font:inherit;}

.container{
  width:100%;
  max-width:var(--container-w);
  margin-inline:auto;
  padding-inline:var(--space-6);
}
@media(max-width:640px){
  .container{padding-inline:var(--space-4);}
}

section{padding-block:var(--space-9);}
@media(max-width:768px){
  section{padding-block:var(--space-7);}
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:var(--space-2);
  font-family:var(--font-body);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--color-accent-strong);
  margin-bottom:var(--space-3);
}
.eyebrow::before{
  content:'';
  width:22px;height:2px;
  background:var(--color-accent);
  display:inline-block;
}

h1{font-size:clamp(2.4rem, 5.6vw, 4.6rem);}
h2{font-size:clamp(2rem, 4vw, 3rem);}
h3{font-size:clamp(1.3rem, 2.4vw, 1.7rem);}
.lede{
  font-size:clamp(1.05rem, 1.6vw, 1.25rem);
  color:var(--color-text-soft);
  max-width:60ch;
}

/* ---- Buttons ---- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-2);
  padding:.9rem 1.7rem;
  border-radius:var(--radius-btn);
  font-weight:700;
  font-size:.95rem;
  border:2px solid transparent;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  white-space:nowrap;
}
@media(max-width:480px){
  .btn{white-space:normal;text-align:center;}
}
.btn-solid{
  background:var(--color-cta);
  color:var(--p-white);
  box-shadow:var(--shadow-cta);
}
.btn-solid:hover{transform:translateY(-2px); background:var(--color-cta-strong);}
.btn-dark{
  background:var(--p-black);
  color:var(--p-white);
}
.btn-dark:hover{transform:translateY(-2px); background:var(--p-ink-800);}
.btn-outline{
  background:transparent;
  border-color:currentColor;
  color:inherit;
}
.btn-outline:hover{background:rgba(0,0,0,.06); transform:translateY(-2px);}
.btn-outline-inverse{
  background:transparent;
  border-color:rgba(255,255,255,.5);
  color:var(--p-white);
}
.btn-outline-inverse:hover{background:rgba(255,255,255,.12); border-color:#fff;}
.btn-sm{padding:.6rem 1.2rem; font-size:.85rem;}
.btn-block{width:100%;}

/* ---- Badges / tags ---- */
.badge{
  display:inline-flex;
  align-items:center;
  gap:.4em;
  padding:.35em .9em;
  border-radius:var(--radius-badge);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  background:var(--color-accent-soft);
  color:var(--color-accent-strong);
}
.badge-dark{background:var(--p-black); color:var(--p-white);}
.badge-outline{background:transparent; border:1.5px solid currentColor;}
.badge-solid{background:var(--color-accent); color:var(--p-black);}

/* ---- Cards ---- */
.card{
  background:var(--color-surface);
  color:var(--color-text);
  border:1px solid var(--color-border);
  border-radius:var(--radius-card);
  overflow:hidden;
  transition:transform .3s ease, box-shadow .3s ease;
}
.card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md);}

/* ---- Header ---- */
.site-header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:200;
  background:transparent;
  border-bottom:1px solid transparent;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  transition:background .4s ease, border-color .4s ease, backdrop-filter .4s ease, box-shadow .4s ease;
}
.site-header.scrolled{
  background:rgba(10,9,7,.55);
  backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  border-bottom-color:rgba(255,255,255,.1);
  box-shadow:0 8px 30px rgba(0,0,0,.25);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-5);
  padding-block:var(--space-3);
}
.brand{
  display:flex;
  align-items:center;
  gap:.65rem;
  color:var(--p-white);
}
.brand img{height:38px;width:38px; filter:invert(1);}
.brand-word{
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.3rem;
  letter-spacing:-.01em;
}
.brand-word em{
  font-style:normal;
  color:var(--color-accent);
}
.nav-desktop{
  display:flex;
  align-items:center;
  gap:var(--space-6);
}
.nav-desktop ul{
  display:flex;
  gap:var(--space-5);
  align-items:center;
}
.nav-desktop a{
  color:rgba(255,255,255,.78);
  font-weight:600;
  font-size:.92rem;
  position:relative;
  padding-block:.3rem;
}
.nav-desktop a:hover, .nav-desktop a.active{color:var(--p-white);}
.nav-desktop a.active::after{
  content:'';
  position:absolute;
  left:0; right:0; bottom:-4px;
  height:2px;
  background:var(--color-accent);
  border-radius:2px;
}
.header-cta{display:inline-flex;}
.burger{
  display:none;
  width:44px;height:44px;
  align-items:center;justify-content:center;
  background:transparent;border:none;color:#fff;
}
.burger svg{width:26px;height:26px;}

@media(max-width:900px){
  .nav-desktop{display:none;}
  .header-cta{display:none;}
  .burger{display:inline-flex;}
}

/* Mobile nav drawer */
.mobile-nav{
  position:fixed;
  inset:0;
  z-index:300;
  background:var(--p-black);
  color:#fff;
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.65,0,.35,1);
  display:flex;
  flex-direction:column;
  padding:var(--space-5);
}
.mobile-nav.open{transform:translateX(0);}
.mobile-nav-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:var(--space-7);
}
.mobile-nav-close{
  width:44px;height:44px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:var(--radius-sm);
  background:transparent;color:#fff;
  display:flex;align-items:center;justify-content:center;
}
.mobile-nav ul{
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
}
.mobile-nav ul a{
  display:block;
  padding:.85rem .25rem;
  font-family:var(--font-display);
  font-size:2rem;
  font-weight:600;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.mobile-nav-cta{margin-top:var(--space-6);}
.mobile-nav-social{
  margin-top:auto;
  display:flex;
  gap:var(--space-4);
  padding-top:var(--space-6);
}
.mobile-nav-social a{
  width:42px;height:42px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;
}

/* ---- Hero ---- */
.hero{
  position:relative;
  min-height:88vh;
  display:flex;
  align-items:flex-end;
  color:var(--p-white);
  padding-block:var(--space-8) var(--space-8);
  overflow:hidden;
}
.hero-media{
  position:absolute;inset:0;
  z-index:0;
}
.hero-media img{
  width:100%;height:100%;object-fit:cover;
}
.hero-media::after{
  content:'';
  position:absolute;inset:0;
  background:rgba(0,0,0,.68);
}
.hero-content{position:relative; z-index:1; max-width:820px;}
.hero-content .lede{color:rgba(255,255,255,.85);}
.hero-actions{
  display:flex;
  gap:var(--space-4);
  flex-wrap:wrap;
  margin-top:var(--space-6);
}
.hero-stats{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:var(--space-5);
  margin-top:var(--space-8);
  max-width:640px;
}
.hero-stat b{
  font-family:var(--font-display);
  font-size:clamp(1.6rem,3vw,2.2rem);
  color:var(--color-accent);
  display:block;
}
.hero-stat span{font-size:.82rem; color:rgba(255,255,255,.7);}

/* ---- Section head ---- */
.section-head{
  max-width:680px;
  margin-bottom:var(--space-7);
}
.section-head.center{margin-inline:auto; text-align:center;}
.section-head-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:var(--space-5);
  flex-wrap:wrap;
}

/* ---- Grids ---- */
.grid-3{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:var(--space-6);
}
.grid-4{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:var(--space-5);
}
.grid-2{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:var(--space-7);
  align-items:center;
}
@media(max-width:1024px){
  .grid-4{grid-template-columns:repeat(2, minmax(0,1fr));}
}
@media(max-width:768px){
  .grid-3{grid-template-columns:minmax(0,1fr);}
  .grid-2{grid-template-columns:minmax(0,1fr);}
}

/* ---- Pillars ---- */
.pillar-card{
  padding:var(--space-6);
  border-radius:var(--radius-lg);
  background:var(--color-bg-alt);
  border:1px solid var(--color-border);
}
.pillar-icon{
  width:52px;height:52px;
  border-radius:var(--radius-sm);
  background:var(--p-black);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:var(--space-4);
}
.pillar-icon svg{width:24px;height:24px;stroke:var(--color-accent);}

/* ---- Bands: neutral dark, and a flat, fully-saturated yellow block for highlight moments (no gradients/tints — red stays CTA-only) ---- */
.band-dark{
  background:var(--p-black);
  color:var(--p-white);
}
.band-dark .lede{color:rgba(255,255,255,.72);}
.band-dark .eyebrow{color:var(--color-accent);}

.band-gold{
  background:var(--color-accent);
  color:var(--p-black);
}
.band-gold .eyebrow{color:var(--p-black);}
.band-gold .eyebrow::before{background:var(--p-black);}
.band-gold .lede{color:rgba(47,43,35,.78);}
.band-gold .pillar-card{background:rgba(0,0,0,.06); border-color:rgba(0,0,0,.12);}
.band-gold .pillar-card h3, .band-gold .pillar-card p{color:var(--p-black);}
.band-gold .pillar-card p{color:rgba(47,43,35,.78);}
.band-gold .pillar-icon{background:var(--p-black);}
.band-gold .pillar-icon svg{stroke:var(--color-accent);}
.band-gold .condition-icon{stroke:var(--p-black);}

/* ---- Event card ---- */
.event-card{display:flex; flex-direction:column;}
.event-card-media{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
}
.event-card-media img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease;
}
.event-card:hover .event-card-media img{transform:scale(1.06);}
.event-date-chip{
  position:absolute;
  top:var(--space-3); left:var(--space-3);
  background:var(--p-white);
  border-radius:var(--radius-sm);
  padding:.4rem .6rem;
  text-align:center;
  line-height:1.1;
  box-shadow:var(--shadow-sm);
}
.event-date-chip b{display:block; font-family:var(--font-display); font-size:1.15rem;}
.event-date-chip span{font-size:.65rem; text-transform:uppercase; letter-spacing:.05em; color:var(--color-text-muted);}
.event-status-chip{
  position:absolute;
  top:var(--space-3); right:var(--space-3);
}
.event-card-body{padding:var(--space-5); display:flex; flex-direction:column; gap:.5rem; flex:1;}
.event-meta-row{
  display:flex; gap:var(--space-4); flex-wrap:wrap;
  font-size:.82rem; color:var(--color-text-muted);
}
.event-meta-row span{display:inline-flex; align-items:center; gap:.35em;}
.meta-ico{width:14px; height:14px; flex-shrink:0; stroke:currentColor; vertical-align:-2px;}
.condition-icon{width:22px; height:22px; stroke:var(--color-accent); flex-shrink:0;}
.condition-head{display:flex; align-items:center; gap:.6rem; margin-bottom:.5rem;}
.tip-row{display:inline-flex; align-items:center; gap:.5rem;}
.event-card-cta{
  margin-top:auto;
  padding-top:var(--space-3);
  font-weight:700;
  font-size:.88rem;
  display:inline-flex;
  align-items:center;
  gap:.4em;
  color:var(--color-accent-strong);
}

/* ---- Filter bar ---- */
.filter-bar{
  display:flex;
  gap:var(--space-3);
  flex-wrap:wrap;
  margin-bottom:var(--space-7);
}
.filter-chip{
  padding:.55rem 1.15rem;
  border-radius:var(--radius-pill);
  border:1.5px solid var(--color-border);
  background:var(--color-surface);
  font-weight:600;
  font-size:.85rem;
  transition:all .2s ease;
}
.filter-chip:hover{border-color:var(--p-black);}
.filter-chip.active{
  background:var(--p-black);
  color:var(--p-white);
  border-color:var(--p-black);
}

/* ---- Team card ---- */
.team-card{text-align:left;}
.team-photo{aspect-ratio:1; overflow:hidden; border-radius:var(--radius-card);}
.team-photo img{width:100%;height:100%;object-fit:cover; filter:grayscale(.15);}
.team-body{padding-top:var(--space-4);}
.team-role{color:var(--color-accent-strong); font-weight:700; font-size:.85rem; margin-bottom:.4rem;}

/* ---- Pricing / promo tiers ---- */
.tier-card{
  padding:var(--space-6);
  display:flex;
  flex-direction:column;
  gap:var(--space-4);
}
.tier-card.featured{
  background:var(--p-black);
  color:var(--p-white);
  border-color:var(--p-black);
  transform:scale(1.02);
}
.tier-price{
  font-family:var(--font-display);
  font-size:2.6rem;
  font-weight:700;
}
.tier-price span{font-size:1rem; font-weight:500; color:var(--color-text-muted);}
.tier-card.featured .tier-price span{color:rgba(255,255,255,.6);}
.tier-list{display:flex; flex-direction:column; gap:.65rem; margin-block:var(--space-2);}
.tier-list li{
  display:flex; gap:.6rem; align-items:flex-start;
  font-size:.92rem;
}
.tier-list svg{flex-shrink:0; width:18px; height:18px; margin-top:.15em; stroke:var(--color-accent-strong);}
.tier-card.featured .tier-list svg{stroke:var(--color-accent);}

/* ---- Calendar ---- */
.calendar-shell{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  padding:var(--space-6);
}
.calendar-toolbar{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:var(--space-5);
  flex-wrap:wrap;
  gap:var(--space-3);
}
.calendar-toolbar h3{margin:0;}
.calendar-nav{display:flex; gap:var(--space-2);}
.calendar-nav button{
  width:40px;height:40px;
  border-radius:var(--radius-sm);
  border:1.5px solid var(--color-border);
  background:var(--color-surface);
  display:flex;align-items:center;justify-content:center;
}
.calendar-nav button:hover{border-color:var(--p-black);}
.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7, minmax(0,1fr));
  gap:6px;
}
.calendar-dow{
  text-align:center;
  font-size:.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--color-text-muted);
  padding-bottom:var(--space-2);
}
.calendar-cell{
  aspect-ratio:1;
  border-radius:var(--radius-sm);
  background:var(--color-bg-alt);
  padding:.4rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  font-size:.82rem;
  font-weight:600;
  cursor:default;
  position:relative;
}
.calendar-cell.empty{background:transparent;}
.calendar-cell.today{outline:2px solid var(--color-accent);}
.calendar-cell.has-event{
  cursor:pointer;
  color:#fff;
  background-color:var(--p-black);
  background-size:cover;
  background-position:center;
  overflow:hidden;
  transition:transform .25s ease;
}
.calendar-cell.has-event::after{
  content:'';
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.5);
  transition:background .25s ease;
}
.calendar-cell.has-event:hover{transform:translateY(-2px);}
.calendar-cell.has-event:hover::after{background:rgba(255,185,6,.35);}
.calendar-cell-day{position:relative; z-index:1;}
.calendar-dot{
  width:6px;height:6px;border-radius:var(--radius-sm);
  background:var(--color-accent);
  align-self:flex-end;
  position:relative;
  z-index:1;
}
.calendar-legend{
  display:flex; gap:var(--space-5); margin-top:var(--space-5);
  font-size:.82rem; color:var(--color-text-muted); flex-wrap:wrap;
}
.calendar-legend span{display:inline-flex; align-items:center; gap:.5em;}
.legend-dot{width:10px;height:10px;border-radius:var(--radius-sm); display:inline-block;}

/* ---- Calendar hover lightbox ---- */
.cal-lightbox{
  position:fixed;
  z-index:600;
  width:var(--cal-lb-w, 260px);
  background:var(--p-black);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow-md);
  overflow:hidden;
  opacity:0;
  transform:translateY(6px) scale(.98);
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
.cal-lightbox.show{opacity:1; transform:translateY(0) scale(1);}
.cal-lightbox img{width:100%; aspect-ratio:16/10; object-fit:cover; display:block;}
.cal-lightbox-body{padding:.85rem .95rem 1rem;}
.cal-lightbox-body h4{
  margin:.4rem 0 .3rem;
  color:#fff;
  font-size:1rem;
  font-family:var(--font-display);
}
.cal-lightbox-meta{
  display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;
  font-size:.76rem; color:rgba(255,255,255,.65);
}
.cal-lightbox-meta .meta-ico{stroke:var(--color-accent);}
.cal-lightbox::before{
  content:'';
  position:absolute;
  bottom:-7px; left:50%;
  transform:translateX(-50%) rotate(45deg);
  width:12px; height:12px;
  background:var(--p-black);
  border-right:1px solid rgba(255,255,255,.12);
  border-bottom:1px solid rgba(255,255,255,.12);
}
.cal-lightbox.below::before{
  bottom:auto; top:-7px;
  border-right:none; border-bottom:none;
  border-left:1px solid rgba(255,255,255,.12);
  border-top:1px solid rgba(255,255,255,.12);
}
@media(max-width:640px){
  .cal-lightbox{display:none;}
}

.calendar-agenda{margin-top:var(--space-6);}
.agenda-item{
  display:flex;
  gap:var(--space-4);
  padding:var(--space-4) 0;
  border-bottom:1px solid var(--color-border);
  align-items:center;
}
.agenda-date{
  flex-shrink:0;
  width:64px;
  text-align:center;
  background:var(--color-bg-alt);
  border-radius:var(--radius-sm);
  padding:.5rem 0;
}
.agenda-date b{display:block; font-family:var(--font-display); font-size:1.3rem;}
.agenda-date span{font-size:.65rem; text-transform:uppercase; color:var(--color-text-muted);}

@media(max-width:640px){
  .calendar-grid{gap:4px;}
  .calendar-cell{font-size:.68rem; padding:.25rem;}
  .calendar-dow{font-size:.6rem;}
}

/* ---- Form ---- */
.form-field{margin-bottom:var(--space-5);}
.form-field label{
  display:block; font-weight:700; font-size:.85rem; margin-bottom:.5rem;
}
.form-field input, .form-field textarea, .form-field select{
  width:100%;
  padding:.85rem 1rem;
  border-radius:var(--radius-sm);
  border:1.5px solid var(--color-border);
  background:var(--color-surface);
  color:var(--color-text);
}
.form-field input:focus, .form-field textarea:focus, .form-field select:focus{
  outline:none; border-color:var(--p-black);
}
.form-row{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:var(--space-4);
}
@media(max-width:640px){.form-row{grid-template-columns:minmax(0,1fr);}}

/* ---- Footer ---- */
.site-footer{
  position:relative;
  background:var(--p-black);
  color:rgba(255,255,255,.7);
  padding-block:var(--space-8) var(--space-6);
}
.site-footer::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:url('Assets/bg-texture-dark.webp');
  background-repeat:repeat;
  background-size:220px 220px;
  opacity:.5;
  mix-blend-mode:normal;
  pointer-events:none;
}
.site-footer > .container{position:relative; z-index:1;}
.footer-top{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);
  gap:var(--space-6);
  padding-bottom:var(--space-7);
  border-bottom:1px solid rgba(255,255,255,.1);
}
@media(max-width:900px){
  .footer-top{grid-template-columns:repeat(2, minmax(0,1fr));}
}
@media(max-width:520px){
  .footer-top{grid-template-columns:minmax(0,1fr);}
}
.footer-brand .brand-word{color:#fff;}
.footer-brand p{max-width:32ch; margin-top:var(--space-3); font-size:.9rem;}
.footer-col h4{
  font-family:var(--font-body);
  color:#fff;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:var(--space-4);
}
.footer-col li{margin-bottom:.65rem; font-size:.9rem;}
.footer-col a:hover{color:var(--color-accent);}
.footer-social{display:flex; gap:var(--space-3); margin-top:var(--space-4);}
.footer-social a{
  width:38px;height:38px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;
}
.footer-social a:hover{border-color:var(--color-accent); color:var(--color-accent);}
.footer-partners{
  display:flex;
  align-items:center;
  gap:var(--space-6);
  flex-wrap:wrap;
  padding-block:var(--space-6);
  border-bottom:1px solid rgba(255,255,255,.1);
}
.footer-partners img{
  height:34px; width:auto;
  filter:grayscale(1) brightness(2.2);
  opacity:.75;
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:var(--space-3);
  padding-top:var(--space-6);
  font-size:.8rem;
}
.footer-disclaimer{
  font-size:.72rem;
  color:rgba(255,255,255,.4);
  max-width:70ch;
  margin-top:var(--space-3);
}

/* ---- Statement band (bold, protest-poster energy — black-dominant, condensed uppercase) ---- */
.statement-band{
  background:var(--p-black);
  color:var(--p-white);
  padding-block:var(--space-8);
  border-top:1px solid rgba(214,169,66,.25);
  border-bottom:1px solid rgba(214,169,66,.25);
}
.statement-text{
  font-family:var(--font-body);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:-.01em;
  font-size:clamp(1.8rem, 5.2vw, 4rem);
  line-height:1.06;
  max-width:1100px;
  overflow-wrap:break-word;
}
.statement-text .hl{
  color:var(--p-black);
  background:var(--color-accent);
  padding:0 .15em;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.statement-text .hl-outline{
  color:var(--p-white);
  background:transparent;
  border:2px solid var(--color-accent);
  padding:0 .25em;
}

/* ---- Reveal ---- */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:none;}

/* ---- Page hero (interior pages) ---- */
.page-hero{
  background:var(--p-black);
  color:#fff;
  padding-block:var(--space-8) var(--space-7);
}
.page-hero .eyebrow{color:var(--color-accent);}
.page-hero .lede{color:rgba(255,255,255,.74);}
.page-hero h1{color:#fff;}
.breadcrumb{
  display:flex; gap:.5em; align-items:center;
  font-size:.82rem; color:rgba(255,255,255,.55);
  margin-bottom:var(--space-4);
}
.breadcrumb a:hover{color:#fff;}

/* ---- Misc utility ---- */
.center{text-align:center;}
.mt-0{margin-top:0;}
.two-col-text{columns:2; column-gap:var(--space-7);}
@media(max-width:768px){.two-col-text{columns:1;}}

/* ---- Toast ---- */
.toast{
  position:fixed;
  left:50%; bottom:28px;
  transform:translateX(-50%) translateY(20px);
  background:var(--p-black);
  color:#fff;
  padding:.9rem 1.4rem;
  border-radius:var(--radius-pill);
  font-size:.88rem;
  font-weight:600;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease, transform .3s ease;
  z-index:500;
  box-shadow:var(--shadow-md);
}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

/* ---- Disclaimer badge ---- */
.proto-badge{
  position:fixed;
  bottom:16px; right:16px;
  z-index:150;
  background:rgba(0,0,0,.85);
  color:#fff;
  font-size:.7rem;
  padding:.5rem .85rem;
  border-radius:var(--radius-pill);
  border:1px solid rgba(214,169,66,.4);
  backdrop-filter:blur(6px);
}
@media(max-width:640px){.proto-badge{font-size:.62rem; padding:.4rem .7rem;}}
