/* ════════════════ DESIGN TOKENS ════════════════ */
:root {
  --sky:    #FDEFD4;
  --blue:   #A50505;
  --indigo: #8B0404;
  --violet: #8b5cf6;
  --amber:  #f59e0b;
  --rose:   #f43f5e;
  --grad:   linear-gradient(135deg,#A50505 0%,#C8380A 55%,#8B0404 100%);
  --bg:     #FDEFD4;
  --bg2:    #FAE8C6;
  --t1:     #0c1024;
  --t2:     #1e293b;
  --t3:     #475569;
  --t4:     #94a3b8;
  --glass:  rgba(255,255,255,.62);
  --glass-b:rgba(255,255,255,.88);
  --ge:     rgba(165,5,5,.12);
  --gs:     0 8px 32px rgba(165,5,5,.08),0 1px 0 rgba(255,255,255,.9) inset;
  --sm:     0 2px 8px rgba(165,5,5,.07),0 0 0 1px rgba(165,5,5,.05);
  --md:     0 8px 32px rgba(165,5,5,.09),0 2px 8px rgba(0,0,0,.04);
  --lg:     0 24px 56px rgba(165,5,5,.12),0 4px 16px rgba(0,0,0,.06);
  --h-h:    68px;
  --r:      20px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%;}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--t1);overflow-x:hidden;max-width:100%;}

/* ════════════════ HEADER ════════════════ */
#site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:var(--h-h);padding:0 1.5rem;
  display:flex;align-items:center;
  background:rgba(253,245,232,.72);
  backdrop-filter:blur(22px) saturate(160%);
  -webkit-backdrop-filter:blur(22px) saturate(160%);
  border-bottom:1px solid rgba(165,5,5,.08);
  transition:background .3s,box-shadow .3s,border-color .3s;
}
#site-header.scrolled{
  background:rgba(255,255,255,.90);
  backdrop-filter:blur(32px) saturate(180%);
  -webkit-backdrop-filter:blur(32px) saturate(180%);
  border-bottom-color:rgba(165,5,5,.16);
  box-shadow:0 4px 28px rgba(165,5,5,.10),0 1px 0 rgba(255,255,255,.9);
}
.header-inner{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;}
.logo{
  font-family:'Bricolage Grotesque',sans-serif;font-size:1.5rem;font-weight:800;
  text-decoration:none;letter-spacing:-.3px;
  background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  <!-- filter:drop-shadow(0 0 10px rgba(165,5,5,.2)); -->
  white-space:nowrap;flex-shrink:0;display:flex;align-items:center;gap:.3rem;
}

.logo i{-webkit-text-fill-color:var(--sky);background:none;filter:none;}
.main-nav{list-style:none;display:flex;align-items:center;justify-content:center;gap:.05rem;flex-wrap:nowrap;}
.main-nav>li{position:relative;}
.main-nav a,.main-nav button{
  font-family:'DM Sans',sans-serif;font-size:.92rem;font-weight:500;color:var(--t3);
  text-decoration:none;padding:.48rem .82rem;border-radius:8px;
  background:none;border:none;cursor:pointer;
  display:flex;align-items:center;gap:.28rem;white-space:nowrap;position:relative;
  transition:color .2s,background .2s;
}
.main-nav a::after,.main-nav button::after{
  content:'';position:absolute;bottom:3px;left:50%;
  width:0;height:2px;border-radius:2px;
  background:var(--grad);transform:translateX(-50%);
  transition:width .25s cubic-bezier(.4,0,.2,1);
}
.main-nav a:hover,.main-nav button:hover{color:var(--t1);background:rgba(165,5,5,.06);}
.main-nav a:hover::after,.main-nav button:hover::after{width:60%;}
.main-nav a.active{color:var(--blue);}
.main-nav a.active::after{width:60%;}
.nav-dropdown{
  position:absolute;top:calc(100% + 8px);left:50%;
  transform:translateX(-50%) translateY(-5px);
  min-width:152px;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border:1px solid rgba(165,5,5,.13);border-radius:14px;padding:.4rem 0;
  opacity:0;pointer-events:none;
  transition:opacity .18s,transform .18s;
  box-shadow:0 14px 40px rgba(165,5,5,.12),0 4px 12px rgba(0,0,0,.05);z-index:200;
}
.main-nav li:hover .nav-dropdown{opacity:1;pointer-events:all;transform:translateX(-50%) translateY(0);}
.nav-dropdown a{display:block;padding:.46rem 1.1rem;font-size:.8rem;border-radius:0;width:100%;color:var(--t2);}
.nav-dropdown a:hover{background:rgba(165,5,5,.07);color:var(--sky);}
.nav-dropdown a::after{display:none;}
.header-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0;}
.header-search{position:relative;display:flex;align-items:center;}
.header-search .hs-icon{position:absolute;left:.9rem;color:var(--t4);font-size:.8rem;pointer-events:none;z-index:2;transition:color .22s;}
.header-search input{
  font-family:'DM Sans',sans-serif;font-size:.8rem;
  background:rgba(255,255,255,.72);border:1px solid rgba(165,5,5,.18);
  border-radius:50px;color:var(--t1);outline:none;
  padding:.5rem 2.6rem .5rem 2.1rem;width:175px;
  backdrop-filter:blur(12px);
  transition:width .35s cubic-bezier(.4,0,.2,1),background .22s,border-color .22s,box-shadow .22s;
}
.header-search input::placeholder{color:var(--t4);font-weight:300;}
.header-search input:focus{width:220px;background:rgba(255,255,255,.98);border-color:rgba(165,5,5,.45);box-shadow:0 0 0 3px rgba(165,5,5,.10),0 4px 16px rgba(165,5,5,.08);}
.header-search:focus-within .hs-icon{color:var(--sky);}
.hs-submit{
  position:absolute;right:.38rem;width:26px;height:26px;border-radius:50%;
  background:var(--grad);border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:.6rem;
  opacity:0;transform:scale(.7);transition:opacity .22s,transform .22s;z-index:2;
}
.header-search:focus-within .hs-submit{opacity:1;transform:scale(1);}
.btn-login{
  font-family:'DM Sans',sans-serif;font-size:.875rem;font-weight:700;
  padding:.5rem 1.45rem;border-radius:50px;cursor:pointer;border:none;
  background:var(--grad);color:#fff;
  display:inline-flex;align-items:center;gap:.4rem;
  box-shadow:0 4px 16px rgba(165,5,5,.28);
  transition:transform .2s,box-shadow .2s,filter .2s;white-space:nowrap;text-decoration:none;
}
.btn-login:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(165,5,5,.38);filter:brightness(1.06);color:#fff;}
.hamburger{
  display:none;background:none;border:none;color:var(--t1);font-size:1.3rem;cursor:pointer;
  margin-left:auto;width:42px;height:42px;border-radius:9px;
  align-items:center;justify-content:center;transition:background .2s;
}
.hamburger:hover{background:rgba(165,5,5,.08);}
#mobile-nav{
  position:fixed;top:var(--h-h);left:0;right:0;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);
  border-bottom:1px solid rgba(165,5,5,.12);
  padding:.7rem 1.1rem 1.1rem;
  display:flex;flex-direction:column;gap:.2rem;z-index:990;
  opacity:0;transform:translateY(-6px);pointer-events:none;
  transition:opacity .22s,transform .22s;
  box-shadow:0 8px 32px rgba(165,5,5,.08);
}
#mobile-nav.open{opacity:1;transform:translateY(0);pointer-events:all;}
#mobile-nav a{font-family:'DM Sans',sans-serif;font-size:.9rem;color:var(--t2);text-decoration:none;padding:.62rem .85rem;border-radius:10px;min-height:44px;display:flex;align-items:center;transition:background .14s,color .14s;}
#mobile-nav a:hover{background:rgba(165,5,5,.07);color:var(--sky);}
.mob-search{position:relative;margin-bottom:.3rem;}
.mob-search i{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);color:var(--t4);font-size:.85rem;}
.mob-search input{font-family:'DM Sans',sans-serif;font-size:.875rem;width:100%;padding:.62rem 1rem .62rem 2.2rem;background:rgba(165,5,5,.06);border:1px solid rgba(165,5,5,.16);border-radius:50px;color:var(--t1);outline:none;}
.mob-search input::placeholder{color:var(--t4);}
.mob-divider{height:1px;background:rgba(165,5,5,.08);margin:.3rem 0;}
.mobile-btns{display:flex;gap:.55rem;margin-top:.4rem;}
.mobile-btns .btn-login{flex:1;justify-content:center;}

@media(max-width:1100px){.header-search input{width:145px;}.header-search input:focus{width:185px;}}
@media(max-width:991px){.main-nav,.header-right{display:none;}.hamburger{display:flex;}.header-inner{grid-template-columns:auto auto;}}
@media(max-width:767px){:root{--h-h:64px;}#site-header{padding:.5rem .9rem;}}

/* ── KEYFRAME ANIMATIONS ──────────────────────────────── */
@keyframes fadeUp{from{opacity:0;transform:translateY(32px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes staggerIn{from{opacity:0;transform:translateY(24px) scale(.97);}to{opacity:1;transform:translateY(0) scale(1);}}
@keyframes subtlePulse{0%,100%{box-shadow:0 0 0 0 rgba(165,5,5,.18);}50%{box-shadow:0 0 0 8px rgba(165,5,5,.0);}}
@keyframes meshDrift{0%{background-position:0% 0%;}100%{background-position:100% 100%;}}
@keyframes floatUp{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes floatDn{0%,100%{transform:translateY(0)}50%{transform:translateY(14px)}}
@keyframes orbPulse{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:.75;transform:scale(1.08)}}
@keyframes spinSlow{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.35}}

/* ══════════════════════════════════════════════════════
   HERO SECTION
══════════════════════════════════════════════════════ */
#hero{position:relative;min-height:100vh;padding-top:var(--h-h);background:linear-gradient(155deg,#fdf3e0 0%,#fdf3e0 45%,#fdf3e0 100%);overflow:hidden;display:flex;flex-direction:column;}
#hero::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(165,5,5,.03) 1px,transparent 1px);background-size:22px 22px;pointer-events:none;z-index:0;}
.hero-orb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(80px);animation:orbPulse 8s ease-in-out infinite;}
.hero-orb-1{width:700px;height:700px;top:-180px;right:-160px;background:radial-gradient(circle,rgba(165,5,5,.13),transparent 70%);}
.hero-orb-2{width:500px;height:500px;bottom:-100px;left:-100px;background:radial-gradient(circle,rgba(200,56,10,.10),transparent 70%);animation-delay:4s;}
.hero-orb-3{width:300px;height:300px;top:40%;left:40%;background:radial-gradient(circle,rgba(165,5,5,.055),transparent 70%);animation-delay:2s;}
.hero-ring{position:absolute;top:72px;right:56px;width:260px;height:260px;border-radius:50%;border:1.5px dashed rgba(165,5,5,.18);animation:spinSlow 45s linear infinite;pointer-events:none;z-index:0;}
.hero-ring::after{content:'';position:absolute;inset:20px;border-radius:50%;border:1px solid rgba(165,5,5,.09);}
.hero-inner{position:relative;z-index:2;width:100%;max-width:1280px;margin:0 auto;padding:3.5rem 2rem 2.5rem;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:3rem;flex:1;}
/* LEFT */
.hero-left{display:flex;flex-direction:column;gap:1.6rem;}
.hero-eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-body);font-size:.77rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#A50505;background:rgba(165,5,5,.09);border:1px solid rgba(165,5,5,.22);border-radius:50px;padding:.42rem 1rem;width:fit-content;opacity:0;animation:fadeUp .6s cubic-bezier(.22,1,.36,1) .15s forwards;}
.hero-eyebrow-dot{width:7px;height:7px;border-radius:50%;background:#A50505;box-shadow:0 0 8px rgba(165,5,5,.55);animation:blink 1.6s ease-in-out infinite;flex-shrink:0;}
.hero-h1{font-family:var(--font-head)!important;font-size:clamp(2.7rem,5.5vw,4rem);font-weight:700;line-height:1.07;color:#1A1A1A;letter-spacing:-.01em;opacity:0;animation:fadeUp .7s cubic-bezier(.22,1,.36,1) .3s forwards;}
.hero-h1 em{font-style:italic;background:linear-gradient(135deg,#A50505 0%,#C8380A 50%,#8B0404 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.hero-sub{font-family:var(--font-body);font-size:1.05rem;font-weight:400;line-height:1.74;color:#5c3a1e;max-width:475px;opacity:0;animation:fadeUp .7s cubic-bezier(.22,1,.36,1) .45s forwards;}
.hero-cta-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;opacity:0;animation:fadeUp .7s cubic-bezier(.22,1,.36,1) .6s forwards;}
.cta-primary{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-body);font-size:.97rem;font-weight:700;color:#fff;background:var(--grad);border:none;border-radius:50px;padding:.9rem 2rem;cursor:pointer;text-decoration:none;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s,filter .25s;box-shadow:0 6px 28px rgba(165,5,5,.42),0 1px 0 rgba(255,255,255,.1) inset;}
.cta-primary::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.16),transparent);border-radius:inherit;opacity:0;transition:opacity .2s;}
.cta-primary:hover{transform:translateY(-3px);box-shadow:0 14px 38px rgba(165,5,5,.58);filter:brightness(1.06);color:#fff;text-decoration:none;}
.cta-primary:hover::before{opacity:1;}
.cta-ghost{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-body);font-size:.97rem;font-weight:600;color:#6b3e1e;background:rgba(255,255,255,.62);border:1.5px solid rgba(165,5,5,.22);border-radius:50px;padding:.9rem 2rem;cursor:pointer;text-decoration:none;transition:background .2s,border-color .2s,color .2s,transform .2s,box-shadow .2s;backdrop-filter:blur(14px);}
.cta-ghost:hover{background:rgba(255,255,255,.88);border-color:rgba(165,5,5,.4);color:#A50505;transform:translateY(-3px);box-shadow:0 8px 28px rgba(165,5,5,.13);text-decoration:none;}
.hero-proof{display:inline-flex;align-items:center;gap:.75rem;background:rgba(255,255,255,.68);border:1px solid rgba(165,5,5,.14);border-radius:50px;padding:.55rem 1.1rem .55rem .65rem;backdrop-filter:blur(16px);width:fit-content;opacity:0;animation:fadeUp .7s cubic-bezier(.22,1,.36,1) .75s forwards;box-shadow:0 4px 18px rgba(165,5,5,.07),0 1px 0 rgba(255,255,255,.9) inset;}
.hero-avatars{display:flex;align-items:center;}
.hero-avatar{width:32px;height:32px;border-radius:50%;border:2px solid #fff;margin-left:-8px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff;font-family:var(--font-body);}
.hero-avatar:first-child{margin-left:0;}
.hero-proof-text{font-family:var(--font-body);font-size:.8rem;font-weight:500;color:#5c3a1e;line-height:1.4;}
.hero-proof-text strong{color:#1A1A1A;font-weight:700;}
/* RIGHT */
.hero-right{position:relative;display:flex;align-items:center;justify-content:center;min-height:520px;}
.hero-img-main{position:relative;width:100%;max-width:440px;border-radius:28px;overflow:hidden;box-shadow:0 36px 80px rgba(165,5,5,.18),0 8px 32px rgba(0,0,0,.08);animation:fadeUp .8s cubic-bezier(.22,1,.36,1) .35s both,floatUp 7s ease-in-out 1.2s infinite;}
.hero-img-main img{width:100%;height:490px;object-fit:cover;display:block;}
.hero-img-main::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(100,4,4,.58) 100%);pointer-events:none;}
.hero-img-caption{position:absolute;bottom:1.2rem;left:1.2rem;right:1.2rem;z-index:3;display:flex;align-items:center;gap:.75rem;}
.hero-img-cap-icon{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.32);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1rem;flex-shrink:0;}
.hero-img-cap-text strong{display:block;font-size:.88rem;font-weight:700;color:#fff;font-family:var(--font-body);}
.hero-img-cap-text span{font-size:.75rem;color:rgba(253,239,212,.82);font-family:var(--font-body);}
.hero-stat-card{position:absolute;background:rgba(255,255,255,.90);backdrop-filter:blur(24px);border:1px solid rgba(165,5,5,.13);border-radius:18px;padding:.95rem 1.3rem;box-shadow:0 12px 40px rgba(165,5,5,.13),0 2px 8px rgba(0,0,0,.05);z-index:5;}
.hero-stat-card .sc-val{font-family:var(--font-head);font-size:1.65rem;font-weight:700;line-height:1;color:#1A1A1A;}
.hero-stat-card .sc-val em{font-style:normal;color:#A50505;}
.hero-stat-card .sc-lbl{font-family:var(--font-body);font-size:.72rem;font-weight:500;color:#7a4a22;letter-spacing:.04em;margin-top:.18rem;}
.sc-1{top:28px;left:-52px;animation:fadeIn .8s ease .9s both,floatDn 6s ease-in-out 1.5s infinite;}
.sc-2{bottom:64px;right:-44px;animation:fadeIn .8s ease 1.1s both,floatUp 5.5s ease-in-out 2s infinite;}
.hero-chip{position:absolute;top:-20px;right:28px;display:flex;align-items:center;gap:.6rem;background:rgba(255,255,255,.92);border:1px solid rgba(165,5,5,.16);border-radius:50px;padding:.55rem 1rem .55rem .65rem;backdrop-filter:blur(18px);box-shadow:0 8px 28px rgba(165,5,5,.12);z-index:5;animation:fadeIn .8s ease .7s both,floatUp 8s ease-in-out 1s infinite;}
.hero-chip-ic{width:30px;height:30px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;}
.hero-chip-text{font-family:var(--font-body);font-size:.78rem;font-weight:600;color:#1A1A1A;}
.hero-chip-sub{font-family:var(--font-body);font-size:.68rem;font-weight:400;color:#7a4a22;}
/* STATS BAR */
.hero-stats-bar{position:relative;z-index:2;width:100%;max-width:1280px;margin:0 auto;padding:0 2rem 3.5rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;opacity:0;animation:fadeUp .7s cubic-bezier(.22,1,.36,1) .9s forwards;}
.hero-stat-item{background:rgba(255,255,255,.62);border:1px solid rgba(165,5,5,.11);border-radius:18px;padding:1.3rem 1.5rem;backdrop-filter:blur(18px);box-shadow:0 4px 18px rgba(165,5,5,.07),0 1px 0 rgba(255,255,255,.9) inset;transition:transform .3s,box-shadow .3s,background .3s;}
.hero-stat-item:hover{transform:translateY(-5px);background:rgba(255,255,255,.85);box-shadow:0 16px 44px rgba(165,5,5,.13);}
.hero-stat-item .hs-icon-wrap{width:36px;height:36px;border-radius:10px;background:rgba(165,5,5,.09);border:1px solid rgba(165,5,5,.16);display:flex;align-items:center;justify-content:center;color:#A50505;font-size:.95rem;margin-bottom:.85rem;}
.hero-stat-item .hs-val{font-family:var(--font-head);font-size:2rem;font-weight:700;line-height:1;color:#1A1A1A;}
.hero-stat-item .hs-val em{font-style:normal;color:#A50505;}
.hero-stat-item .hs-lbl{font-family:var(--font-body);font-size:.78rem;font-weight:500;color:#7a4a22;margin-top:.35rem;}
/* TICKER */
.hero-ticker{position:relative;z-index:2;width:100%;background:rgba(255,255,255,.52);border-top:1px solid rgba(165,5,5,.10);backdrop-filter:blur(14px);padding:.7rem 0;overflow:hidden;}
.hero-ticker-track{display:flex;width:max-content;animation:ticker 30s linear infinite;}
.ticker-item{display:inline-flex;align-items:center;gap:.6rem;padding:0 2.2rem;font-family:var(--font-body);font-size:.8rem;font-weight:500;color:#5c3a1e;white-space:nowrap;}
.ticker-dot{width:6px;height:6px;border-radius:50%;background:#A50505;opacity:.6;flex-shrink:0;}
.ticker-item strong{color:#A50505;font-weight:700;}
/* HERO RESPONSIVE */
@media(max-width:1120px){.sc-1{left:-20px;}.sc-2{right:-14px;}}
@media(max-width:900px){.hero-inner{grid-template-columns:1fr;text-align:center;padding:3.5rem 1.5rem 2rem;}.hero-left{align-items:center;}.hero-sub{text-align:center;margin:0 auto;}.hero-right{min-height:380px;}.hero-img-main{max-width:360px;}.hero-img-main img{height:370px;}.sc-1{left:-8px;top:10px;}.sc-2{right:-8px;bottom:44px;}.hero-stats-bar{grid-template-columns:repeat(2,1fr);padding-bottom:2.5rem;}}
@media(max-width:600px){.hero-h1{font-size:2.3rem;}.hero-img-main img{height:300px;}.sc-1,.sc-2,.hero-chip{display:none;}.hero-stats-bar{grid-template-columns:1fr 1fr;padding:0 1rem 2rem;}.hero-cta-row{justify-content:center;}}

/* ── GLOBAL FONT OVERRIDE ───────────────────────────────── */
:root {
  --font-head: 'Gelasio', 'Bricolage Grotesque', serif;
  --font-body: 'Inter', 'DM Sans', sans-serif;
  /* Section colors */
  --sec-dark: #A50505;
  --sec-white: #FFFFFF;
  --sec-light: #FDEFD4;
  --sec-grad-start: #A50505;
  --sec-grad-end: #FDEFD4;
  /* Premium shadows */
  --shadow-card-light: 0 4px 24px rgba(165,5,5,.08), 0 1px 4px rgba(0,0,0,.04);
  --shadow-card-hover: 0 16px 48px rgba(165,5,5,.18), 0 4px 16px rgba(0,0,0,.08);
  --glow-red: 0 0 20px rgba(165,5,5,.35);
}

body { font-family: var(--font-body); }

/* ── ALL HEADING OVERRIDES → Playball ─────────────────── */
h1, h2, h3,
.sl-h2, .ec-h2, .au-h2, .tm-h2,
.fo-nl-h, .fo-col-h,
.au-badge-ctr, .tm-panel-title,
.au-count-val, .au-stat-val {
  font-family: var(--font-head) !important;
  letter-spacing: 0em !important;
}

.sl-h2        { font-size: clamp(2.3rem, 4.2vw, 3.3rem) !important; }
.ec-h2        { font-size: clamp(2.3rem, 4.2vw, 3.3rem) !important; }
.au-h2        { font-size: clamp(2rem,   3.5vw, 2.9rem) !important; }
.tm-h2        { font-size: clamp(2.1rem, 4vw,   3.2rem) !important; }
.fo-nl-h      { font-size: clamp(1.6rem, 2.8vw, 2.2rem) !important; }

/* Body copy → Inter */
p, span, a, li, input, button, label, .sl-ev-desc, .au-body, .tm-quote,
.fo-tagline, .fo-links a, .nav-dropdown a, .main-nav a, .main-nav button,
.sl-seg-btn, .cta-primary, .cta-ghost, .btn-login, .fo-nl-btn {
  font-family: var(--font-body) !important;
}

/* ── TEXTURE MIXIN (dot overlay) ──────────────────────── */
.tex::after {
  content:'';
  position:absolute;inset:0;
  background-image: radial-gradient(rgba(165,5,5,.035) 1px, transparent 1px);
  background-size: 22px 22px;
  pointer-events:none; z-index:0;
}

/* ══════════════════════════════════════════════════════
   HEADER — glass with warm white
══════════════════════════════════════════════════════ */
#site-header {
  background: rgba(255,255,255,0.82) !important;
  backdrop-filter: blur(28px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(28px) saturate(180%) !important;
  border-bottom: 1px solid rgba(165,5,5,.10) !important;
  box-shadow: 0 2px 20px rgba(165,5,5,.06) !important;
}
#site-header.scrolled {
  background: rgba(255,255,255,0.97) !important;
  box-shadow: 0 4px 32px rgba(165,5,5,.12), 0 1px 0 rgba(255,255,255,.9) !important;
}
/* .logo { filter: drop-shadow(0 0 14px rgba(165,5,5,.25)) !important; } */
.main-nav a, .main-nav button { font-size: .9rem !important; font-weight: 500 !important; }
.btn-login {
  background: linear-gradient(135deg,#A50505,#C8380A) !important;
  box-shadow: 0 4px 18px rgba(165,5,5,.32) !important;
  border-radius: 50px !important;
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease !important;
}
.btn-login:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 10px 28px rgba(165,5,5,.45) !important;
  filter: brightness(1.08) !important;
}

/* ══════════════════════════════════════════════════════
   PROGRESSIVE WARM PALETTE — lighter overall, based on #FDEFD4
   Each section steps only slightly darker than the previous.

   Hero          → #FDEFD4               (lightest cream)
   Explore Events → #FDEFD4 → #FAE8C0   (barely-there honey)
   Explore Cats   → #FAE8C0 → #F7DEB0   (soft biscuit)
   About Us       → #F7DEB0 → #F2D09A   (warm almond — gentle step)
   Ev-Features    → #F2D09A → #ECC485   (golden wheat)
   Testimonials   → #ECC485 → #E6B870   (light amber — still warm, not dark)
   Footer         → #E6B870 → #DCAA5A   (mellow gold — deepest, never muddy)
══════════════════════════════════════════════════════ */

/* ── SECTION 2: EXPLORE EVENTS ── */
#explore-events {
  background: #fefdfa !important;
  position: relative;
}
#explore-events::before {
  background-image: radial-gradient(rgba(165,5,5,.04) 1px, transparent 1px) !important;
  background-size: 24px 24px !important;
}

.sl-orb-1 { background: radial-gradient(circle,rgba(165,5,5,.08),transparent 70%) !important; }
.sl-orb-2 { background: radial-gradient(circle,rgba(165,5,5,.05),transparent 70%) !important; }

.sl-eyebrow { color: #A50505 !important; }
.sl-eyebrow::before { background: #A50505 !important; }
.sl-h2 { color: #1A1A1A !important; }
.sl-h2 em {
  background: linear-gradient(135deg,#A50505,#8B0404) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
.sl-h2-sub { color: #5c3a1e !important; }

.sl-seg {
  background: rgba(255,255,255,0.62) !important;
  border: 1px solid rgba(165,5,5,.16) !important;
  backdrop-filter: blur(16px) !important;
  box-shadow: 0 2px 14px rgba(165,5,5,.07) !important;
}
.sl-seg-btn { color: #5c3a1e !important; }
.sl-seg-btn:hover { color: #1A1A1A !important; background: rgba(165,5,5,.07) !important; }
.sl-seg-btn.active {
  background: linear-gradient(135deg,#A50505,#8B0404) !important;
  color: #fff !important;
  box-shadow: 0 4px 20px rgba(165,5,5,.28) !important;
}

.sl-panel {
  background: rgba(255,255,255,0.52) !important;
  border: 1px solid rgba(165,5,5,.10) !important;
  backdrop-filter: blur(18px) !important;
  border-radius: 22px !important;
  box-shadow: 0 8px 40px rgba(165,5,5,.07), 0 2px 8px rgba(0,0,0,.03) !important;
  padding: 20px;
}
.sl-row:hover { background: rgba(255,255,255,.38) !important; }
.sl-row:hover::after { background: linear-gradient(135deg,#A50505,#8B0404) !important; }

.sl-time { color: #1A1A1A !important; }
.sl-date { color: #6b3e1e !important; }
.sl-ev-title { color: #1A1A1A !important; }
.sl-ev-desc { color: #5c3a1e !important; }
.sl-loc-text strong { color: #1A1A1A !important; }
.sl-loc-text { color: #6b3e1e !important; }

.sl-thumb {
  border: 2px solid rgba(165,5,5,.16) !important;
  box-shadow: 0 4px 14px rgba(165,5,5,.09) !important;
  transition: transform .3s ease, box-shadow .3s ease !important;
}
.sl-row:hover .sl-thumb {
  transform: scale(1.08) !important;
  box-shadow: 0 8px 24px rgba(165,5,5,.18) !important;
}

.sl-bm {
  background: rgba(165,5,5,.07) !important;
  border: 1px solid rgba(165,5,5,.18) !important;
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease !important;
}
.sl-bm:hover {
  background: rgba(165,5,5,.16) !important;
  transform: scale(1.12) !important;
  box-shadow: 0 0 14px rgba(165,5,5,.22) !important;
}

.sl-all {
  background: rgba(255,255,255,0.52) !important;
  border: 1px solid rgba(165,5,5,.18) !important;
  color: #5c3a1e !important;
  backdrop-filter: blur(12px) !important;
}
.sl-all:hover {
  color: #A50505 !important;
  background: rgba(255,255,255,.72) !important;
  border-color: rgba(165,5,5,.32) !important;
  transform: translateY(-2px) !important;
}
.sl-count { color: #7a4a22 !important; }
.sl-count strong { color: #A50505 !important; }

/* ── SECTION 3: EXPLORE CATEGORIES ── */
#explore-categories {
  background: #fefdfa !important;
  position: relative;
}
#explore-categories::before {
  background-image: radial-gradient(rgba(165,5,5,.045) 1px, transparent 1px) !important;
  background-size: 26px 26px !important;
}

.ec-orb-1 { background: radial-gradient(circle,rgba(165,5,5,.10),transparent 70%) !important; }
.ec-orb-2 { background: radial-gradient(circle,rgba(165,5,5,.07),transparent 70%) !important; }

.ec-eyebrow {
  color: #A50505 !important;
  background: rgba(165,5,5,.09) !important;
  border: 1px solid rgba(165,5,5,.20) !important;
}
.ec-h2 { color: #1A1A1A !important; }
.ec-h2 em {
  background: linear-gradient(135deg,#A50505,#8B0404) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
.ec-sub { color: #5c3a1e !important; }

.ec-card {
  background: rgba(255,255,255,0.58) !important;
  backdrop-filter: blur(12px) !important;
  border: 1px solid rgba(255,255,255,0.78) !important;
  box-shadow: 0 4px 18px rgba(165,5,5,.08), 0 1px 4px rgba(0,0,0,.04) !important;
  transition: transform .55s cubic-bezier(.25,.8,.25,1), box-shadow .55s cubic-bezier(.25,.8,.25,1) !important;
  will-change: transform !important;
}
.ec-card:hover {
  transform: translateY(-12px) !important;
  box-shadow: 0 20px 48px rgba(165,5,5,.18), 0 8px 24px rgba(165,5,5,.10) !important;
}
.ec-card:hover .ec-img { transform: scale(1.07) !important; }

/* ── SECTION 4: ABOUT US ── */
#about-us {
  background: #fefdfa !important;
  position: relative;
}
#about-us::before {
  background-image: radial-gradient(rgba(165,5,5,.05) 1px, transparent 1px) !important;
  background-size: 24px 24px !important;
  z-index: 0 !important;
}

#about-us .au-kicker { color: #A50505 !important; }
#about-us .au-kicker-dot { background: #A50505 !important; box-shadow: 0 0 8px rgba(165,5,5,.40) !important; }
#about-us .au-h2 { color: #1A1A1A !important; }
#about-us .au-h2 em {
  background: linear-gradient(135deg,#A50505,#6B0303) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
#about-us .au-body { color: #3a1e0a !important; }
#about-us p { color: #3a1e0a !important; }

#about-us .au-stat-val,
#about-us .au-count-val { color: #1A1A1A !important; }
#about-us .au-stat-label { color: #5c3a1e !important; }
#about-us .au-stat-suf { color: #A50505 !important; }

#about-us .au-pill {
  background: rgba(255,255,255,0.58) !important;
  backdrop-filter: blur(18px) !important;
  border: 1px solid rgba(255,255,255,0.78) !important;
  box-shadow: 0 8px 32px rgba(165,5,5,.09) !important;
}
#about-us .au-pill-n { color: #1A1A1A !important; }
#about-us .au-pill-l { color: #5c3a1e !important; }
#about-us .au-pill-ic {
  background: rgba(165,5,5,.09) !important;
  border: 1px solid rgba(165,5,5,.16) !important;
}
#about-us .au-pill-ic i { color: #A50505 !important; }

#about-us .au-feat {
  background: rgba(255,255,255,0.50) !important;
  backdrop-filter: blur(14px) !important;
  border: 1px solid rgba(255,255,255,0.72) !important;
  border-radius: 14px !important;
  transition: transform .3s ease, box-shadow .3s ease !important;
}
#about-us .au-feat:hover {
  transform: translateY(-5px) !important;
  background: rgba(255,255,255,.72) !important;
  box-shadow: 0 14px 40px rgba(165,5,5,.14) !important;
}
#about-us .au-feat-h { color: #1A1A1A !important; }
#about-us .au-feat-p { color: #5c3a1e !important; }
#about-us .au-feat-ic {
  background: rgba(165,5,5,.09) !important;
  border: 1px solid rgba(165,5,5,.18) !important;
  color: #A50505 !important;
}

#about-us .au-stat {
  background: rgba(165,5,5,.12) !important;
  backdrop-filter: blur(12px) !important;
  border: 1px solid rgba(255,255,255,.70) !important;
  border-radius: 16px !important;
  transition: transform .3s ease !important;
}
#about-us .au-stat:hover { transform: translateY(-4px) !important; }

#about-us .au-cta,
#about-us .cta-primary {
  background: linear-gradient(135deg,#A50505,#8B0404) !important;
  color: #FDEFD4 !important;
  font-weight: 700 !important;
  border: none !important;
  box-shadow: 0 6px 24px rgba(165,5,5,.26) !important;
}
#about-us .au-cta:hover,
#about-us .cta-primary:hover {
  color: #fff !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 14px 40px rgba(165,5,5,.38) !important;
}

#about-us .au-img-top,
#about-us .au-img-bot {
  box-shadow: 0 20px 60px rgba(165,5,5,.14), 0 0 0 1px rgba(255,255,255,.35) !important;
}
#about-us .au-img-top img,
#about-us .au-img-bot img {
  transition: transform .65s cubic-bezier(.25,.8,.25,1) !important;
}
#about-us .au-img-top:hover img,
#about-us .au-img-bot:hover img { transform: scale(1.06) !important; }

/* ── SECTION 5: EV-FEATURES (was missing — added now) ── */
#ev-features {
  background: #fefdfa !important;
  position: relative;
}
#ev-features::before {
  background-image: radial-gradient(rgba(165,5,5,.05) 1px, transparent 1px) !important;
  background-size: 28px 28px !important;
}
#ev-features::after { display: none !important; }

.fv-orb-1 { background: radial-gradient(circle,rgba(165,5,5,.09),transparent 70%) !important; }
.fv-orb-2 { background: radial-gradient(circle,rgba(165,5,5,.06),transparent 70%) !important; }

.fv-eyebrow { color: #A50505 !important; }
.fv-eyebrow::before { background: #A50505 !important; }
.fv-h2 { color: #1A1A1A !important; }
.fv-h2 em {
  background: linear-gradient(135deg,#A50505,#6B0303) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
.fv-sub { color: #5c3a1e !important; }

.fv-badge {
  background: rgba(255,255,255,0.55) !important;
  border: 1px solid rgba(255,255,255,0.75) !important;
  backdrop-filter: blur(14px) !important;
  box-shadow: 0 2px 12px rgba(165,5,5,.08) !important;
}
.fv-badge-n {
  background: linear-gradient(135deg,#A50505,#6B0303) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
.fv-badge-l { color: #5c3a1e !important; }

.fv-card {
  background: rgba(255,255,255,0.52) !important;
  border: 1px solid rgba(255,255,255,0.72) !important;
  backdrop-filter: blur(12px) !important;
  border-radius: 20px !important;
  box-shadow: 0 4px 18px rgba(165,5,5,.08) !important;
  transition: transform .3s ease, box-shadow .3s ease, background .28s, border-color .28s !important;
}
.fv-card:hover {
  background: rgba(255,255,255,.78) !important;
  border-color: rgba(255,255,255,.92) !important;
  box-shadow: 0 22px 52px rgba(165,5,5,.14) !important;
  transform: translateY(-7px) !important;
}
.fv-card:hover .fv-dot { background: #A50505 !important; box-shadow: 0 0 10px rgba(165,5,5,.45) !important; }
.fv-title { color: #1A1A1A !important; }
.fv-card:hover .fv-title { color: #A50505 !important; }
.fv-body { color: #5c3a1e !important; }
.fv-link { color: #7a4a22 !important; }
.fv-card:hover .fv-link { color: #A50505 !important; }

.fv-cta {
  background: rgba(255,255,255,0.52) !important;
  border: 1px solid rgba(255,255,255,0.72) !important;
  backdrop-filter: blur(12px) !important;
  box-shadow: 0 4px 16px rgba(165,5,5,.08) !important;
}
.fv-cta-txt { color: #1A1A1A !important; }
.fv-cta-s { color: #5c3a1e !important; }
.fv-btn-p {
  background: linear-gradient(135deg,#A50505,#8B0404) !important;
  color: #FDEFD4 !important;
  box-shadow: 0 4px 16px rgba(165,5,5,.28) !important;
}
.fv-btn-p:hover { color: #fff !important; transform: translateY(-2px) !important; box-shadow: 0 8px 24px rgba(165,5,5,.38) !important; }
.fv-btn-g {
  background: rgba(255,255,255,0.55) !important;
  color: #3a1e0a !important;
  border: 1px solid rgba(165,5,5,.18) !important;
}
.fv-btn-g:hover { background: rgba(255,255,255,.82) !important; color: #A50505 !important; border-color: rgba(165,5,5,.32) !important; }

/* ── SECTION 6: TESTIMONIALS ── */
#testimonials {
  background: #fefdfa !important;
  position: relative;
}

.tm-kicker { color: #A50505 !important; }
.tm-kicker-dot { background: #A50505 !important; box-shadow: 0 0 8px rgba(165,5,5,.38) !important; }
.tm-h2 { color: #1A1A1A !important; }
.tm-h2 em {
  background: linear-gradient(135deg,#A50505,#6B0303) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}

.tm-panel {
  background: linear-gradient(135deg,#A50505 0%,#8B0404 100%) !important;
  box-shadow: 0 20px 60px rgba(165,5,5,.28) !important;
  border: 1px solid rgba(165,5,5,.32) !important;
}
.tm-panel::before {
  background: linear-gradient(135deg,rgba(255,255,255,.12) 0%,transparent 55%) !important;
}

.tm-card {
  background: rgba(255,255,255,0.52) !important;
  backdrop-filter: blur(14px) !important;
  border: 1px solid rgba(255,255,255,0.72) !important;
  border-radius: 22px !important;
  box-shadow: 0 4px 20px rgba(165,5,5,.09) !important;
  transition: transform .3s ease, box-shadow .3s ease !important;
}
.tm-card:hover {
  background: rgba(255,255,255,.76) !important;
  border-color: rgba(255,255,255,.90) !important;
  transform: translateY(-6px) !important;
  box-shadow: 0 16px 48px rgba(165,5,5,.16) !important;
}
.tm-quote { color: #2a140a !important; }
.tm-name { color: #1A1A1A !important; }
.tm-card:hover .tm-name { color: #A50505 !important; }
.tm-role { color: #6b3e1e !important; }
.tm-card-div { background: rgba(165,5,5,.14) !important; }
.tm-qicon { color: rgba(165,5,5,.28) !important; }
.tm-card:hover .tm-qicon { color: rgba(165,5,5,.52) !important; }

.tm-dot { background: rgba(165,5,5,.18) !important; }
.tm-dot.active { background: #A50505 !important; box-shadow: 0 0 10px rgba(165,5,5,.42) !important; }

.tm-arrow {
  background: rgba(255,255,255,0.48) !important;
  border: 1px solid rgba(255,255,255,0.70) !important;
  color: #1A1A1A !important;
}
.tm-arrow:hover { background: rgba(255,255,255,.72) !important; border-color: rgba(255,255,255,.90) !important; }

/* ══════════════════════════════════════════════════════
   FOOTER → mellow gold #DCAA5A — deepest warm, never muddy
══════════════════════════════════════════════════════ */
#site-footer {
  background: linear-gradient(180deg, #fdf3e0 0%, #fdf3e0 50%, #fdf3e0 100%) !important;
}

.fo-nl { border-bottom: 1px solid rgba(255,255,255,.18) !important; }
.fo-nl-h { color: #1A1A1A !important; }
.fo-nl-h em {
  background: linear-gradient(135deg,#A50505,#6B0303) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
.fo-nl-tag { color: #1A1A1A !important; }
.fo-nl-tag::before { background: #1A1A1A !important; }

.fo-nl-input {
  background: rgba(255,255,255,0.45) !important;
  border: 1px solid rgba(255,255,255,.55) !important;
  backdrop-filter: blur(12px) !important;
  color: #1A1A1A !important;
}
.fo-nl-input::placeholder { color: rgba(30,15,5,.55) !important; }
.fo-nl-input:focus {
  border-color: rgba(255,255,255,.85) !important;
  background: rgba(255,255,255,.68) !important;
  box-shadow: 0 0 0 3px rgba(255,255,255,.20) !important;
}

.fo-nl-btn {
  background: linear-gradient(135deg,#A50505,#8B0404) !important;
  color: #FDEFD4 !important;
  box-shadow: 0 4px 18px rgba(165,5,5,.30) !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
}
.fo-nl-btn:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 10px 28px rgba(165,5,5,.45) !important;
}

/*.fo-logo { filter: drop-shadow(0 0 10px rgba(0,0,0,.20)) !important; }*/
.fo-tagline { color: rgba(30,10,0,.75) !important; }
.fo-col-h { color: #1A1A1A !important; }
.fo-links a { color: rgba(30,10,0,.70) !important; }
.fo-links a:hover { color: #1A1A1A !important; }
.fo-links a::before { background: #1A1A1A !important; }

.fo-soc {
  background: rgba(255,255,255,0.35) !important;
  border: 1px solid rgba(255,255,255,.50) !important;
  color: #1A1A1A !important;
  transition: background .22s, transform .22s, box-shadow .22s !important;
}
.fo-soc:hover {
  background: rgba(255,255,255,.58) !important;
  border-color: rgba(255,255,255,.80) !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 6px 18px rgba(0,0,0,.14) !important;
}

.fo-contact-ic {
  background: rgba(255,255,255,.30) !important;
  border: 1px solid rgba(255,255,255,.45) !important;
  color: #1A1A1A !important;
}
.fo-contact-text { color: rgba(30,10,0,.72) !important; }
.fo-contact-text strong { color: #1A1A1A !important; }
.fo-copy { color: rgba(30,10,0,.68) !important; }
.fo-copy a { color: #1A1A1A !important; }
.fo-legal a { color: rgba(30,10,0,.65) !important; }
.fo-legal a:hover { color: #1A1A1A !important; }
.fo-bottom { border-top: 1px solid rgba(184,58,58,0.56) !important; }

/* ══════════════════════════════════════════════════════
   MOBILE APP-LIKE ENHANCEMENTS
══════════════════════════════════════════════════════ */
#mobile-nav {
  background: rgba(255,255,255,.97) !important;
  backdrop-filter: blur(32px) !important;
  border-bottom: 1px solid rgba(165,5,5,.12) !important;
  box-shadow: 0 12px 40px rgba(165,5,5,.10) !important;
}
#mobile-nav a { color: #1e293b !important; border-radius: 12px !important; min-height: 48px !important; }
#mobile-nav a:hover { background: rgba(165,5,5,.07) !important; color: #A50505 !important; }
#mobile-nav a.active { background: rgba(165,5,5,.10) !important; color: #A50505 !important; font-weight: 600 !important; }

.mob-search input {
  background: rgba(165,5,5,.05) !important;
  border: 1px solid rgba(165,5,5,.16) !important;
  border-radius: 50px !important;
}

/* Touch-friendly button sizes on mobile */
@media (max-width: 767px) {
  .cta-primary, .cta-ghost {
    padding: .7rem 1.3rem !important;
    font-size: .95rem !important;
    border-radius: 14px !important;
    min-height: 48px !important;
  }
  .btn-login { min-height: 44px !important; padding: .55rem 1.4rem !important; }
  .sl-seg-btn { min-height: 42px !important; }
  .sl-bm { width: 38px !important; height: 38px !important; }

  /* Rounded mobile sections */
  .sl-panel { border-radius: 18px !important; }
  .ec-card { border-radius: 18px !important; }
  .tm-card { border-radius: 18px !important; }

  /* Compact but breathable spacing */
  #explore-events  { padding: 3rem 0 4rem !important; }
  #explore-categories { padding: 3rem 0 3.5rem !important; }
  #about-us { padding: 3.5rem 0 4rem !important; }
  #testimonials { padding: 3rem 0 3.5rem !important; }
}

/* ══════════════════════════════════════════════════════
   STAGGER ANIMATION — cards reveal on scroll
   Note: ec-card uses IntersectionObserver + CSS transition,
   not a CSS animation, so hover transform works cleanly.
══════════════════════════════════════════════════════ */
.ec-card.ec-in { opacity: 1 !important; transform: translateY(0) !important; }

/* Fade-up for section headings */
.sl-reveal, .ec-fade, .au-rl, .au-rr, .au-rf, .tm-fade {
  transition: opacity .7s cubic-bezier(.4,0,.2,1), transform .7s cubic-bezier(.4,0,.2,1) !important;
}

/* Image hover zoom */
.au-img-top img, .au-img-bot img, .ec-img {
  transition: transform .55s cubic-bezier(.25,.8,.25,1) !important;
}

/* ══════════════════════════════════════════════════════
   PREMIUM BUTTON GRADIENT HOVER
══════════════════════════════════════════════════════ */
.fo-nl-btn:hover,
.sl-seg-btn.active,
.btn-login:hover {
  background: linear-gradient(135deg,#A50505,#8B0404) !important;
}

/* Smooth global transitions */
*, *::before, *::after {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
a, button { transition: color .22s ease, background .22s ease, transform .22s ease, box-shadow .22s ease; }

#explore-events{background: #fefdfa;padding:2.5rem 0 4rem;position:relative;overflow:hidden;}
#explore-events::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(165,5,5,.04) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;z-index:0;}
.sl-orb{position:absolute;border-radius:50%;pointer-events:none;z-index:0;filter:blur(110px);}
.sl-orb-1{width:560px;height:560px;background:radial-gradient(circle,rgba(165,5,5,.09),transparent 70%);top:-200px;left:-200px;}
.sl-orb-2{width:500px;height:500px;background:radial-gradient(circle,rgba(139,92,246,.07),transparent 70%);bottom:-180px;right:-180px;}
.sl-wrap{max-width:1180px;margin:0 auto;padding:0 1.5rem;position:relative;z-index:1;}
.sl-reveal{opacity:0;transform:translateY(20px);transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1);}
.sl-reveal.sl-in{opacity:1;transform:translateY(0);}
.sl-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:3rem;flex-wrap:wrap;}
.sl-header-left{flex:1;min-width:180px;}
.sl-eyebrow{display:inline-flex;align-items:center;gap:.42rem;font-family:'DM Sans',sans-serif;font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sky);margin-bottom:.5rem;}
.sl-eyebrow::before{content:'';width:18px;height:2px;border-radius:2px;background:var(--sky);flex-shrink:0;}
.sl-h2{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(2rem,3.8vw,2.9rem);font-weight:700;color:var(--t1);line-height:1.1;letter-spacing:-.025em;margin:0 0 .45rem;}
.sl-h2 em{font-style:italic;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.sl-h2-sub{font-family:'DM Sans',sans-serif;font-size:.87rem;color:var(--t3);line-height:1.6;margin:0;}
.sl-all{display:inline-flex;align-items:center;gap:.4rem;font-family:'DM Sans',sans-serif;font-size:.875rem;font-weight:600;color:var(--t3);border:1px solid rgba(165,5,5,.18);background:rgba(255,255,255,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:50px;padding:.5rem 1.15rem;text-decoration:none;white-space:nowrap;flex-shrink:0;align-self:flex-start;transition:color .2s,background .2s,border-color .2s,transform .18s;box-shadow:var(--sm);}
.sl-all:hover{color:var(--sky);background:rgba(165,5,5,.08);border-color:rgba(165,5,5,.32);transform:translateY(-1px);}
.sl-all i{font-size:.7rem;}
.sl-switcher-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2.4rem;flex-wrap:wrap;}
.sl-seg{display:inline-flex;align-items:center;background:rgba(255,255,255,.8);border:1px solid rgba(165,5,5,.16);border-radius:50px;padding:.28rem;gap:0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--sm);}
.sl-seg-btn{font-family:'DM Sans',sans-serif;font-size:.875rem;font-weight:600;color:var(--t3);background:none;border:none;border-radius:50px;padding:.52rem 1.6rem;cursor:pointer;white-space:nowrap;transition:color .25s,background .25s,box-shadow .25s,transform .15s;letter-spacing:.01em;}
.sl-seg-btn:hover{color:var(--t1);background:rgba(165,5,5,.07);}
.sl-seg-btn.active{background:var(--grad);color:#fff;box-shadow:0 4px 18px rgba(165,5,5,.28);transform:scale(1.02);}
.sl-count{font-family:'DM Sans',sans-serif;font-size:.72rem;color:var(--t4);flex-shrink:0;}
.sl-count strong{color:var(--sky);font-weight:700;}
.sl-panel{background:rgba(255,255,255,.78);border:1px solid rgba(165,5,5,.10);border-radius:20px;overflow:hidden;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--md);}
.sl-row{display:grid;grid-template-columns:80px 180px 1fr auto;align-items:center;gap:0;padding:0;border-bottom:1px solid rgba(165,5,5,.07);cursor:pointer;position:relative;overflow:hidden;opacity:0;transform:translateX(-16px);transition:opacity .55s cubic-bezier(.4,0,.2,1),transform .55s cubic-bezier(.4,0,.2,1),background .22s;}
.sl-row:last-child{border-bottom:none;}
.sl-row.sl-in{opacity:1;transform:translateX(0);}
.sl-row.sl-hidden{display:none;}
.sl-row::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(253,239,212,.35) 0%,rgba(253,239,212,.10) 100%);opacity:0;transition:opacity .25s;pointer-events:none;}
.sl-row:hover::before{opacity:1;}
.sl-row:hover{background:rgba(253,239,212,.28);}
.sl-row::after{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--grad);transform:scaleY(0);transform-origin:center;transition:transform .3s cubic-bezier(.4,0,.2,1);border-radius:0 2px 2px 0;}
.sl-row:hover::after{transform:scaleY(1);}
.sl-thumb-col{display:flex;align-items:center;justify-content:center;padding:1.35rem 0 1.35rem 1.4rem;}
.sl-thumb{width:62px;height:62px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid rgba(165,5,5,.12);box-shadow:var(--sm);transition:border-color .25s,transform .25s,box-shadow .25s;}
.sl-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.sl-row:hover .sl-thumb{border-color:rgba(165,5,5,.35);transform:scale(1.06);box-shadow:0 6px 20px rgba(165,5,5,.14);}
.sl-time-col{padding:1.35rem 1.2rem;border-right:1px solid rgba(165,5,5,.08);}
.sl-time{font-family:'DM Sans',sans-serif;font-size:.9rem;font-weight:700;color:var(--t1);letter-spacing:-.01em;white-space:nowrap;margin-bottom:.28rem;}
.sl-date{font-family:'DM Sans',sans-serif;font-size:.72rem;color:var(--t3);}
.sl-content-col{padding:1.35rem 1.5rem;}
.sl-ev-title{font-family:'Bricolage Grotesque',sans-serif;font-size:1rem;font-weight:700;color:var(--t1);line-height:1.28;letter-spacing:-.01em;margin-bottom:.38rem;transition:color .22s;}
.sl-row:hover .sl-ev-title{color:var(--blue);}
.sl-ev-desc{font-family:'DM Sans',sans-serif;font-size:.875rem;color:var(--t3);line-height:1.68;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.sl-meta-col{padding:1.35rem 1.4rem 1.35rem 1rem;display:flex;flex-direction:column;align-items:flex-end;gap:.55rem;border-left:1px solid rgba(165,5,5,.08);min-width:160px;}
.sl-loc{display:flex;align-items:flex-start;gap:.38rem;text-align:right;}
.sl-loc-icon{width:28px;height:28px;border-radius:8px;background:rgba(165,5,5,.07);border:1px solid rgba(165,5,5,.14);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s,border-color .2s;}
.sl-loc-icon i{color:var(--blue);font-size:.72rem;}
.sl-row:hover .sl-loc-icon{background:rgba(165,5,5,.14);border-color:rgba(165,5,5,.32);}
.sl-loc-text{font-family:'DM Sans',sans-serif;font-size:.71rem;color:var(--t3);line-height:1.55;}
.sl-loc-text strong{display:block;color:var(--t2);font-weight:500;font-size:.73rem;}
.sl-foot-row{display:flex;align-items:center;gap:.55rem;}
.sl-price{font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:700;padding:.22rem .72rem;border-radius:50px;white-space:nowrap;letter-spacing:.02em;}
.sl-price.free{background:rgba(165,5,5,.09);border:1px solid rgba(165,5,5,.20);color:var(--sky);}
.sl-price.paid{background:rgba(200,56,10,.09);border:1px solid rgba(200,56,10,.20);color:var(--blue);}
.sl-bm{width:30px;height:30px;border-radius:8px;background:rgba(165,5,5,.07);border:1px solid rgba(165,5,5,.14);color:var(--blue);font-size:.875rem;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .2s,color .2s,border-color .2s,box-shadow .2s,transform .18s;}
.sl-bm:hover{background:rgba(165,5,5,.14);border-color:rgba(165,5,5,.32);color:var(--sky);box-shadow:0 0 12px rgba(165,5,5,.22);transform:scale(1.1);}
.sl-bm.saved{background:rgba(165,5,5,.14);border-color:rgba(165,5,5,.30);color:var(--sky);}
.sl-cat-tag{display:inline-flex;align-items:center;font-family:'DM Sans',sans-serif;font-size:.57rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.14rem .6rem;border-radius:50px;border:1px solid currentColor;margin-bottom:.3rem;}

@media(max-width:1100px){.sl-row{grid-template-columns:72px 160px 1fr auto;}.sl-meta-col{min-width:140px;}}
@media(max-width:991px){#explore-events{padding:3.5rem 0 4.5rem;}.sl-h2{font-size:clamp(1.75rem,4.5vw,2.3rem);}.sl-row{grid-template-columns:66px 1fr auto;}.sl-time-col{border-right:none;padding:1.1rem .9rem;}.sl-ev-desc{display:none;}.sl-content-col{padding:1.1rem 1rem;}.sl-meta-col{min-width:130px;padding:1.1rem 1.1rem 1.1rem .8rem;}}
@media(max-width:767px){#explore-events{padding:2.75rem 0 3.75rem;}.sl-h2{font-size:clamp(1.55rem,6vw,2rem);}.sl-header{flex-direction:column;align-items:flex-start;gap:.75rem;}.sl-switcher-row{flex-direction:column;align-items:flex-start;gap:.55rem;}.sl-seg{overflow-x:auto;max-width:100%;scrollbar-width:none;-webkit-overflow-scrolling:touch;}.sl-seg::-webkit-scrollbar{display:none;}.sl-seg-btn{flex-shrink:0;padding:.5rem 1.2rem;}.sl-panel{border-radius:16px;}.sl-row{display:flex;flex-direction:column;align-items:stretch;padding:1rem;gap:0;border-bottom:1px solid rgba(165,5,5,.07);}.sl-row::after{width:100%;height:3px;top:0;bottom:auto;left:0;right:0;transform:scaleX(0);transform-origin:left;}.sl-row:hover::after{transform:scaleX(1);}.sl-thumb-col{flex-direction:row;justify-content:flex-start;align-items:center;gap:.9rem;padding:0 0 .75rem 0;}.sl-thumb{width:52px;height:52px;}.sl-time-col{display:none;}.sl-content-col{padding:0 0 .65rem 0;border:none;}.sl-ev-desc{display:block;-webkit-line-clamp:2;}.sl-meta-col{flex-direction:row;align-items:center;justify-content:space-between;padding:.65rem 0 0 0;border-left:none;border-top:1px solid rgba(165,5,5,.065);min-width:unset;}.sl-loc{text-align:left;}.sl-loc-text strong{display:inline;}}
@media(max-width:480px){.sl-ev-desc{display:none;}.sl-seg-btn{padding:.46rem .95rem;}}

#explore-categories{background: #fefdfa;padding:3rem 0 3rem;position:relative;overflow:hidden;}
#explore-categories::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(200,56,10,.05) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;z-index:0;}
.ec-orb{position:absolute;border-radius:50%;pointer-events:none;z-index:0;filter:blur(120px);}
.ec-orb-1{width:580px;height:580px;background:radial-gradient(circle,rgba(165,5,5,.09),transparent 70%);top:-180px;right:-160px;}
.ec-orb-2{width:500px;height:500px;background:radial-gradient(circle,rgba(139,92,246,.07),transparent 70%);bottom:-160px;left:-140px;}
.ec-wrap{max-width:1220px;margin:0 auto;padding:0 1.5rem;position:relative;z-index:1;}
.ec-fade{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1);}
.ec-fade.ec-in{opacity:1;transform:translateY(0);}
.ec-header{text-align:center;margin-bottom:3rem;}
.ec-eyebrow{display:inline-flex;align-items:center;gap:.52rem;font-family:'DM Sans',sans-serif;font-size:.64rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--blue);background:rgba(200,56,10,.07);border:1px solid rgba(200,56,10,.16);border-radius:50px;padding:.3rem 1rem;margin-bottom:.75rem;}
.ec-eyebrow i{font-size:.72rem;}
.ec-h2{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(2rem,3.8vw,2.9rem);font-weight:800;color:var(--t1);line-height:1.08;letter-spacing:-.03em;margin:0 0 .6rem;}
.ec-h2 em{font-style:italic;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.ec-sub{font-family:'DM Sans',sans-serif;font-size:.94rem;color:var(--t3);line-height:1.65;margin:0 auto;max-width:460px;}
.ec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.35rem;}
.ec-card{position:relative;border-radius:18px;overflow:hidden;cursor:pointer;aspect-ratio:3/4;display:block;text-decoration:none;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.04),0 10px 30px rgba(165,5,5,.09),0 0 0 1px rgba(165,5,5,.07);opacity:0;transform:translateY(28px);transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .55s cubic-bezier(.25,.8,.25,1),box-shadow .55s cubic-bezier(.25,.8,.25,1);}
.ec-card.ec-in{opacity:1;transform:translateY(0);}
.ec-card:hover{transform:translateY(-12px);box-shadow:0 20px 48px rgba(165,5,5,.18),0 8px 24px rgba(165,5,5,.10);}
.ec-card:focus-visible{outline:2.5px solid var(--blue);outline-offset:3px;}
.ec-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s cubic-bezier(.25,.8,.25,1);will-change:transform;}
.ec-card:hover .ec-img{transform:scale(1.06);}
.ec-grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,10,25,.02) 0%,rgba(5,10,25,.04) 30%,rgba(5,10,25,.52) 65%,rgba(5,10,25,.90) 100%);transition:background .35s;}
.ec-card:hover .ec-grad{background:linear-gradient(180deg,rgba(5,10,25,.05) 0%,rgba(5,10,25,.08) 30%,rgba(5,10,25,.62) 65%,rgba(5,10,25,.95) 100%);}
.ec-glow{position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(180deg,transparent 0%,rgba(165,5,5,.0) 50%,rgba(165,5,5,.06) 100%);opacity:0;transition:opacity .4s;pointer-events:none;}
.ec-card:hover .ec-glow{opacity:1;}
.ec-count{position:absolute;top:.88rem;right:.88rem;font-family:'DM Sans',sans-serif;font-size:.6rem;font-weight:700;letter-spacing:.06em;color:#fff;background:rgba(10,18,40,.52);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.22);border-radius:50px;padding:.22rem .65rem;transition:background .2s,border-color .2s;}
.ec-card:hover .ec-count{background:rgba(200,56,10,.75);border-color:rgba(200,56,10,.9);}
.ec-arrow{position:absolute;top:.85rem;left:.85rem;width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.8);font-size:.875rem;opacity:0;transform:scale(.85) translateY(-4px);transition:opacity .28s,transform .28s,background .2s,border-color .2s,color .2s;}
.ec-card:hover .ec-arrow{opacity:1;transform:scale(1) translateY(0);background:rgba(200,56,10,.82);border-color:rgba(200,56,10,1);color:#fff;}
.ec-label{position:absolute;bottom:0;left:0;right:0;padding:.8rem 1rem 1rem;}
.ec-title{font-family:'Bricolage Grotesque',sans-serif;font-size:1.05rem;font-weight:700;color:#fff;line-height:1.2;letter-spacing:-.01em;margin:0 0 .32rem;transition:color .22s;text-shadow:0 1px 10px rgba(0,0,0,.55);}
.ec-card:hover .ec-title{color:#FDEFD4;}
.ec-sub-line{display:flex;align-items:center;gap:.28rem;font-family:'DM Sans',sans-serif;font-size:.66rem;font-weight:500;color:rgba(255,255,255,.65);}
.ec-sub-line i{color:#9F0505;font-size:.62rem;}
.ec-bar{position:absolute;bottom:0;left:0;right:0;height:2.5px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.4,0,.2,1);border-radius:0 2px 2px 0;}
.ec-card:hover .ec-bar{transform:scaleX(1);}

@media(max-width:1100px){.ec-grid{gap:1rem;}}
@media(max-width:991px){#explore-categories{padding:3.5rem 0 4.5rem;}.ec-h2{font-size:clamp(1.75rem,4.5vw,2.3rem);}.ec-grid{grid-template-columns:repeat(3,1fr);gap:.95rem;}}
@media(max-width:767px){#explore-categories{padding:2.75rem 0 3.5rem;}.ec-h2{font-size:clamp(1.55rem,6vw,2rem);}.ec-grid{grid-template-columns:repeat(2,1fr);gap:.85rem;}.ec-card{border-radius:15px;aspect-ratio:3/3.8;}.ec-title{font-size:.92rem;}.ec-count{font-size:.56rem;padding:.18rem .55rem;}.ec-label{padding:.65rem .8rem .85rem;}}
@media(max-width:380px){.ec-grid{gap:.7rem;}.ec-title{font-size:.875rem;}.ec-sub-line{display:none;}}

#about-us{background: #fefdfa;padding:3rem 0 3rem;position:relative;overflow:hidden;}
#about-us::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(200,56,10,.05) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;z-index:0;}
.au-orb{position:absolute;border-radius:50%;pointer-events:none;z-index:0;filter:blur(110px);}
.au-orb-a{width:520px;height:520px;background:radial-gradient(circle,rgba(165,5,5,.10),transparent 70%);top:-170px;left:-170px;}
.au-orb-b{width:480px;height:480px;background:radial-gradient(circle,rgba(139,92,246,.08),transparent 70%);bottom:-150px;right:-150px;}
.au-inner{max-width:1180px;margin:0 auto;padding:0 1.5rem;position:relative;z-index:1;}
.au-rl{opacity:0;transform:translateX(-30px);transition:opacity .75s cubic-bezier(.4,0,.2,1),transform .75s cubic-bezier(.4,0,.2,1);}
.au-rr{opacity:0;transform:translateX(30px);transition:opacity .75s cubic-bezier(.4,0,.2,1),transform .75s cubic-bezier(.4,0,.2,1);}
.au-rf{opacity:0;transform:translateY(22px);transition:opacity .72s cubic-bezier(.4,0,.2,1),transform .72s cubic-bezier(.4,0,.2,1);}
.au-rl.au-v,.au-rr.au-v,.au-rf.au-v{opacity:1;transform:translate(0);}
.au-grid{display:grid;grid-template-columns:1fr 1.08fr;align-items:center;gap:5rem;}
.au-col-img{position:relative;min-height:520px;}
.au-img-top{position:absolute;top:0;left:0;width:68%;aspect-ratio:4/3;border-radius:22px;overflow:hidden;box-shadow:0 18px 52px rgba(165,5,5,.14),0 0 0 1px rgba(165,5,5,.10);z-index:2;}
.au-img-top img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.25,.8,.25,1);}
.au-img-top:hover img{transform:scale(1.05);}
.au-img-top::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(165,5,5,.12);pointer-events:none;}
.au-img-bot{position:absolute;bottom:0;right:0;width:78%;aspect-ratio:4/3.1;border-radius:22px;overflow:hidden;box-shadow:0 24px 64px rgba(165,5,5,.16),0 0 0 1px rgba(139,92,246,.10);z-index:3;}
.au-img-bot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.25,.8,.25,1);}
.au-img-bot:hover img{transform:scale(1.05);}
.au-img-bot::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(139,92,246,.10);pointer-events:none;}
.au-dots{position:absolute;bottom:18px;left:-10px;width:88px;height:88px;background-image:radial-gradient(circle,rgba(165,5,5,.35) 1.5px,transparent 1.5px);background-size:10px 10px;z-index:1;pointer-events:none;}
.au-pill{position:absolute;bottom:-16px;left:-16px;z-index:10;background:rgba(255,255,255,.90);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(165,5,5,.16);border-radius:14px;padding:.65rem 1rem;display:flex;align-items:center;gap:.7rem;box-shadow:var(--md);}
.au-pill-ic{width:34px;height:34px;border-radius:9px;flex-shrink:0;background:linear-gradient(135deg,rgba(165,5,5,.15),rgba(200,56,10,.15));border:1px solid rgba(165,5,5,.20);display:flex;align-items:center;justify-content:center;}
.au-pill-ic i{color:var(--sky);font-size:.875rem;}
.au-pill-n{font-family:'Bricolage Grotesque',sans-serif;font-size:1.05rem;font-weight:700;color:var(--t1);line-height:1;letter-spacing:-.02em;}
.au-pill-n span{font-size:.75rem;color:var(--sky);}
.au-pill-l{font-family:'DM Sans',sans-serif;font-size:.63rem;color:var(--t3);margin-top:.1rem;}
.au-badge{position:absolute;top:-20px;right:-20px;z-index:10;width:110px;height:110px;display:flex;align-items:center;justify-content:center;}
.au-badge-svg{position:absolute;inset:0;animation:au-spin 11s linear infinite;}
.au-badge:hover .au-badge-svg{animation-play-state:paused;}
@keyframes au-spin{to{transform:rotate(360deg);}}
.au-badge-ctr{position:relative;z-index:2;width:54px;height:54px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;box-shadow:0 0 24px rgba(165,5,5,.35),0 6px 20px rgba(165,5,5,.20);cursor:pointer;transition:transform .3s,box-shadow .3s;}
.au-badge-ctr:hover{transform:scale(1.1);box-shadow:0 0 36px rgba(165,5,5,.50),0 10px 28px rgba(165,5,5,.25);}
.au-badge-ctr i{font-size:1.15rem;color:#fff;}
.au-kicker{display:inline-flex;align-items:center;gap:.45rem;font-family:'DM Sans',sans-serif;font-size:.64rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--sky);margin-bottom:.7rem;}
.au-kicker-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--sky);box-shadow:0 0 8px rgba(165,5,5,.6);}
.au-h2{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(1.75rem,3vw,2.5rem);font-weight:700;color:var(--t1);line-height:1.16;letter-spacing:-.025em;margin:0 0 1rem;}
.au-h2 em{font-style:italic;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.au-body{font-family:'DM Sans',sans-serif;font-size:.875rem;color:var(--t3);line-height:1.82;margin-bottom:1.6rem;}
.au-checks{display:grid;grid-template-columns:1fr 1fr;gap:.72rem 1.4rem;margin-bottom:1.8rem;}
.au-check{display:flex;align-items:flex-start;gap:.55rem;}
.au-check-ic{width:20px;height:20px;border-radius:50%;flex-shrink:0;margin-top:.06rem;background:var(--grad);display:flex;align-items:center;justify-content:center;box-shadow:0 0 10px rgba(165,5,5,.20);}
.au-check-ic i{font-size:.56rem;color:#fff;}
.au-check span{font-family:'DM Sans',sans-serif;font-size:.875rem;color:var(--t3);line-height:1.55;}
.au-trust{background:rgba(255,255,255,.78);border:1px solid rgba(165,5,5,.14);border-left:3px solid var(--sky);border-radius:0 14px 14px 0;padding:.85rem 1.1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2rem;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}
.au-trust-txt{font-family:'DM Sans',sans-serif;font-size:.875rem;font-weight:600;color:var(--t1);line-height:1.5;}
.au-avs{display:flex;align-items:center;flex-shrink:0;}
.au-av{width:32px;height:32px;border-radius:50%;flex-shrink:0;border:2.5px solid rgba(255,255,255,.9);margin-left:-9px;overflow:hidden;}
.au-avs .au-av:first-child{margin-left:0;}
.au-av img{width:100%;height:100%;object-fit:cover;display:block;}
.au-av-more{width:32px;height:32px;border-radius:50%;flex-shrink:0;border:2.5px solid rgba(255,255,255,.9);margin-left:-9px;background:var(--grad);font-family:'DM Sans',sans-serif;font-size:.58rem;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;}
.au-ctas{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap;}
.au-btn{font-family:'DM Sans',sans-serif;font-size:.83rem;font-weight:700;background:var(--grad);color:#fff;border:none;border-radius:50px;padding:.7rem 1.75rem;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;white-space:nowrap;box-shadow:0 4px 18px rgba(165,5,5,.28);transition:transform .22s,box-shadow .22s,filter .22s;}
.au-btn:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 28px rgba(165,5,5,.40);filter:brightness(1.06);color:#fff;}
.au-email{display:flex;align-items:center;gap:.75rem;text-decoration:none;}
.au-email-ic{width:44px;height:44px;border-radius:50%;flex-shrink:0;background:rgba(165,5,5,.08);border:1px solid rgba(165,5,5,.18);display:flex;align-items:center;justify-content:center;color:var(--blue);font-size:1.2rem;transition:background .22s,border-color .22s,box-shadow .22s;}
.au-email:hover .au-email-ic{background:rgba(165,5,5,.15);border-color:rgba(165,5,5,.32);box-shadow:0 0 18px rgba(165,5,5,.20);}
.au-email-lbl{font-family:'DM Sans',sans-serif;font-size:.875rem;font-weight:700;color:var(--t1);display:block;transition:color .2s;}
.au-email:hover .au-email-lbl{color:var(--blue);}
.au-email-val{font-family:'DM Sans',sans-serif;font-size:.71rem;color:var(--t3);}
.au-stats{margin-top:4rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border-radius:18px;overflow:hidden;}
.au-stat{background:#fef8ee;padding:1.6rem 1.2rem;text-align:center;position:relative;transition:background .25s;}
.au-stat:hover{background:#fff;}
.au-stat::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:0;height:2px;background:var(--grad);border-radius:2px;transition:width .4s cubic-bezier(.4,0,.2,1);}
.au-stat:hover::after{width:55%;}
.au-stat-n{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(1.6rem,2.6vw,2.3rem);font-weight:700;line-height:1;margin-bottom:.35rem;color:var(--t1);}
.au-stat-n em{font-style:normal;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.au-stat-l{font-family:'DM Sans',sans-serif;font-size:.73rem;color:var(--t3);}

@media(max-width:1100px){.au-grid{gap:3.5rem;}}
@media(max-width:991px){#about-us{padding:3.5rem 0 4.5rem;}.au-grid{grid-template-columns:1fr;gap:3rem;}.au-col-img{min-height:420px;}.au-checks{grid-template-columns:1fr;}.au-stats{grid-template-columns:repeat(2,1fr);margin-top:2.5rem;}}
@media(max-width:767px){#about-us{padding:2.75rem 0 3.5rem;}.au-h2{font-size:clamp(1.5rem,6vw,1.9rem);}.au-col-img{min-height:340px;}.au-img-top{width:65%;border-radius:16px;}.au-img-bot{width:76%;border-radius:16px;}.au-badge{width:88px;height:88px;top:-12px;right:-12px;}.au-badge-ctr{width:46px;height:46px;}.au-trust{flex-direction:column;align-items:flex-start;gap:.75rem;}.au-ctas{flex-direction:column;align-items:flex-start;}}

#ev-features{background: #fefdfa;padding:2rem 0 3rem;position:relative;overflow:hidden;}
#ev-features::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(200,56,10,.05) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;z-index:0;}
#ev-features::after{content:'';position:absolute;inset:0;background:linear-gradient(118deg,transparent 0%,transparent 55%,rgba(165,5,5,.022) 55%,rgba(200,56,10,.016) 100%);pointer-events:none;z-index:0;}
.fv-orb{position:absolute;border-radius:50%;pointer-events:none;z-index:0;filter:blur(120px);}
.fv-orb-1{width:560px;height:560px;background:radial-gradient(circle,rgba(165,5,5,.09),transparent 70%);bottom:-160px;left:-160px;}
.fv-orb-2{width:500px;height:500px;background:radial-gradient(circle,rgba(139,92,246,.07),transparent 70%);top:-140px;right:-120px;}
.fv-wrap{max-width:1200px;margin:0 auto;padding:0 1.5rem;position:relative;z-index:1;}
.fv-fade{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1);}
.fv-fade.fv-on{opacity:1;transform:none;}
.fv-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:3.5rem;flex-wrap:wrap;}
.fv-head-l{max-width:580px;}
.fv-eyebrow{display:inline-flex;align-items:center;gap:.42rem;font-family:'DM Sans',sans-serif;font-size:.63rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--sky);margin-bottom:.55rem;}
.fv-eyebrow::before{content:'';width:18px;height:2px;border-radius:2px;background:var(--sky);flex-shrink:0;}
.fv-h2{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(2rem,3.6vw,2.85rem);font-weight:700;color:var(--t1);line-height:1.1;letter-spacing:-.025em;margin:0 0 .5rem;}
.fv-h2 em{font-style:italic;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.fv-sub{font-family:'DM Sans',sans-serif;font-size:.875rem;color:var(--t3);line-height:1.7;margin:0;}
.fv-badge{background:rgba(255,255,255,.82);border:1px solid rgba(165,5,5,.16);border-radius:14px;padding:.9rem 1.4rem;text-align:center;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);flex-shrink:0;box-shadow:var(--sm);}
.fv-badge-n{font-family:'Bricolage Grotesque',sans-serif;font-size:2rem;font-weight:700;line-height:1;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.fv-badge-l{font-family:'DM Sans',sans-serif;font-size:.65rem;color:var(--t3);letter-spacing:.06em;text-transform:uppercase;margin-top:.2rem;}
.fv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.fv-card{background:rgba(255,255,255,.82);border:1px solid rgba(165,5,5,.10);border-radius:20px;padding:1.8rem 1.8rem 1.9rem;position:relative;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--sm);opacity:0;transform:translateY(28px);transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1),background .28s,border-color .28s,box-shadow .28s;}
.fv-card.fv-on{opacity:1;transform:translateY(0);}
.fv-card:hover{background:rgba(255,255,255,.98);border-color:rgba(165,5,5,.28);box-shadow:0 22px 52px rgba(165,5,5,.14),0 0 0 1px rgba(165,5,5,.16),0 0 32px rgba(165,5,5,.06);transform:translateY(-7px) !important;}
.fv-card::before{content:'';position:absolute;inset:-1px;border-radius:21px;background:linear-gradient(135deg,rgba(165,5,5,.0) 0%,rgba(165,5,5,.05) 50%,rgba(200,56,10,.03) 100%);opacity:0;transition:opacity .35s;pointer-events:none;}
.fv-card:hover::before{opacity:1;}
.fv-num{position:absolute;bottom:-.4rem;right:.6rem;font-family:'Bricolage Grotesque',sans-serif;font-size:7rem;font-weight:700;line-height:1;background:linear-gradient(180deg,rgba(165,5,5,.06) 0%,transparent 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;pointer-events:none;user-select:none;transition:opacity .3s;}
.fv-card:hover .fv-num{opacity:.7;}
.fv-dot{position:absolute;top:1.3rem;right:1.3rem;width:8px;height:8px;border-radius:50%;background:rgba(165,5,5,.15);transition:background .25s,box-shadow .25s;}
.fv-card:hover .fv-dot{background:var(--sky);box-shadow:0 0 10px rgba(165,5,5,.5);}
.fv-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:1.3rem;position:relative;z-index:1;flex-shrink:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;}
.fv-card:hover .fv-icon{transform:scale(1.1) rotate(-4deg);}
.fv-icon i{font-size:1.35rem;}
.fv-title{font-family:'Bricolage Grotesque',sans-serif;font-size:1.05rem;font-weight:700;color:var(--t1);line-height:1.25;letter-spacing:-.01em;margin-bottom:.6rem;position:relative;z-index:1;transition:color .22s;}
.fv-card:hover .fv-title{color:var(--sky);}
.fv-body{font-family:'DM Sans',sans-serif;font-size:.875rem;color:var(--t3);line-height:1.75;flex:1;position:relative;z-index:1;}
.fv-link{display:inline-flex;align-items:center;gap:.4rem;font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:600;color:var(--t4);margin-top:1.2rem;text-decoration:none;position:relative;z-index:1;transition:color .22s,gap .22s;}
.fv-card:hover .fv-link{color:var(--sky);gap:.6rem;}
.fv-link i{font-size:.68rem;transition:transform .22s;}
.fv-card:hover .fv-link i{transform:translateX(3px);}
.fv-featured{background:rgba(165,5,5,.05);border-color:rgba(165,5,5,.18);}
.fv-featured .fv-body{color:var(--t2);}
.fv-featured::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad);border-radius:2px 2px 0 0;}
.fv-cta{margin-top:2.5rem;background:rgba(255,255,255,.82);border:1px solid rgba(165,5,5,.14);border-radius:18px;padding:1.4rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:relative;overflow:hidden;box-shadow:var(--sm);}
.fv-cta::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--grad);border-radius:2px;}
.fv-cta-txt{font-family:'Bricolage Grotesque',sans-serif;font-size:1rem;font-weight:700;color:var(--t1);margin:0;}
.fv-cta-txt span{font-style:italic;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.fv-cta-s{font-family:'DM Sans',sans-serif;font-size:.875rem;color:var(--t3);margin:.25rem 0 0;}
.fv-cta-btns{display:flex;align-items:center;gap:.75rem;flex-shrink:0;}
.fv-btn-p{font-family:'DM Sans',sans-serif;font-size:.875rem;font-weight:700;background:var(--grad);color:#fff;border:none;border-radius:50px;padding:.62rem 1.55rem;cursor:pointer;display:inline-flex;align-items:center;gap:.42rem;text-decoration:none;white-space:nowrap;box-shadow:0 4px 16px rgba(165,5,5,.26);transition:transform .2s,box-shadow .2s,filter .2s;}
.fv-btn-p:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(165,5,5,.38);filter:brightness(1.06);color:#fff;}
.fv-btn-g{font-family:'DM Sans',sans-serif;font-size:.875rem;font-weight:600;background:rgba(255,255,255,.82);color:var(--t2);border:1px solid rgba(165,5,5,.18);border-radius:50px;padding:.62rem 1.4rem;cursor:pointer;display:inline-flex;align-items:center;gap:.42rem;text-decoration:none;white-space:nowrap;transition:background .2s,color .2s,border-color .2s,transform .2s;}
.fv-btn-g:hover{background:#fff;border-color:rgba(165,5,5,.36);color:var(--sky);transform:translateY(-1px);}

@media(max-width:1100px){.fv-grid{gap:1rem;}.fv-card{padding:1.5rem 1.5rem 1.6rem;}}
@media(max-width:991px){#ev-features{padding:3.5rem 0 4.5rem;}.fv-h2{font-size:clamp(1.75rem,4.5vw,2.3rem);}.fv-grid{grid-template-columns:repeat(2,1fr);}.fv-head{flex-direction:column;align-items:flex-start;gap:1rem;}}
@media(max-width:767px){#ev-features{padding:2.75rem 0 3.5rem;}.fv-h2{font-size:clamp(1.55rem,6vw,2rem);}.fv-grid{grid-template-columns:1fr;gap:.85rem;}.fv-card{border-radius:16px;padding:1.3rem 1.3rem 1.4rem;}.fv-num{font-size:5.5rem;}.fv-cta{flex-direction:column;align-items:flex-start;gap:1rem;}.fv-cta-btns{width:100%;}.fv-btn-p,.fv-btn-g{flex:1;justify-content:center;}}

#testimonials{background: #fefdfa;padding:3rem 0 3rem;position:relative;overflow:hidden;}
#testimonials::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(200,56,10,.05) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;z-index:0;}
.tm-orb{position:absolute;border-radius:50%;pointer-events:none;z-index:0;filter:blur(120px);}
.tm-orb-1{width:560px;height:560px;background:radial-gradient(circle,rgba(165,5,5,.08),transparent 70%);top:-180px;right:-160px;}
.tm-orb-2{width:500px;height:500px;background:radial-gradient(circle,rgba(139,92,246,.07),transparent 70%);bottom:-160px;left:-140px;}
.tm-dot-grid{position:absolute;top:2rem;right:2.5rem;width:110px;height:110px;background-image:radial-gradient(circle,rgba(165,5,5,.20) 1.5px,transparent 1.5px);background-size:11px 11px;z-index:0;pointer-events:none;}
.tm-wrap{max-width:1220px;margin:0 auto;padding:0 1.5rem;position:relative;z-index:1;}
.tm-fade{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1);}
.tm-fade.tm-in{opacity:1;transform:translateY(0);}
.tm-head{text-align:center;margin-bottom:3rem;}
.tm-kicker{display:inline-flex;align-items:center;gap:.4rem;font-family:'DM Sans',sans-serif;font-size:.64rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--sky);margin-bottom:.65rem;}
.tm-kicker-dot{width:7px;height:7px;border-radius:50%;background:var(--sky);box-shadow:0 0 8px rgba(165,5,5,.6);}
.tm-h2{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(1.9rem,3.8vw,2.85rem);font-weight:700;color:var(--t1);line-height:1.13;letter-spacing:-.025em;margin:0;max-width:660px;margin-inline:auto;}
.tm-h2 em{font-style:italic;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.tm-row{display:grid;grid-template-columns:300px 1fr;gap:1.4rem;align-items:stretch;}
.tm-panel{background:var(--grad);border:1px solid rgba(200,56,10,.2);border-radius:22px;padding:2rem 1.75rem;display:flex;flex-direction:column;position:relative;overflow:hidden;box-shadow:0 20px 56px rgba(165,5,5,.20),0 0 0 1px rgba(165,5,5,.10),inset 0 1px 0 rgba(255,255,255,.15);min-height:320px;}
.tm-panel::before{content:'';position:absolute;inset:0;border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.12) 0%,transparent 60%);pointer-events:none;}
.tm-panel::after{content:'';position:absolute;bottom:0;left:0;right:0;height:60%;background:linear-gradient(180deg,transparent,rgba(0,0,0,.08));pointer-events:none;}
.tm-panel-avs{display:flex;align-items:center;margin-bottom:auto;}
.tm-panel-av{width:38px;height:38px;border-radius:50%;border:2.5px solid rgba(255,255,255,.5);overflow:hidden;margin-left:-10px;flex-shrink:0;}
.tm-panel-avs .tm-panel-av:first-child{margin-left:0;}
.tm-panel-av img{width:100%;height:100%;object-fit:cover;display:block;}
.tm-panel-stat{font-family:'DM Sans',sans-serif;font-size:.875rem;color:rgba(255,255,255,.82);line-height:1.55;margin-top:.9rem;}
.tm-panel-stat strong{display:block;font-size:.85rem;color:#fff;font-weight:600;}
.tm-panel-title{font-family:'Bricolage Grotesque',sans-serif;font-size:1.15rem;font-weight:700;color:#fff;line-height:1.3;letter-spacing:-.01em;margin-top:auto;padding-top:1.5rem;position:relative;z-index:1;}
.tm-panel-btn{display:inline-flex;align-items:center;gap:.45rem;font-family:'DM Sans',sans-serif;font-size:.875rem;font-weight:700;background:var(--sky);color:var(--blue);border:none;border-radius:50px;padding:.6rem 1.4rem;margin-top:1.1rem;cursor:pointer;text-decoration:none;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.12);transition:transform .2s,box-shadow .2s,background .2s;position:relative;z-index:1;align-self:flex-start;}
.tm-panel-btn:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.18);background:rgba(255,255,255,.92);color:var(--blue);}
.tm-viewport{overflow:hidden;border-radius:22px;position:relative;}
.tm-track{display:flex;gap:1.4rem;transition:transform .65s cubic-bezier(.77,0,.18,1);will-change:transform;}
.tm-card{flex:0 0 calc(50% - .7rem);background:rgba(255,255,255,.82);border:1px solid rgba(165,5,5,.10);border-radius:22px;padding:1.9rem 1.8rem 1.7rem;display:flex;flex-direction:column;position:relative;overflow:hidden;box-shadow:var(--sm);transition:border-color .28s,box-shadow .28s,background .28s,transform .28s;min-height:330px;}
.tm-card:hover{background:#fff;border-color:rgba(165,5,5,.22);box-shadow:0 18px 48px rgba(165,5,5,.14),0 0 0 1px rgba(165,5,5,.14);transform:translateY(-4px);}
.tm-card-dot{position:absolute;top:1.1rem;right:1.2rem;width:8px;height:8px;border-radius:50%;background:rgba(165,5,5,.25);box-shadow:0 0 8px rgba(165,5,5,.20);}
.tm-stars{display:flex;gap:.28rem;margin-bottom:1.1rem;}
.tm-star{font-size:.9rem;color:var(--amber);filter:drop-shadow(0 0 3px rgba(245,158,11,.4));}
.tm-quote{font-family:'Bricolage Grotesque',sans-serif;font-size:.9rem;font-weight:400;color:var(--t2);line-height:1.75;flex:1;font-style:italic;letter-spacing:.005em;}
.tm-card-div{height:1px;background:rgba(165,5,5,.10);margin:1.3rem 0 1.1rem;}
.tm-author{display:flex;align-items:center;justify-content:space-between;gap:.75rem;}
.tm-author-left{display:flex;align-items:center;gap:.75rem;}
.tm-av{width:42px;height:42px;border-radius:50%;border:2px solid rgba(165,5,5,.14);overflow:hidden;flex-shrink:0;box-shadow:0 2px 10px rgba(165,5,5,.10);transition:border-color .22s;}
.tm-card:hover .tm-av{border-color:rgba(165,5,5,.30);}
.tm-av img{width:100%;height:100%;object-fit:cover;display:block;}
.tm-name{font-family:'DM Sans',sans-serif;font-size:.875rem;font-weight:700;color:var(--t1);transition:color .2s;}
.tm-card:hover .tm-name{color:var(--sky);}
.tm-role{font-family:'DM Sans',sans-serif;font-size:.68rem;color:var(--t3);margin-top:.08rem;}
.tm-qicon{font-size:1.6rem;line-height:1;color:rgba(165,5,5,.28);font-family:Georgia,serif;flex-shrink:0;user-select:none;transition:color .2s;}
.tm-card:hover .tm-qicon{color:rgba(165,5,5,.55);}
.tm-nav{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:2rem;}
.tm-dot{width:8px;height:8px;border-radius:50%;background:rgba(165,5,5,.18);border:none;padding:0;cursor:pointer;transition:background .3s,width .3s,border-radius .3s;}
.tm-dot.active{background:var(--sky);width:26px;border-radius:4px;box-shadow:0 0 8px rgba(165,5,5,.40);}
.tm-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:36px;height:36px;border-radius:10px;border:1px solid rgba(165,5,5,.16);background:rgba(255,255,255,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--t2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;box-shadow:var(--sm);transition:background .2s,border-color .2s,transform .2s,box-shadow .2s;}
.tm-arrow:hover{background:rgba(165,5,5,.12);border-color:rgba(165,5,5,.32);box-shadow:0 4px 16px rgba(165,5,5,.20);}
.tm-arrow-prev{left:.6rem;} .tm-arrow-next{right:.6rem;}
.tm-arrow:hover{transform:translateY(-50%) scale(1.08);}

@media(max-width:1100px){.tm-row{grid-template-columns:260px 1fr;}.tm-card{flex:0 0 calc(50% - .7rem);}}
@media(max-width:991px){#testimonials{padding:3.5rem 0 4.5rem;}.tm-h2{font-size:clamp(1.75rem,4.5vw,2.3rem);}.tm-row{grid-template-columns:1fr;}.tm-panel{flex-direction:row;flex-wrap:wrap;min-height:unset;padding:1.5rem;align-items:center;gap:1rem;}.tm-panel-title{padding-top:0;flex:1 1 100%;}.tm-panel-stat{margin-top:0;}.tm-card{flex:0 0 calc(50% - .7rem);}}
@media(max-width:767px){#testimonials{padding:2.75rem 0 3.5rem;}.tm-h2{font-size:clamp(1.55rem,6vw,2rem);}.tm-card{flex:0 0 100%;}.tm-panel{flex-direction:column;}.tm-panel-title{font-size:1rem;}.tm-arrow{display:none;}}

#site-footer{background:linear-gradient(180deg,#FDEFD4 0%,#dde8fa 100%);position:relative;overflow:hidden;}
#site-footer::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(165,5,5,.35) 30%,rgba(200,56,10,.35) 70%,transparent);}
#site-footer::after{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(165,5,5,.04) 1px,transparent 1px);background-size:26px 26px;pointer-events:none;z-index:0;}
.fo-orb{position:absolute;border-radius:50%;pointer-events:none;z-index:0;filter:blur(130px);}
.fo-orb-1{width:500px;height:500px;background:radial-gradient(circle,rgba(165,5,5,.08),transparent 70%);bottom:-200px;left:-150px;}
.fo-orb-2{width:460px;height:460px;background:radial-gradient(circle,rgba(139,92,246,.06),transparent 70%);top:-180px;right:-140px;}
/* Newsletter */
.fo-nl{position:relative;z-index:1;border-bottom:1px solid rgba(165,5,5,.10);padding:3.2rem 1.5rem 1rem;}
.fo-nl-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;}
.fo-nl-tag{display:inline-flex;align-items:center;gap:.4rem;font-family:'DM Sans',sans-serif;font-size:.63rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sky);margin-bottom:.5rem;}
.fo-nl-tag::before{content:'';width:16px;height:2px;border-radius:2px;background:var(--sky);}
.fo-nl-h{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(1.4rem,2.5vw,1.95rem);font-weight:700;color:var(--t1);line-height:1.15;letter-spacing:-.02em;margin:0;}
.fo-nl-h em{font-style:italic;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.fo-nl-form{display:flex;align-items:center;gap:.55rem;flex-shrink:0;flex-wrap:wrap;}
.fo-nl-input{font-family:'DM Sans',sans-serif;font-size:.875rem;color:var(--t1);background:rgba(255,255,255,.78);border:1px solid rgba(165,5,5,.18);border-radius:50px;padding:.65rem 1.3rem;outline:none;width:260px;max-width:100%;transition:border-color .22s,background .22s,box-shadow .22s;}
.fo-nl-input::placeholder{color:var(--t4);}
.fo-nl-input:focus{border-color:rgba(165,5,5,.40);background:rgba(255,255,255,.96);box-shadow:0 0 0 3px rgba(165,5,5,.08);}
.fo-nl-btn{font-family:'DM Sans',sans-serif;font-size:.875rem;font-weight:700;background:var(--grad);color:#fff;border:none;border-radius:50px;padding:.65rem 1.5rem;cursor:pointer;display:inline-flex;align-items:center;gap:.42rem;white-space:nowrap;box-shadow:0 4px 16px rgba(165,5,5,.26);transition:transform .2s,box-shadow .2s,filter .2s;}
.fo-nl-btn:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(165,5,5,.38);filter:brightness(1.06);}
/* Main grid */
.fo-main{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:3.5rem 1.5rem 0;display:grid;grid-template-columns:3fr 1.7fr 1.7fr;gap:2.5rem 3rem;}
.fo-logo{font-family:'Bricolage Grotesque',sans-serif;font-size:1.5rem;font-weight:700;text-decoration:none;letter-spacing:-.3px;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:inline-flex;align-items:center;gap:.4rem;margin-bottom:0rem;white-space:nowrap;}
.fo-logo i{-webkit-text-fill-color:var(--sky);filter:none;background:none;font-size:1.2rem;}
.fo-tagline{font-family:'DM Sans',sans-serif;font-size:.875rem;color:var(--t3);line-height:1.72;margin-bottom:1.4rem;max-width:100%;}
.fo-socials{display:flex;gap:.55rem;}
.fo-soc{width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.65);border:1px solid rgba(165,5,5,.14);display:flex;align-items:center;justify-content:center;color:var(--t3);font-size:.88rem;text-decoration:none;box-shadow:var(--sm);transition:background .2s,border-color .2s,color .2s,transform .18s,box-shadow .2s;}
.fo-soc:hover{background:rgba(165,5,5,.12);border-color:rgba(165,5,5,.30);color:var(--sky);transform:translateY(-2px);box-shadow:0 4px 14px rgba(165,5,5,.18);}
.fo-col-h{font-family:'Bricolage Grotesque',sans-serif;font-size:.9rem;font-weight:700;color:var(--t1);margin-bottom:1.15rem;letter-spacing:-.01em;}
.fo-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.52rem;}
.fo-links a{font-family:'DM Sans',sans-serif;font-size:.875rem;color:var(--t3);text-decoration:none;display:inline-flex;align-items:center;gap:.35rem;transition:color .2s,gap .2s;}
.fo-links a::before{content:'';width:0;height:1px;border-radius:1px;background:var(--sky);flex-shrink:0;transition:width .22s;}
.fo-links a:hover{color:var(--sky);gap:.5rem;}
.fo-links a:hover::before{width:12px;}
.fo-contact-item{display:flex;align-items:flex-start;gap:.7rem;margin-bottom:.7rem;}
.fo-contact-ic{width:30px;height:30px;border-radius:8px;flex-shrink:0;background:rgba(165,5,5,.08);border:1px solid rgba(165,5,5,.14);display:flex;align-items:center;justify-content:center;color:var(--blue) !important;font-size:.72rem;transition:background .2s,border-color .2s;}
.fo-contact-item:hover .fo-contact-ic{background:rgba(165,5,5,.14);border-color:rgba(165,5,5,.28);}
.fo-contact-text{font-family:'DM Sans',sans-serif;font-size:.875rem;color:var(--t3);line-height:1.55;transition:color .2s;}
.fo-contact-text strong{display:block;color:var(--t2);font-weight:500;margin-bottom:.05rem;}
.fo-contact-item:hover .fo-contact-text{color:var(--t2);}
/* Bottom bar */
.fo-bottom{position:relative;z-index:1;max-width:1180px;margin:2.8rem auto 0;padding:1.3rem 1.5rem 1rem;border-top:1px solid rgba(165,5,5,.10);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.fo-copy{font-family:'DM Sans',sans-serif;font-size:.875rem;color:var(--t3);}
.fo-copy a{color:var(--sky);text-decoration:none;transition:opacity .2s;}
.fo-copy a:hover{opacity:.8;}
.fo-legal{display:flex;align-items:center;gap:1.4rem;}
.fo-legal a{font-family:'DM Sans',sans-serif;font-size:.875rem;color:var(--t3);text-decoration:none;transition:color .2s;}
.fo-legal a:hover{color:var(--sky);}

@media(max-width:1100px){.fo-main{grid-template-columns:1.4fr 1fr 1fr;}}
@media(max-width:991px){.fo-nl-inner{flex-direction:column;align-items:flex-start;gap:1.2rem;}.fo-main{grid-template-columns:1fr 1fr;gap:2rem 2.5rem;}}
@media(max-width:767px){
  .fo-nl{padding:2.2rem 1rem;}
  .fo-nl-inner{gap:.9rem;}
  .fo-nl-input{width:100%;}
  .fo-nl-form{width:100%;flex-direction:column;}
  .fo-nl-btn{width:100%;justify-content:center;}
  .fo-main{grid-template-columns:1fr 1fr;padding:2.5rem 1rem 0;gap:1.8rem 1.5rem;}
  .fo-bottom{flex-direction:column;align-items:flex-start;gap:.65rem;padding:1.2rem 1rem .9rem;}
  .fo-legal{flex-wrap:wrap;gap:.5rem 1rem;}
  .fo-legal a{font-size:.8rem;}
  .fo-copy{font-size:.8rem;}
  .fo-tagline{font-size:.82rem;}
}
@media(max-width:480px){
  .fo-main{grid-template-columns:1fr;}
  .fo-legal{gap:.45rem .85rem;}
}
/* ══════════════════════════════════════════════════════
   WHAT WE DO SECTION
══════════════════════════════════════════════════════ */
#what-we-do {
  background: #fefdfa;
  padding: 3rem 0 3rem;
  position: relative;
  overflow: hidden;
}
/* #what-we-do::before { */
  /* content: ''; */
  /* position: absolute; */
  /* inset: 0; */
  /* background-image: url("mungya.png"); */
  /* background-size: 80px 80px; */
  /* pointer-events: none; */
  /* z-index: 0; */
/* } */

.wwd-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  position: relative;
  z-index: 1;
}

/* ── Header ── */
.wwd-fade {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s cubic-bezier(.4,0,.2,1), transform .7s cubic-bezier(.4,0,.2,1);
}
.wwd-fade.wwd-in { opacity: 1; transform: translateY(0); }

.wwd-head {
  text-align: center;
  margin-bottom: 3.5rem;
}
.wwd-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-family: 'Inter', sans-serif;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #A50505;
  margin-bottom: .9rem;
}
.wwd-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #A50505;
  box-shadow: 0 0 8px rgba(165,5,5,.55);
  flex-shrink: 0;
}
.wwd-h2 {
  font-family: 'Gelasio', serif;
  font-size: clamp(2.2rem, 4.5vw, 3.4rem);
  font-weight: 700;
  color: #1A1A1A;
  line-height: 1.1;
  margin: 0 0 .85rem;
  letter-spacing: -.01em;
}
.wwd-h2 em {
  font-style: italic;
  background: linear-gradient(135deg, #A50505, #C8380A);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.wwd-sub {
  font-family: 'Inter', sans-serif;
  font-size: .97rem;
  color: #5c3a1e;
  line-height: 1.72;
  max-width: 540px;
  margin: 0 auto;
}

/* ── Grid ── */
.wwd-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}
.wwd-empty { /* intentional gap */ }

/* ── Cards ── */
.wwd-card {
  background: rgba(255,255,255,0.60);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.80);
  border-radius: 20px;
  padding: 1.8rem 1.8rem 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(165,5,5,.07), 0 1px 3px rgba(0,0,0,.04);
  cursor: pointer;
  transition: transform .45s cubic-bezier(.25,.8,.25,1),
              box-shadow .45s cubic-bezier(.25,.8,.25,1),
              background .3s ease;
  will-change: transform;
}
.wwd-card.wwd-in { opacity: 1; transform: translateY(0); }
.wwd-card:hover {
  transform: translateY(-8px);
  background: rgba(255,255,255,0.88);
  box-shadow: 0 20px 48px rgba(165,5,5,.14), 0 6px 16px rgba(0,0,0,.06);
}

/* Red left-border accent on hover */
.wwd-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, #A50505, #C8380A);
  border-radius: 3px 0 0 3px;
  transform: scaleY(0);
  transform-origin: top;
  transition: transform .4s cubic-bezier(.4,0,.2,1);
}
.wwd-card:hover::before { transform: scaleY(1); }

.wwd-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: .1rem;
}
.wwd-card-title {
  font-family: 'Gelasio', serif;
  font-size: 1.08rem;
  font-weight: 700;
  color: #1A1A1A;
  line-height: 1.25;
  transition: color .25s;
}
.wwd-card:hover .wwd-card-title { color: #A50505; }

.wwd-card-num {
  font-family: 'Inter', sans-serif;
  font-size: .82rem;
  font-weight: 700;
  color: rgba(165,5,5,.28);
  flex-shrink: 0;
  letter-spacing: .02em;
  transition: color .25s;
}
.wwd-card:hover .wwd-card-num { color: rgba(165,5,5,.55); }

.wwd-card-div {
  height: 1px;
  background: rgba(165,5,5,.12);
  margin: 1rem 0 1.1rem;
  transition: background .25s;
}
.wwd-card:hover .wwd-card-div { background: rgba(165,5,5,.22); }

.wwd-card-body {
  font-family: 'Inter', sans-serif;
  font-size: .875rem;
  color: #5c3a1e;
  line-height: 1.75;
  flex: 1;
  margin: 0 0 1.6rem;
}

.wwd-card-foot {
  display: flex;
  align-items: flex-end;
  justify-content: end;
  gap: .75rem;
}
.wwd-card-link {
  font-family: 'Inter', sans-serif;
  font-size: .78rem;
  font-weight: 600;
  color: #7a4a22;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  transition: color .22s, gap .22s;
}
.wwd-card:hover .wwd-card-link {
  color: #A50505;
  gap: .55rem;
}
.wwd-card-link i { font-size: .68rem; transition: transform .22s; }
.wwd-card:hover .wwd-card-link i { transform: translateX(3px); }

/* Icon badge — bottom right corner peeking out */
.wwd-card-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px 0 14px 0;
  background: var(--ic-bg, #A50505);
  box-shadow: 0 4px 18px var(--ic-glow, rgba(165,5,5,.35));
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.25rem;
  flex-shrink: 0;
  position: relative;
  margin-bottom: -1.6rem;
  margin-right: -1.8rem;
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s;
}
.wwd-card:hover .wwd-card-icon {
  transform: scale(1.1) rotate(-5deg);
  box-shadow: 0 8px 24px var(--ic-glow, rgba(165,5,5,.45));
}

/* ── Responsive ── */
@media(max-width:1100px) { .wwd-grid { gap: 1rem; } }
@media(max-width:991px) {
  #what-we-do { padding: 3.5rem 0 4.5rem; }
  .wwd-grid { grid-template-columns: repeat(2,1fr); }
  .wwd-empty { display: none; }
}
@media(max-width:767px) {
  #what-we-do { padding: 2.75rem 0 3.5rem; }
  .wwd-h2 { font-size: clamp(1.7rem,6vw,2.3rem); }
  .wwd-grid { grid-template-columns: 1fr; gap: .85rem; }
  .wwd-card { padding: 1.4rem 1.4rem 1.35rem; border-radius: 16px; }
  .wwd-card-icon { width: 44px; height: 44px; font-size: 1.05rem; border-radius: 12px 0 12px 0; margin-bottom: -1.35rem; margin-right: -1.4rem; }
}

/* ════════════════════════════════════════════════════════
   EVENT COUNTDOWN SECTION
════════════════════════════════════════════════════════ */
#event-countdown {
  position: relative;
  width: 100%;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 6rem 1.5rem;
}

/* Background photo */
.cd-bg {
  position: absolute;
  inset: 0;
  background-image: url('https://images.unsplash.com/photo-1470229722913-7c0e2dbbafd3?w=1600&q=80&auto=format&fit=crop');
  background-size: cover;
  background-position: center;
  z-index: 0;
}

/* Warm brand overlay */
.cd-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    160deg,
    rgba(12, 6, 2, 0.84) 0%,
    rgba(100, 8, 8, 0.76) 45%,
    rgba(28, 10, 2, 0.90) 100%
  );
  z-index: 1;
}

/* Grid texture */
.cd-grid {
  position: absolute;
  inset: 0;
  z-index: 2;
  background-image:
    linear-gradient(rgba(253,239,212,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(253,239,212,.04) 1px, transparent 1px);
  background-size: 60px 60px;
}

/* Glow orbs */
.cd-orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 2;
  filter: blur(65px);
}
.cd-orb-a {
  width: 560px; height: 560px;
  top: -130px; left: -110px;
  background: radial-gradient(circle, rgba(165,5,5,0.42), transparent 70%);
  animation: cd-drift 9s ease-in-out infinite alternate;
}
.cd-orb-b {
  width: 420px; height: 420px;
  bottom: -90px; right: -70px;
  background: radial-gradient(circle, rgba(200,56,10,0.36), transparent 70%);
  animation: cd-drift 11s ease-in-out infinite alternate-reverse;
}
.cd-orb-c {
  width: 320px; height: 320px;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(253,239,212,0.06), transparent 70%);
  animation: cd-pulse 6s ease-in-out infinite;
}
@keyframes cd-drift {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(28px, 18px) scale(1.07); }
}
@keyframes cd-pulse {
  0%, 100% { opacity: .4; transform: translate(-50%,-50%) scale(1); }
  50%       { opacity: .9; transform: translate(-50%,-50%) scale(1.14); }
}

/* ── Content ── */
.cd-content {
  position: relative;
  z-index: 10;
  text-align: center;
  max-width: 800px;
  width: 100%;
}

/* Tag pill */
.cd-tag {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--sky);
  background: rgba(165,5,5,.28);
  border: 1px solid rgba(253,239,212,.22);
  border-radius: 50px;
  padding: .38rem 1rem;
  margin-bottom: 1.6rem;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.cd-pip {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #C8380A;
  box-shadow: 0 0 8px rgba(200,56,10,.8);
  animation: cd-blink 1.4s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes cd-blink {
  0%, 100% { opacity: 1; } 50% { opacity: .25; }
}

/* Headline */
.cd-headline {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(2.6rem, 6vw, 4.2rem);
  font-weight: 800;
  line-height: 1.08;
  color: #fff;
  margin-bottom: .3rem;
  letter-spacing: -.02em;
}
.cd-headline em {
  font-style: italic;
  font-family: 'Gelasio', serif;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
}

/* Sub */
.cd-sub {
  font-size: 1rem;
  font-weight: 400;
  color: rgba(253,239,212,.72);
  max-width: 540px;
  margin: 1.2rem auto 2.8rem;
  line-height: 1.72;
}

/* ── Timer row ── */
.cd-timer-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  margin-bottom: 3rem;
  flex-wrap: wrap;
}

.cd-time-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .55rem;
  min-width: 114px;
}

.cd-time-box {
  background: rgba(253,239,212,.07);
  border: 1px solid rgba(253,239,212,.14);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 18px;
  padding: 1.3rem 1.5rem;
  min-width: 114px;
  position: relative;
  overflow: hidden;
  transition: transform .22s, border-color .22s, box-shadow .22s;
}
.cd-time-box::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(253,239,212,.28), transparent);
}
.cd-time-box:hover {
  transform: translateY(-4px);
  border-color: rgba(165,5,5,.5);
  box-shadow: 0 12px 32px rgba(165,5,5,.22);
}

/* Flip animation */
.cd-time-box.cd-flip .cd-num {
  animation: cd-flip-in .32s ease;
}
@keyframes cd-flip-in {
  from { transform: translateY(-12px); opacity: 0; }
  to   { transform: translateY(0);     opacity: 1; }
}

.cd-num {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 2.9rem;
  font-weight: 800;
  color: #fff;
  line-height: 1;
  letter-spacing: -.03em;
  display: block;
}

.cd-unit {
  font-family: 'DM Sans', sans-serif;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(253,239,212,.55);
}

/* Colon separator */
.cd-sep {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 2.4rem;
  font-weight: 800;
  color: rgba(165,5,5,.85);
  line-height: 1;
  margin-bottom: 1.5rem;
  animation: cd-blink 1.1s ease-in-out infinite;
}

/* ── CTA row ── */
.cd-cta-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.cd-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .95rem;
  font-weight: 700;
  color: var(--sky);
  background: var(--grad);
  border: none;
  border-radius: 50px;
  padding: .85rem 2rem;
  cursor: pointer;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: transform .2s, box-shadow .2s;
  box-shadow: 0 6px 28px rgba(165,5,5,.45), 0 1px 0 rgba(255,255,255,.1) inset;
}
.cd-btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.15), transparent);
  border-radius: inherit;
  opacity: 0;
  transition: opacity .2s;
}
.cd-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 36px rgba(165,5,5,.6);
  color: var(--sky);
  text-decoration: none;
}
.cd-btn-primary:hover::before { opacity: 1; }

.cd-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .95rem;
  font-weight: 600;
  color: rgba(253,239,212,.85);
  background: rgba(253,239,212,.08);
  border: 1.5px solid rgba(253,239,212,.25);
  border-radius: 50px;
  padding: .85rem 2rem;
  cursor: pointer;
  text-decoration: none;
  transition: background .2s, border-color .2s, color .2s, transform .2s;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.cd-btn-ghost:hover {
  background: rgba(253,239,212,.16);
  border-color: rgba(253,239,212,.5);
  color: #fff;
  transform: translateY(-2px);
  text-decoration: none;
}

/* ── Responsive ── */
@media(max-width:600px) {
  #event-countdown { padding: 4rem 1rem; }
  .cd-timer-row { gap: .35rem; }
  .cd-time-block { min-width: 74px; }
  .cd-time-box { min-width: 74px; padding: .9rem .8rem; border-radius: 14px; }
  .cd-num { font-size: 2rem; }
  .cd-sep { font-size: 1.7rem; margin-bottom: 1.1rem; }
  .cd-headline { font-size: 2.2rem; }
  .cd-sub { font-size: .9rem; }
}

/* ════════════════════════════════════════════════════════
   ABOUT US — INFO CARDS (Growth + Belonging & Mission)
════════════════════════════════════════════════════════ */

/* Shared card base */
.au-info-card {
  background: rgba(255,255,255,.58);
  border: 1px solid rgba(165,5,5,.12);
  border-radius: 14px;
  padding: 1.1rem 1.25rem;
  margin-bottom: 1rem;
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: border-color .25s, box-shadow .25s, background .25s;
}
.au-info-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(165,5,5,.04) 0%, transparent 60%);
  pointer-events: none;
}
.au-info-card:hover {
  background: rgba(255,255,255,.80);
  border-color: rgba(165,5,5,.28);
  box-shadow: 0 8px 28px rgba(165,5,5,.10);
}

/* Card 1 — Tagline style (left accent border + icon + text inline) */
.au-info-card--tagline {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  border-left: 3px solid #A50505;
  border-radius: 0 14px 14px 0;
}
.au-info-card--tagline .au-info-card-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  background: rgba(165,5,5,.10);
  border: 1px solid rgba(165,5,5,.18);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  color: #A50505;
  margin-top: .05rem;
}
.au-info-card--tagline p {
  font-family: 'DM Sans', sans-serif;
  font-size: .88rem;
  color: #5c3a1e;
  line-height: 1.65;
  margin: 0;
}
.au-info-card--tagline p strong {
  color: #1A1A1A;
  font-weight: 700;
}

/* Card 2 — Mission style (header + body + pill tags) */
.au-info-card--mission {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.au-info-card-header {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: #A50505;
}
.au-info-card-header i {
  font-size: .85rem;
}
.au-info-card-body {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: #5c3a1e;
  line-height: 1.72;
  margin: 0;
}
.au-info-card-body strong {
  color: #1A1A1A;
  font-weight: 700;
}
.au-info-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.au-info-tag {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .76rem;
  font-weight: 500;
  color: #3a1e0a;
  background: rgba(165,5,5,.07);
  border: 1px solid rgba(165,5,5,.16);
  border-radius: 50px;
  padding: .32rem .85rem;
  transition: background .2s, border-color .2s, color .2s;
}
.au-info-tag i {
  color: #A50505;
  font-size: .75rem;
}
.au-info-tag:hover {
  background: rgba(165,5,5,.14);
  border-color: rgba(165,5,5,.32);
  color: #A50505;
}

/* Responsive */
@media(max-width:767px) {
  .au-info-card-tags { gap: .4rem; }
  .au-info-tag { font-size: .72rem; padding: .28rem .7rem; }
}



/* ════════════════════════════════════════════════
   WHY JOIN (#why-join)
════════════════════════════════════════════════ */
#why-join {
  background: #fefdfa;
  padding: 7rem 0 7.5rem;
  position: relative;
  overflow: hidden;
}
#why-join::before {
  content: ''; position: absolute; inset: 0;
  background-image: radial-gradient(rgba(165,5,5,.045) 1px, transparent 1px);
  background-size: 28px 28px; pointer-events: none; z-index: 0;
}
#why-join::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background: linear-gradient(135deg,
    transparent 0%, transparent 48%,
    rgba(165,5,5,.03) 48%, rgba(212,57,10,.018) 100%);
}

.wj2-orb { position: absolute; border-radius: 50%; pointer-events: none; z-index: 0; filter: blur(130px); }
.wj2-orb-1 {
  width: 640px; height: 640px;
  background: radial-gradient(circle, rgba(165,5,5,.13), transparent 70%);
  top: -220px; left: -220px;
}
.wj2-orb-2 {
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(245,158,11,.12), transparent 70%);
  bottom: -180px; right: -180px;
}

.wj2-wrap { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; position: relative; z-index: 1; }

.wj2-head {
  text-align: center; margin-bottom: 4.5rem;
  opacity: 0; transform: translateY(22px);
  transition: opacity .7s cubic-bezier(.4,0,.2,1), transform .7s cubic-bezier(.4,0,.2,1);
}
.wj2-head.wj2-on { opacity: 1; transform: none; }

.wj2-eyebrow {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: 'Inter', sans-serif; font-size: .63rem; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--blue); margin-bottom: .7rem;
}
.wj2-eyebrow-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--blue); box-shadow: 0 0 10px rgba(165,5,5,.5);
}
.wj2-h2 {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(2rem, 3.8vw, 3rem); font-weight: 800; color: var(--t1);
  line-height: 1.1; letter-spacing: -.03em; margin: 0 0 .9rem;
}
.wj2-h2 em {
  font-style: italic;
  background: var(--grad);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.wj2-sub {
  font-family: 'Inter', sans-serif; font-size: .9rem;
  color: var(--t3); line-height: 1.75;
  max-width: 520px; margin: 0 auto;
}

/* Bento Grid */
.wj2-bento {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.1rem;
}

/* Grid placement */
.wj2-tile-1 { grid-column: 1; grid-row: 1; }
.wj2-tile-2 { grid-column: 2; grid-row: 1; }
.wj2-tile-3 { grid-column: 3; grid-row: 1; }
.wj2-tile-4 { grid-column: 1; grid-row: 2; }
.wj2-tile-5 { grid-column: 2 / span 2; grid-row: 2; }

/* Base tile */
.wj2-tile {
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(165,5,5,.09);
  border-radius: 22px;
  position: relative; overflow: hidden;
  padding: 2rem 2rem 2.2rem;
  display: flex; flex-direction: column;
  box-shadow: var(--gs);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  opacity: 0; transform: translateY(32px);
  transition:
    opacity .65s cubic-bezier(.4,0,.2,1),
    transform .65s cubic-bezier(.4,0,.2,1),
    background .3s, border-color .3s, box-shadow .3s;
}
.wj2-tile.wj2-on { opacity: 1; transform: none; }
.wj2-tile:hover {
  background: rgba(255,255,255,.92);
  border-color: rgba(165,5,5,.22);
  box-shadow: var(--lg);
  transform: translateY(-6px) !important;
}
.wj2-tile::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--grad);
  opacity: 0; transform: scaleX(.35); transform-origin: center;
  transition: opacity .32s, transform .35s cubic-bezier(.34,1.56,.64,1);
  border-radius: 22px 22px 0 0; pointer-events: none; z-index: 2;
}
.wj2-tile::after {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 130px;
  background: linear-gradient(180deg, rgba(165,5,5,.05) 0%, transparent 100%);
  opacity: 0; transition: opacity .35s; pointer-events: none; z-index: 1;
}
.wj2-tile:hover::before { opacity: 1; transform: scaleX(1); }
.wj2-tile:hover::after  { opacity: 1; }

.wj2-tile-num {
  position: absolute; bottom: -.6rem; right: .8rem;
  font-family: 'Bricolage Grotesque', sans-serif; font-size: 6.5rem; font-weight: 800; line-height: 1;
  background: linear-gradient(180deg, rgba(165,5,5,.08) 0%, transparent 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  pointer-events: none; user-select: none;
  transition: opacity .3s;
}
.wj2-tile:hover .wj2-tile-num { opacity: .8; }

.wj2-tile-icon {
  width: 52px; height: 52px; border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem; margin-bottom: 1.4rem; flex-shrink: 0;
  position: relative; z-index: 3;
  background: rgba(165,5,5,.08);
  border: 1px solid rgba(165,5,5,.14);
  box-shadow: 0 0 18px rgba(165,5,5,.07);
  color: var(--blue);
  transition: transform .32s cubic-bezier(.34,1.56,.64,1), box-shadow .32s, background .25s;
}
.wj2-tile:hover .wj2-tile-icon {
  transform: scale(1.12) rotate(-6deg);
  background: rgba(165,5,5,.14);
  box-shadow: 0 0 28px rgba(165,5,5,.18);
}

.wj2-tile-title {
  font-family: 'Bricolage Grotesque', sans-serif; font-size: 1.08rem;
  font-weight: 700; color: var(--t1); line-height: 1.25; letter-spacing: -.015em;
  margin-bottom: .55rem; position: relative; z-index: 3;
  transition: color .22s;
}
.wj2-tile:hover .wj2-tile-title { color: var(--blue); }

.wj2-tile-desc {
  font-family: 'Inter', sans-serif; font-size: .86rem;
  color: var(--t3); line-height: 1.75; flex: 1;
  position: relative; z-index: 3;
}

/* CTA Tile */
.wj2-tile-cta {
  background: linear-gradient(135deg, #6b0303 0%, #a50505 40%, #c8380a 100%);
  border-color: rgba(165,5,5,.4);
  justify-content: center; align-items: flex-start;
  padding: 2.2rem 2.4rem;
  box-shadow: 0 8px 40px rgba(165,5,5,.28), 0 1px 0 rgba(255,255,255,.06) inset;
}
.wj2-tile-cta:hover {
  background: linear-gradient(135deg, #7a0404 0%, #b50606 40%, #d4390a 100%);
  border-color: rgba(165,5,5,.6);
  box-shadow: 0 16px 52px rgba(165,5,5,.38), 0 1px 0 rgba(255,255,255,.08) inset;
}
.wj2-tile-cta .wj2-tile-num {
  background: linear-gradient(180deg, rgba(255,255,255,.12) 0%, transparent 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.wj2-cta-label {
  font-family: 'Inter', sans-serif; font-size: .63rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  color: rgba(255,220,180,.85); margin-bottom: .6rem;
  display: inline-flex; align-items: center; gap: .4rem;
}
.wj2-cta-label::before {
  content: ''; width: 14px; height: 2px; border-radius: 2px; background: rgba(255,220,180,.7);
}
.wj2-cta-h {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(1.8rem, 2.6vw, 2.4rem);
  font-weight: 800; color: #fff; line-height: 1.12; letter-spacing: -.03em;
  margin: 0 0 .8rem;
}
.wj2-cta-h em {
  font-style: italic;
  background: linear-gradient(100deg, #fde8c8, #ffc59a);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.wj2-cta-p {
  font-family: 'Inter', sans-serif; font-size: .875rem;
  color: rgba(255,220,185,.65); line-height: 1.7; margin-bottom: 1.8rem;
}
.wj2-cta-btns { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }

.wj2-btn-p {
  font-family: 'Inter', sans-serif; font-size: .875rem; font-weight: 700;
  background: #fff; color: var(--blue);
  border: none; border-radius: 50px; padding: .68rem 1.6rem; cursor: pointer;
  display: inline-flex; align-items: center; gap: .42rem;
  text-decoration: none; white-space: nowrap;
  box-shadow: 0 4px 18px rgba(0,0,0,.18);
  transition: transform .2s, box-shadow .2s, filter .2s;
}
.wj2-btn-p:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0,0,0,.28); filter: brightness(1.03); color: var(--blue); }

.wj2-btn-g {
  font-family: 'Inter', sans-serif; font-size: .875rem; font-weight: 600;
  background: rgba(255,255,255,.12); color: rgba(255,255,255,.82);
  border: 1px solid rgba(255,255,255,.25); border-radius: 50px;
  padding: .68rem 1.4rem; cursor: pointer;
  display: inline-flex; align-items: center; gap: .42rem;
  text-decoration: none; white-space: nowrap;
  transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.wj2-btn-g:hover { background: rgba(255,255,255,.22); border-color: rgba(255,255,255,.42); color: #fff; transform: translateY(-1px); }

/* Member avatars */
.wj2-avatars { display: flex; align-items: center; gap: 0; margin-bottom: 1.4rem; }
.wj2-av {
  width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
  border: 2.5px solid rgba(165,5,5,.7); margin-left: -8px; overflow: hidden;
  font-family: 'Bricolage Grotesque', sans-serif; font-size: .75rem; font-weight: 700;
  display: flex; align-items: center; justify-content: center; color: #fff;
}
.wj2-avatars .wj2-av:first-child { margin-left: 0; }
.wj2-av-more {
  width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
  border: 2.5px solid rgba(165,5,5,.7); margin-left: -8px;
  background: rgba(255,255,255,.18);
  font-family: 'Inter', sans-serif; font-size: .62rem; font-weight: 700;
  color: #fff; display: flex; align-items: center; justify-content: center;
}
.wj2-av-txt { font-family: 'Inter', sans-serif; font-size: .8rem; color: rgba(255,210,170,.65); margin-left: .75rem; }
.wj2-av-txt strong { color: rgba(255,235,210,.9); }




/* ════════════════════════════════════════════════════════
   EVENT CALENDAR POPUP — Full Calendar Style
════════════════════════════════════════════════════════ */

/* Overlay backdrop */
.cal-overlay {
  position: fixed; inset: 0; z-index: 9000;
  background: rgba(10, 4, 2, 0.62);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
  opacity: 0; pointer-events: none;
  transition: opacity .28s cubic-bezier(.4,0,.2,1);
}
.cal-overlay.open { opacity: 1; pointer-events: all; }

/* Modal shell */
.cal-modal {
  background: #fff;
  border-radius: 24px;
  box-shadow:
    0 40px 100px rgba(165,5,5,.22),
    0 8px 32px rgba(0,0,0,.12),
    0 0 0 1px rgba(165,5,5,.08) inset;
  width: 100%; max-width: 960px;
  max-height: 90vh;
  display: flex; flex-direction: column;
  overflow: hidden;
  transform: translateY(28px) scale(.96);
  transition: transform .35s cubic-bezier(.34,1.56,.64,1);
}
.cal-overlay.open .cal-modal { transform: translateY(0) scale(1); }

/* ── Top bar ── */
.cal-topbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1rem 1.4rem .85rem;
  background: linear-gradient(to bottom, rgba(253,239,212,.55) 0%, rgba(255,255,255,0) 100%);
  border-bottom: 1px solid rgba(165,5,5,.1);
  flex-shrink: 0; gap: 1rem; flex-wrap: wrap;
}
.cal-topbar-left { display: flex; align-items: center; gap: .5rem; }
.cal-topbar-right { display: flex; align-items: center; gap: .6rem; }

/* Today button */
.cal-today-btn {
  font-family: 'DM Sans', sans-serif; font-size: .8rem; font-weight: 600;
  color: var(--blue); background: rgba(165,5,5,.07);
  border: 1.5px solid rgba(165,5,5,.22); border-radius: 8px;
  padding: .38rem .9rem; cursor: pointer;
  transition: background .18s, border-color .18s, color .18s, transform .15s;
}
.cal-today-btn:hover {
  background: var(--blue); color: #fff;
  border-color: var(--blue); transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(165,5,5,.28);
}

/* Nav arrows */
.cal-nav-btn {
  width: 34px; height: 34px; border-radius: 9px;
  border: 1.5px solid rgba(165,5,5,.18);
  background: #fff; color: var(--t3); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: .82rem;
  transition: background .18s, color .18s, border-color .18s, transform .15s, box-shadow .18s;
}
.cal-nav-btn:hover {
  background: var(--blue); color: #fff;
  border-color: var(--blue); transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(165,5,5,.28);
}

/* Month/Year title */
.cal-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.3rem; font-weight: 800; color: var(--t1);
  letter-spacing: -.03em; margin-left: .3rem;
}

/* View switcher */
.cal-view-switcher {
  display: flex;
  background: rgba(165,5,5,.06);
  border: 1.5px solid rgba(165,5,5,.16);
  border-radius: 10px;
  overflow: hidden;
  padding: 3px;
  gap: 2px;
}
.cal-view-btn {
  font-family: 'DM Sans', sans-serif; font-size: .78rem; font-weight: 600;
  padding: .32rem .78rem; border: none; background: transparent; color: var(--t3);
  cursor: pointer; border-radius: 7px;
  transition: background .18s, color .18s, box-shadow .18s;
}
.cal-view-btn:hover { background: rgba(165,5,5,.1); color: var(--blue); }
.cal-view-btn.active {
  background: var(--grad); color: #fff;
  box-shadow: 0 2px 8px rgba(165,5,5,.3);
}

/* Close button */
.cal-close {
  width: 34px; height: 34px; border-radius: 9px;
  border: 1.5px solid rgba(165,5,5,.18);
  background: rgba(165,5,5,.06); color: var(--blue);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  font-size: .82rem;
  transition: background .18s, color .18s, transform .15s, box-shadow .18s;
}
.cal-close:hover {
  background: var(--blue); color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(165,5,5,.3);
}

/* ── CRITICAL FIX: Weekday header + Grid must share identical column layout ── */
/* Use a wrapper so both share the SAME grid context and column widths */
.cal-grid-wrapper {
  display: flex;
  flex-direction: column;
  flex: 1;
  overflow: hidden;
  /* No padding here — padding must NOT exist on the container that holds both header & grid */
}

/* ── Weekday header row ── */
.cal-weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border-bottom: 1.5px solid rgba(165,5,5,.12);
  flex-shrink: 0;
  /* CRITICAL: zero margin/padding so columns align pixel-perfect with grid below */
  margin: 0; padding: 0;
  background: linear-gradient(to bottom, rgba(253,239,212,.3), rgba(255,255,255,0));
}
.cal-weekdays div {
  padding: .6rem .4rem;
  text-align: center; font-size: .65rem; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--blue);
  /* Use border-right approach — same as grid cells */
  border-right: 1px solid rgba(165,5,5,.07);
  box-sizing: border-box;
}
.cal-weekdays div:last-child { border-right: none; }
/* Highlight weekend headers */
.cal-weekdays div:first-child,
.cal-weekdays div:last-child {
  color: rgba(165,5,5,.5);
}

/* ── Month Grid ── */
.cal-month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  flex: 1; overflow-y: auto;
  /* CRITICAL: zero margin/padding so columns align with header above */
  margin: 0; padding: 0;
}

.cal-cell {
  min-height: 105px;
  border-right: 1px solid rgba(165,5,5,.08);
  border-bottom: 1px solid rgba(165,5,5,.08);
  padding: .45rem .4rem .4rem;
  display: flex; flex-direction: column; gap: 3px;
  background: #fff;
  transition: background .15s;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
}
.cal-cell:nth-child(7n) { border-right: none; }
.cal-cell:hover { background: rgba(253,239,212,.5); }
/* Subtle weekend column tint */
.cal-cell:nth-child(7n+1),
.cal-cell:nth-child(7n) {
  background: rgba(253,239,212,.18);
}
.cal-cell:nth-child(7n+1):hover,
.cal-cell:nth-child(7n):hover {
  background: rgba(253,239,212,.55);
}

.cal-other-month { background: #fafafa !important; }
.cal-other-month .cal-day-num { color: #d0d0d0 !important; }

/* Day number */
.cal-day-num {
  font-size: .78rem; font-weight: 700; color: var(--t3);
  text-align: right; line-height: 1; margin-bottom: .1rem;
  flex-shrink: 0;
  font-family: 'Bricolage Grotesque', sans-serif;
}

/* Today circle */
.cal-today-circle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 50%;
  background: var(--grad); color: #fff;
  font-size: .8rem; font-weight: 800;
  box-shadow: 0 2px 8px rgba(165,5,5,.35);
}

/* Event pills inside cells */
.cal-ev-pill {
  display: flex; align-items: center; gap: .22rem;
  width: 100%; text-align: left; border: none; cursor: pointer;
  border-radius: 5px; padding: .2rem .38rem;
  background: color-mix(in srgb, var(--ev-color) 13%, #fff);
  border-left: 3px solid var(--ev-color);
  font-family: 'DM Sans', sans-serif;
  font-size: .69rem; line-height: 1.25;
  transition: background .15s, transform .12s, box-shadow .15s;
  white-space: nowrap; overflow: hidden;
  box-sizing: border-box;
}
.cal-ev-pill:hover {
  background: color-mix(in srgb, var(--ev-color) 22%, #fff);
  transform: translateX(2px);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--ev-color) 25%, transparent);
}

.cal-ev-time {
  font-weight: 800; color: var(--ev-color);
  font-size: .62rem; flex-shrink: 0;
}
.cal-ev-name {
  color: var(--t1); font-weight: 500;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ── Week View ── */
.cal-week-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  flex: 1; overflow-y: auto;
  margin: 0; padding: 0;
}

.cal-week-col {
  border-right: 1px solid rgba(165,5,5,.08);
  padding: .5rem .3rem;
  display: flex; flex-direction: column; gap: .4rem;
  min-height: 200px;
  background: #fff;
  transition: background .15s;
}
.cal-week-col:last-child { border-right: none; }
.cal-week-col:nth-child(1),
.cal-week-col:nth-child(7) { background: rgba(253,239,212,.18); }

.cal-week-today {
  background: rgba(165,5,5,.04) !important;
  border-top: 2px solid var(--blue);
}

.cal-week-empty { flex: 1; }

.cal-week-pill {
  display: flex; flex-direction: column; gap: .1rem;
  width: 100%; text-align: left; border: none; cursor: pointer;
  border-radius: 7px; padding: .4rem .45rem;
  background: color-mix(in srgb, var(--ev-color) 13%, #fff);
  border-left: 3px solid var(--ev-color);
  font-family: 'DM Sans', sans-serif;
  transition: background .15s, transform .12s, box-shadow .15s;
}
.cal-week-pill:hover {
  background: color-mix(in srgb, var(--ev-color) 22%, #fff);
  transform: translateX(2px);
  box-shadow: 0 2px 10px color-mix(in srgb, var(--ev-color) 25%, transparent);
}
.cal-week-pill-time {
  font-size: .6rem; font-weight: 800;
  color: var(--ev-color); line-height: 1;
}
.cal-week-pill-title {
  font-size: .7rem; font-weight: 700; color: var(--t1);
  line-height: 1.2; overflow: hidden; text-overflow: ellipsis;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.cal-week-pill-loc {
  font-size: .6rem; color: var(--t4); font-weight: 500;
  display: flex; align-items: center; gap: .2rem;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cal-week-pill-loc i { font-size: .58rem; color: var(--blue); }

/* Week header date numbers */
.wk-hdr-name { display: block; font-size: .62rem; font-weight: 800; letter-spacing: .08em; }
.wk-hdr-date {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border-radius: 50%;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .82rem; font-weight: 800; margin-top: .15rem;
}
.wk-hdr-today {
  background: var(--grad); color: #fff;
  box-shadow: 0 2px 8px rgba(165,5,5,.35);
}

/* ── Day View ── */
.cal-day-grid {
  flex: 1; overflow-y: auto;
  display: flex; flex-direction: column;
  padding: 1.2rem 1.4rem;
  gap: .8rem;
}

.cal-day-hdr {
  display: flex; align-items: center; gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1.5px solid rgba(165,5,5,.1);
}
.cal-day-hdr-circle {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 60px; height: 60px; border-radius: 50%;
  background: rgba(165,5,5,.06); border: 2px solid rgba(165,5,5,.15);
  flex-shrink: 0;
}
.cal-day-hdr-circle.today {
  background: var(--grad); border-color: transparent;
  box-shadow: 0 4px 16px rgba(165,5,5,.35);
}
.cal-day-hdr-circle.today .cal-day-hdr-num,
.cal-day-hdr-circle.today .cal-day-hdr-wday { color: #fff; }
.cal-day-hdr-num {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.3rem; font-weight: 800; color: var(--t1); line-height: 1;
}
.cal-day-hdr-wday {
  font-size: .55rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: var(--t3);
}
.cal-day-hdr-count {
  font-family: 'DM Sans', sans-serif; font-size: .82rem; font-weight: 600;
  color: var(--t3); background: rgba(165,5,5,.07);
  border: 1px solid rgba(165,5,5,.14); border-radius: 50px;
  padding: .3rem .85rem;
}

.cal-day-empty {
  flex: 1; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: .5rem;
  color: var(--t4); font-size: .9rem;
}

.cal-day-card {
  display: flex; align-items: stretch; gap: 0;
  background: #fff; border: 1px solid rgba(165,5,5,.1);
  border-radius: 14px; overflow: hidden; cursor: pointer;
  text-align: left; font-family: 'DM Sans', sans-serif;
  box-shadow: 0 2px 8px rgba(165,5,5,.06);
  transition: transform .18s, box-shadow .18s, background .15s;
  width: 100%;
}
.cal-day-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--ev-color) 22%, rgba(0,0,0,.06));
  background: color-mix(in srgb, var(--ev-color) 4%, #fff);
}
.cal-day-card-bar {
  width: 5px; flex-shrink: 0;
  background: var(--ev-color);
}
.cal-day-card-body {
  flex: 1; padding: .85rem 1rem;
  display: flex; flex-direction: column; gap: .35rem;
}
.cal-day-card-top {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
}
.cal-day-card-cat {
  font-size: .68rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: var(--ev-color);
  background: color-mix(in srgb, var(--ev-color) 12%, #fff);
  border: 1px solid color-mix(in srgb, var(--ev-color) 25%, transparent);
  border-radius: 50px; padding: .18rem .6rem;
}
.cal-day-card-price {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .9rem; font-weight: 800; color: var(--t1);
}
.cal-day-card-price.free {
  background: var(--grad); -webkit-background-clip: text;
  -webkit-text-fill-color: transparent; background-clip: text;
}
.cal-day-card-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.05rem; font-weight: 800; color: var(--t1);
  letter-spacing: -.02em; line-height: 1.25;
}
.cal-day-card-meta {
  display: flex; align-items: center; gap: 1rem;
  font-size: .77rem; color: var(--t3); font-weight: 500;
}
.cal-day-card-meta span { display: flex; align-items: center; gap: .3rem; }
.cal-day-card-meta i { color: var(--blue); font-size: .72rem; }

/* ── List View ── */
.cal-list-grid {
  flex: 1; overflow-y: auto;
  display: flex; flex-direction: column;
  padding: .8rem 1.2rem;
  gap: .5rem;
}

.cal-list-empty {
  flex: 1; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: .5rem;
  color: var(--t4); font-size: .9rem; padding: 3rem;
}
.cal-list-empty i { font-size: 2rem; }

.cal-list-row {
  display: flex; align-items: stretch; gap: .9rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid rgba(165,5,5,.07);
}
.cal-list-row:last-child { border-bottom: none; }

.cal-list-date {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-width: 42px; text-align: center;
}
.cal-list-day { font-family: 'Bricolage Grotesque', sans-serif; font-size: 1.4rem; font-weight: 800; color: var(--t1); line-height: 1; }
.cal-list-weekday { font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--t4); }

.cal-list-ev {
  flex: 1; display: flex; align-items: center; gap: .75rem;
  background: color-mix(in srgb, var(--ev-color) 8%, #fff);
  border: 1px solid color-mix(in srgb, var(--ev-color) 20%, transparent);
  border-left: 4px solid var(--ev-color);
  border-radius: 10px; padding: .7rem .9rem;
  cursor: pointer; text-align: left;
  transition: background .18s, transform .14s, box-shadow .18s;
  font-family: 'DM Sans', sans-serif;
}
.cal-list-ev:hover {
  background: color-mix(in srgb, var(--ev-color) 14%, #fff);
  transform: translateX(2px);
  box-shadow: 0 4px 16px color-mix(in srgb, var(--ev-color) 20%, transparent);
}

.cal-list-bar { width: 0; } /* hidden, border-left handles color */
.cal-list-info { flex: 1; display: flex; flex-direction: column; gap: .18rem; }
.cal-list-title { font-size: .9rem; font-weight: 700; color: var(--t1); }
.cal-list-meta { font-size: .73rem; color: var(--t3); display: flex; align-items: center; gap: .25rem; }
.cal-list-meta i { color: var(--blue); font-size: .68rem; }

.cal-list-price {
  font-family: 'Bricolage Grotesque', sans-serif; font-size: .9rem; font-weight: 800;
  color: var(--t1); flex-shrink: 0;
}
.cal-list-price.free {
  background: var(--grad); -webkit-background-clip: text;
  -webkit-text-fill-color: transparent; background-clip: text;
}

/* Scrollbars */
.cal-month-grid::-webkit-scrollbar,
.cal-list-grid::-webkit-scrollbar,
.cal-week-grid::-webkit-scrollbar,
.cal-day-grid::-webkit-scrollbar { width: 4px; }
.cal-month-grid::-webkit-scrollbar-track,
.cal-list-grid::-webkit-scrollbar-track,
.cal-week-grid::-webkit-scrollbar-track,
.cal-day-grid::-webkit-scrollbar-track { background: transparent; }
.cal-month-grid::-webkit-scrollbar-thumb,
.cal-list-grid::-webkit-scrollbar-thumb,
.cal-week-grid::-webkit-scrollbar-thumb,
.cal-day-grid::-webkit-scrollbar-thumb { background: rgba(165,5,5,.18); border-radius: 4px; }

/* ── Week View ── */
.cal-week-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  flex: 1; overflow-y: auto;
  margin: 0; padding: 0;
}

.cal-week-col {
  border-right: 1px solid rgba(165,5,5,.08);
  padding: .55rem .35rem;
  display: flex; flex-direction: column; gap: .4rem;
  min-height: 220px;
  background: #fff;
  transition: background .15s;
  box-sizing: border-box;
}
.cal-week-col:last-child { border-right: none; }
.cal-week-col:nth-child(1),
.cal-week-col:nth-child(7) { background: rgba(253,239,212,.18); }

.cal-week-today {
  background: rgba(253,239,212,.45) !important;
  box-shadow: inset 0 0 0 1.5px rgba(165,5,5,.18);
}

.cal-week-empty {
  flex: 1;
}

.cal-week-pill {
  display: flex; flex-direction: column; gap: .1rem;
  width: 100%; text-align: left; border: none; cursor: pointer;
  border-radius: 7px; padding: .4rem .45rem;
  background: color-mix(in srgb, var(--ev-color) 13%, #fff);
  border-left: 3px solid var(--ev-color);
  font-family: 'DM Sans', sans-serif;
  transition: background .15s, transform .12s, box-shadow .15s;
  box-sizing: border-box;
}
.cal-week-pill:hover {
  background: color-mix(in srgb, var(--ev-color) 22%, #fff);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px color-mix(in srgb, var(--ev-color) 25%, transparent);
}

.cal-week-pill-time {
  font-size: .63rem; font-weight: 800; color: var(--ev-color);
  line-height: 1;
}
.cal-week-pill-title {
  font-size: .72rem; font-weight: 700; color: var(--t1);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  line-height: 1.2;
}
.cal-week-pill-loc {
  font-size: .63rem; color: var(--t4);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  display: flex; align-items: center; gap: .15rem;
}
.cal-week-pill-loc i { font-size: .6rem; color: var(--blue); }

/* Week view weekday header — overrides for date numbers */
.wk-hdr-name {
  display: block;
  font-size: .62rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: .08em;
}
.wk-hdr-date {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 50%;
  font-size: .88rem; font-weight: 800;
  font-family: 'Bricolage Grotesque', sans-serif;
  margin-top: .15rem;
}
.wk-hdr-today {
  background: var(--grad); color: #fff;
  box-shadow: 0 2px 8px rgba(165,5,5,.3);
}

/* Make weekday header cells flex-column when in week view */
.cal-week-grid ~ .cal-weekdays div,
.cal-weekdays div {
  display: flex; flex-direction: column; align-items: center;
}

/* ── Day View ── */
.cal-day-grid {
  flex: 1; overflow-y: auto;
  display: flex; flex-direction: column;
  padding: 1rem 1.4rem 1.4rem;
  gap: .75rem;
}

.cal-day-hdr {
  display: flex; align-items: center; gap: 1rem;
  padding-bottom: .8rem;
  border-bottom: 1.5px solid rgba(165,5,5,.1);
}

.cal-day-hdr-circle {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 58px; height: 58px; border-radius: 16px;
  background: rgba(165,5,5,.07);
  border: 1.5px solid rgba(165,5,5,.14);
}
.cal-day-hdr-circle.today {
  background: var(--grad);
  border-color: transparent;
  box-shadow: 0 4px 16px rgba(165,5,5,.3);
}
.cal-day-hdr-circle.today .cal-day-hdr-num,
.cal-day-hdr-circle.today .cal-day-hdr-wday { color: #fff; }

.cal-day-hdr-num {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.5rem; font-weight: 800; color: var(--t1); line-height: 1;
}
.cal-day-hdr-wday {
  font-size: .6rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: var(--t3); line-height: 1;
}

.cal-day-hdr-count {
  font-size: .8rem; font-weight: 600; color: var(--t4);
  font-family: 'DM Sans', sans-serif;
}

.cal-day-empty {
  flex: 1; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: .6rem;
  color: var(--t4); font-size: .9rem;
  font-family: 'DM Sans', sans-serif;
}

.cal-day-card {
  display: flex; align-items: stretch; gap: 0;
  width: 100%; text-align: left; border: none; cursor: pointer;
  border-radius: 14px; overflow: hidden;
  background: color-mix(in srgb, var(--ev-color) 9%, #fff);
  border: 1px solid color-mix(in srgb, var(--ev-color) 22%, transparent);
  font-family: 'DM Sans', sans-serif;
  transition: background .18s, transform .14s, box-shadow .18s;
}
.cal-day-card:hover {
  background: color-mix(in srgb, var(--ev-color) 16%, #fff);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--ev-color) 22%, transparent);
}

.cal-day-card-bar {
  width: 5px; flex-shrink: 0;
  background: var(--ev-color);
  border-radius: 0;
}

.cal-day-card-body {
  flex: 1; padding: .9rem 1rem;
  display: flex; flex-direction: column; gap: .35rem;
}

.cal-day-card-top {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
}

.cal-day-card-cat {
  font-size: .68rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: var(--ev-color);
  background: color-mix(in srgb, var(--ev-color) 12%, transparent);
  padding: .18rem .55rem; border-radius: 50px;
}

.cal-day-card-price {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .9rem; font-weight: 800; color: var(--t1);
}
.cal-day-card-price.free {
  background: var(--grad); -webkit-background-clip: text;
  -webkit-text-fill-color: transparent; background-clip: text;
}

.cal-day-card-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.05rem; font-weight: 800; color: var(--t1);
  letter-spacing: -.02em; line-height: 1.2;
}

.cal-day-card-meta {
  display: flex; align-items: center; gap: .8rem; flex-wrap: wrap;
  font-size: .76rem; color: var(--t3);
}
.cal-day-card-meta span {
  display: flex; align-items: center; gap: .25rem;
}
.cal-day-card-meta i { color: var(--blue); font-size: .7rem; }

/* ════════════════════════════════════════════════════════
   EVENT DETAIL PANEL
════════════════════════════════════════════════════════ */
.ev-detail-overlay {
  position: fixed; inset: 0; z-index: 9500;
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
  background: rgba(10, 4, 2, 0.65);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  opacity: 0; pointer-events: none;
  transition: opacity .28s cubic-bezier(.4,0,.2,1);
}
.ev-detail-overlay.open { opacity: 1; pointer-events: all; }

.ev-detail-panel {
  background: var(--bg);
  border-radius: 24px;
  width: 100%; max-width: 520px;
  max-height: 90vh; overflow-y: auto;
  box-shadow: var(--lg), 0 0 0 1px rgba(255,255,255,.7) inset;
  border: 1px solid rgba(165,5,5,.12);
  transform: translateX(40px) scale(.97);
  transition: transform .32s cubic-bezier(.34,1.56,.64,1);
}
.ev-detail-overlay.open .ev-detail-panel { transform: translateX(0) scale(1); }

.ev-detail-back {
  display: inline-flex; align-items: center; gap: .45rem;
  margin: 1.2rem 1.4rem .4rem;
  font-size: .8rem; font-weight: 600; color: var(--blue);
  background: rgba(165,5,5,.08); border: 1px solid rgba(165,5,5,.16);
  border-radius: 50px; padding: .38rem .9rem;
  cursor: pointer; transition: background .18s, transform .15s;
}
.ev-detail-back:hover { background: rgba(165,5,5,.14); transform: translateX(-2px); }

.ev-detail-hero {
  position: relative; height: 200px; overflow: hidden;
  margin: 0 1.4rem; border-radius: 16px;
}
.ev-detail-img { width: 100%; height: 100%; object-fit: cover; }
.ev-detail-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(12,4,2,.7) 0%, transparent 55%);
}
.ev-detail-badge-wrap { position: absolute; bottom: .8rem; left: .8rem; }
.ev-detail-cat {
  font-size: .7rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; padding: .28rem .7rem;
  background: var(--grad); color: #fff; border-radius: 50px;
}

.ev-detail-body { padding: 1.2rem 1.4rem 1.6rem; }
.ev-detail-meta-row { display: flex; flex-wrap: wrap; gap: .5rem .9rem; margin-bottom: .9rem; }
.ev-detail-meta-item { display: flex; align-items: center; gap: .3rem; font-size: .78rem; color: var(--t3); font-weight: 500; }
.ev-detail-meta-item i { color: var(--blue); }

.ev-detail-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.45rem; font-weight: 800; color: var(--t1);
  letter-spacing: -.02em; line-height: 1.2; margin-bottom: .8rem;
}
.ev-detail-desc { font-size: .88rem; color: var(--t3); line-height: 1.65; margin-bottom: 1.4rem; }

.ev-detail-price-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.ev-detail-price { font-size: 1.3rem; font-weight: 800; font-family: 'Bricolage Grotesque', sans-serif; }
.ev-detail-price.free { background: var(--grad); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.ev-detail-price.paid { color: var(--t1); }

.ev-detail-cta {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .65rem 1.4rem; border-radius: 50px;
  background: var(--grad); color: #fff;
  font-weight: 700; font-size: .88rem;
  text-decoration: none;
  box-shadow: 0 4px 18px rgba(165,5,5,.28);
  transition: transform .18s, box-shadow .18s;
}
.ev-detail-cta:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(165,5,5,.38); color: #fff; }

.ev-detail-panel::-webkit-scrollbar { width: 4px; }
.ev-detail-panel::-webkit-scrollbar-track { background: transparent; }
.ev-detail-panel::-webkit-scrollbar-thumb { background: rgba(165,5,5,.2); border-radius: 4px; }

/* Responsive */
@media (max-width: 640px) {
  .cal-modal { border-radius: 14px; }
  .cal-cell { min-height: 72px; }
  .cal-ev-pill { font-size: .64rem; }
  .cal-view-switcher { display: none; }
  .cal-title { font-size: 1rem; }
  .ev-detail-hero { height: 150px; }
  .ev-detail-title { font-size: 1.15rem; }
}

/* ════════════════════════════════════════════════════════
   MEMBERSHIP COMING SOON POPUP
════════════════════════════════════════════════════════ */
.member-overlay {
  position: fixed; inset: 0; z-index: 9900;
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
  background: rgba(10, 4, 2, 0.62);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  opacity: 0; pointer-events: none;
  transition: opacity .3s cubic-bezier(.4,0,.2,1);
}
.member-overlay.open { opacity: 1; pointer-events: all; }

.member-modal {
  position: relative; overflow: hidden;
  background: var(--bg);
  border-radius: 28px;
  width: 100%; max-width: 480px;
  padding: 2.4rem 2.2rem 2rem;
  box-shadow: var(--lg), 0 0 0 1px rgba(255,255,255,.75) inset;
  border: 1px solid rgba(165,5,5,.13);
  transform: translateY(28px) scale(.96);
  transition: transform .38s cubic-bezier(.34,1.56,.64,1);
  text-align: center;
}
.member-overlay.open .member-modal { transform: translateY(0) scale(1); }

/* Decorative orbs */
.member-orb {
  position: absolute; border-radius: 50%; pointer-events: none;
  filter: blur(60px); animation: orbPulse 7s ease-in-out infinite;
}
.member-orb-1 {
  width: 260px; height: 260px;
  background: radial-gradient(circle, rgba(165,5,5,.18) 0%, transparent 70%);
  top: -80px; right: -80px; animation-delay: 0s;
}
.member-orb-2 {
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(200,56,10,.14) 0%, transparent 70%);
  bottom: -60px; left: -60px; animation-delay: 3.5s;
}

/* Close button */
.member-close {
  position: absolute; top: 1rem; right: 1rem;
  width: 34px; height: 34px; border-radius: 50%;
  background: rgba(165,5,5,.08); border: 1px solid rgba(165,5,5,.14);
  color: var(--t3); font-size: .8rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .18s, color .18s, transform .15s;
  z-index: 2;
}
.member-close:hover { background: rgba(165,5,5,.16); color: var(--blue); transform: scale(1.08); }

/* Badge */
.member-badge {
  display: inline-flex; align-items: center; gap: .45rem;
  font-family: 'DM Sans', sans-serif; font-size: .72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .09em; color: var(--blue);
  background: rgba(165,5,5,.09); border: 1px solid rgba(165,5,5,.18);
  border-radius: 50px; padding: .32rem .85rem;
  margin-bottom: 1.1rem;
}
.member-badge-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--grad);
  animation: blink 1.8s ease-in-out infinite;
}

/* Icon */
.member-icon-wrap {
  width: 68px; height: 68px; border-radius: 50%;
  background: var(--grad);
  box-shadow: 0 8px 28px rgba(165,5,5,.32);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto .9rem;
  font-size: 1.6rem; color: #fff;
  animation: floatUp 4s ease-in-out infinite;
}

/* Title */
.member-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.9rem; font-weight: 800; color: var(--t1);
  letter-spacing: -.03em; line-height: 1.18; margin-bottom: .75rem;
}
.member-title em {
  font-style: normal;
  background: var(--grad); -webkit-background-clip: text;
  -webkit-text-fill-color: transparent; background-clip: text;
}

/* Subtitle */
.member-sub {
  font-family: 'DM Sans', sans-serif; font-size: .9rem;
  color: var(--t3); line-height: 1.65;
  max-width: 380px; margin: 0 auto 1.4rem;
}

/* Form */
.member-form {
  display: flex; gap: .55rem; flex-direction: column;
  margin-bottom: .7rem;
}
.member-input-wrap {
  position: relative; display: flex; align-items: center;
}
.member-input-icon {
  position: absolute; left: 1rem; color: var(--t4); font-size: .85rem;
  pointer-events: none; z-index: 1;
  transition: color .2s;
}
.member-input-wrap:focus-within .member-input-icon { color: var(--blue); }

.member-input {
  font-family: 'DM Sans', sans-serif; font-size: .9rem; color: var(--t1);
  width: 100%; padding: .78rem 1rem .78rem 2.6rem;
  background: rgba(255,255,255,.78);
  border: 1.5px solid rgba(165,5,5,.2);
  border-radius: 50px; outline: none;
  transition: border-color .22s, box-shadow .22s, background .22s;
}
.member-input::placeholder { color: var(--t4); font-weight: 400; }
.member-input:focus {
  border-color: rgba(165,5,5,.48);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(165,5,5,.1), 0 4px 14px rgba(165,5,5,.07);
}

.member-submit {
  font-family: 'DM Sans', sans-serif; font-size: .9rem; font-weight: 700;
  padding: .78rem 1.6rem; border-radius: 50px; border: none; cursor: pointer;
  background: var(--grad); color: #fff;
  display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
  box-shadow: 0 6px 22px rgba(165,5,5,.3);
  transition: transform .2s, box-shadow .2s, filter .2s;
}
.member-submit:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(165,5,5,.4); filter: brightness(1.06); }
.member-submit:active { transform: translateY(0); }

/* Note */
.member-note {
  font-size: .75rem; color: var(--t4);
  display: flex; align-items: center; justify-content: center; gap: .35rem;
}
.member-note i { color: rgba(165,5,5,.45); }

/* Success state */
.member-success {
  display: none; flex-direction: column;
  align-items: center; gap: .8rem;
  padding: 1rem 0 .5rem; animation: fadeUp .4s ease both;
}
.member-success.show { display: flex; }
.member-success-icon {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--grad);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 1.5rem;
  box-shadow: 0 6px 22px rgba(165,5,5,.3);
  animation: subtlePulse 2s ease-in-out infinite;
}
.member-success-msg {
  font-family: 'DM Sans', sans-serif; font-size: .95rem; font-weight: 600;
  color: var(--t2); text-align: center;
}

@media (max-width: 520px) {
  .member-modal { padding: 2rem 1.3rem 1.6rem; border-radius: 20px; }
  .member-title { font-size: 1.55rem; }
}


/* ════════════════════════════════════════════════════════
   VIDEO CARD SLIDER — TESTIMONIALS
════════════════════════════════════════════════════════ */

/* Section */
#testimonials {
  background: #fefdfa;
  padding: 5rem 0 5.5rem;
  position: relative; overflow: hidden;
}
#testimonials::before {
  content: ''; position: absolute; inset: 0;
  background-image: radial-gradient(rgba(200,56,10,.045) 1px, transparent 1px);
  background-size: 28px 28px; pointer-events: none; z-index: 0;
}

/* Header row */
.vsl-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0rem;
  margin-bottom: 2.4rem;
  flex-wrap: wrap;
}
.vsl-header-left { flex: 1; }

.tm-sub {
  font-family: 'DM Sans', sans-serif; font-size: .92rem;
  color: var(--t3); margin-top: .5rem; line-height: 1.6;
}

/* Arrow buttons — circular outline style like reference */
.vsl-arrows {
  display: flex; gap: .6rem; flex-shrink: 0; align-items: center;
  padding-bottom: .3rem;
}
.vsl-arrow {
  width: 40px; height: 40px; border-radius: 50%;
  background: #fff !important;
  border: 1.5px solid rgba(165,5,5,.28);
  color: var(--t2);
  font-size: .95rem;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background .2s, border-color .2s, color .2s, transform .18s, box-shadow .2s;
}
.vsl-arrow:hover:not(:disabled) {
  background: var(--grad) !important;
  border-color: transparent;
  color: #fff;
  transform: scale(1.07);
  box-shadow: 0 6px 20px rgba(165,5,5,.3);
}
.vsl-arrow:disabled {
  opacity: .82; cursor: not-allowed;
}

/* Viewport — clips overflow */
.vsl-viewport {
  overflow: hidden;
  margin: 0 -0.2rem;
  padding: 0.2rem;
}

/* Track — flex row that slides */
.vsl-track {
  display: flex;
  gap: 1.25rem;
  transition: transform .6s cubic-bezier(.77,0,.18,1);
  will-change: transform;
}

/* Card */
.vsl-card {
  flex: 0 0 calc(20% - 1rem);   /* 5 visible by default */
  background: #fff;
  border-radius: 18px;
  border: 1px solid rgba(165,5,5,.09);
  box-shadow: 0 4px 18px rgba(165,5,5,.07), 0 1px 0 rgba(255,255,255,.9) inset;
  overflow: hidden;
  cursor: pointer;
  transition: transform .28s cubic-bezier(.4,0,.2,1), box-shadow .28s;
}
.vsl-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 48px rgba(165,5,5,.14), 0 0 0 1px rgba(165,5,5,.12);
}

/* Thumbnail area */
.vsl-thumb {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--t1);
}
.vsl-thumb img,
.vsl-thumb video {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s cubic-bezier(.4,0,.2,1), filter .35s;
  pointer-events: none; /* prevent video from intercepting card clicks */
}
.vsl-card:hover .vsl-thumb img,
.vsl-card:hover .vsl-thumb video {
  transform: scale(1.06);
  filter: brightness(.82);
}
.vsl-thumb-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(12,4,2,.55) 0%, transparent 60%);
  z-index: 1;
}

/* Play button — centered, always visible with subtle style */
.vsl-play {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 52px; height: 52px; border-radius: 50%;
  background: rgba(255,255,255,.2);
  backdrop-filter: blur(6px);
  border: 2px solid rgba(255,255,255,.55);
  color: #fff; font-size: 1.2rem;
  display: flex; align-items: center; justify-content: center;
  z-index: 2;
  transition: background .25s, border-color .25s, transform .25s, box-shadow .25s;
}
.vsl-card:hover .vsl-play {
  background: var(--grad);
  border-color: transparent;
  box-shadow: 0 6px 24px rgba(165,5,5,.45);
  transform: translate(-50%, -50%) scale(1.1);
}

/* Category badge */
.vsl-cat-badge {
  position: absolute; top: .75rem; left: .75rem; z-index: 3;
  font-family: 'DM Sans', sans-serif; font-size: .62rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em;
  padding: .22rem .65rem; border-radius: 50px;
  background: var(--grad); color: #fff;
  box-shadow: 0 2px 10px rgba(165,5,5,.3);
}

/* Info area below thumbnail — like product card */
.vsl-info {
  padding: .95rem 1rem 1.05rem;
}
.vsl-card-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .95rem; font-weight: 800; color: var(--t1);
  letter-spacing: -.01em; line-height: 1.3;
  margin-bottom: .45rem;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.vsl-card-meta {
  font-family: 'DM Sans', sans-serif;
  font-size: .76rem; color: var(--t3); font-weight: 500;
  display: flex; align-items: center; gap: .3rem;
}
.vsl-card-meta i { color: var(--blue); font-size: .7rem; }

/* ── Responsive breakpoints ── */
@media (max-width: 1100px) {
  .vsl-card { flex: 0 0 calc(33.333% - 0.84rem); }
}
@media (max-width: 768px) {
  .vsl-card { flex: 0 0 calc(50% - 0.63rem); }
}
@media (max-width: 600px) {
  .vsl-card { flex: 0 0 100%; }
  .vsl-track { gap: 0; }
  .vsl-viewport { margin: 0; padding: 0; overflow: hidden; }
}

/* ════ LIGHTBOX (reused) ════ */
.vg-lightbox {
  position: fixed; inset: 0; z-index: 9800;
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
  opacity: 0; pointer-events: none;
  transition: opacity .28s cubic-bezier(.4,0,.2,1);
}
.vg-lightbox.open { opacity: 1; pointer-events: all; }
.vg-lb-backdrop {
  position: absolute; inset: 0;
  background: rgba(8,3,2,.88);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
}
.vg-lb-box {
  position: relative; z-index: 1;
  width: 100%; max-width: 860px;
  background: var(--bg);
  border-radius: 24px;
  border: 1px solid rgba(165,5,5,.14);
  box-shadow: 0 40px 100px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.08) inset;
  overflow: hidden;
  transform: scale(.94) translateY(16px);
  transition: transform .36s cubic-bezier(.34,1.56,.64,1);
}
.vg-lightbox.open .vg-lb-box { transform: scale(1) translateY(0); }
.vg-lb-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1rem 1.2rem .8rem;
  border-bottom: 1px solid rgba(165,5,5,.1);
  background: rgba(255,255,255,.5);
}
.vg-lb-info { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.vg-lb-tag {
  font-family: 'DM Sans', sans-serif; font-size: .7rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em;
  padding: .22rem .65rem; border-radius: 50px;
  background: var(--grad); color: #fff;
}
.vg-lb-date { font-family: 'DM Sans', sans-serif; font-size: .78rem; color: var(--t4); font-weight: 500; }
.vg-lb-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.05rem; font-weight: 800; color: var(--t1);
  letter-spacing: -.02em; padding: .7rem 1.2rem .4rem;
}
.vg-lb-close {
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(165,5,5,.08); border: 1px solid rgba(165,5,5,.14);
  color: var(--t3); font-size: .82rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .18s, color .18s, transform .15s; flex-shrink: 0;
}
.vg-lb-close:hover { background: rgba(165,5,5,.18); color: var(--blue); transform: scale(1.08); }
.vg-lb-frame-wrap { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; }
.vg-lb-iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }


/* ══════════════════════════════════════════════════════
   EVENT DETAIL PAGE
══════════════════════════════════════════════════════ */

/* ════ ADDITIONAL KEYFRAMES ════ */
@keyframes progressFill{from{width:0}to{width:var(--target-w)}}
@keyframes floatBadge{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(-2deg)}}

/* ════ EVENT HERO ════ */
.ev-hero{
  position:relative;min-height:60vh;padding-top:0;margin-top:var(--h-h);
  display:flex;flex-direction:column;justify-content:flex-end;
  overflow:hidden;
}
.ev-hero-bg{position:absolute;inset:0;z-index:0;}
.ev-hero-bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.45) saturate(1.1);}
.ev-hero-bg::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top, rgba(12,16,36,.92) 0%, rgba(12,16,36,.5) 45%, rgba(12,16,36,.2) 100%);
}
.ev-hero-orb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(90px);animation:orbPulse 9s ease-in-out infinite;z-index:1;}
.ev-hero-orb-1{width:500px;height:500px;top:-80px;right:-80px;background:radial-gradient(circle,rgba(165,5,5,.28),transparent 70%);}
.ev-hero-orb-2{width:350px;height:350px;bottom:0;left:-60px;background:radial-gradient(circle,rgba(200,56,10,.18),transparent 70%);animation-delay:4.5s;}
.ev-hero-ring{
  position:absolute;top:100px;right:80px;width:220px;height:220px;
  border-radius:50%;border:1px dashed rgba(255,255,255,.14);
  animation:spinSlow 40s linear infinite;pointer-events:none;z-index:1;
}
.ev-hero-content{
  position:relative;z-index:2;padding:2.5rem 2rem 3rem;max-width:1200px;margin:0 auto;width:100%;
  animation:fadeUp .7s cubic-bezier(.4,0,.2,1) both;
}
.ev-breadcrumb{
  display:flex;align-items:center;gap:.45rem;
  font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:500;color:rgba(255,255,255,.55);
  margin-bottom:1.4rem;
}
.ev-breadcrumb a{color:rgba(255,255,255,.55);text-decoration:none;transition:color .2s;}
.ev-breadcrumb a:hover{color:rgba(255,255,255,.9);}
.ev-breadcrumb i{font-size:.6rem;}
.ev-breadcrumb .current{color:rgba(255,255,255,.9);}
.ev-hero-tags{display:flex;gap:.55rem;flex-wrap:wrap;margin-bottom:1.1rem;}
.ev-tag{
  font-family:'DM Sans',sans-serif;font-size:.68rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;
  padding:.24rem .72rem;border-radius:50px;
}
.ev-tag-cat{background:var(--grad);color:#fff;box-shadow:0 3px 12px rgba(165,5,5,.35);}
.ev-tag-live{background:rgba(34,197,94,.18);border:1px solid rgba(34,197,94,.35);color:#4ade80;}
.ev-tag-live::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#4ade80;margin-right:.38rem;animation:orbPulse 1.8s ease-in-out infinite;}
.ev-tag-free{background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.3);color:#fbbf24;}
.ev-hero-title{
  font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(2rem,4.5vw,3.6rem);
  font-weight:800;color:#fff;letter-spacing:-.03em;line-height:1.1;margin-bottom:.9rem;
}
.ev-hero-title em{
  font-style:italic;font-family:'Gelasio',serif;
  background:linear-gradient(135deg,#ff8a70,#f43f5e);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.ev-hero-meta{
  display:flex;flex-wrap:wrap;gap:.9rem 1.8rem;
  font-family:'DM Sans',sans-serif;font-size:.875rem;color:rgba(255,255,255,.72);
  margin-bottom:1.8rem;
}
.ev-hero-meta-item{display:flex;align-items:center;gap:.42rem;}
.ev-hero-meta-item i{color:rgba(165,5,5,.9);font-size:.88rem;}
.ev-hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;}
.btn-register{
  font-family:'DM Sans',sans-serif;font-size:.95rem;font-weight:700;
  padding:.72rem 2rem;border-radius:50px;cursor:pointer;border:none;
  background:var(--grad);color:#fff;
  display:inline-flex;align-items:center;gap:.5rem;
  box-shadow:0 6px 24px rgba(165,5,5,.42);
  transition:transform .22s,box-shadow .22s,filter .22s;text-decoration:none;
}
.btn-register:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(165,5,5,.52);filter:brightness(1.07);color:#fff;}
.btn-ghost-white{
  font-family:'DM Sans',sans-serif;font-size:.875rem;font-weight:600;
  padding:.72rem 1.5rem;border-radius:50px;cursor:pointer;
  border:1.5px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.9);backdrop-filter:blur(8px);
  display:inline-flex;align-items:center;gap:.45rem;
  transition:background .22s,border-color .22s,color .22s,transform .22s;text-decoration:none;
}
.btn-ghost-white:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.48);color:#fff;transform:translateY(-2px);}

/* ════ STICKY TICKET BAR ════ */
.ticket-bar{
  position:sticky;top:var(--h-h);z-index:800;
  background:rgba(255,255,255,.92);backdrop-filter:blur(24px) saturate(160%);
  border-bottom:1px solid rgba(165,5,5,.1);box-shadow:0 4px 20px rgba(165,5,5,.08);
  transition:transform .3s;
}
.ticket-bar-inner{
  max-width:1200px;margin:0 auto;padding:.65rem 2rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.tb-info{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;}
.tb-event-name{font-family:'Bricolage Grotesque',sans-serif;font-size:1rem;font-weight:800;color:var(--t1);letter-spacing:-.01em;}
.tb-meta{font-family:'DM Sans',sans-serif;font-size:.78rem;color:var(--t3);display:flex;gap:1rem;flex-wrap:wrap;}
.tb-meta span{display:flex;align-items:center;gap:.3rem;}
.tb-meta i{color:var(--blue);font-size:.75rem;}
.tb-right{display:flex;align-items:center;gap:.85rem;}
.tb-price{
  font-family:'Bricolage Grotesque',sans-serif;font-size:1.15rem;font-weight:800;
  background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.tb-price small{font-family:'DM Sans',sans-serif;font-size:.7rem;font-weight:500;color:var(--t4);-webkit-text-fill-color:var(--t4);}

/* ════ MAIN LAYOUT ════ */
.ev-main{max-width:1200px;margin:0 auto;padding:2.5rem 2rem 4rem;display:grid;grid-template-columns:1fr 340px;gap:2.5rem;align-items:start;}
@media(max-width:900px){.ev-main{grid-template-columns:1fr;}}

/* ════ SECTION HEADINGS ════ */
.sec-label{
  font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.1em;color:var(--blue);
  display:flex;align-items:center;gap:.5rem;margin-bottom:.55rem;
}
.sec-label::before{content:'';width:18px;height:2px;border-radius:2px;background:var(--grad);}
.sec-title{
  font-family:'Bricolage Grotesque',sans-serif;font-size:1.55rem;font-weight:800;
  color:var(--t1);letter-spacing:-.02em;line-height:1.25;margin-bottom:1.2rem;
}

/* ════ ABOUT CARD ════ */
.ev-card{
  background:rgba(255,255,255,.72);border:1px solid rgba(165,5,5,.09);
  border-radius:var(--r);box-shadow:var(--md);backdrop-filter:blur(8px);
  padding:1.75rem;margin-bottom:1.75rem;
  animation:fadeUp .55s cubic-bezier(.4,0,.2,1) both;
}
.ev-card:nth-child(2){animation-delay:.08s;}
.ev-card:nth-child(3){animation-delay:.16s;}
.ev-card:nth-child(4){animation-delay:.24s;}
.ev-about-body{font-family:'DM Sans',sans-serif;font-size:.925rem;color:var(--t2);line-height:1.75;}
.ev-about-body p{margin-bottom:.9rem;}
.ev-about-body p:last-child{margin-bottom:0;}
.ev-about-body strong{color:var(--t1);}

/* ════ SCHEDULE ════ */
.ev-schedule{list-style:none;}
.ev-schedule-item{
  display:grid;grid-template-columns:70px 1fr;gap:1rem;
  padding:1.1rem 0;border-bottom:1px solid rgba(165,5,5,.07);position:relative;
}
.ev-schedule-item:last-child{border-bottom:none;padding-bottom:0;}
.ev-schedule-item::before{content:'';position:absolute;left:69px;top:0;bottom:0;width:1px;background:rgba(165,5,5,.1);}
.ev-sch-time{font-family:'DM Sans',sans-serif;font-size:.75rem;font-weight:700;color:var(--blue);text-align:right;padding-top:.12rem;}
.ev-sch-dot{
  position:absolute;left:63px;top:1.35rem;width:12px;height:12px;border-radius:50%;
  background:var(--grad);border:2.5px solid var(--bg);box-shadow:0 0 0 2px rgba(165,5,5,.2);z-index:1;
}
.ev-sch-body{padding-left:.5rem;}
.ev-sch-title{font-family:'Bricolage Grotesque',sans-serif;font-size:.95rem;font-weight:700;color:var(--t1);margin-bottom:.22rem;}
.ev-sch-desc{font-family:'DM Sans',sans-serif;font-size:.8rem;color:var(--t3);line-height:1.5;}
.ev-sch-speaker{
  display:inline-flex;align-items:center;gap:.4rem;
  font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:600;color:var(--blue);margin-top:.35rem;
}
.ev-sch-speaker img{width:20px;height:20px;border-radius:50%;object-fit:cover;border:1.5px solid rgba(165,5,5,.2);}

/* ════ SIDEBAR ════ */
.ev-sidebar{position:sticky;top:calc(var(--h-h) + 60px);}
.ev-ticket-card{
  background:rgba(255,255,255,.85);border:1px solid rgba(165,5,5,.12);
  border-radius:var(--r);box-shadow:var(--lg);overflow:hidden;margin-bottom:1.25rem;
  animation:fadeUp .5s .1s cubic-bezier(.4,0,.2,1) both;
}
.ev-ticket-head{background:var(--grad);padding:1.3rem 1.5rem 1.2rem;position:relative;overflow:hidden;}
.ev-ticket-head::before{content:'';position:absolute;top:-30px;right:-30px;width:120px;height:120px;border-radius:50%;border:1px dashed rgba(255,255,255,.25);}
.ev-ticket-head::after{content:'';position:absolute;bottom:-20px;left:20px;width:80px;height:80px;border-radius:50%;border:1px dashed rgba(255,255,255,.18);}
.ev-ticket-type{font-family:'DM Sans',sans-serif;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.7);margin-bottom:.3rem;}
.ev-ticket-price-row{display:flex;align-items:baseline;gap:.4rem;}
.ev-ticket-price{font-family:'Bricolage Grotesque',sans-serif;font-size:2.2rem;font-weight:800;color:#fff;letter-spacing:-.03em;line-height:1;}
.ev-ticket-price-orig{font-family:'DM Sans',sans-serif;font-size:.85rem;font-weight:500;color:rgba(255,255,255,.55);text-decoration:line-through;}
.ev-ticket-save{font-family:'DM Sans',sans-serif;font-size:.65rem;font-weight:700;background:rgba(255,255,255,.2);color:#fff;padding:.18rem .55rem;border-radius:50px;margin-left:.3rem;}
.ev-ticket-body{padding:1.4rem 1.5rem 1.5rem;}
.ev-ticket-spots{margin-bottom:1rem;}
.ev-spots-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.45rem;}
.ev-spots-label{font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:500;color:var(--t3);}
.ev-spots-count{font-family:'Bricolage Grotesque',sans-serif;font-size:.82rem;font-weight:700;color:var(--blue);}
.ev-spots-bar{height:6px;border-radius:50px;background:rgba(165,5,5,.1);overflow:hidden;}
.ev-spots-fill{height:100%;border-radius:50px;background:var(--grad);--target-w:68%;width:var(--target-w);animation:progressFill 1.2s .6s cubic-bezier(.4,0,.2,1) both;}
.ev-ticket-perks{list-style:none;margin-bottom:1.25rem;}
.ev-ticket-perks li{font-family:'DM Sans',sans-serif;font-size:.82rem;color:var(--t2);display:flex;align-items:center;gap:.55rem;padding:.38rem 0;border-bottom:1px solid rgba(165,5,5,.05);}
.ev-ticket-perks li:last-child{border-bottom:none;}
.ev-ticket-perks li i{color:var(--blue);font-size:.82rem;flex-shrink:0;}
.btn-reg-full{
  width:100%;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:700;
  padding:.85rem;border-radius:50px;cursor:pointer;border:none;
  background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;gap:.5rem;
  box-shadow:0 6px 24px rgba(165,5,5,.32);transition:transform .22s,box-shadow .22s,filter .22s;text-decoration:none;
}
.btn-reg-full:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(165,5,5,.42);filter:brightness(1.06);color:#fff;}
.ev-ticket-note{font-family:'DM Sans',sans-serif;font-size:.72rem;color:var(--t4);text-align:center;margin-top:.7rem;display:flex;align-items:center;justify-content:center;gap:.3rem;}
.ev-ticket-note i{font-size:.7rem;}

/* Quick info card */
.ev-quick-info{
  background:rgba(255,255,255,.72);border:1px solid rgba(165,5,5,.09);
  border-radius:var(--r);box-shadow:var(--sm);overflow:hidden;margin-bottom:1.25rem;
  animation:fadeUp .5s .2s cubic-bezier(.4,0,.2,1) both;
}
.ev-qi-head{
  padding:.9rem 1.3rem;background:linear-gradient(135deg,rgba(165,5,5,.06),rgba(200,56,10,.04));
  border-bottom:1px solid rgba(165,5,5,.08);
  font-family:'Bricolage Grotesque',sans-serif;font-size:.95rem;font-weight:800;color:var(--t1);
}
.ev-qi-list{list-style:none;}
.ev-qi-item{display:flex;align-items:center;gap:.9rem;padding:.85rem 1.3rem;border-bottom:1px solid rgba(165,5,5,.06);}
.ev-qi-item:last-child{border-bottom:none;}
.ev-qi-icon{
  width:34px;height:34px;border-radius:9px;flex-shrink:0;
  background:linear-gradient(135deg,rgba(165,5,5,.1),rgba(200,56,10,.06));
  border:1px solid rgba(165,5,5,.1);display:flex;align-items:center;justify-content:center;
  color:var(--blue);font-size:.88rem;
}
.ev-qi-label{font-family:'DM Sans',sans-serif;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--t4);margin-bottom:.12rem;}
.ev-qi-val{font-family:'DM Sans',sans-serif;font-size:.85rem;font-weight:600;color:var(--t1);}

/* Share card */
.ev-share{
  background:rgba(255,255,255,.72);border:1px solid rgba(165,5,5,.09);
  border-radius:var(--r);box-shadow:var(--sm);padding:1.3rem;margin-top:1.25rem;
  animation:fadeUp .5s .35s cubic-bezier(.4,0,.2,1) both;
}
.ev-share-title{font-family:'Bricolage Grotesque',sans-serif;font-size:.88rem;font-weight:800;color:var(--t1);margin-bottom:.8rem;}
.ev-share-btns{display:flex;gap:.6rem;flex-wrap:wrap;}
.btn-share{
  flex:1;min-width:60px;font-family:'DM Sans',sans-serif;font-size:.75rem;font-weight:600;
  padding:.52rem .6rem;border-radius:10px;cursor:pointer;
  border:1px solid rgba(165,5,5,.1);background:rgba(255,255,255,.8);color:var(--t2);
  display:flex;align-items:center;justify-content:center;gap:.35rem;
  transition:background .18s,border-color .18s,transform .18s,box-shadow .18s;
}
.btn-share:hover{background:#fff;border-color:rgba(165,5,5,.22);transform:translateY(-2px);box-shadow:var(--sm);}
.btn-share i{font-size:.9rem;}
.btn-share.copy i{color:var(--blue);}
.btn-share.twitter i{color:#1d9bf0;}
.btn-share.whatsapp i{color:#25d366;}
.btn-share.linkedin i{color:#0077b5;}

/* ════ MAP SECTION ════ */
.ev-map-wrapper{border-radius:18px;overflow:hidden;border:1px solid rgba(165,5,5,.1);box-shadow:var(--md);margin-top:.8rem;position:relative;}
.ev-map-placeholder{
  width:100%;height:220px;
  background:linear-gradient(135deg,rgba(165,5,5,.06) 0%,rgba(250,232,198,.5) 100%);
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.6rem;
  font-family:'DM Sans',sans-serif;color:var(--t3);font-size:.85rem;position:relative;overflow:hidden;
}
.ev-map-placeholder::before{
  content:'';position:absolute;inset:0;
  background-image:linear-gradient(rgba(165,5,5,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(165,5,5,.04) 1px,transparent 1px);
  background-size:30px 30px;
}
.ev-map-placeholder i{font-size:2rem;color:var(--blue);opacity:.6;}
.ev-map-pin{
  position:absolute;bottom:58px;left:50%;
  width:36px;height:36px;background:var(--grad);border-radius:50% 50% 50% 0;
  transform:translateX(-50%) rotate(-45deg);box-shadow:0 4px 16px rgba(165,5,5,.35);
  display:flex;align-items:center;justify-content:center;
  animation:floatBadge 3s ease-in-out infinite;
}
.ev-map-pin i{transform:rotate(45deg);color:#fff;font-size:.85rem;}
.ev-map-address{
  background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-top:1px solid rgba(165,5,5,.08);
  padding:.85rem 1.1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.ev-map-addr-text{font-family:'DM Sans',sans-serif;font-size:.8rem;color:var(--t2);font-weight:500;}
.ev-map-addr-text strong{font-family:'Bricolage Grotesque',sans-serif;font-size:.9rem;font-weight:700;color:var(--t1);display:block;margin-bottom:.12rem;}
.btn-directions{
  font-family:'DM Sans',sans-serif;font-size:.75rem;font-weight:700;
  padding:.45rem .9rem;border-radius:50px;cursor:pointer;
  background:var(--grad);color:#fff;border:none;
  display:flex;align-items:center;gap:.35rem;white-space:nowrap;
  box-shadow:0 3px 12px rgba(165,5,5,.28);transition:transform .18s,filter .18s;
}
.btn-directions:hover{transform:translateY(-1px);filter:brightness(1.08);}

/* ════ RELATED EVENTS ════ */
.ev-related{max-width:1200px;margin:0 auto;padding:3rem 2rem 4rem;}
.ev-related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:1.6rem;}
@media(max-width:768px){.ev-related-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.ev-related-grid{grid-template-columns:1fr;}}
.ev-rel-card{
  background:#fff;border:1px solid rgba(165,5,5,.08);border-radius:22px;overflow:hidden;
  box-shadow:0 4px 24px rgba(165,5,5,.07),0 1px 0 rgba(255,255,255,.9) inset;
  cursor:pointer;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s;
  text-decoration:none;display:flex;flex-direction:column;
}
.ev-rel-card:hover{transform:translateY(-6px);box-shadow:0 20px 52px rgba(165,5,5,.13),0 4px 16px rgba(0,0,0,.06);}
.ev-rel-img{position:relative;aspect-ratio:4/3;overflow:hidden;flex-shrink:0;}
.ev-rel-img img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.4,0,.2,1),filter .4s;}
.ev-rel-card:hover .ev-rel-img img{transform:scale(1.07);filter:brightness(.85);}
.ev-rel-cat{
  position:absolute;top:.75rem;left:.75rem;z-index:2;
  font-family:'DM Sans',sans-serif;font-size:.62rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;
  padding:.24rem .7rem;border-radius:50px;background:var(--grad);color:#fff;box-shadow:0 3px 12px rgba(165,5,5,.32);
}
.ev-rel-body{padding:1.15rem 1.2rem 0;flex:1;display:flex;flex-direction:column;}
.ev-rel-meta-row{
  display:flex;align-items:center;gap:1.1rem;
  font-family:'DM Sans',sans-serif;font-size:.76rem;font-weight:500;color:var(--t3);margin-bottom:.75rem;
}
.ev-rel-meta-row span{display:flex;align-items:center;gap:.32rem;}
.ev-rel-meta-row i{color:var(--blue);font-size:.75rem;}
.ev-rel-title{font-family:'Bricolage Grotesque',sans-serif;font-size:1.05rem;font-weight:800;color:var(--t1);letter-spacing:-.02em;line-height:1.28;margin-bottom:.5rem;}
.ev-rel-desc{font-family:'DM Sans',sans-serif;font-size:.82rem;color:var(--t3);line-height:1.6;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ev-rel-foot{border-top:1px solid rgba(165,5,5,.08);padding:1rem 1.2rem 1.2rem;margin-top:auto;}
.btn-view-details{
  display:flex;align-items:center;justify-content:center;
  width:100%;font-family:'DM Sans',sans-serif;font-size:.88rem;font-weight:700;
  padding:.72rem;border-radius:50px;background:var(--grad);color:#fff;border:none;cursor:pointer;
  box-shadow:0 4px 18px rgba(165,5,5,.28);transition:transform .22s,box-shadow .22s,filter .22s;text-decoration:none;
}
.btn-view-details:hover{transform:translateY(-2px);box-shadow:0 8px 26px rgba(165,5,5,.4);filter:brightness(1.06);color:#fff;}
.ev-rel-price{display:inline-flex;align-items:center;font-family:'DM Sans',sans-serif;font-size:.7rem;font-weight:700;padding:.18rem .6rem;border-radius:50px;margin-left:auto;flex-shrink:0;}
.ev-rel-price.free{background:rgba(34,197,94,.1);color:#16a34a;border:1px solid rgba(34,197,94,.25);}
.ev-rel-price.paid{background:rgba(165,5,5,.07);color:var(--blue);border:1px solid rgba(165,5,5,.16);}

/* ════ EVENT DETAIL RESPONSIVE ════ */
@media(max-width:900px){
  .ev-hero-content{padding:2rem 1.2rem 2.5rem;}
  .ev-main{padding:2rem 1.2rem 3rem;}
  .ev-related{padding:2rem 1.2rem 3rem;}
  .ticket-bar-inner{padding:.55rem 1.2rem;}
}
@media(max-width:600px){
  .ev-hero-actions{flex-direction:column;}
  .btn-register,.btn-ghost-white{justify-content:center;}

  /* Schedule — collapse time column, stack vertically */
  .ev-schedule-item{grid-template-columns:1fr;padding:.9rem 0 .9rem 1rem;}
  .ev-schedule-item::before{left:0;}
  .ev-sch-dot{left:-6px;top:1.1rem;}
  .ev-sch-time{text-align:left;margin-bottom:.25rem;}
  .ev-sch-body{padding-left:0;}
}


/* ══════════════════════════════════════════════════════
   EVENTS LISTING PAGE
══════════════════════════════════════════════════════ */

/* ════ PAGE HERO ════ */
.ev-page-hero{
  position:relative;padding:calc(var(--h-h) + 3.5rem) 2rem 2rem;
  overflow:hidden;
  background:rgba(253,239,212,.92);
  /* border-bottom:1px solid rgba(165,5,5,.08); */
}
/* .ev-page-hero::before{
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(rgba(165,5,5,.035) 1px,transparent 1px);
  background-size:22px 22px;pointer-events:none;
}
.ev-page-hero-orb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(100px);animation:orbPulse 9s ease-in-out infinite;}
.ev-page-orb-1{width:600px;height:600px;top:-200px;right:-150px;background:radial-gradient(circle,rgba(165,5,5,.10),transparent 70%);}
.ev-page-orb-2{width:400px;height:400px;bottom:-150px;left:-100px;background:radial-gradient(circle,rgba(200,56,10,.08),transparent 70%);animation-delay:4s;}
.ev-page-hero-ring{
  position:absolute;top:80px;right:100px;width:200px;height:200px;
  border-radius:50%;border:1px dashed rgba(165,5,5,.14);
  animation:spinSlow 40s linear infinite;pointer-events:none;
} */
.ev-page-hero-inner{position:relative;z-index:1;max-width:1200px;margin:0 auto;}
.ev-page-breadcrumb{
  display:flex;align-items:center;gap:.45rem;
  font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:500;color:var(--t4);
  margin-bottom:1.2rem;
}
.ev-page-breadcrumb a{color:var(--t4);text-decoration:none;transition:color .2s;}
.ev-page-breadcrumb a:hover{color:var(--blue);}
.ev-page-breadcrumb i{font-size:.6rem;}
.ev-page-breadcrumb .current{color:var(--t2);}
.ev-page-label{
  font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.12em;color:var(--blue);
  display:inline-flex;align-items:center;gap:.5rem;margin-bottom:.7rem;
}
.ev-page-label::before{content:'';width:18px;height:2px;border-radius:2px;background:var(--grad);}
.ev-page-title{
  font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(2.2rem,4.5vw,3.4rem);
  font-weight:800;color:var(--t1);letter-spacing:-.03em;line-height:1.1;margin-bottom:.75rem;
}
.ev-page-title em{
  font-style:italic;font-family:'Gelasio',serif;
  background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.ev-page-sub{
  font-family:'DM Sans',sans-serif;font-size:1rem;color:var(--t3);
  line-height:1.65;max-width:520px;margin-bottom:0rem;
}
.ev-page-stats{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;}
.ev-page-stat{display:flex;flex-direction:column;}
.ev-page-stat-num{
  font-family:'Bricolage Grotesque',sans-serif;font-size:1.7rem;font-weight:800;
  background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  line-height:1;
}
.ev-page-stat-lbl{font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:500;color:var(--t4);margin-top:.15rem;}
.ev-page-stat-div{width:1px;height:36px;background:rgba(165,5,5,.14);}

/* ════ TOOLBAR ════ */
.ev-toolbar-wrap{
  position:sticky;top:var(--h-h);z-index:700;
  background:rgba(253,239,212,.92);
  backdrop-filter:blur(20px) saturate(150%);
  /* border-bottom:1px solid rgba(165,5,5,.09);
  box-shadow:0 4px 18px rgba(165,5,5,.06); */
}
.ev-toolbar{
  max-width:1200px;margin:0 auto;padding:.75rem 2rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.ev-cats{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
.ev-cat-pill{
  font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:600;
  padding:.38rem .85rem;border-radius:50px;cursor:pointer;white-space:nowrap;
  border:1.5px solid rgba(165,5,5,.14);background:rgba(255,255,255,.65);color:var(--t3);
  transition:all .2s;
}
.ev-cat-pill:hover{background:rgba(165,5,5,.07);border-color:rgba(165,5,5,.28);color:var(--t1);}
.ev-cat-pill.active{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 4px 14px rgba(165,5,5,.28);}

.ev-toolbar-right{display:flex;align-items:center;gap:.65rem;flex-shrink:0;}

.ev-filter-btn{
  font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:600;
  padding:.42rem .9rem;border-radius:50px;cursor:pointer;
  border:1.5px solid rgba(165,5,5,.18);background:rgba(255,255,255,.7);color:var(--t2);
  display:flex;align-items:center;gap:.4rem;
  transition:all .2s;position:relative;
}
.ev-filter-btn:hover,.ev-filter-btn.active{background:rgba(165,5,5,.08);border-color:rgba(165,5,5,.35);color:var(--blue);}
.ev-filter-badge{
  background:var(--grad);color:#fff;
  font-family:'DM Sans',sans-serif;font-size:.6rem;font-weight:700;
  width:16px;height:16px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
}

.ev-sort-wrap{position:relative;display:flex;align-items:center;}
.ev-sort-icon{position:absolute;left:.75rem;color:var(--t4);font-size:.8rem;pointer-events:none;}
.ev-sort-select{
  font-family:'DM Sans',sans-serif;font-size:.8rem;font-weight:500;color:var(--t2);
  padding:.42rem 1rem .42rem 2rem;border-radius:50px;cursor:pointer;
  border:1.5px solid rgba(165,5,5,.14);background:rgba(255,255,255,.7);
  outline:none;appearance:none;-webkit-appearance:none;
  transition:border-color .2s,background .2s;
}
.ev-sort-select:focus{border-color:rgba(165,5,5,.4);background:#fff;}

.ev-view-toggle{display:flex;align-items:center;background:rgba(255,255,255,.65);border:1.5px solid rgba(165,5,5,.14);border-radius:50px;overflow:hidden;}
.ev-view-btn{
  font-size:.88rem;color:var(--t3);background:none;border:none;cursor:pointer;
  width:36px;height:32px;display:flex;align-items:center;justify-content:center;
  transition:background .18s,color .18s;
}
.ev-view-btn:hover{color:var(--blue);}
.ev-view-btn.active{background:var(--grad);color:#fff;}

/* ════ FILTER DRAWER — DESKTOP ════ */
.ev-filter-drawer{
  max-height:0;overflow:hidden;
  transition:max-height .38s cubic-bezier(.4,0,.2,1);
  background:#fff;
  border-top:2px solid rgba(165,5,5,.10);
  box-shadow:0 8px 32px rgba(165,5,5,.10),0 2px 8px rgba(0,0,0,.05);
}
.ev-filter-drawer.open{max-height:600px;}
.ev-filter-drawer-inner{
  max-width:1200px;margin:0 auto;padding:1.1rem 2rem 1.3rem;
  display:flex;align-items:flex-start;gap:2.4rem;flex-wrap:wrap;
}
.ev-fd-group{display:flex;flex-direction:column;gap:.5rem;min-width:170px;}
.ev-fd-label{
  font-family:'DM Sans',sans-serif;font-size:.68rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.09em;
  color:var(--blue);margin-bottom:.05rem;
  display:flex;align-items:center;gap:.3rem;
}
.ev-fd-label::before{content:'';display:inline-block;width:3px;height:10px;border-radius:2px;background:var(--grad);}
.ev-fd-pills{display:flex;gap:.35rem;flex-wrap:wrap;}
.ev-fd-pill{
  font-family:'DM Sans',sans-serif;font-size:.75rem;font-weight:500;
  padding:.3rem .75rem;border-radius:50px;cursor:pointer;
  border:1.5px solid rgba(165,5,5,.15);background:#fdf6ee;color:var(--t3);
  transition:all .18s;
}
.ev-fd-pill:hover{border-color:rgba(165,5,5,.35);color:var(--t1);background:#fff;}
.ev-fd-pill.active{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 3px 10px rgba(165,5,5,.28);}
.ev-fd-clear{
  font-family:'DM Sans',sans-serif;font-size:.75rem;font-weight:600;color:var(--t4);
  background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:.3rem;
  margin-top:1rem;transition:color .2s;align-self:flex-end;
}
.ev-fd-clear:hover{color:var(--blue);}

/* ── Date Range Calendar ── */
.ev-date-range-wrap{
  margin-top:.75rem;overflow:hidden;
  max-height:0;opacity:0;
  transition:max-height .35s ease,opacity .3s ease;
}
.ev-date-range-wrap.visible{max-height:120px;opacity:1;}
.ev-date-fields{display:flex;align-items:flex-end;gap:.65rem;flex-wrap:wrap;}
.ev-date-field{display:flex;flex-direction:column;gap:.3rem;flex:1;min-width:130px;}
.ev-date-lbl{
  font-family:'DM Sans',sans-serif;font-size:.7rem;font-weight:600;
  color:var(--t4);display:flex;align-items:center;gap:.35rem;
}
.ev-date-lbl i{color:var(--blue);font-size:.72rem;}
.ev-date-input{
  font-family:'DM Sans',sans-serif;font-size:.8rem;
  padding:.45rem .75rem;
  border:1.5px solid rgba(165,5,5,.14);border-radius:10px;
  background:#fdf6ee;color:var(--t1);
  width:100%;outline:none;cursor:pointer;
  transition:border-color .2s,box-shadow .2s,background .2s;
}
.ev-date-input:hover,.ev-date-input:focus{
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(165,5,5,.08);
  background:#fff;
}
.ev-date-range-arrow{color:var(--t4);font-size:.85rem;padding-bottom:.55rem;flex-shrink:0;}

/* ── Location Dropdown ── */
.ev-location-select-wrap{position:relative;display:flex;align-items:center;}
.ev-loc-icon{position:absolute;left:11px;color:var(--blue);font-size:.78rem;pointer-events:none;z-index:1;}
.ev-loc-chevron{position:absolute;right:11px;font-size:.72rem;color:var(--t4);pointer-events:none;}
.ev-location-select{
  font-family:'DM Sans',sans-serif;font-size:.8rem;font-weight:500;
  width:100%;min-width:200px;
  padding:.48rem 2rem .48rem 2rem;
  border:1.5px solid rgba(165,5,5,.14);border-radius:10px;
  background:#fdf6ee;color:var(--t1);
  appearance:none;-webkit-appearance:none;cursor:pointer;outline:none;
  transition:border-color .2s,box-shadow .2s,background .2s;
}
.ev-location-select:hover,.ev-location-select:focus{
  border-color:var(--blue);box-shadow:0 0 0 3px rgba(165,5,5,.08);background:#fff;
}

/* ── Price Range Dual Slider ── */
.ev-price-range-wrap{display:flex;flex-direction:column;gap:.6rem;padding:2px 2px 0;min-width:220px;}
.ev-price-range-display{display:flex;align-items:center;gap:.5rem;}
.ev-price-display-val{font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:700;color:var(--blue);min-width:56px;}
.ev-price-range-dash{color:var(--t4);font-size:.8rem;}
.ev-dual-range{position:relative;height:36px;display:flex;align-items:center;}
.ev-range-track{position:absolute;left:0;right:0;height:4px;border-radius:4px;background:rgba(165,5,5,.12);pointer-events:none;}
.ev-range-fill{position:absolute;height:100%;border-radius:4px;background:var(--grad);pointer-events:none;}
.ev-range-input{
  position:absolute;width:100%;height:4px;
  background:transparent;appearance:none;-webkit-appearance:none;
  pointer-events:none;outline:none;
}
.ev-range-input::-webkit-slider-thumb{
  appearance:none;-webkit-appearance:none;
  width:20px;height:20px;border-radius:50%;
  background:var(--blue);border:3px solid #fff;
  cursor:pointer;pointer-events:all;
  box-shadow:0 2px 8px rgba(165,5,5,.35);
  transition:transform .15s,box-shadow .15s;
}
.ev-range-input::-webkit-slider-thumb:hover{transform:scale(1.18);box-shadow:0 3px 14px rgba(165,5,5,.5);}
.ev-range-input::-moz-range-thumb{
  width:20px;height:20px;border-radius:50%;
  background:var(--blue);border:3px solid #fff;
  cursor:pointer;pointer-events:all;box-shadow:0 2px 8px rgba(165,5,5,.35);
}
.ev-price-range-hints{display:flex;justify-content:space-between;font-family:'DM Sans',sans-serif;font-size:.65rem;color:var(--t4);margin-top:-2px;}

/* ════ MOBILE FILTER BOTTOM SHEET ════ */
/* Overlay */
.ev-mob-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(8,6,20,.55);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  z-index:1200;opacity:0;transition:opacity .28s ease;
}
.ev-mob-overlay.active{display:block;opacity:1;}

/* Bottom sheet — hidden by default */
.ev-filter-mobile{
  display:none;
  position:fixed;bottom:0;left:0;right:0;
  background:#fff;
  border-radius:22px 22px 0 0;
  box-shadow:0 -12px 60px rgba(165,5,5,.18),0 -2px 16px rgba(0,0,0,.08);
  z-index:1201;
  transform:translateY(100%);
  transition:transform .36s cubic-bezier(.32,1.08,.4,1);
  max-height:90vh;
  overflow:hidden;
  flex-direction:column;
}
.ev-filter-mobile.open{
  transform:translateY(0);
}

/* Mobile drawer header */
.ev-mob-drawer-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:1rem 1.25rem .75rem;
  border-bottom:1px solid rgba(165,5,5,.09);
  position:relative;flex-shrink:0;
}
.ev-mob-drag-handle{
  position:absolute;top:.55rem;left:50%;transform:translateX(-50%);
  width:38px;height:4px;border-radius:4px;background:rgba(165,5,5,.2);
}
.ev-mob-drawer-title{
  font-family:'Bricolage Grotesque',sans-serif;font-size:1rem;font-weight:800;
  color:var(--t1);display:flex;align-items:center;gap:.5rem;letter-spacing:-.01em;
}
.ev-mob-drawer-title i{color:var(--blue);}
.ev-mob-close{
  width:34px;height:34px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(165,5,5,.08);color:var(--blue);
  display:flex;align-items:center;justify-content:center;font-size:.82rem;
  transition:background .18s,transform .18s;flex-shrink:0;
}
.ev-mob-close:hover{background:rgba(165,5,5,.16);transform:scale(1.08);}

/* Mobile inner scroll area */
.ev-mob-inner{
  flex-direction:column !important;
  gap:1.5rem !important;
  padding:1.2rem 1.25rem 1.5rem !important;
  max-width:100% !important;
  margin:0 !important;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.ev-mob-inner .ev-fd-group{min-width:unset;width:100%;}
.ev-mob-inner .ev-location-select{min-width:unset;width:100%;}
.ev-mob-inner .ev-price-range-wrap{min-width:unset;width:100%;}
.ev-mob-inner .ev-fd-pills{flex-wrap:wrap;}

/* Apply button */
.ev-mob-apply-btn{
  width:100%;padding:.85rem 1rem;margin-top:.3rem;
  background:var(--grad);color:#fff;
  font-family:'DM Sans',sans-serif;font-size:.95rem;font-weight:700;
  border:none;border-radius:50px;cursor:pointer;
  box-shadow:0 6px 22px rgba(165,5,5,.32);
  display:flex;align-items:center;justify-content:center;gap:.45rem;
  transition:filter .2s,transform .18s,box-shadow .2s;flex-shrink:0;
}
.ev-mob-apply-btn:hover{filter:brightness(1.07);transform:translateY(-1px);box-shadow:0 10px 28px rgba(165,5,5,.38);}

/* Show/hide correct drawer per breakpoint */
.ev-filter-desktop{display:block;} /* inline expand on desktop */
.ev-filter-mobile{display:none;}   /* hidden on desktop */
@media(max-width:767px){
  .ev-filter-desktop{display:none !important;} /* never show on mobile */
  .ev-filter-mobile{display:flex;}              /* show (hidden via transform) on mobile */
  body.filter-open{overflow:hidden;}
}

/* ════ RESULTS META ════ */
.ev-results-meta{
  max-width:1200px;margin:0 auto;padding:.9rem 2rem;
  display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
}
.ev-results-count{font-family:'DM Sans',sans-serif;font-size:.85rem;color:var(--t3);}
.ev-results-count strong{color:var(--t1);font-weight:700;}
.ev-active-filters{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
.ev-active-chip{
  font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:600;
  padding:.22rem .6rem .22rem .75rem;border-radius:50px;
  background:rgba(165,5,5,.08);border:1px solid rgba(165,5,5,.16);color:var(--blue);
  display:inline-flex;align-items:center;gap:.3rem;
}
.ev-chip-rm{background:none;border:none;cursor:pointer;color:var(--blue);opacity:.65;padding:0;display:flex;align-items:center;font-size:.7rem;transition:opacity .15s;}
.ev-chip-rm:hover{opacity:1;}

/* ════ LISTING WRAPPER ════ */
.ev-listing{max-width:1200px;margin:0 auto;padding:0 2rem 4rem;}
.hidden{display:none!important;}

/* ════ GRID VIEW ════ */
.ev-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;
  margin-bottom:2.5rem;
}
@media(max-width:991px){.ev-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:540px){.ev-grid{grid-template-columns:1fr;}}

.evg-card{
  background:#fff;border:1px solid rgba(165,5,5,.08);
  border-radius:22px;overflow:hidden;
  box-shadow:0 4px 24px rgba(165,5,5,.07),0 1px 0 rgba(255,255,255,.9) inset;
  cursor:pointer;display:flex;flex-direction:column;text-decoration:none;
  transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s;
  animation:fadeUp .5s cubic-bezier(.4,0,.2,1) both;
}
.evg-card:hover{transform:translateY(-6px);box-shadow:0 20px 52px rgba(165,5,5,.13),0 4px 16px rgba(0,0,0,.06);}

.evg-img{position:relative;aspect-ratio:16/10;overflow:hidden;flex-shrink:0;}
.evg-img img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.4,0,.2,1),filter .4s;}
.evg-card:hover .evg-img img{transform:scale(1.07);filter:brightness(.85);}
.evg-cat{
  position:absolute;top:.75rem;left:.75rem;z-index:2;
  font-family:'DM Sans',sans-serif;font-size:.6rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;
  padding:.22rem .65rem;border-radius:50px;
  background:var(--grad);color:#fff;box-shadow:0 3px 12px rgba(165,5,5,.32);
}
.evg-badge{
  position:absolute;top:.75rem;right:.75rem;z-index:2;
  font-family:'DM Sans',sans-serif;font-size:.62rem;font-weight:700;
  padding:.22rem .65rem;border-radius:50px;
}
.evg-badge.free{background:rgba(34,197,94,.15);color:#15803d;border:1px solid rgba(34,197,94,.3);}
.evg-badge.paid{background:rgba(165,5,5,.1);color:var(--blue);border:1px solid rgba(165,5,5,.22);}

.evg-body{padding:1.1rem 1.15rem 1.2rem;flex:1;display:flex;flex-direction:column;}
.evg-meta-row{
  display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;
  font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:500;color:var(--t4);
  margin-bottom:.6rem;
}
.evg-meta-row span{display:flex;align-items:center;gap:.25rem;}
.evg-meta-row i{color:var(--blue);font-size:.68rem;}
.evg-title{
  font-family:'Bricolage Grotesque',sans-serif;font-size:1rem;font-weight:800;
  color:var(--t1);letter-spacing:-.02em;line-height:1.28;margin-bottom:.45rem;
}
.evg-desc{
  font-family:'DM Sans',sans-serif;font-size:.8rem;color:var(--t3);
  line-height:1.6;margin-bottom:.9rem;flex:1;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.evg-foot{
  border-top:1px solid rgba(165,5,5,.07);padding-top:.75rem;
  display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:auto;
}
.evg-attendees{display:flex;align-items:center;gap:.45rem;}
.evg-av-stack{display:flex;align-items:center;}
.evg-av-stack img{
  width:22px;height:22px;border-radius:50%;object-fit:cover;
  border:2px solid #fff;margin-left:-6px;box-shadow:0 1px 4px rgba(0,0,0,.12);
}
.evg-av-stack img:first-child{margin-left:0;}
.evg-attendees span{font-family:'DM Sans',sans-serif;font-size:.72rem;color:var(--t4);font-weight:500;}
.evg-price{
  font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:700;
  padding:.18rem .6rem;border-radius:50px;
}
.evg-price.free{background:rgba(34,197,94,.1);color:#15803d;border:1px solid rgba(34,197,94,.22);}
.evg-price.paid{background:rgba(165,5,5,.07);color:var(--blue);border:1px solid rgba(165,5,5,.16);}

/* ════ LIST VIEW ════ */
.ev-list{display:flex;flex-direction:column;gap:1.1rem;margin-bottom:2.5rem;}

.evl-item{
  background:#fff;border:1px solid rgba(165,5,5,.08);
  border-radius:20px;overflow:hidden;
  box-shadow:0 3px 18px rgba(165,5,5,.06),0 1px 0 rgba(255,255,255,.9) inset;
  display:flex;gap:0;text-decoration:none;
  transition:transform .28s cubic-bezier(.4,0,.2,1),box-shadow .28s,border-color .28s;
  animation:fadeUp .45s cubic-bezier(.4,0,.2,1) both;
}
.evl-item:hover{transform:translateY(-3px);box-shadow:0 14px 44px rgba(165,5,5,.11),0 2px 10px rgba(0,0,0,.05);border-color:rgba(165,5,5,.16);}

.evl-img{
  position:relative;width:220px;flex-shrink:0;overflow:hidden;
}
.evl-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.4,0,.2,1),filter .35s;}
.evl-item:hover .evl-img img{transform:scale(1.06);filter:brightness(.85);}
.evl-cat{
  position:absolute;top:.7rem;left:.7rem;z-index:2;
  font-family:'DM Sans',sans-serif;font-size:.58rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;
  padding:.2rem .6rem;border-radius:50px;
  background:var(--grad);color:#fff;box-shadow:0 2px 10px rgba(165,5,5,.28);
}

.evl-body{flex:1;padding:1.3rem 1.5rem;display:flex;flex-direction:column;}
.evl-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.55rem;flex-wrap:wrap;}
.evl-meta{
  display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;
  font-family:'DM Sans',sans-serif;font-size:.74rem;font-weight:500;color:var(--t4);
}
.evl-meta span{display:flex;align-items:center;gap:.28rem;}
.evl-meta i{color:var(--blue);font-size:.7rem;}
.evl-format{
  background:rgba(165,5,5,.07);color:var(--blue);
  border:1px solid rgba(165,5,5,.14);
  font-size:.66rem!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.06em;
  padding:.18rem .55rem;border-radius:50px;
}
.evl-price{
  font-family:'DM Sans',sans-serif;font-size:.74rem;font-weight:700;
  padding:.22rem .7rem;border-radius:50px;white-space:nowrap;flex-shrink:0;
}
.evl-price.free{background:rgba(34,197,94,.1);color:#15803d;border:1px solid rgba(34,197,94,.22);}
.evl-price.paid{background:rgba(165,5,5,.07);color:var(--blue);border:1px solid rgba(165,5,5,.16);}

.evl-title{
  font-family:'Bricolage Grotesque',sans-serif;font-size:1.1rem;font-weight:800;
  color:var(--t1);letter-spacing:-.02em;line-height:1.25;margin-bottom:.45rem;
}
.evl-desc{
  font-family:'DM Sans',sans-serif;font-size:.83rem;color:var(--t3);
  line-height:1.65;flex:1;margin-bottom:.9rem;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.evl-foot{
  border-top:1px solid rgba(165,5,5,.07);padding-top:.75rem;
  display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:auto;
}
.evl-cta{
  font-family:'DM Sans',sans-serif;font-size:.8rem;font-weight:700;color:var(--blue);
  display:flex;align-items:center;gap:.35rem;
  transition:gap .2s,opacity .2s;
}
.evl-item:hover .evl-cta{gap:.55rem;}

/* ════ PAGINATION ════ */
.ev-pagination{
  display:flex;align-items:center;justify-content:center;gap:.4rem;
  padding-top:.5rem;
}
.ev-pg-btn,.ev-pg-num{
  font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:600;
  width:38px;height:38px;border-radius:10px;cursor:pointer;
  border:1.5px solid rgba(165,5,5,.12);background:rgba(255,255,255,.75);color:var(--t3);
  display:flex;align-items:center;justify-content:center;
  transition:all .2s;
}
.ev-pg-btn:hover,.ev-pg-num:hover{background:rgba(165,5,5,.06);border-color:rgba(165,5,5,.28);color:var(--t1);}
.ev-pg-num.active{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 4px 14px rgba(165,5,5,.28);}
.ev-pg-btn:disabled{opacity:.38;cursor:not-allowed;pointer-events:none;}
.ev-pg-dots{font-family:'DM Sans',sans-serif;font-size:.85rem;color:var(--t4);padding:0 .2rem;}

/* ════ EVENTS PAGE RESPONSIVE ════ */
@media(max-width:900px){
  .ev-page-hero{padding:calc(var(--h-h) + 2.5rem) 1.2rem 2.5rem;}
  .ev-toolbar{padding:.65rem 1.2rem;}
  .ev-filter-drawer-inner{padding:.8rem 1.2rem 1.2rem;}
  .ev-results-meta{padding:.8rem 1.2rem;}
  .ev-listing{padding:0 1.2rem 3rem;}
}
@media(max-width:767px){
  .ev-cats{gap:.3rem;}
  .ev-cat-pill{font-size:.72rem;padding:.32rem .7rem;}
  .evl-img{width:130px;}
  .evl-title{font-size:.98rem;}
}
@media(max-width:540px){
  .ev-toolbar{flex-direction:column;align-items:flex-start;gap:.6rem;padding:.7rem 1rem;}
  .ev-cats{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:.2rem;scrollbar-width:none;}
  .ev-cats::-webkit-scrollbar{display:none;}
  .ev-toolbar-right{width:100%;display:flex;align-items:center;gap:.5rem;justify-content:space-between;}
  .ev-sort-wrap{flex:1;}
  .ev-sort-select{width:100%;}
  .ev-filter-btn{flex-shrink:0;}
  .ev-view-toggle{flex-shrink:0;display:flex!important;}
  .evl-item{flex-direction:column;}
  .evl-img{width:100%;height:180px;}
  .evl-body{padding:1rem 1.1rem;}
}


/* ════════════════════════════════════════════════════
   LOGIN PAGE
════════════════════════════════════════════════════ */

/* ── Page wrapper ── */
.login-page { background: var(--bg); }

.lg-wrap {
  min-height: calc(100vh - var(--h-h));
  padding: calc(var(--h-h) + 3.5rem) 1.5rem 4rem;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* ── Decorative orbs ── */
.lg-orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(80px);
  z-index: 0;
}
.lg-orb-1 {
  width: 520px; height: 520px;
  background: radial-gradient(circle, rgba(165,5,5,.13), transparent 70%);
  top: -120px; left: -180px;
  animation: floatUp 9s ease-in-out infinite;
}
.lg-orb-2 {
  width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(200,56,10,.10), transparent 70%);
  bottom: -100px; right: -140px;
  animation: floatDn 11s ease-in-out infinite;
}
.lg-orb-3 {
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(139,92,246,.07), transparent 70%);
  top: 50%; left: 55%;
  animation: floatUp 13s ease-in-out infinite;
}

/* dot grid */
.lg-dots {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(165,5,5,.07) 1px, transparent 1px);
  background-size: 28px 28px;
  z-index: 0;
  pointer-events: none;
}

/* ── Two-column layout ── */
.lg-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1060px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: stretch;
}

/* ══════════════════════════════
   LEFT — Brand panel
══════════════════════════════ */
.lg-brand-panel {
  position: relative;
  background: var(--grad);
  border-radius: 28px;
  padding: 3rem 2.5rem 3rem;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(165,5,5,.30), 0 4px 16px rgba(0,0,0,.10);
  min-height: 540px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* inner ring decoration */
.lg-brand-ring {
  position: absolute;
  width: 420px; height: 420px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.12);
  bottom: -160px; right: -160px;
  pointer-events: none;
}
.lg-brand-ring::before {
  content: '';
  position: absolute;
  inset: 40px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.08);
}

.lg-brand-content { position: relative; z-index: 1; }

.lg-brand-tag {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.75);
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50px;
  padding: .28rem .85rem;
  margin-bottom: 1.4rem;
}
.lg-brand-tag i { color: #fbbf24; font-size: .75rem; }

.lg-brand-h {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(1.7rem, 3vw, 2.2rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.2;
  letter-spacing: -.03em;
  margin-bottom: 1rem;
}
.lg-brand-h em {
  font-style: italic;
  color: #fde68a;
  -webkit-text-fill-color: #fde68a;
}

.lg-brand-sub {
  font-family: 'DM Sans', sans-serif;
  font-size: .9rem;
  color: rgba(255,255,255,.75);
  line-height: 1.7;
  margin-bottom: 2rem;
  max-width: 340px;
}

/* Perks section heading */
.lg-perks-heading {
  font-family: 'DM Sans', sans-serif;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
  margin-bottom: .85rem;
}

/* Perks list */
.lg-perks {
  list-style: none;
  padding: 0; margin: 0 0 1.4rem;
  display: flex;
  flex-direction: column;
  gap: .65rem;
}
.lg-perks li {
  display: flex;
  align-items: center;
  gap: .75rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .855rem;
  color: rgba(255,255,255,.88);
  line-height: 1.4;
}
.lg-perk-ic {
  width: 32px; height: 32px;
  border-radius: 10px;
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.22);
  display: flex; align-items: center; justify-content: center;
  font-size: .8rem;
  color: #fde68a;
  flex-shrink: 0;
}

/* Avatar row */
.lg-brand-avatars {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255,255,255,.14);
}
.lg-av-stack {
  display: flex;
  align-items: center;
}
.lg-av-stack img {
  width: 32px; height: 32px;
  border-radius: 50%;
  object-fit: cover;
  border: 2.5px solid rgba(255,255,255,.8);
  margin-left: -9px;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
}
.lg-av-stack img:first-child { margin-left: 0; }
.lg-av-text {
  font-family: 'DM Sans', sans-serif;
  font-size: .8rem;
  color: rgba(255,255,255,.78);
  line-height: 1.4;
}
.lg-av-text strong { color: #fff; }

/* ══════════════════════════════
   RIGHT — Form card
══════════════════════════════ */
.lg-form-panel {
  display: flex;
  align-items: stretch;
  justify-content: center;
}

.lg-form-card {
  width: 100%;
  max-width: 440px;
  background: #fff;
  border-radius: 28px;
  padding: 2.8rem 2.5rem 2.2rem;
  box-shadow:
    0 20px 60px rgba(165,5,5,.10),
    0 4px 16px rgba(0,0,0,.06),
    0 1px 0 rgba(255,255,255,.9) inset;
  border: 1px solid rgba(165,5,5,.08);
  position: relative;
  overflow: hidden;
}

/* top gradient accent stripe */
.lg-card-accent {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--grad);
  border-radius: 28px 28px 0 0;
}

/* Form header */
.lg-form-head {
  text-align: center;
  margin-bottom: 2rem;
}
.lg-form-icon {
  width: 72px; height: 72px;
  border-radius: 22px;
  background: #fff8f8;
  border: none;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.9rem;
  color: var(--blue);
  margin: 0 auto 1.1rem;
  box-shadow:
    0 8px 28px rgba(165,5,5,.18),
    0 2px 8px  rgba(165,5,5,.10),
    0 0 0 1px  rgba(165,5,5,.06);
}
.lg-form-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.7rem;
  font-weight: 800;
  color: var(--t1);
  letter-spacing: -.03em;
  margin-bottom: .3rem;
}
.lg-form-sub {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--t4);
}

/* Fields */
.lg-form { display: flex; flex-direction: column; gap: 1.25rem; }

.lg-field { display: flex; flex-direction: column; gap: .45rem; }

.lg-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 5px;
}
.lg-label {
  font-family: 'DM Sans', sans-serif;
  font-size: .8rem;
  font-weight: 600;
  color: var(--t2);
}
.lg-forgot {
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
  font-weight: 600;
  color: var(--blue);
  text-decoration: none;
  transition: opacity .18s;
}
.lg-forgot:hover { opacity: .75; text-decoration: underline; color: var(--blue); }

.lg-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
  border: 1.5px solid rgba(165,5,5,.15);
  border-radius: 14px;
  background: #fdf8f3;
  transition: border-color .22s, box-shadow .22s, background .22s;
  overflow: hidden;
}
.lg-input-wrap.focused {
  border-color: var(--blue);
  box-shadow: 0 0 0 4px rgba(165,5,5,.08);
  background: #fff;
}
.lg-input-wrap.has-val {
  border-color: rgba(165,5,5,.25);
  background: #fff;
}

.lg-input-icon {
  position: absolute;
  left: .95rem;
  color: var(--t4);
  font-size: .85rem;
  pointer-events: none;
  transition: color .22s;
  z-index: 1;
}
.lg-input-wrap.focused .lg-input-icon { color: var(--blue); }

.lg-input {
  font-family: 'DM Sans', sans-serif;
  font-size: .9rem;
  color: var(--t1);
  background: transparent;
  border: none;
  outline: none;
  width: 100%;
  padding: .78rem .95rem .78rem 2.55rem;
}
.lg-input::placeholder { color: var(--t4); font-weight: 300; }

/* password toggle */
.lg-pw-toggle {
  position: absolute;
  right: .7rem;
  background: none;
  border: none;
  color: var(--t4);
  cursor: pointer;
  font-size: .88rem;
  padding: .3rem;
  border-radius: 6px;
  transition: color .18s, background .18s;
  display: flex; align-items: center; justify-content: center;
}
.lg-pw-toggle:hover { color: var(--blue); background: rgba(165,5,5,.06); }

/* Remember me */
.lg-remember { display: flex; align-items: center; }
.lg-check-label {
  display: flex;
  align-items: center;
  gap: .55rem;
  cursor: pointer;
  user-select: none;
}
.lg-checkbox { display: none; }
.lg-check-box {
  width: 20px; height: 20px;
  border-radius: 7px;
  border: 1.5px solid rgba(165,5,5,.2);
  background: #fdf8f3;
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  font-size: .65rem;
  transition: background .18s, border-color .18s, box-shadow .18s;
  flex-shrink: 0;
}
.lg-check-label.checked .lg-check-box {
  background: var(--grad);
  border-color: transparent;
  box-shadow: 0 3px 10px rgba(165,5,5,.28);
}
.lg-check-text {
  font-family: 'DM Sans', sans-serif;
  font-size: .82rem;
  color: var(--t3);
}

/* Submit button */
.lg-submit-btn {
  width: 100%;
  padding: .9rem 1.5rem;
  background: var(--grad);
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  border: none;
  border-radius: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  box-shadow: 0 6px 22px rgba(165,5,5,.32);
  transition: transform .2s, box-shadow .2s, filter .2s;
  letter-spacing: .01em;
  margin-top: .2rem;
}
.lg-submit-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(165,5,5,.38);
  filter: brightness(1.06);
}
.lg-btn-arrow {
  font-size: 1.35rem;
  transition: transform .2s;
}
.lg-submit-btn:hover .lg-btn-arrow { transform: translateX(3px); }

/* OR divider */
.lg-divider {
  display: flex;
  align-items: center;
  gap: .75rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  font-weight: 600;
  color: var(--t4);
  text-transform: uppercase;
  letter-spacing: .08em;
  padding-top: 20px;
  padding-bottom: 10px;
}
.lg-divider::before,
.lg-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(165,5,5,.10);
}

/* Social buttons */
.lg-socials { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.lg-social-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: .62rem 1rem;
  background: #fdf8f3;
  border: 1.5px solid rgba(165,5,5,.13);
  border-radius: 12px;
  font-family: 'DM Sans', sans-serif;
  font-size: .85rem;
  font-weight: 600;
  color: var(--t2);
  cursor: pointer;
  transition: background .18s, border-color .18s, box-shadow .18s, transform .15s;
}
.lg-social-btn:hover {
  background: #fff;
  border-color: rgba(165,5,5,.28);
  box-shadow: 0 4px 14px rgba(165,5,5,.09);
  transform: translateY(-1px);
}

/* Sign up row */
.lg-signup-row {
  text-align: center;
  font-family: 'DM Sans', sans-serif;
  font-size: .85rem;
  color: var(--t4);
  margin-top: 1.5rem;
  margin-bottom: 0;
}
.lg-signup-link {
  color: var(--blue);
  font-weight: 700;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  margin-left: .3rem;
  transition: gap .2s, opacity .18s;
}
.lg-signup-link:hover { gap: .45rem; opacity: .82; color: var(--blue); }
.lg-signup-link i { font-size: .8rem; }

/* ── Responsive ── */
@media(max-width: 900px) {
  .lg-inner {
    grid-template-columns: 1fr;
    max-width: 480px;
  }
  .lg-brand-panel { display: none; } /* hide brand panel, show only form on tablet */
}
@media(max-width: 540px) {
  .lg-wrap { padding: calc(var(--h-h) + 1.5rem) 1rem 3rem; }
  .lg-form-card {
    padding: 2rem 1.4rem 1.8rem;
    border-radius: 22px;
  }
  .lg-form-title { font-size: 1.45rem; }
  .lg-socials { grid-template-columns: 1fr; }
}


/* ════════════════════════════════════════════════════
   SIGNUP PAGE — extends login styles
════════════════════════════════════════════════════ */

/* wider inner grid to accommodate taller form */
.su-inner {
  max-width: 1100px;
  align-items: stretch;
}

/* form panel stretches full height */
.su-form-panel {
  align-items: stretch;
}

/* card gets more comfortable vertical padding */
.su-form-card {
  display: flex;
  flex-direction: column;
}

/* ── Two-column name row ── */
.su-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .85rem;
}

/* ── Required star ── */
.su-req {
  color: var(--blue);
  font-size: .75rem;
  margin-left: .15rem;
  vertical-align: middle;
}

/* ── Helper hint text ── */
.su-hint {
  font-family: 'DM Sans', sans-serif;
  font-size: .73rem;
  color: var(--t4);
  margin-top: .35rem;
  display: flex;
  align-items: center;
  gap: .3rem;
}
.su-hint i { font-size: .72rem; }

/* ── Password strength bar ── */
.su-strength {
  margin-top: .5rem;
  display: flex;
  align-items: center;
  gap: .65rem;
}
.su-strength-bar {
  display: flex;
  gap: 4px;
  flex: 1;
}
.su-strength-bar span {
  flex: 1;
  height: 4px;
  border-radius: 4px;
  background: rgba(165,5,5,.1);
  transition: background .3s;
}

/* strength levels colour the segments */
.su-strength-bar.su-weak   span:nth-child(1)                            { background: #ef4444; }
.su-strength-bar.su-fair   span:nth-child(-n+2)                         { background: #f59e0b; }
.su-strength-bar.su-good   span:nth-child(-n+3)                         { background: #3b82f6; }
.su-strength-bar.su-strong span                                         { background: #22c55e; }

.su-strength-label {
  font-family: 'DM Sans', sans-serif;
  font-size: .72rem;
  font-weight: 600;
  color: var(--t4);
  white-space: nowrap;
  transition: color .3s;
  min-width: 160px;
}
.su-strength-label.su-weak   { color: #ef4444; }
.su-strength-label.su-fair   { color: #f59e0b; }
.su-strength-label.su-good   { color: #3b82f6; }
.su-strength-label.su-strong { color: #22c55e; }

/* ── Password match message ── */
.su-match-msg {
  font-family: 'DM Sans', sans-serif;
  font-size: .73rem;
  font-weight: 600;
  margin-top: .35rem;
  display: block;
  min-height: 1rem;
  transition: color .2s;
}
.su-match-ok  { color: #22c55e; }
.su-match-err { color: #ef4444; }

/* ── Terms link inside checkbox text ── */
.su-terms { margin-bottom: .8rem; }
.su-terms-link {
  color: var(--blue);
  font-weight: 600;
  text-decoration: none;
}
.su-terms-link:hover { text-decoration: underline; color: var(--blue); }

/* ── Responsive ── */
@media(max-width: 960px) {
  .su-inner { max-width: 500px; grid-template-columns: 1fr; }
}
@media(max-width: 540px) {
  .su-row { grid-template-columns: 1fr; gap: 0; }
}

/* ── Signup: centered single-column layout ── */
.su-center-wrap {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 540px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
}
.su-center-wrap .su-form-panel {
  align-items: stretch;
  width: 100%;
}
.su-center-wrap .lg-form-card {
  max-width: 100%;
}

/* ── Signup: wider centered card ── */
.su-center-wrap {
  max-width: 780px !important;
}
.su-center-wrap .lg-form-card {
  max-width: 100% !important;
}
/* collapse su-row to single column on narrow screens */
@media(max-width: 640px) {
  .su-center-wrap .su-row { grid-template-columns: 1fr; }
}


/* ════════════════════════════════════════════════════
   FORGOT PASSWORD PAGE
════════════════════════════════════════════════════ */

/* ── Centered card wrapper ── */
.fp-wrap {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 460px;
  margin: 0 auto;
}

.fp-card {
  text-align: center;
  padding: 3rem 2.8rem 2.4rem;
}

/* ── Decorative illustration above heading ── */
.fp-illustration {
  position: relative;
  width: 72px;
  height: 72px;
  margin: 0 auto 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.fp-ill-ring { display: none; }
.fp-ill-icon {
  width: 72px;
  height: 72px;
  border-radius: 22px;
  background: #fff8f8;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.9rem;
  color: var(--blue);
  box-shadow:
    0 8px 28px rgba(165,5,5,.18),
    0 2px 8px  rgba(165,5,5,.10),
    0 0 0 1px  rgba(165,5,5,.06);
  position: relative;
  z-index: 1;
}

/* ── Heading overrides for fp ── */
.fp-head {
  margin-bottom: 1.8rem;
}
.fp-sub {
  max-width: 340px;
  margin: .5rem auto 0;
  font-size: .88rem;
  line-height: 1.65;
  color: var(--t3);
}

/* ── Back to sign in link ── */
.fp-back-row {
  margin-top: 1.4rem !important;
}
.fp-back-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .85rem;
  font-weight: 600;
  color: var(--t3);
  text-decoration: none;
  transition: color .18s, gap .18s;
}
.fp-back-link i { font-size: .8rem; transition: transform .2s; }
.fp-back-link:hover { color: var(--blue); gap: .6rem; }
.fp-back-link:hover i { transform: translateX(-3px); }

/* ── Success state ── */
.fp-success {
  animation: fadeUp .45s cubic-bezier(.22,1,.36,1) both;
}
.fp-success-icon {
  font-size: 3rem;
  color: #22c55e;
  margin-bottom: 1rem;
  display: block;
  animation: subtlePulse 2.4s ease-in-out infinite;
}
.fp-success-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.45rem;
  font-weight: 800;
  color: var(--t1);
  margin-bottom: .6rem;
  letter-spacing: -.02em;
}
.fp-success-msg {
  font-family: 'DM Sans', sans-serif;
  font-size: .88rem;
  color: var(--t3);
  line-height: 1.65;
  margin-bottom: 1rem;
}
.fp-success-msg strong { color: var(--t1); }
.fp-success-note {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
  color: var(--t4);
  background: rgba(165,5,5,.05);
  border: 1px solid rgba(165,5,5,.10);
  border-radius: 50px;
  padding: .38rem 1rem;
  margin-bottom: 1.6rem;
}
.fp-success-note i { font-size: .75rem; color: var(--blue); }
.fp-success-btn {
  display: inline-flex !important;
  width: auto !important;
  padding: .82rem 2rem !important;
  margin: 0 auto;
}
.fp-resend-row {
  font-family: 'DM Sans', sans-serif;
  font-size: .82rem;
  color: var(--t4);
  margin-top: 1.2rem;
  margin-bottom: 0;
}
.fp-resend-btn {
  background: none;
  border: none;
  color: var(--blue);
  font-family: 'DM Sans', sans-serif;
  font-size: .82rem;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
  margin-left: .25rem;
  transition: opacity .18s;
}
.fp-resend-btn:hover { opacity: .75; text-decoration: underline; }
.fp-resend-btn:disabled { opacity: .45; cursor: not-allowed; text-decoration: none; }

@media(max-width: 540px) {
  .fp-card { padding: 2.2rem 1.5rem 2rem; }
  .fp-sub  { font-size: .84rem; }
}


/* ════════════════════════════════════════════════════
   DASHBOARD PAGE
════════════════════════════════════════════════════ */

/* ── Body ── */
.db-body { background: var(--bg); }

/* ── Background decorations ── */
.db-orb {
  position: fixed; border-radius: 50%; pointer-events: none;
  filter: blur(90px); animation: orbPulse 10s ease-in-out infinite; z-index: 0;
}
.db-orb-1 { width: 600px; height: 600px; top: -120px; right: -150px; background: radial-gradient(circle, rgba(165,5,5,.08), transparent 70%); }
.db-orb-2 { width: 400px; height: 400px; bottom: 80px; left: -80px; background: radial-gradient(circle, rgba(200,56,10,.07), transparent 70%); animation-delay: 5s; }
.db-dots {
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background-image: radial-gradient(rgba(165,5,5,.028) 1px, transparent 1px);
  background-size: 22px 22px;
}

/* ── Main ── */
.db-main {
  padding-top: var(--h-h);
  min-height: 100vh;
  position: relative;
}

/* ── Container: sidebar + content ── */
.db-container {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: 260px 1fr;
  min-height: calc(100vh - var(--h-h));
  max-width: 1400px;
  margin: 0 auto;
  padding: 2rem 1.5rem 3rem;
  gap: 1.75rem;
  align-items: start;
}

/* ════ SIDEBAR ════ */
.db-sidebar {
  position: sticky;
  top: calc(var(--h-h) + 1.5rem);
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(165,5,5,.10);
  border-radius: 22px;
  padding: 1.25rem 1rem;
  box-shadow: 0 8px 32px rgba(165,5,5,.07), 0 1px 0 rgba(255,255,255,.9) inset;
}

/* User card */
.db-user-card {
  display: flex; align-items: center; gap: .9rem;
  padding: .9rem 1rem 1rem;
  background: var(--grad);
  border-radius: 16px;
  margin-bottom: 1.25rem;
  position: relative; overflow: hidden;
}
.db-user-card::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 80% 20%, rgba(255,255,255,.12), transparent 60%);
}
.db-user-avatar { position: relative; flex-shrink: 0; }
.db-user-avatar img { width: 46px; height: 46px; border-radius: 50%; border: 2px solid rgba(255,255,255,.5); object-fit: cover; }
.db-online-dot {
  position: absolute; bottom: 1px; right: 1px;
  width: 11px; height: 11px; border-radius: 50%;
  background: #22c55e; border: 2px solid #fff;
}
.db-user-info { flex: 1; min-width: 0; position: relative; z-index: 1; }
.db-user-name { font-family: 'Bricolage Grotesque', sans-serif; font-size: .95rem; font-weight: 700; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.db-user-email { font-size: .72rem; color: rgba(255,255,255,.72); margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.db-user-badge { display: inline-flex; align-items: center; gap: .28rem; margin-top: .35rem; font-size: .68rem; font-weight: 700; background: rgba(255,255,255,.18); color: #fff; border-radius: 50px; padding: .18rem .6rem; }

/* Nav */
.db-nav { display: flex; flex-direction: column; gap: .18rem; }
.db-nav-label { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--t4); padding: .3rem .65rem .15rem; }
.db-nav-item {
  display: flex; align-items: center; gap: .65rem;
  font-family: 'DM Sans', sans-serif; font-size: .875rem; font-weight: 500;
  color: var(--t3); text-decoration: none;
  padding: .62rem .75rem; border-radius: 12px;
  transition: background .18s, color .18s; position: relative;
}
.db-nav-item:hover { background: rgba(165,5,5,.06); color: var(--t1); }
.db-nav-item.active { background: rgba(165,5,5,.09); color: var(--blue); font-weight: 600; }
.db-nav-item.active .db-nav-ic { color: var(--blue); }
.db-nav-ic { width: 20px; text-align: center; font-size: .95rem; color: var(--t4); flex-shrink: 0; transition: color .18s; }
.db-nav-badge {
  margin-left: auto; font-size: .68rem; font-weight: 700;
  background: var(--grad); color: #fff;
  border-radius: 50px; padding: .1rem .5rem; min-width: 20px; text-align: center;
}
.db-nav-logout { color: #dc2626 !important; margin-top: .5rem; }
.db-nav-logout .db-nav-ic { color: #dc2626 !important; }
.db-nav-logout:hover { background: rgba(220,38,38,.07) !important; }

/* ── Overlay (mobile) ── */
.db-overlay {
  display: none; position: fixed; inset: 0; z-index: 98;
  background: rgba(0,0,0,.38);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

/* ════ CONTENT ════ */
.db-content { min-width: 0; }

/* Mobile top bar */
.db-topbar {
  display: none; align-items: center; gap: .75rem;
  background: rgba(255,255,255,.82); backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(165,5,5,.10);
  border-radius: 16px; padding: .75rem 1rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 4px 20px rgba(165,5,5,.06);
}
.db-menu-toggle {
  background: none; border: none; font-size: 1.3rem; color: var(--t1);
  cursor: pointer; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center;
  border-radius: 10px; transition: background .18s;
}
.db-menu-toggle:hover { background: rgba(165,5,5,.07); }
.db-topbar-title { flex: 1; font-family: 'Bricolage Grotesque', sans-serif; font-size: 1rem; font-weight: 700; color: var(--t1); }
.db-notif-btn {
  position: relative; background: none; border: none; font-size: 1rem; color: var(--t3);
  cursor: pointer; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center;
  border-radius: 50%; transition: background .18s;
}
.db-notif-btn:hover { background: rgba(165,5,5,.07); }
.db-notif-dot { position: absolute; top: 6px; right: 7px; width: 8px; height: 8px; border-radius: 50%; background: var(--blue); border: 2px solid #fff; }

/* ── Sections ── */
.db-section { display: none; animation: fadeUp .45s cubic-bezier(.22,1,.36,1) both; }
.db-section.active { display: block; }

/* Page heading */
.db-page-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
  margin-bottom: 1.5rem;
}
.db-page-eyebrow {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--blue); margin-bottom: .35rem;
}
.db-page-title {
  font-family: 'Bricolage Grotesque', sans-serif; font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800; color: var(--t1); line-height: 1.1; letter-spacing: -.02em;
}
.db-page-title em { font-style: italic; background: var(--grad); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.db-explore-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  font-family: 'DM Sans', sans-serif; font-size: .85rem; font-weight: 700;
  background: var(--grad); color: #fff; border: none; border-radius: 50px;
  padding: .58rem 1.3rem; cursor: pointer; white-space: nowrap; text-decoration: none;
  box-shadow: 0 4px 14px rgba(165,5,5,.25);
  transition: transform .2s, box-shadow .2s;
}
.db-explore-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(165,5,5,.32); color: #fff; }

/* ── Stats grid ── */
.db-stats-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.5rem;
}
.db-stat-card {
  background: rgba(255,255,255,.82); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(165,5,5,.09); border-radius: 18px;
  padding: 1.15rem 1.2rem; display: flex; align-items: center; gap: 1rem;
  box-shadow: 0 4px 16px rgba(165,5,5,.06);
  transition: transform .2s, box-shadow .2s;
}
.db-stat-card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(165,5,5,.10); }
.db-stat-icon {
  width: 46px; height: 46px; border-radius: 13px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 1.1rem;
}
.db-stat-icon--red   { background: rgba(165,5,5,.10); color: var(--blue); }
.db-stat-icon--amber { background: rgba(245,158,11,.12); color: #b45309; }
.db-stat-icon--pink  { background: rgba(244,63,94,.10); color: #be123c; }
.db-stat-icon--green { background: rgba(22,163,74,.10); color: #15803d; }
.db-stat-val { font-family: 'Bricolage Grotesque', sans-serif; font-size: 1.7rem; font-weight: 800; color: var(--t1); line-height: 1; }
.db-stat-label { font-size: .75rem; color: var(--t3); margin-top: .25rem; font-weight: 500; }

/* ── Twin grid ── */
.db-twin-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-bottom: 1.5rem; }

/* ── Cards ── */
.db-card {
  background: rgba(255,255,255,.82); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(165,5,5,.09); border-radius: 22px;
  padding: 1.4rem 1.5rem;
  box-shadow: 0 4px 20px rgba(165,5,5,.06);
}
.db-full-card { width: 100%; }
.db-card--narrow { max-width: 520px; }
.db-card-head {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  margin-bottom: 1.25rem; padding-bottom: .9rem;
  border-bottom: 1px solid rgba(165,5,5,.08);
}
.db-card-title { font-family: 'Bricolage Grotesque', sans-serif; font-size: 1rem; font-weight: 700; color: var(--t1); display: flex; align-items: center; gap: .45rem; }
.db-card-title i { color: var(--blue); }
.db-card-action {
  font-size: .78rem; font-weight: 600; color: var(--blue); text-decoration: none;
  display: inline-flex; align-items: center; gap: .3rem;
  transition: gap .18s, opacity .18s;
}
.db-card-action:hover { gap: .5rem; opacity: .8; }

/* ── Account Info ── */
.db-account-info { display: flex; flex-direction: column; gap: 1.1rem; }
.db-ai-avatar-wrap { display: flex; align-items: center; gap: 1rem; padding: .8rem; background: rgba(165,5,5,.04); border-radius: 14px; }
.db-ai-avatar { width: 56px; height: 56px; border-radius: 50%; border: 3px solid rgba(165,5,5,.2); object-fit: cover; }
.db-ai-status { display: inline-flex; align-items: center; gap: .35rem; font-size: .75rem; font-weight: 700; color: var(--blue); }
.db-ai-status i { font-size: .78rem; }
.db-ai-fields { display: flex; flex-direction: column; gap: .65rem; }
.db-ai-field { display: flex; justify-content: space-between; align-items: center; padding: .55rem .5rem; border-bottom: 1px solid rgba(165,5,5,.06); gap: .5rem; }
.db-ai-field:last-child { border-bottom: none; }
.db-ai-label { font-size: .78rem; color: var(--t3); display: flex; align-items: center; gap: .38rem; font-weight: 500; flex-shrink: 0; }
.db-ai-label i { color: var(--blue); font-size: .78rem; }
.db-ai-val { font-size: .82rem; color: var(--t1); font-weight: 500; text-align: right; }
.db-ai-val--badge { display: inline-flex; align-items: center; gap: .3rem; background: rgba(165,5,5,.09); color: var(--blue); border-radius: 50px; padding: .2rem .75rem; font-size: .75rem; font-weight: 700; }
.db-ai-val--badge i { font-size: .72rem; color: #f59e0b; }

/* ── Bookings list ── */
.db-bookings-list { display: flex; flex-direction: column; gap: .75rem; }
.db-booking-item {
  display: flex; align-items: center; gap: .85rem;
  padding: .72rem .8rem; border-radius: 14px;
  background: rgba(165,5,5,.025);
  border: 1px solid rgba(165,5,5,.06);
  transition: background .18s, border-color .18s;
}
.db-booking-item:hover { background: rgba(165,5,5,.05); border-color: rgba(165,5,5,.12); }
.db-booking-thumb {
  width: 40px; height: 40px; border-radius: 11px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1rem;
}
.db-booking-info { flex: 1; min-width: 0; }
.db-booking-name { font-size: .83rem; font-weight: 600; color: var(--t1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.db-booking-meta { font-size: .72rem; color: var(--t3); margin-top: .18rem; display: flex; align-items: center; gap: .3rem; flex-wrap: wrap; }
.db-booking-meta i { color: var(--blue); font-size: .68rem; }

/* Status badges */
.db-booking-status {
  font-size: .68rem; font-weight: 700; border-radius: 50px; padding: .22rem .7rem;
  white-space: nowrap; flex-shrink: 0;
}
.db-status--confirmed { background: rgba(165,5,5,.10); color: var(--blue); }
.db-status--attended  { background: rgba(22,163,74,.10); color: #15803d; }
.db-status--upcoming  { background: rgba(59,130,246,.10); color: #1d4ed8; }
.db-status--cancelled { background: rgba(220,38,38,.10); color: #b91c1c; }

/* ── Promo strip ── */
.db-promo-strip {
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  background: var(--grad); border-radius: 22px; padding: 1.5rem 2rem;
  position: relative; overflow: hidden;
}
.db-promo-strip::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 90% 50%, rgba(255,255,255,.10), transparent 60%);
}
.db-promo-left { position: relative; z-index: 1; }
.db-promo-tag { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.72); margin-bottom: .35rem; display: flex; align-items: center; gap: .35rem; }
.db-promo-h { font-family: 'Bricolage Grotesque', sans-serif; font-size: 1.15rem; font-weight: 800; color: #fff; }
.db-promo-sub { font-size: .8rem; color: rgba(255,255,255,.78); margin-top: .3rem; }
.db-promo-btn {
  flex-shrink: 0; display: inline-flex; align-items: center; gap: .45rem;
  background: rgba(255,255,255,.92); color: var(--blue);
  font-family: 'DM Sans', sans-serif; font-size: .85rem; font-weight: 700;
  border: none; border-radius: 50px; padding: .65rem 1.4rem; cursor: pointer;
  text-decoration: none; position: relative; z-index: 1;
  transition: background .2s, transform .2s; white-space: nowrap;
}
.db-promo-btn:hover { background: #fff; transform: scale(1.03); color: var(--blue); }

/* ── Table ── */
.db-table-wrap { overflow-x: auto; }
.db-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.db-table thead th { font-size: .72rem; font-weight: 700; color: var(--t3); letter-spacing: .06em; text-transform: uppercase; padding: .6rem .8rem; border-bottom: 1px solid rgba(165,5,5,.08); white-space: nowrap; }
.db-table tbody td { padding: .82rem .8rem; border-bottom: 1px solid rgba(165,5,5,.05); color: var(--t1); vertical-align: middle; }
.db-table tbody tr:hover td { background: rgba(165,5,5,.025); }
.db-t-event { display: flex; align-items: center; gap: .65rem; font-weight: 500; }
.db-t-thumb { width: 34px; height: 34px; border-radius: 9px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: .85rem; flex-shrink: 0; }
.db-t-link { color: var(--blue); font-weight: 600; text-decoration: none; font-size: .78rem; white-space: nowrap; transition: opacity .18s; }
.db-t-link:hover { opacity: .72; text-decoration: underline; }

/* Filter row */
.db-filter-row { display: flex; gap: .4rem; flex-wrap: wrap; }
.db-filter-btn {
  font-family: 'DM Sans', sans-serif; font-size: .75rem; font-weight: 600; cursor: pointer;
  background: rgba(165,5,5,.06); border: 1px solid rgba(165,5,5,.12); color: var(--t3);
  border-radius: 50px; padding: .28rem .85rem; transition: background .18s, color .18s;
}
.db-filter-btn:hover { background: rgba(165,5,5,.12); color: var(--t1); }
.db-filter-btn.active { background: var(--grad); border-color: transparent; color: #fff; }

/* ── Orders ── */
.db-orders-list { display: flex; flex-direction: column; gap: .75rem; }
.db-order-item {
  display: flex; align-items: center; gap: 1rem;
  padding: .85rem 1rem; border-radius: 14px;
  border: 1px solid rgba(165,5,5,.07); background: rgba(165,5,5,.02);
  transition: background .18s;
}
.db-order-item:hover { background: rgba(165,5,5,.05); }
.db-order-img {
  width: 44px; height: 44px; border-radius: 12px; flex-shrink: 0;
  background: linear-gradient(135deg,#A50505,#C8380A);
  display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.1rem;
}
.db-order-info { flex: 1; min-width: 0; }
.db-order-name { font-size: .85rem; font-weight: 600; color: var(--t1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.db-order-meta { font-size: .72rem; color: var(--t3); margin-top: .18rem; }
.db-order-price { font-family: 'Bricolage Grotesque', sans-serif; font-size: .95rem; font-weight: 700; color: var(--t1); white-space: nowrap; flex-shrink: 0; }

/* ── Wishlist ── */
.db-wishlist-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.1rem; }
.db-wish-card {
  background: rgba(255,255,255,.82); border: 1px solid rgba(165,5,5,.09); border-radius: 18px;
  overflow: hidden; box-shadow: 0 4px 14px rgba(165,5,5,.05);
  transition: transform .22s, box-shadow .22s;
}
.db-wish-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(165,5,5,.10); }
.db-wish-thumb {
  height: 110px; display: flex; align-items: center; justify-content: center;
  font-size: 2rem; color: #fff; position: relative;
}
.db-wish-remove {
  position: absolute; top: .6rem; right: .6rem;
  background: rgba(255,255,255,.2); border: none; border-radius: 50%;
  width: 28px; height: 28px; cursor: pointer; display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: .75rem; transition: background .18s;
}
.db-wish-remove:hover { background: rgba(220,38,38,.6); }
.db-wish-info { padding: .9rem 1rem 1rem; }
.db-wish-name { font-size: .88rem; font-weight: 700; color: var(--t1); margin-bottom: .25rem; }
.db-wish-meta { font-size: .72rem; color: var(--t3); margin-bottom: .6rem; }
.db-wish-price { font-family: 'Bricolage Grotesque', sans-serif; font-size: 1rem; font-weight: 800; color: var(--blue); margin-bottom: .7rem; }
.db-wish-book {
  width: 100%; font-family: 'DM Sans', sans-serif; font-size: .8rem; font-weight: 700;
  background: var(--grad); color: #fff; border: none; border-radius: 50px;
  padding: .5rem; cursor: pointer; transition: filter .2s, transform .18s;
}
.db-wish-book:hover { filter: brightness(1.08); transform: scale(1.02); }

/* ── Support ── */
.db-support-list { display: flex; flex-direction: column; gap: .75rem; }
.db-support-item {
  display: flex; align-items: center; gap: 1rem;
  padding: .85rem 1rem; border-radius: 14px;
  border: 1px solid rgba(165,5,5,.07); background: rgba(165,5,5,.02);
  transition: background .18s;
}
.db-support-item:hover { background: rgba(165,5,5,.05); }
.db-support-icon {
  width: 38px; height: 38px; border-radius: 11px; flex-shrink: 0;
  background: rgba(165,5,5,.08); display: flex; align-items: center; justify-content: center;
  color: var(--blue); font-size: .95rem;
}
.db-support-info { flex: 1; min-width: 0; }
.db-support-subj { font-size: .85rem; font-weight: 600; color: var(--t1); }
.db-support-meta { font-size: .72rem; color: var(--t3); margin-top: .18rem; }

/* ── Profile form ── */
.db-profile-avatar-row {
  display: flex; align-items: center; gap: 1.25rem;
  padding: 1.1rem 1.1rem 1.3rem; margin: -.4rem -.5rem 1.25rem;
  border-bottom: 1px solid rgba(165,5,5,.08);
  background: rgba(165,5,5,.025); border-radius: 14px 14px 0 0;
}
.db-profile-av-wrap { position: relative; flex-shrink: 0; }
.db-profile-av { width: 68px; height: 68px; border-radius: 50%; border: 3px solid rgba(165,5,5,.22); object-fit: cover; }
.db-av-edit-btn {
  position: absolute; bottom: 0; right: 0;
  width: 26px; height: 26px; border-radius: 50%;
  background: var(--grad); border: 2px solid #fff; color: #fff;
  font-size: .68rem; cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: transform .18s;
}
.db-av-edit-btn:hover { transform: scale(1.12); }
.db-profile-av-name { font-family: 'Bricolage Grotesque', sans-serif; font-size: 1.05rem; font-weight: 800; color: var(--t1); }
.db-profile-av-sub { font-size: .8rem; color: var(--t3); margin-top: .18rem; }
.db-profile-form { display: flex; flex-direction: column; gap: 1rem; }
.db-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.db-form-field { display: flex; flex-direction: column; gap: .45rem; }
.db-form-field--full { grid-column: 1 / -1; }
.db-form-label { font-size: .8rem; font-weight: 600; color: var(--t2); }
.lg-input-wrap--area { align-items: flex-start; }
.db-form-actions { display: flex; align-items: center; justify-content: flex-end; gap: .75rem; margin-top: .5rem; }
.db-btn-secondary {
  font-family: 'DM Sans', sans-serif; font-size: .875rem; font-weight: 600;
  background: none; border: 1px solid rgba(165,5,5,.22); color: var(--t3);
  border-radius: 50px; padding: .62rem 1.4rem; cursor: pointer; transition: background .18s, color .18s;
}
.db-btn-secondary:hover { background: rgba(165,5,5,.06); color: var(--t1); }
.db-btn-save { width: auto !important; padding: .65rem 1.6rem !important; }
.db-pw-hint {
  display: flex; align-items: flex-start; gap: .5rem;
  font-size: .78rem; color: var(--t3); background: rgba(165,5,5,.04);
  border: 1px solid rgba(165,5,5,.10); border-radius: 10px; padding: .65rem .9rem;
}
.db-pw-hint i { color: var(--blue); flex-shrink: 0; margin-top: .08rem; }

/* ════ RESPONSIVE ════ */
@media (max-width: 1100px) {
  .db-stats-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .db-twin-grid { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .db-container { grid-template-columns: 1fr; padding: 1rem .9rem 2rem; }
  .db-sidebar {
    position: fixed; top: 0; left: -280px; bottom: 0; z-index: 99;
    border-radius: 0; width: 260px; height: 100dvh; overflow-y: auto;
    transition: left .28s cubic-bezier(.4,0,.2,1);
    box-shadow: 4px 0 32px rgba(165,5,5,.14);
    padding-top: calc(var(--h-h) + 1rem);
  }
  .db-sidebar.open { left: 0; }
  .db-overlay.visible { display: block; }
  .db-topbar { display: flex; }
}
@media (max-width: 600px) {
  .db-stats-grid { grid-template-columns: repeat(2, 1fr); gap: .7rem; }
  .db-stat-card { padding: .9rem; }
  .db-stat-val { font-size: 1.4rem; }
  .db-promo-strip { flex-direction: column; align-items: flex-start; padding: 1.25rem 1.4rem; }
  .db-form-row { grid-template-columns: 1fr; }
  .db-wishlist-grid { grid-template-columns: repeat(2, 1fr); }
  .db-order-item { flex-wrap: wrap; }
  .db-order-price { order: 3; }
}
@media (max-width: 420px) {
  .db-wishlist-grid { grid-template-columns: 1fr; }
  .db-stats-grid { grid-template-columns: 1fr 1fr; }
}

/* ════════════════ NEW TICKET PAGE ════════════════ */

.nt-card {
  background: var(--glass-b);
  border: 1px solid rgba(165,5,5,.10);
  border-radius: var(--r);
  box-shadow: var(--gs);
  padding: 2rem 2rem 2.5rem;
  max-width: 720px;
}

/* Drop-zone attachment field */
.nt-dropzone {
  position: relative;
  border: 2px dashed rgba(165,5,5,.25);
  border-radius: 14px;
  background: rgba(165,5,5,.03);
  padding: 2rem 1.5rem;
  text-align: center;
  cursor: pointer;
  transition: border-color .2s, background .2s;
}
.nt-dropzone:hover,
.nt-dropzone.drag-over {
  border-color: var(--blue);
  background: rgba(165,5,5,.07);
}
.nt-dropzone input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  width: 100%;
  height: 100%;
}
.nt-dz-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--grad);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto .9rem;
  font-size: 1.3rem;
  color: #fff;
  box-shadow: 0 6px 18px rgba(165,5,5,.22);
}
.nt-dz-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--t1);
  margin-bottom: .25rem;
}
.nt-dz-sub {
  font-size: .8rem;
  color: var(--t4);
}
.nt-dz-sub span {
  color: var(--blue);
  font-weight: 600;
  cursor: pointer;
}
.nt-file-list {
  margin-top: .9rem;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: center;
}
.nt-file-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  background: rgba(165,5,5,.08);
  border: 1px solid rgba(165,5,5,.15);
  border-radius: 50px;
  padding: .3rem .75rem;
  font-size: .78rem;
  color: var(--blue);
  font-weight: 500;
}
.nt-file-chip button {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: var(--blue);
  font-size: .75rem;
  line-height: 1;
  opacity: .7;
  transition: opacity .15s;
}
.nt-file-chip button:hover { opacity: 1; }

/* Category pills */
.nt-cat-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.nt-cat-pill {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .42rem 1rem;
  border-radius: 50px;
  border: 1.5px solid rgba(165,5,5,.18);
  background: rgba(255,255,255,.7);
  font-size: .82rem;
  font-weight: 500;
  color: var(--t2);
  cursor: pointer;
  transition: all .18s;
  user-select: none;
}
.nt-cat-pill:hover {
  border-color: var(--blue);
  color: var(--blue);
  background: rgba(165,5,5,.06);
}
.nt-cat-pill input[type="radio"] { display: none; }
.nt-cat-pill.selected {
  background: var(--grad);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 4px 14px rgba(165,5,5,.25);
}

/* Textarea */
.nt-textarea {
  min-height: 140px;
  resize: vertical;
  padding-top: .85rem !important;
  height: auto !important;
  line-height: 1.6;
}

/* Success state */
.nt-success {
  display: none;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 2.5rem 1rem;
  gap: 1rem;
}
.nt-success-icon {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: var(--grad);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: #fff;
  box-shadow: 0 8px 28px rgba(165,5,5,.28);
  animation: ntPopIn .4s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes ntPopIn {
  from { transform: scale(.5); opacity: 0; }
  to   { transform: scale(1);  opacity: 1; }
}
.nt-success h2 {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--t1);
}
.nt-success p {
  color: var(--t3);
  font-size: .93rem;
  max-width: 380px;
}
.nt-ticket-ref {
  background: rgba(165,5,5,.07);
  border: 1px solid rgba(165,5,5,.15);
  border-radius: 10px;
  padding: .55rem 1.25rem;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--blue);
  letter-spacing: .04em;
}

/* Required asterisk */
.db-req {
  color: var(--blue);
  font-size: .85em;
}

/* Section label (shared with edit-profile) */
.db-form-section-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--blue);
  display: flex;
  align-items: center;
  gap: .45rem;
  margin-bottom: 1rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid rgba(165,5,5,.1);
}

/* Select input styling */
.lg-input-wrap select.lg-input {
  background: rgba(255,255,255,.72);
  color: var(--t1);
}
.lg-input-wrap select.lg-input option {
  background: #fff;
  color: var(--t1);
}

@media (max-width: 540px) {
  .nt-card { padding: 1.25rem 1rem 1.75rem; }
  .nt-cat-grid { gap: .35rem; }
  .nt-cat-pill { font-size: .76rem; padding: .36rem .8rem; }
}



/* ════════════════════════════════════════════════════════════
   CHECKOUT PAGE  —  prefix: ck-
════════════════════════════════════════════════════════════ */

/* ── Page shell ── */
.checkout-page { background: var(--bg); }

.ck-wrap {
  min-height: calc(100vh - var(--h-h));
  padding: calc(var(--h-h) + 2.8rem) 1.5rem 4rem;
  position: relative;
  overflow: hidden;
}

/* subtle dot grid */
.ck-wrap::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: radial-gradient(rgba(165,5,5,.055) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
  z-index: 0;
}

/* decorative orbs */
.ck-orb {
  position: fixed;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(90px);
  z-index: 0;
}
.ck-orb-1 {
  width: 480px; height: 480px;
  background: radial-gradient(circle, rgba(165,5,5,.09), transparent 70%);
  top: -140px; left: -180px;
  animation: floatUp 10s ease-in-out infinite;
}
.ck-orb-2 {
  width: 360px; height: 360px;
  background: radial-gradient(circle, rgba(200,56,10,.07), transparent 70%);
  bottom: -80px; right: -120px;
  animation: floatDn 13s ease-in-out infinite;
}

/* ── Page heading ── */
.ck-page-head {
  position: relative;
  z-index: 1;
  max-width: 1080px;
  margin: 0 auto 2rem;
}
.ck-breadcrumb {
  display: flex;
  align-items: center;
  gap: .45rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
  color: var(--t4);
  margin-bottom: .9rem;
}
.ck-breadcrumb a {
  color: var(--t4);
  text-decoration: none;
  transition: color .18s;
}
.ck-breadcrumb a:hover { color: var(--blue); }
.ck-breadcrumb i { font-size: .65rem; }
.ck-breadcrumb span { color: var(--blue); font-weight: 600; }
.ck-page-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 800;
  color: var(--t1);
  letter-spacing: -.03em;
  line-height: 1.15;
}
.ck-page-title em {
  font-style: italic;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Progress stepper ── */
.ck-steps {
  display: flex;
  align-items: center;
  gap: 0;
  margin-bottom: 2.5rem;
  position: relative;
  z-index: 1;
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
}
.ck-step {
  display: flex;
  align-items: center;
  gap: .55rem;
  flex: 1;
  position: relative;
}
.ck-step:not(:last-child)::after {
  content: '';
  flex: 1;
  height: 2px;
  background: rgba(165,5,5,.12);
  margin: 0 .5rem;
  border-radius: 2px;
  transition: background .3s;
}
.ck-step.done:not(:last-child)::after,
.ck-step.active:not(:last-child)::after {
  background: var(--grad);
}
.ck-step-num {
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 2px solid rgba(165,5,5,.18);
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
  font-weight: 700;
  color: var(--t4);
  flex-shrink: 0;
  transition: all .25s;
}
.ck-step.done .ck-step-num {
  background: var(--grad);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 3px 10px rgba(165,5,5,.28);
}
.ck-step.active .ck-step-num {
  border-color: var(--blue);
  color: var(--blue);
  box-shadow: 0 0 0 4px rgba(165,5,5,.10);
  background: #fff;
}
.ck-step-label {
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
  font-weight: 600;
  color: var(--t4);
  white-space: nowrap;
  transition: color .2s;
}
.ck-step.done .ck-step-label  { color: var(--blue); }
.ck-step.active .ck-step-label { color: var(--t1); }

/* ── Main two-column layout ── */
.ck-layout {
  position: relative;
  z-index: 1;
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 1.8rem;
  align-items: start;
}

/* ── Shared card base ── */
.ck-card {
  background: #fff;
  border: 1px solid rgba(165,5,5,.08);
  border-radius: 22px;
  box-shadow: 0 6px 28px rgba(165,5,5,.07), 0 1px 0 rgba(255,255,255,.9) inset;
  overflow: hidden;
}

/* card header strip */
.ck-card-head {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: 1.15rem 1.6rem;
  border-bottom: 1px solid rgba(165,5,5,.07);
  background: linear-gradient(135deg, rgba(165,5,5,.03), rgba(200,56,10,.02));
}
.ck-card-head-ic {
  width: 34px; height: 34px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(165,5,5,.10), rgba(200,56,10,.06));
  border: 1px solid rgba(165,5,5,.12);
  display: flex; align-items: center; justify-content: center;
  font-size: .85rem;
  color: var(--blue);
  flex-shrink: 0;
}
.ck-card-head h2 {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1rem;
  font-weight: 800;
  color: var(--t1);
  letter-spacing: -.02em;
}
.ck-card-head p {
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  color: var(--t4);
  margin: .05rem 0 0;
}
.ck-card-body { padding: 1.5rem 1.6rem; }

/* ── Left column: stacked sections ── */
.ck-left { display: flex; flex-direction: column; gap: 1.5rem; }

/* ── Event summary mini-card ── */
.ck-event-bar {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  background: #fff;
  border: 1px solid rgba(165,5,5,.08);
  border-radius: 18px;
  padding: 1rem 1.4rem;
  box-shadow: 0 3px 14px rgba(165,5,5,.06);
}
.ck-event-thumb {
  width: 72px; height: 72px;
  border-radius: 12px;
  overflow: hidden;
  flex-shrink: 0;
}
.ck-event-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.ck-event-info { flex: 1; min-width: 0; }
.ck-event-cat {
  font-family: 'DM Sans', sans-serif;
  font-size: .62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: #fff;
  background: var(--grad);
  border-radius: 50px;
  padding: .15rem .55rem;
  display: inline-block;
  margin-bottom: .35rem;
}
.ck-event-name {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1rem;
  font-weight: 800;
  color: var(--t1);
  letter-spacing: -.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ck-event-meta {
  display: flex;
  align-items: center;
  gap: .8rem;
  flex-wrap: wrap;
  margin-top: .3rem;
}
.ck-event-meta span {
  font-family: 'DM Sans', sans-serif;
  font-size: .74rem;
  color: var(--t4);
  display: flex;
  align-items: center;
  gap: .28rem;
}
.ck-event-meta i { color: var(--blue); font-size: .7rem; }
.ck-event-price {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--blue);
  white-space: nowrap;
  flex-shrink: 0;
}
.ck-event-price small {
  font-family: 'DM Sans', sans-serif;
  font-size: .72rem;
  font-weight: 500;
  color: var(--t4);
  display: block;
  text-align: right;
}

/* ── Ticket selector ── */
.ck-ticket-grid {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.ck-ticket-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1.1rem;
  border: 1.5px solid rgba(165,5,5,.10);
  border-radius: 14px;
  background: #fdf8f3;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.ck-ticket-row:hover,
.ck-ticket-row.selected {
  border-color: rgba(165,5,5,.3);
  background: #fff;
  box-shadow: 0 4px 16px rgba(165,5,5,.07);
}
.ck-ticket-row.selected { border-color: var(--blue); }
.ck-ticket-info { flex: 1; }
.ck-ticket-name {
  font-family: 'DM Sans', sans-serif;
  font-size: .88rem;
  font-weight: 700;
  color: var(--t1);
  margin-bottom: .12rem;
}
.ck-ticket-desc {
  font-family: 'DM Sans', sans-serif;
  font-size: .74rem;
  color: var(--t4);
}
.ck-ticket-price {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .95rem;
  font-weight: 800;
  color: var(--blue);
  flex-shrink: 0;
}
.ck-ticket-price.free-tag {
  background: rgba(34,197,94,.10);
  color: #15803d;
  border: 1px solid rgba(34,197,94,.22);
  border-radius: 50px;
  padding: .18rem .7rem;
  font-size: .78rem;
}
/* qty stepper */
.ck-qty {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-shrink: 0;
}
.ck-qty-btn {
  width: 30px; height: 30px;
  border-radius: 50%;
  border: 1.5px solid rgba(165,5,5,.18);
  background: #fff;
  color: var(--blue);
  font-size: .9rem;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background .18s, border-color .18s, transform .15s;
  flex-shrink: 0;
}
.ck-qty-btn:hover { background: rgba(165,5,5,.07); border-color: rgba(165,5,5,.35); transform: scale(1.08); }
.ck-qty-btn:disabled { opacity: .35; cursor: not-allowed; transform: none; }
.ck-qty-val {
  font-family: 'DM Sans', sans-serif;
  font-size: .9rem;
  font-weight: 700;
  color: var(--t1);
  min-width: 22px;
  text-align: center;
}

/* ── Attendee form ── */
.ck-attendee-block { margin-bottom: 1.4rem; }
.ck-attendee-block:last-child { margin-bottom: 0; }
.ck-attendee-label {
  font-family: 'DM Sans', sans-serif;
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--blue);
  display: flex;
  align-items: center;
  gap: .4rem;
  margin-bottom: .85rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid rgba(165,5,5,.07);
}
.ck-attendee-label::before {
  content: '';
  display: inline-block;
  width: 3px; height: 12px;
  border-radius: 2px;
  background: var(--grad);
}
.ck-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .9rem;
}
.ck-form-grid .full { grid-column: 1 / -1; }

/* shared input field */
.ck-field { display: flex; flex-direction: column; gap: .4rem; }
.ck-label {
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
  font-weight: 600;
  color: var(--t2);
}
.ck-label .req { color: var(--blue); }
.ck-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
  border: 1.5px solid rgba(165,5,5,.13);
  border-radius: 12px;
  background: #fdf8f3;
  transition: border-color .22s, box-shadow .22s, background .22s;
  overflow: hidden;
}
.ck-input-wrap:focus-within {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(165,5,5,.08);
  background: #fff;
}
.ck-input-icon {
  position: absolute;
  left: .85rem;
  color: var(--t4);
  font-size: .8rem;
  pointer-events: none;
  transition: color .22s;
  z-index: 1;
}
.ck-input-wrap:focus-within .ck-input-icon { color: var(--blue); }
.ck-input {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--t1);
  background: transparent;
  border: none;
  outline: none;
  width: 100%;
  padding: .7rem .85rem .7rem 2.35rem;
}
.ck-input::placeholder { color: var(--t4); font-weight: 300; }
.ck-input.no-icon { padding-left: .85rem; }
/* select */
.ck-input-wrap select.ck-input {
  appearance: none; -webkit-appearance: none;
  cursor: pointer;
}
.ck-select-arrow {
  position: absolute;
  right: .85rem;
  color: var(--t4);
  font-size: .72rem;
  pointer-events: none;
}
/* textarea */
.ck-input.textarea {
  min-height: 90px;
  resize: vertical;
  padding-top: .7rem;
  height: auto;
  line-height: 1.55;
}

/* ── Coupon row ── */
.ck-coupon-row {
  display: flex;
  gap: .65rem;
  align-items: stretch;
}
.ck-coupon-row .ck-input-wrap { flex: 1; }
.ck-coupon-btn {
  font-family: 'DM Sans', sans-serif;
  font-size: .82rem;
  font-weight: 700;
  padding: 0 1.2rem;
  border: 1.5px solid var(--blue);
  border-radius: 12px;
  background: transparent;
  color: var(--blue);
  cursor: pointer;
  white-space: nowrap;
  transition: background .18s, color .18s, box-shadow .18s;
  flex-shrink: 0;
}
.ck-coupon-btn:hover {
  background: var(--grad);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 14px rgba(165,5,5,.22);
}
.ck-coupon-msg {
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
  font-weight: 600;
  margin-top: .4rem;
  display: none;
}
.ck-coupon-msg.success { display: block; color: #15803d; }
.ck-coupon-msg.error   { display: block; color: #dc2626; }

/* ── Payment method tabs ── */
.ck-pay-tabs {
  display: flex;
  gap: .55rem;
  margin-bottom: 1.4rem;
  flex-wrap: wrap;
}
.ck-pay-tab {
  flex: 1;
  min-width: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .65rem .9rem;
  border: 1.5px solid rgba(165,5,5,.12);
  border-radius: 12px;
  background: #fdf8f3;
  font-family: 'DM Sans', sans-serif;
  font-size: .82rem;
  font-weight: 600;
  color: var(--t3);
  cursor: pointer;
  transition: all .2s;
}
.ck-pay-tab i { font-size: .9rem; }
.ck-pay-tab:hover { border-color: rgba(165,5,5,.28); color: var(--t1); background: #fff; }
.ck-pay-tab.active {
  border-color: var(--blue);
  color: var(--blue);
  background: rgba(165,5,5,.05);
  box-shadow: 0 0 0 3px rgba(165,5,5,.08);
}

/* ── Card input grid ── */
.ck-card-grid {
  display: flex;
  flex-direction: column;
  gap: .9rem;
}
.ck-card-row { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
/* card number field with card brand icon */
.ck-card-brands {
  position: absolute;
  right: .85rem;
  display: flex;
  gap: .3rem;
  align-items: center;
  pointer-events: none;
}
.ck-card-brands img { height: 18px; border-radius: 3px; opacity: .8; }

/* UPI / Net banking panel */
.ck-pay-panel { display: none; }
.ck-pay-panel.active { display: block; }

.ck-upi-row {
  display: flex;
  gap: .65rem;
  align-items: stretch;
}
.ck-upi-row .ck-input-wrap { flex: 1; }
.ck-upi-verify {
  font-family: 'DM Sans', sans-serif;
  font-size: .82rem;
  font-weight: 700;
  padding: 0 1.1rem;
  border: 1.5px solid rgba(165,5,5,.2);
  border-radius: 12px;
  background: transparent;
  color: var(--blue);
  cursor: pointer;
  white-space: nowrap;
  transition: background .18s, color .18s;
  flex-shrink: 0;
}
.ck-upi-verify:hover { background: rgba(165,5,5,.07); }

.ck-netbank-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .6rem;
  margin-bottom: 1rem;
}
.ck-bank-opt {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  padding: .7rem .5rem;
  border: 1.5px solid rgba(165,5,5,.10);
  border-radius: 12px;
  background: #fdf8f3;
  cursor: pointer;
  transition: all .18s;
}
.ck-bank-opt img { width: 36px; height: 36px; object-fit: contain; border-radius: 6px; }
.ck-bank-opt span {
  font-family: 'DM Sans', sans-serif;
  font-size: .68rem;
  font-weight: 600;
  color: var(--t3);
  text-align: center;
}
.ck-bank-opt:hover,
.ck-bank-opt.active {
  border-color: var(--blue);
  background: rgba(165,5,5,.04);
  box-shadow: 0 3px 10px rgba(165,5,5,.08);
}

/* secure badge */
.ck-secure-note {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .74rem;
  color: var(--t4);
  margin-top: .9rem;
}
.ck-secure-note i { color: #16a34a; font-size: .8rem; }

/* ── Right column: order summary ── */
.ck-right {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  position: sticky;
  top: calc(var(--h-h) + 1.5rem);
}

/* line items */
.ck-summary-items {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  margin-bottom: .5rem;
}
.ck-summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--t3);
}
.ck-summary-row .ck-sr-label { display: flex; align-items: center; gap: .45rem; }
.ck-summary-row .ck-sr-label i { color: var(--blue); font-size: .78rem; }
.ck-summary-row .ck-sr-val { font-weight: 600; color: var(--t2); }
.ck-summary-row .ck-sr-val.discount { color: #16a34a; }
.ck-summary-row .ck-sr-val.free-tag {
  background: rgba(34,197,94,.10);
  color: #15803d;
  border: 1px solid rgba(34,197,94,.22);
  border-radius: 50px;
  padding: .14rem .6rem;
  font-size: .75rem;
}
.ck-summary-divider {
  height: 1px;
  background: rgba(165,5,5,.08);
  margin: .4rem 0;
}
.ck-summary-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .9rem 1.1rem;
  background: linear-gradient(135deg, rgba(165,5,5,.05), rgba(200,56,10,.03));
  border: 1.5px solid rgba(165,5,5,.12);
  border-radius: 14px;
}
.ck-total-label {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .88rem;
  font-weight: 700;
  color: var(--t2);
  letter-spacing: -.01em;
}
.ck-total-label small {
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: .68rem;
  font-weight: 400;
  color: var(--t4);
  margin-top: .05rem;
}
.ck-total-amount {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.55rem;
  font-weight: 800;
  color: var(--blue);
  letter-spacing: -.03em;
}

/* trust badges */
.ck-trust-badges {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  padding: .75rem 1rem;
  background: rgba(165,5,5,.03);
  border: 1px solid rgba(165,5,5,.07);
  border-radius: 12px;
}
.ck-trust-item {
  display: flex;
  align-items: center;
  gap: .35rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .7rem;
  font-weight: 600;
  color: var(--t4);
  white-space: nowrap;
}
.ck-trust-item i { font-size: .8rem; color: var(--blue); }

/* ── CTA pay button ── */
.ck-pay-btn {
  width: 100%;
  padding: 1rem 1.5rem;
  background: var(--grad);
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  border: none;
  border-radius: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  box-shadow: 0 8px 28px rgba(165,5,5,.32);
  transition: transform .2s, box-shadow .2s, filter .2s;
  letter-spacing: .01em;
  position: relative;
  overflow: hidden;
}
.ck-pay-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.12), transparent 60%);
  pointer-events: none;
}
.ck-pay-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(165,5,5,.38);
  filter: brightness(1.06);
}
.ck-pay-btn:active { transform: translateY(0); }
.ck-pay-btn i { font-size: 1.1rem; }
.ck-pay-subtext {
  text-align: center;
  font-family: 'DM Sans', sans-serif;
  font-size: .73rem;
  color: var(--t4);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  margin-top: -.2rem;
}
.ck-pay-subtext i { color: #16a34a; font-size: .78rem; }

/* ── T&C checkbox ── */
.ck-terms {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
  color: var(--t3);
  line-height: 1.5;
  cursor: pointer;
}
.ck-terms input[type="checkbox"] { display: none; }
.ck-terms-box {
  width: 18px; height: 18px;
  border-radius: 5px;
  border: 1.5px solid rgba(165,5,5,.2);
  background: #fdf8f3;
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  font-size: .6rem;
  flex-shrink: 0;
  margin-top: .05rem;
  transition: background .18s, border-color .18s;
}
.ck-terms.checked .ck-terms-box {
  background: var(--grad);
  border-color: transparent;
}
.ck-terms a { color: var(--blue); text-decoration: none; font-weight: 600; }
.ck-terms a:hover { text-decoration: underline; }

/* ══════════════════════════════════
   CONFIRMATION STATE
══════════════════════════════════ */
.ck-confirm-wrap {
  position: relative;
  z-index: 1;
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}
.ck-confirm-icon {
  width: 90px; height: 90px;
  border-radius: 50%;
  background: var(--grad);
  display: flex; align-items: center; justify-content: center;
  font-size: 2.4rem;
  color: #fff;
  margin: 0 auto 1.5rem;
  box-shadow: 0 12px 40px rgba(165,5,5,.30);
  animation: ntPopIn .5s cubic-bezier(.34,1.56,.64,1) both;
}
.ck-confirm-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(1.6rem, 3vw, 2rem);
  font-weight: 800;
  color: var(--t1);
  letter-spacing: -.03em;
  margin-bottom: .6rem;
}
.ck-confirm-title em {
  font-style: italic;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.ck-confirm-sub {
  font-family: 'DM Sans', sans-serif;
  font-size: .93rem;
  color: var(--t3);
  line-height: 1.65;
  margin-bottom: 2rem;
  max-width: 460px;
  margin-left: auto;
  margin-right: auto;
}
.ck-booking-ref {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  background: rgba(165,5,5,.06);
  border: 1.5px solid rgba(165,5,5,.16);
  border-radius: 14px;
  padding: .75rem 1.5rem;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--blue);
  letter-spacing: .06em;
  margin-bottom: 2rem;
}
.ck-booking-ref i { font-size: .95rem; }

/* ticket card */
.ck-ticket-card {
  background: #fff;
  border: 1px solid rgba(165,5,5,.09);
  border-radius: 22px;
  box-shadow: 0 8px 32px rgba(165,5,5,.08);
  overflow: hidden;
  margin-bottom: 2rem;
}
.ck-ticket-top {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 1.4rem 1.8rem;
  background: var(--grad);
}
.ck-ticket-top-img {
  width: 68px; height: 68px;
  border-radius: 12px;
  overflow: hidden;
  border: 2px solid rgba(255,255,255,.3);
  flex-shrink: 0;
}
.ck-ticket-top-img img { width: 100%; height: 100%; object-fit: cover; }
.ck-ticket-top-info {}
.ck-ticket-top-name {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.1rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -.02em;
  margin-bottom: .3rem;
}
.ck-ticket-top-meta {
  display: flex;
  gap: .8rem;
  flex-wrap: wrap;
}
.ck-ticket-top-meta span {
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
  color: rgba(255,255,255,.82);
  display: flex;
  align-items: center;
  gap: .28rem;
}

/* ticket tear line */
.ck-tear {
  display: flex;
  align-items: center;
  gap: 0;
  position: relative;
}
.ck-tear-line {
  flex: 1;
  border-top: 2px dashed rgba(165,5,5,.15);
}
.ck-tear-circle {
  width: 20px; height: 20px;
  border-radius: 50%;
  background: var(--bg);
  flex-shrink: 0;
}
.ck-tear-circle.left  { margin-left: -10px; }
.ck-tear-circle.right { margin-right: -10px; }

.ck-ticket-bot {
  padding: 1.2rem 1.8rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.ck-tbot-item {}
.ck-tbot-label {
  font-family: 'DM Sans', sans-serif;
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--t4);
  margin-bottom: .22rem;
}
.ck-tbot-val {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  font-weight: 600;
  color: var(--t1);
}

/* confirm action buttons */
.ck-confirm-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .9rem;
  flex-wrap: wrap;
}
.ck-btn-primary {
  font-family: 'DM Sans', sans-serif;
  font-size: .9rem;
  font-weight: 700;
  padding: .72rem 1.6rem;
  border-radius: 50px;
  border: none;
  cursor: pointer;
  background: var(--grad);
  color: #fff;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  box-shadow: 0 6px 20px rgba(165,5,5,.28);
  transition: transform .2s, box-shadow .2s, filter .2s;
  text-decoration: none;
}
.ck-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(165,5,5,.36);
  filter: brightness(1.06);
  color: #fff;
}
.ck-btn-outline {
  font-family: 'DM Sans', sans-serif;
  font-size: .9rem;
  font-weight: 700;
  padding: .72rem 1.6rem;
  border-radius: 50px;
  border: 1.5px solid rgba(165,5,5,.22);
  cursor: pointer;
  background: #fff;
  color: var(--blue);
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  transition: background .18s, border-color .18s, box-shadow .18s;
  text-decoration: none;
}
.ck-btn-outline:hover {
  background: rgba(165,5,5,.05);
  border-color: rgba(165,5,5,.38);
  box-shadow: 0 4px 14px rgba(165,5,5,.10);
  color: var(--blue);
}

/* ── Responsive ── */
@media(max-width: 900px) {
  .ck-layout { grid-template-columns: 1fr; }
  .ck-right { position: static; }
  /* move summary to top on mobile */
  .ck-right { order: -1; }
  .ck-ticket-bot { grid-template-columns: 1fr 1fr; }
}
@media(max-width: 640px) {
  .ck-wrap { padding: calc(var(--h-h) + 1.5rem) 1rem 3rem; }
  .ck-steps { gap: 0; }
  .ck-step-label { display: none; }
  .ck-step.active .ck-step-label { display: block; }
  .ck-form-grid { grid-template-columns: 1fr; }
  .ck-card-row  { grid-template-columns: 1fr; }
  .ck-netbank-grid { grid-template-columns: repeat(2, 1fr); }
  .ck-event-bar { flex-wrap: wrap; }
  .ck-card-body { padding: 1.1rem 1.1rem; }
  .ck-ticket-top { flex-direction: column; align-items: flex-start; gap: .8rem; }
  .ck-ticket-bot { grid-template-columns: 1fr; }
  .ck-confirm-actions { flex-direction: column; }
  .ck-btn-primary, .ck-btn-outline { width: 100%; justify-content: center; }
  .ck-pay-tabs { gap: .4rem; }
  .ck-pay-tab { font-size: .76rem; padding: .55rem .6rem; }
}

/* ════════════════ CHECKOUT — GATEWAY DROPDOWN ════════════════ */

.ck-gateway-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  padding: 1.5rem;
  border: 2px dashed rgba(165,5,5,.18);
  border-radius: 12px;
  color: var(--t4);
  font-size: .88rem;
  font-family: 'DM Sans', sans-serif;
  background: rgba(165,5,5,.02);
}
.ck-gateway-placeholder i { font-size: 1.3rem; color: rgba(165,5,5,.25); }

.ck-gateway-info {
  border: 1px solid rgba(165,5,5,.12);
  border-radius: 14px;
  background: rgba(255,255,255,.75);
  padding: 1.1rem 1.25rem;
  animation: fadeInUp .25s ease both;
}
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ck-gateway-logo-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.ck-gateway-badge {
  display: flex;
  align-items: center;
  gap: .5rem;
  background: rgba(165,5,5,.05);
  border: 1px solid rgba(165,5,5,.1);
  border-radius: 10px;
  padding: .55rem 1rem;
  flex-shrink: 0;
}
.ck-gateway-desc {
  font-size: .84rem;
  color: var(--t3);
  font-family: 'DM Sans', sans-serif;
  line-height: 1.5;
  flex: 1;
}

/* ── Promo code inside Order Summary ── */
.ck-summary-promo {
  margin: 1rem 0;
  padding: .9rem;
  background: rgba(165,5,5,.03);
  border: 1px dashed rgba(165,5,5,.2);
  border-radius: 12px;
}
.ck-summary-promo-label {
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--blue);
  display: flex;
  align-items: center;
  gap: .35rem;
  margin-bottom: .65rem;
  font-family: 'Bricolage Grotesque', sans-serif;
}
.ck-summary-promo .ck-coupon-row {
  gap: .5rem;
}
.ck-summary-promo .ck-input {
  font-size: .83rem;
  padding: .5rem .75rem .5rem 2.2rem;
  height: 38px;
}
.ck-summary-promo .ck-coupon-btn {
  padding: .5rem .9rem;
  font-size: .82rem;
  white-space: nowrap;
  flex-shrink: 0;
}



    /* ═══ PAGE SHELL ═══ */
    .bc-page {
      min-height: 100vh;
      padding-top: calc(var(--h-h) + 3rem);
      padding-bottom: 4rem;
      position: relative;
      overflow: hidden;
    }

    /* background orbs (reuse ck-orb pattern) */
    .bc-orb {
      position: absolute;
      border-radius: 50%;
      filter: blur(80px);
      pointer-events: none;
      z-index: 0;
    }
    .bc-orb-1 { width: 520px; height: 520px; background: rgba(165,5,5,.10); top: -120px; right: -140px; }
    .bc-orb-2 { width: 400px; height: 400px; background: rgba(200,56,10,.07); bottom: 60px; left: -100px; }

    .bc-inner {
      position: relative;
      z-index: 1;
      max-width: 760px;
      margin: 0 auto;
      padding: 0 1.25rem;
    }

    /* ═══ SUCCESS HERO ═══ */
    .bc-hero {
      text-align: center;
      margin-bottom: 2.5rem;
      animation: bcFadeUp .6s ease both;
    }
    @keyframes bcFadeUp {
      from { opacity: 0; transform: translateY(20px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    /* pulsing ring + check */
    .bc-check-wrap {
      position: relative;
      width: 100px;
      height: 100px;
      margin: 0 auto 1.5rem;
    }
    .bc-check-ring {
      position: absolute;
      inset: -12px;
      border-radius: 50%;
      border: 2px solid rgba(165,5,5,.18);
      animation: bcRing 2s ease-in-out infinite;
    }
    .bc-check-ring-2 {
      position: absolute;
      inset: -22px;
      border-radius: 50%;
      border: 1.5px solid rgba(165,5,5,.09);
      animation: bcRing 2s ease-in-out infinite .4s;
    }
    @keyframes bcRing {
      0%,100% { transform: scale(1); opacity:.5; }
      50%      { transform: scale(1.08); opacity:1; }
    }
    .bc-check-icon {
      width: 100px; height: 100px;
      border-radius: 50%;
      background: var(--grad);
      display: flex; align-items: center; justify-content: center;
      font-size: 2.6rem; color: #fff;
      box-shadow: 0 12px 40px rgba(165,5,5,.32);
      animation: bcPop .5s cubic-bezier(.34,1.56,.64,1) .1s both;
    }
    @keyframes bcPop {
      from { transform: scale(.4); opacity: 0; }
      to   { transform: scale(1);  opacity: 1; }
    }

    .bc-eyebrow {
      display: inline-flex; align-items: center; gap: .4rem;
      background: rgba(165,5,5,.08);
      border: 1px solid rgba(165,5,5,.15);
      border-radius: 50px;
      padding: .3rem .9rem;
      font-size: .78rem; font-weight: 700; color: var(--blue);
      text-transform: uppercase; letter-spacing: .08em;
      margin-bottom: .9rem;
    }
    .bc-title {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: clamp(1.8rem, 5vw, 2.6rem);
      font-weight: 800; color: var(--t1);
      line-height: 1.15; margin-bottom: .6rem;
    }
    .bc-title em { font-style: normal; background: var(--grad); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
    .bc-sub {
      font-size: 1rem; color: var(--t3);
      max-width: 500px; margin: 0 auto;
      line-height: 1.6;
    }

    /* booking ref pill */
    .bc-ref-pill {
      display: inline-flex; align-items: center; gap: .6rem;
      background: var(--glass-b);
      border: 1.5px solid rgba(165,5,5,.18);
      border-radius: 12px;
      padding: .65rem 1.4rem;
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: 1.05rem; font-weight: 700; color: var(--blue);
      letter-spacing: .05em;
      margin-top: 1.25rem;
      box-shadow: var(--sm);
    }
    .bc-ref-copy {
      background: none; border: none; padding: 0; cursor: pointer;
      color: var(--t4); font-size: .9rem;
      transition: color .18s;
    }
    .bc-ref-copy:hover { color: var(--blue); }

    /* ═══ TICKET CARD ═══ */
    .bc-ticket {
      background: #fff;
      border-radius: 20px;
      box-shadow: var(--lg);
      overflow: hidden;
      margin-bottom: 1.75rem;
      animation: bcFadeUp .6s ease .15s both;
      border: 1px solid rgba(165,5,5,.08);
    }

    /* ticket header gradient banner */
    .bc-ticket-banner {
      background: var(--grad);
      padding: 1.4rem 1.75rem;
      display: flex; align-items: center; gap: 1.25rem;
      position: relative; overflow: hidden;
    }
    .bc-ticket-banner::after {
      content: '';
      position: absolute; inset: 0;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Ccircle cx='30' cy='30' r='28' fill='none' stroke='rgba(255,255,255,.06)' stroke-width='1'/%3E%3C/svg%3E") repeat;
      background-size: 60px;
    }
    .bc-ticket-banner-img {
      width: 70px; height: 70px;
      border-radius: 12px;
      object-fit: cover;
      border: 2px solid rgba(255,255,255,.3);
      flex-shrink: 0;
      position: relative; z-index: 1;
    }
    .bc-ticket-banner-info { position: relative; z-index: 1; }
    .bc-ticket-cat {
      display: inline-block;
      background: rgba(255,255,255,.22);
      border-radius: 50px;
      padding: .15rem .65rem;
      font-size: .72rem; font-weight: 700; color: #fff;
      letter-spacing: .06em; text-transform: uppercase;
      margin-bottom: .35rem;
    }
    .bc-ticket-name {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: 1.15rem; font-weight: 800; color: #fff;
      line-height: 1.25; margin-bottom: .5rem;
    }
    .bc-ticket-meta {
      display: flex; flex-wrap: wrap; gap: .5rem 1rem;
      font-size: .8rem; color: rgba(255,255,255,.82);
    }
    .bc-ticket-meta span { display: flex; align-items: center; gap: .3rem; }

    /* perforation tear line */
    .bc-tear {
      display: flex; align-items: center;
      background: var(--bg2);
      border-top: 1px dashed rgba(165,5,5,.2);
      border-bottom: 1px dashed rgba(165,5,5,.2);
      padding: 0 .5rem;
      height: 24px;
      position: relative;
    }
    .bc-tear-circle {
      width: 20px; height: 20px; border-radius: 50%;
      background: var(--bg);
      border: 1px solid rgba(165,5,5,.12);
      flex-shrink: 0;
    }
    .bc-tear-circle.left  { margin-right: auto; margin-left: -10px; }
    .bc-tear-circle.right { margin-left: auto; margin-right: -10px; }
    .bc-tear-label {
      font-size: .7rem; font-weight: 700; letter-spacing: .1em;
      text-transform: uppercase; color: var(--t4);
      position: absolute; left: 50%; transform: translateX(-50%);
      background: var(--bg2); padding: 0 .5rem;
    }

    /* ticket body details */
    .bc-ticket-body {
      padding: 1.4rem 1.75rem;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
      gap: 1.1rem 1.5rem;
    }
    .bc-detail { display: flex; flex-direction: column; gap: .2rem; }
    .bc-detail-label {
      font-size: .72rem; font-weight: 700; letter-spacing: .07em;
      text-transform: uppercase; color: var(--t4);
    }
    .bc-detail-val {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: .95rem; font-weight: 700; color: var(--t1);
    }
    .bc-detail-val.highlight { color: var(--blue); }

    /* QR section */
    .bc-qr-strip {
      border-top: 1px dashed rgba(165,5,5,.15);
      padding: 1.25rem 1.75rem;
      display: flex; align-items: center; gap: 1.5rem;
      flex-wrap: wrap;
      background: rgba(165,5,5,.02);
    }
    .bc-qr-box {
      width: 90px; height: 90px;
      background: #fff;
      border: 2px solid rgba(165,5,5,.12);
      border-radius: 12px;
      display: flex; align-items: center; justify-content: center;
      font-size: 2.8rem; color: var(--t2);
      flex-shrink: 0;
    }
    .bc-qr-info { flex: 1; min-width: 200px; }
    .bc-qr-info h4 {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: .92rem; font-weight: 700; color: var(--t1);
      margin-bottom: .25rem;
    }
    .bc-qr-info p { font-size: .8rem; color: var(--t3); line-height: 1.5; }

    /* ═══ NEXT STEPS ═══ */
    .bc-steps-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 1rem;
      margin-bottom: 1.75rem;
      animation: bcFadeUp .6s ease .25s both;
    }
    .bc-step-card {
      background: var(--glass-b);
      border: 1px solid rgba(165,5,5,.09);
      border-radius: 16px;
      padding: 1.1rem 1.1rem 1.25rem;
      box-shadow: var(--sm);
      display: flex; flex-direction: column; gap: .5rem;
    }
    .bc-step-ic {
      width: 40px; height: 40px;
      border-radius: 10px;
      background: rgba(165,5,5,.08);
      display: flex; align-items: center; justify-content: center;
      font-size: 1.1rem; color: var(--blue);
    }
    .bc-step-title {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: .9rem; font-weight: 700; color: var(--t1);
    }
    .bc-step-desc { font-size: .8rem; color: var(--t3); line-height: 1.5; }

    /* ═══ ACTION BUTTONS ═══ */
    .bc-actions {
      display: flex; flex-wrap: wrap; gap: .75rem;
      justify-content: center;
      margin-bottom: 2rem;
      animation: bcFadeUp .6s ease .35s both;
    }
    .bc-btn-primary {
      display: inline-flex; align-items: center; gap: .5rem;
      background: var(--grad);
      color: #fff;
      font-family: 'Bricolage Grotesque', sans-serif;
      font-weight: 700; font-size: .92rem;
      padding: .75rem 1.5rem;
      border-radius: 50px;
      text-decoration: none;
      border: none; cursor: pointer;
      box-shadow: 0 6px 20px rgba(165,5,5,.28);
      transition: transform .2s, box-shadow .2s;
    }
    .bc-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(165,5,5,.36); color: #fff; }
    .bc-btn-outline {
      display: inline-flex; align-items: center; gap: .5rem;
      background: var(--glass-b);
      color: var(--t2);
      font-family: 'Bricolage Grotesque', sans-serif;
      font-weight: 600; font-size: .92rem;
      padding: .72rem 1.4rem;
      border-radius: 50px;
      text-decoration: none;
      border: 1.5px solid rgba(165,5,5,.18);
      cursor: pointer;
      box-shadow: var(--sm);
      transition: all .2s;
    }
    .bc-btn-outline:hover { border-color: var(--blue); color: var(--blue); transform: translateY(-2px); }

    /* ═══ SHARE STRIP ═══ */
    .bc-share-strip {
      background: var(--glass-b);
      border: 1px solid rgba(165,5,5,.1);
      border-radius: 16px;
      padding: 1.1rem 1.4rem;
      display: flex; align-items: center; justify-content: space-between;
      flex-wrap: wrap; gap: 1rem;
      box-shadow: var(--sm);
      margin-bottom: 1.75rem;
      animation: bcFadeUp .6s ease .4s both;
    }
    .bc-share-left { display: flex; align-items: center; gap: .75rem; }
    .bc-share-ic {
      width: 42px; height: 42px; border-radius: 10px;
      background: rgba(165,5,5,.08);
      display: flex; align-items: center; justify-content: center;
      font-size: 1.1rem; color: var(--blue); flex-shrink: 0;
    }
    .bc-share-text strong {
      display: block;
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: .92rem; font-weight: 700; color: var(--t1);
    }
    .bc-share-text span { font-size: .8rem; color: var(--t3); }
    .bc-share-btns { display: flex; gap: .5rem; flex-wrap: wrap; }
    .bc-soc-btn {
      width: 38px; height: 38px;
      border-radius: 10px;
      background: rgba(165,5,5,.07);
      border: 1px solid rgba(165,5,5,.12);
      display: flex; align-items: center; justify-content: center;
      color: var(--blue); font-size: 1rem;
      text-decoration: none; cursor: pointer;
      transition: all .18s;
    }
    .bc-soc-btn:hover { background: var(--grad); color: #fff; border-color: transparent; transform: translateY(-2px); }

    /* ═══ PROMO STRIP ═══ */
    .bc-promo {
      background: var(--grad);
      border-radius: 16px;
      padding: 1.4rem 1.75rem;
      display: flex; align-items: center; justify-content: space-between;
      flex-wrap: wrap; gap: 1rem;
      box-shadow: 0 8px 28px rgba(165,5,5,.25);
      position: relative; overflow: hidden;
      animation: bcFadeUp .6s ease .45s both;
    }
    .bc-promo::before {
      content: '';
      position: absolute; inset: 0;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Ccircle cx='30' cy='30' r='28' fill='none' stroke='rgba(255,255,255,.06)' stroke-width='1'/%3E%3C/svg%3E") repeat;
      background-size: 60px;
    }
    .bc-promo-left { position: relative; z-index: 1; }
    .bc-promo-tag {
      display: inline-flex; align-items: center; gap: .35rem;
      background: rgba(255,255,255,.18); border-radius: 50px;
      padding: .2rem .75rem;
      font-size: .73rem; font-weight: 700; color: #fff;
      letter-spacing: .07em; text-transform: uppercase;
      margin-bottom: .45rem;
    }
    .bc-promo-h {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: 1.05rem; font-weight: 800; color: #fff;
      margin-bottom: .2rem;
    }
    .bc-promo-sub { font-size: .82rem; color: rgba(255,255,255,.78); }
    .bc-promo-btn {
      display: inline-flex; align-items: center; gap: .45rem;
      background: #fff; color: var(--blue);
      font-family: 'Bricolage Grotesque', sans-serif;
      font-weight: 700; font-size: .88rem;
      padding: .65rem 1.3rem; border-radius: 50px;
      text-decoration: none;
      box-shadow: 0 4px 14px rgba(0,0,0,.12);
      flex-shrink: 0; position: relative; z-index: 1;
      transition: transform .2s, box-shadow .2s;
    }
    .bc-promo-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.16); color: var(--blue); }

    /* ═══ RESPONSIVE ═══ */
    @media (max-width: 600px) {
      .bc-ticket-body { grid-template-columns: 1fr 1fr; }
      .bc-ticket-banner { flex-direction: column; align-items: flex-start; }
      .bc-share-strip { flex-direction: column; align-items: flex-start; }
      .bc-promo { flex-direction: column; }
      .bc-steps-grid { grid-template-columns: 1fr; }
    }
	
	
    /* ═══════════ PAGE WRAP ═══════════ */
    .ct-page {
      min-height: 100vh;
      padding-top: calc(var(--h-h) + 3.5rem);
      padding-bottom: 5rem;
      position: relative;
      overflow: hidden;
    }

    .ct-orb {
      position: absolute;
      border-radius: 50%;
      filter: blur(90px);
      pointer-events: none;
      z-index: 0;
    }

    .ct-inner {
      position: relative;
      z-index: 1;
      max-width: 1100px;
      margin: 0 auto;
      padding: 0 1.5rem;
    }

    /* ═══════════ PAGE HEADER ═══════════ */
    .ct-page-head {
      text-align: center;
      margin-bottom: 3.5rem;
      animation: ctFadeUp .55s ease both;
    }
    @keyframes ctFadeUp {
      from { opacity: 0; transform: translateY(18px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    .ct-eyebrow {
      display: inline-flex; align-items: center; gap: .4rem;
      background: rgba(165,5,5,.08);
      border: 1px solid rgba(165,5,5,.15);
      border-radius: 50px;
      padding: .3rem .95rem;
      font-size: .78rem; font-weight: 700; color: var(--blue);
      text-transform: uppercase; letter-spacing: .09em;
      margin-bottom: 1rem;
    }

    .ct-title {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: clamp(2rem, 5vw, 3rem);
      font-weight: 800; color: var(--t1);
      line-height: 1.15; margin-bottom: .75rem;
    }
    .ct-title em {
      font-style: normal;
      background: var(--grad);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .ct-sub {
      font-size: 1.02rem; color: var(--t3);
      max-width: 520px; margin: 0 auto;
      line-height: 1.65;
    }

    /* ═══════════ GRID LAYOUT ═══════════ */
    .ct-layout {
      display: grid;
      grid-template-columns: 1fr 1.65fr;
      gap: 2rem;
      align-items: start;
    }

    /* ═══════════ LEFT — INFO COLUMN ═══════════ */
    .ct-info-col {
      display: flex;
      flex-direction: column;
      gap: 1.25rem;
      animation: ctFadeUp .55s ease .1s both;
    }

    /* contact detail cards */
    .ct-info-card {
      background: var(--glass-b);
      border: 1px solid rgba(165,5,5,.10);
      border-radius: 18px;
      padding: 1.4rem 1.5rem;
      box-shadow: var(--gs);
      display: flex;
      align-items: flex-start;
      gap: 1rem;
      transition: transform .2s, box-shadow .2s;
    }
    .ct-info-card:hover {
      transform: translateY(-3px);
      box-shadow: var(--md);
    }

    .ct-info-ic {
      width: 48px; height: 48px;
      border-radius: 13px;
      background: var(--grad);
      display: flex; align-items: center; justify-content: center;
      font-size: 1.2rem; color: #fff;
      flex-shrink: 0;
      box-shadow: 0 6px 18px rgba(165,5,5,.25);
    }

    .ct-info-body {}
    .ct-info-label {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: .72rem; font-weight: 700;
      text-transform: uppercase; letter-spacing: .09em;
      color: var(--blue); margin-bottom: .25rem;
    }
    .ct-info-val {
      font-size: .95rem; font-weight: 600; color: var(--t1);
      line-height: 1.45; margin-bottom: .2rem;
    }
    .ct-info-sub {
      font-size: .8rem; color: var(--t3);
    }
    .ct-info-val a {
      color: var(--t1); text-decoration: none;
      transition: color .18s;
    }
    .ct-info-val a:hover { color: var(--blue); }

    /* hours card */
    .ct-hours-card {
      background: var(--grad);
      border-radius: 18px;
      padding: 1.4rem 1.5rem;
      box-shadow: 0 8px 28px rgba(165,5,5,.25);
      position: relative; overflow: hidden;
    }
    .ct-hours-card::before {
      content: '';
      position: absolute; inset: 0;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50'%3E%3Ccircle cx='25' cy='25' r='23' fill='none' stroke='rgba(255,255,255,.07)' stroke-width='1'/%3E%3C/svg%3E") repeat;
      background-size: 50px;
    }
    .ct-hours-title {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: .75rem; font-weight: 700;
      text-transform: uppercase; letter-spacing: .09em;
      color: rgba(255,255,255,.75); margin-bottom: .9rem;
      position: relative;
      display: flex; align-items: center; gap: .4rem;
    }
    .ct-hours-row {
      display: flex; justify-content: space-between;
      font-size: .85rem; color: rgba(255,255,255,.88);
      padding: .35rem 0;
      border-bottom: 1px solid rgba(255,255,255,.1);
      position: relative;
    }
    .ct-hours-row:last-child { border-bottom: none; }
    .ct-hours-row span:last-child { font-weight: 600; color: #fff; }

    /* social row */
    .ct-social-row {
      display: flex; gap: .6rem; flex-wrap: wrap;
    }
    .ct-soc-btn {
      width: 42px; height: 42px;
      border-radius: 11px;
      background: var(--glass-b);
      border: 1px solid rgba(165,5,5,.12);
      display: flex; align-items: center; justify-content: center;
      color: var(--t2); font-size: 1rem;
      text-decoration: none;
      transition: all .18s;
      box-shadow: var(--sm);
    }
    .ct-soc-btn:hover {
      background: var(--grad); color: #fff;
      border-color: transparent;
      transform: translateY(-2px);
      box-shadow: 0 6px 18px rgba(165,5,5,.28);
    }

    /* ═══════════ RIGHT — FORM CARD ═══════════ */
    .ct-form-card {
      background: var(--glass-b);
      border: 1px solid rgba(165,5,5,.10);
      border-radius: 22px;
      box-shadow: var(--lg);
      overflow: hidden;
      animation: ctFadeUp .55s ease .18s both;
    }

    .ct-form-banner {
      background: var(--grad);
      padding: 1.6rem 2rem;
      display: flex; align-items: center; gap: 1rem;
      position: relative; overflow: hidden;
    }
    .ct-form-banner::after {
      content: '';
      position: absolute; inset: 0;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50'%3E%3Ccircle cx='25' cy='25' r='23' fill='none' stroke='rgba(255,255,255,.07)' stroke-width='1'/%3E%3C/svg%3E") repeat;
      background-size: 50px;
    }
    .ct-form-banner-ic {
      width: 52px; height: 52px;
      border-radius: 13px;
      background: rgba(255,255,255,.18);
      display: flex; align-items: center; justify-content: center;
      font-size: 1.4rem; color: #fff;
      flex-shrink: 0;
      position: relative; z-index: 1;
    }
    .ct-form-banner-text { position: relative; z-index: 1; }
    .ct-form-banner-title {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: 1.2rem; font-weight: 800; color: #fff;
      margin-bottom: .15rem;
    }
    .ct-form-banner-sub {
      font-size: .83rem; color: rgba(255,255,255,.8);
    }

    .ct-form-body { padding: 2rem; }

    /* fields */
    .ct-field {
      margin-bottom: 1.25rem;
    }
    .ct-label {
      display: block;
      font-size: .8rem; font-weight: 600; color: var(--t2);
      margin-bottom: .45rem; letter-spacing: .01em;
    }
    .ct-label .req { color: var(--blue); margin-left: .15rem; }

    .ct-input-wrap {
      position: relative;
    }
    .ct-input-icon {
      position: absolute;
      left: .95rem; top: 50%; transform: translateY(-50%);
      color: var(--t4); font-size: .88rem;
      pointer-events: none;
      transition: color .2s;
    }
    .ct-input-wrap:focus-within .ct-input-icon { color: var(--blue); }

    .ct-input {
      width: 100%;
      background: rgba(255,255,255,.72);
      border: 1.5px solid rgba(165,5,5,.14);
      border-radius: 12px;
      padding: .72rem 1rem .72rem 2.5rem;
      font-family: 'DM Sans', sans-serif;
      font-size: .9rem; color: var(--t1);
      outline: none;
      transition: border-color .2s, box-shadow .2s, background .2s;
    }
    .ct-input::placeholder { color: var(--t4); }
    .ct-input:focus {
      border-color: var(--blue);
      background: #fff;
      box-shadow: 0 0 0 3px rgba(165,5,5,.08);
    }

    .ct-textarea {
      min-height: 140px;
      resize: vertical;
      padding-top: .85rem;
      line-height: 1.6;
    }
    .ct-input-wrap .ct-textarea ~ .ct-input-icon,
    .ct-input-wrap .ct-input-icon.top { top: 1.1rem; transform: none; }

    /* two-col row */
    .ct-form-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1rem;
    }

    /* subject pills */
    .ct-subject-pills {
      display: flex; flex-wrap: wrap; gap: .45rem;
      margin-bottom: 1.25rem;
    }
    .ct-subject-pill {
      display: inline-flex; align-items: center; gap: .35rem;
      padding: .38rem .85rem;
      border-radius: 50px;
      border: 1.5px solid rgba(165,5,5,.17);
      background: rgba(255,255,255,.7);
      font-size: .8rem; font-weight: 500; color: var(--t2);
      cursor: pointer; user-select: none;
      transition: all .18s;
    }
    .ct-subject-pill:hover {
      border-color: var(--blue); color: var(--blue);
      background: rgba(165,5,5,.05);
    }
    .ct-subject-pill.active {
      background: var(--grad);
      border-color: transparent; color: #fff;
      box-shadow: 0 4px 14px rgba(165,5,5,.25);
    }

    /* char counter */
    .ct-char-count {
      text-align: right;
      font-size: .73rem; color: var(--t4);
      margin-top: .3rem;
    }

    /* submit button */
    .ct-submit-btn {
      width: 100%;
      background: var(--grad);
      color: #fff;
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: 1rem; font-weight: 700;
      border: none; border-radius: 14px;
      padding: .9rem 1.5rem;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center; gap: .55rem;
      box-shadow: 0 6px 22px rgba(165,5,5,.30);
      transition: transform .2s, box-shadow .2s;
      margin-top: .5rem;
    }
    .ct-submit-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 10px 30px rgba(165,5,5,.38);
    }
    .ct-submit-btn:active { transform: translateY(0); }

    /* secure note */
    .ct-form-note {
      display: flex; align-items: center; justify-content: center; gap: .4rem;
      font-size: .75rem; color: var(--t4);
      margin-top: .9rem;
    }
    .ct-form-note i { color: var(--blue); }

    /* success overlay inside card */
    .ct-success {
      display: none;
      flex-direction: column;
      align-items: center;
      text-align: center;
      padding: 3rem 2rem;
      gap: .9rem;
    }
    .ct-success-icon {
      width: 76px; height: 76px;
      border-radius: 50%;
      background: var(--grad);
      display: flex; align-items: center; justify-content: center;
      font-size: 2rem; color: #fff;
      box-shadow: 0 8px 28px rgba(165,5,5,.3);
      animation: ctPop .45s cubic-bezier(.34,1.56,.64,1) both;
    }
    @keyframes ctPop {
      from { transform: scale(.4); opacity: 0; }
      to   { transform: scale(1); opacity: 1; }
    }
    .ct-success h2 {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: 1.5rem; font-weight: 800; color: var(--t1);
    }
    .ct-success p { font-size: .9rem; color: var(--t3); max-width: 340px; line-height: 1.6; }
    .ct-success-btn {
      display: inline-flex; align-items: center; gap: .45rem;
      background: var(--grad); color: #fff;
      font-family: 'Bricolage Grotesque', sans-serif;
      font-weight: 700; font-size: .9rem;
      padding: .65rem 1.4rem; border-radius: 50px;
      text-decoration: none; border: none; cursor: pointer;
      box-shadow: 0 6px 18px rgba(165,5,5,.28);
      transition: transform .2s;
    }
    .ct-success-btn:hover { transform: translateY(-2px); color: #fff; }

    /* ═══════════ FAQ STRIP ═══════════ */
    .ct-faq {
      margin-top: 3.5rem;
      animation: ctFadeUp .55s ease .3s both;
    }
    .ct-faq-head {
      text-align: center;
      margin-bottom: 1.5rem;
    }
    .ct-faq-head h2 {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: 1.5rem; font-weight: 800; color: var(--t1);
      margin-bottom: .4rem;
    }
    .ct-faq-head p { font-size: .9rem; color: var(--t3); }

    .ct-faq-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 1rem;
    }
    .ct-faq-item {
      background: var(--glass-b);
      border: 1px solid rgba(165,5,5,.09);
      border-radius: 16px;
      padding: 1.2rem 1.3rem;
      box-shadow: var(--sm);
      transition: transform .18s, box-shadow .18s;
    }
    .ct-faq-item:hover {
      transform: translateY(-2px);
      box-shadow: var(--md);
    }
    .ct-faq-q {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: .92rem; font-weight: 700; color: var(--t1);
      display: flex; align-items: flex-start; gap: .5rem;
      margin-bottom: .45rem;
    }
    .ct-faq-q i { color: var(--blue); font-size: .85rem; margin-top: .2rem; flex-shrink: 0; }
    .ct-faq-a { font-size: .82rem; color: var(--t3); line-height: 1.6; }

    /* ═══════════ MAP STRIP ═══════════ */
    .ct-map {
      margin-top: 3.5rem;
      border-radius: 20px;
      overflow: hidden;
      border: 1px solid rgba(165,5,5,.1);
      box-shadow: var(--md);
      position: relative;
      animation: ctFadeUp .55s ease .35s both;
    }
    .ct-map-overlay {
      position: absolute;
      top: 1rem; left: 1rem;
      background: var(--glass-b);
      border: 1px solid rgba(165,5,5,.12);
      border-radius: 12px;
      padding: .75rem 1rem;
      box-shadow: var(--sm);
      z-index: 2;
    }
    .ct-map-overlay strong {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: .88rem; color: var(--t1);
      display: flex; align-items: center; gap: .4rem;
    }
    .ct-map-overlay span { font-size: .75rem; color: var(--t3); }
    .ct-map iframe {
      width: 100%;
      height: 320px;
      border: none;
      display: block;
      filter: sepia(.15) saturate(.9);
    }

    /* ═══════════ RESPONSIVE ═══════════ */
    @media (max-width: 860px) {
      .ct-layout       { grid-template-columns: 1fr; }
      .ct-info-col     { order: 2; }
      .ct-form-card    { order: 1; }
    }

    @media (max-width: 767px) {
      .ct-page         { padding-top: calc(var(--h-h) + 2rem); padding-bottom: 3rem; overflow-x: hidden; }
      .ct-inner        { padding: 0 1rem; }
      .ct-page-head    { margin-bottom: 2rem; }
      .ct-sub          { font-size: .93rem; }
      .ct-layout       { gap: 1.25rem; }

      /* Info cards */
      .ct-info-card    { padding: 1rem 1.1rem; gap: .75rem; }
      .ct-info-ic      { width: 40px; height: 40px; font-size: 1rem; border-radius: 11px; }
      .ct-info-val     { font-size: .88rem; }
      .ct-hours-card   { padding: 1rem 1.1rem; }

      /* Social buttons — bigger tap targets */
      .ct-soc-btn      { width: 46px; height: 46px; font-size: 1.1rem; }

      /* FAQ */
      .ct-faq          { margin-top: 2rem; }
      .ct-faq-grid     { grid-template-columns: 1fr; }
      .ct-faq-head h2  { font-size: 1.25rem; }
    }

    @media (max-width: 540px) {
      .ct-form-row       { grid-template-columns: 1fr; }
      .ct-form-body      { padding: 1.2rem 1rem; }
      .ct-form-banner    { padding: 1rem 1.1rem; gap: .75rem; }
      .ct-form-banner-ic { width: 44px; height: 44px; font-size: 1.2rem; border-radius: 11px; }
      .ct-form-banner-title { font-size: 1.05rem; }

      /* Subject pills */
      .ct-subject-pill   { font-size: .75rem; padding: .32rem .7rem; }

      /* Submit */
      .ct-submit-btn     { font-size: .95rem; padding: .85rem 1rem; }

      /* Success state */
      .ct-success        { padding: 2rem 1.2rem; }
      .ct-success-icon   { width: 62px; height: 62px; font-size: 1.6rem; }
      .ct-success h2     { font-size: 1.25rem; }
    }
	
	
    /* ══════════════════════════════════
       SHARED UTILITIES
    ══════════════════════════════════ */
    .ab-page { overflow-x: hidden; }

    .ab-orb {
      position: absolute; border-radius: 50%;
      filter: blur(90px); pointer-events: none; z-index: 0;
    }
    .ab-section {
      position: relative;
      padding: 5rem 1.5rem;
    }
    .ab-inner {
      position: relative; z-index: 1;
      max-width: 1100px; margin: 0 auto;
    }

    /* eyebrow pill */
    .ab-eyebrow {
      display: inline-flex; align-items: center; gap: .4rem;
      background: rgba(165,5,5,.08);
      border: 1px solid rgba(165,5,5,.15);
      border-radius: 50px;
      padding: .3rem .95rem;
      font-size: .75rem; font-weight: 700; color: var(--blue);
      text-transform: uppercase; letter-spacing: .09em;
      margin-bottom: 1rem;
    }

    .ab-title {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: clamp(1.9rem, 4.5vw, 2.9rem);
      font-weight: 800; color: var(--t1);
      line-height: 1.15; margin-bottom: .85rem;
    }
    .ab-title em {
      font-style: normal;
      background: var(--grad);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .ab-lead {
      font-size: 1.05rem; color: var(--t3);
      line-height: 1.75; max-width: 560px;
    }

    /* fade-up animation */
    .ab-fade {
      opacity: 0; transform: translateY(24px);
      transition: opacity .65s ease, transform .65s ease;
    }
    .ab-fade.visible { opacity: 1; transform: translateY(0); }
    .ab-fade-d1 { transition-delay: .08s; }
    .ab-fade-d2 { transition-delay: .18s; }
    .ab-fade-d3 { transition-delay: .28s; }
    .ab-fade-d4 { transition-delay: .38s; }
    .ab-fade-d5 { transition-delay: .48s; }


    /* ══════════════════════════════════
       HERO
    ══════════════════════════════════ */
    .ab-hero {
      padding-top: calc(var(--h-h) + 2rem);
      padding-bottom: 30px;
      background: var(--bg);
    }
    .ab-hero-orb-1 { width:580px;height:580px;background:rgba(165,5,5,.10);top:-160px;right:-180px; }
    .ab-hero-orb-2 { width:400px;height:400px;background:rgba(200,56,10,.06);bottom:-60px;left:-100px; }

    .ab-hero-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4rem;
      align-items: center;
    }

    .ab-hero-text {}

    .ab-hero-body {
      font-size: .97rem; color: var(--t3); line-height: 1.75;
      margin-bottom: 1.5rem; max-width: 520px;
    }

    .ab-hero-ctas {
      display: flex; flex-wrap: wrap; gap: .75rem;
    }
    .ab-btn-primary {
      display: inline-flex; align-items: center; gap: .5rem;
      background: var(--grad); color: #fff;
      font-family: 'Bricolage Grotesque', sans-serif;
      font-weight: 700; font-size: .92rem;
      padding: .75rem 1.5rem; border-radius: 50px;
      text-decoration: none;
      box-shadow: 0 6px 22px rgba(165,5,5,.3);
      transition: transform .2s, box-shadow .2s;
    }
    .ab-btn-primary:hover { transform:translateY(-2px); box-shadow:0 10px 30px rgba(165,5,5,.38); color:#fff; }
    .ab-btn-outline {
      display: inline-flex; align-items: center; gap: .5rem;
      background: var(--glass-b); color: var(--t2);
      font-family: 'Bricolage Grotesque', sans-serif;
      font-weight: 600; font-size: .92rem;
      padding: .72rem 1.4rem; border-radius: 50px;
      text-decoration: none;
      border: 1.5px solid rgba(165,5,5,.18);
      box-shadow: var(--sm);
      transition: all .2s;
    }
    .ab-btn-outline:hover { border-color:var(--blue); color:var(--blue); transform:translateY(-2px); }

    /* Hero image collage */
    .ab-hero-collage {
      position: relative;
      height: 460px;
    }
    .ab-col-img {
      position: absolute;
      border-radius: 18px;
      object-fit: cover;
      box-shadow: var(--lg);
      border: 3px solid #fff;
    }
    .ab-col-img-1 { width:62%; height:290px; top:0; right:0; z-index:2; }
    .ab-col-img-2 { width:52%; height:240px; bottom:0; left:0; z-index:3; }
    .ab-col-img-3 {
      width:38%; height:160px;
      top: 52%; left: 32%;
      z-index: 4;
      border-radius: 14px;
      animation: colFloat 3.8s ease-in-out infinite;
      box-shadow: 0 16px 40px rgba(165,5,5,.22), 0 4px 12px rgba(0,0,0,.12);
      border: 3px solid #fff;
    }
    @keyframes colFloat {
      0%, 100% { transform: translateY(0px) rotate(-1.5deg); }
      50%       { transform: translateY(-14px) rotate(1deg); }
    }

    /* floating badge on collage */
    .ab-col-badge {
      position: absolute;
      bottom: 14px; right: 0;
      z-index: 4;
      background: var(--glass-b);
      border: 1px solid rgba(165,5,5,.15);
      border-radius: 14px;
      padding: .7rem 1rem;
      box-shadow: var(--md);
      display: flex; align-items: center; gap: .65rem;
    }
    .ab-col-badge-ic {
      width: 40px; height: 40px; border-radius: 10px;
      background: var(--grad); display: flex; align-items: center;
      justify-content: center; font-size: 1.1rem; color: #fff;
      flex-shrink: 0;
    }
    .ab-col-badge strong {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: 1.1rem; font-weight: 800; color: var(--blue);
      display: block; line-height: 1;
    }
    .ab-col-badge span { font-size: .73rem; color: var(--t3); }

    /* ══════════════════════════════════
       STATS STRIP
    ══════════════════════════════════ */
    .ab-stats-strip {
      background: var(--grad);
      padding: 3rem 1.5rem;
      position: relative; overflow: hidden;
    }
    .ab-stats-strip::before {
      content:'';position:absolute;inset:0;
      background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Ccircle cx='30' cy='30' r='28' fill='none' stroke='rgba(255,255,255,.06)' stroke-width='1'/%3E%3C/svg%3E") repeat;
      background-size:60px;
    }
    .ab-stats-grid {
      position:relative; z-index:1;
      max-width:1100px; margin:0 auto;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 2rem;
      text-align: center;
    }
    .ab-stat-val {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: clamp(2rem, 4vw, 2.8rem);
      font-weight: 800; color: #fff;
      line-height: 1;
      margin-bottom: .35rem;
    }
    .ab-stat-label {
      font-size: .82rem; color: rgba(255,255,255,.78);
      font-weight: 500;
    }
    .ab-stat-divider {
      width: 1px; background: rgba(255,255,255,.18);
      margin: 0 auto;
    }

    /* ══════════════════════════════════
       STORY SECTION
    ══════════════════════════════════ */
    .ab-story { background: var(--bg2); }
    .ab-story-orb { width:500px;height:500px;background:rgba(165,5,5,.07);top:-100px;left:-100px; }

    .ab-story-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4rem;
      align-items: center;
    }

    .ab-story-img-wrap {
      position: relative;
    }
    .ab-story-img {
      width: 100%; border-radius: 20px;
      object-fit: cover; height: 400px;
      box-shadow: var(--lg);
      border: 3px solid #fff;
    }
    .ab-story-tag {
      position: absolute;
      top: 18px; left: 18px;
      background: var(--grad);
      color: #fff;
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: .75rem; font-weight: 700;
      text-transform: uppercase; letter-spacing: .07em;
      padding: .35rem .85rem; border-radius: 50px;
      box-shadow: 0 4px 14px rgba(165,5,5,.3);
    }
    .ab-story-year {
      position: absolute;
      bottom: -18px; right: 24px;
      background: var(--glass-b);
      border: 1px solid rgba(165,5,5,.14);
      border-radius: 14px;
      padding: .75rem 1.1rem;
      box-shadow: var(--md);
      text-align: center;
    }
    .ab-story-year strong {
      font-family: 'Bricolage Grotesque', sans-serif;
      font-size: 1.5rem; font-weight: 800; color: var(--blue);
      display: block; line-height: 1;
    }
    .ab-story-year span { font-size: .73rem; color: var(--t3); }

    .ab-story-text { padding-top: 1rem; }
    .ab-story-body {
      font-size: .96rem; color: var(--t3); line-height: 1.8;
      margin-bottom: 1rem;
    }

    /* timeline */
    .ab-timeline { margin-top: 1.5rem; }
    .ab-tl-item {
      display: flex; gap: 1rem;
      padding-bottom: 1.25rem;
      position: relative;
    }
    .ab-tl-item:not(:last-child)::before {
      content:''; position:absolute;
      left:17px; top:36px;
      width:2px; height:calc(100% - 18px);
      background: rgba(165,5,5,.15);
    }
    .ab-tl-dot {
      width:36px; height:36px; border-radius:50%;
      background:var(--grad); flex-shrink:0;
      display:flex; align-items:center; justify-content:center;
      font-size:.8rem; color:#fff;
      box-shadow:0 4px 12px rgba(165,5,5,.22);
    }
    .ab-tl-body {}
    .ab-tl-year {
      font-family:'Bricolage Grotesque',sans-serif;
      font-size:.75rem; font-weight:700; color:var(--blue);
      text-transform:uppercase; letter-spacing:.07em;
      margin-bottom:.15rem;
    }
    .ab-tl-text { font-size:.87rem; color:var(--t2); line-height:1.55; }

    /* ══════════════════════════════════
       FEATURES SECTION
    ══════════════════════════════════ */
    .ab-features { background: var(--bg); }
    .ab-features-orb-1 { width:500px;height:500px;background:rgba(165,5,5,.08);top:-80px;right:-120px; }

    .ab-features-head { text-align:center; margin-bottom:3rem; }
    .ab-features-head .ab-lead { margin:0 auto; text-align:center; }

    .ab-feat-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.25rem;
    }
    .ab-feat-card {
      background: var(--glass-b);
      border: 1px solid rgba(165,5,5,.09);
      border-radius: 20px;
      padding: 1.75rem 1.5rem;
      box-shadow: var(--gs);
      transition: transform .22s, box-shadow .22s, border-color .22s;
      position: relative; overflow: hidden;
    }
    .ab-feat-card::before {
      content:''; position:absolute;
      top:0; left:0; right:0; height:3px;
      background:var(--grad);
      opacity:0; transition:opacity .22s;
      border-radius:20px 20px 0 0;
    }
    .ab-feat-card:hover {
      transform:translateY(-5px);
      box-shadow:var(--md);
      border-color:rgba(165,5,5,.18);
    }
    .ab-feat-card:hover::before { opacity:1; }

    .ab-feat-ic {
      width:52px; height:52px; border-radius:14px;
      background:rgba(165,5,5,.08);
      display:flex; align-items:center; justify-content:center;
      font-size:1.3rem; color:var(--blue);
      margin-bottom:1.1rem;
      transition:background .22s, color .22s, box-shadow .22s;
    }
    .ab-feat-card:hover .ab-feat-ic {
      background:var(--grad); color:#fff;
      box-shadow:0 6px 18px rgba(165,5,5,.28);
    }
    .ab-feat-title {
      font-family:'Bricolage Grotesque',sans-serif;
      font-size:1rem; font-weight:700; color:var(--t1);
      margin-bottom:.5rem;
    }
    .ab-feat-desc { font-size:.85rem; color:var(--t3); line-height:1.65; }

    /* ══════════════════════════════════
       VALUES
    ══════════════════════════════════ */
    .ab-values { background: var(--bg2); }
    .ab-values-orb { width:460px;height:460px;background:rgba(165,5,5,.07);bottom:-80px;left:-80px; }

    .ab-values-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4rem;
      align-items: center;
    }
    .ab-values-list {
      display: flex; flex-direction:column; gap:1rem;
    }
    .ab-value-item {
      display:flex; gap:1rem; align-items:flex-start;
      background:var(--glass-b);
      border:1px solid rgba(165,5,5,.09);
      border-radius:16px;
      padding:1.1rem 1.2rem;
      box-shadow:var(--sm);
      transition:transform .2s, box-shadow .2s;
    }
    .ab-value-item:hover { transform:translateY(-2px); box-shadow:var(--md); }
    .ab-value-ic {
      width:44px; height:44px; border-radius:11px;
      background:var(--grad); flex-shrink:0;
      display:flex; align-items:center; justify-content:center;
      font-size:1.1rem; color:#fff;
      box-shadow:0 5px 16px rgba(165,5,5,.22);
    }
    .ab-value-body {}
    .ab-value-title {
      font-family:'Bricolage Grotesque',sans-serif;
      font-size:.93rem; font-weight:700; color:var(--t1); margin-bottom:.2rem;
    }
    .ab-value-desc { font-size:.82rem; color:var(--t3); line-height:1.55; }

    /* values image */
    .ab-values-img-wrap { position:relative; }
    .ab-values-img {
      width:100%; border-radius:20px;
      object-fit:cover; height:480px;
      box-shadow:var(--lg); border:3px solid #fff;
    }
    .ab-values-float {
      position:absolute; bottom:20px; left:20px;
      background:var(--grad); border-radius:14px;
      padding:.85rem 1.1rem;
      box-shadow:0 8px 24px rgba(165,5,5,.3);
    }
    .ab-values-float strong {
      font-family:'Bricolage Grotesque',sans-serif;
      font-size:1rem; font-weight:800; color:#fff;
      display:block; margin-bottom:.2rem;
    }
    .ab-values-float span { font-size:.75rem; color:rgba(255,255,255,.8); }

    /* ══════════════════════════════════
       TEAM
    ══════════════════════════════════ */
    .ab-team { background:var(--bg); }
    .ab-team-head { text-align:center; margin-bottom:3rem; }

    .ab-team-grid {
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:1.25rem;
    }
    .ab-team-card {
      background:var(--glass-b);
      border:1px solid rgba(165,5,5,.09);
      border-radius:20px;
      overflow:hidden;
      box-shadow:var(--gs);
      text-align:center;
      transition:transform .22s, box-shadow .22s;
    }
    .ab-team-card:hover { transform:translateY(-5px); box-shadow:var(--md); }
    .ab-team-img-wrap { position:relative; overflow:hidden; }
    .ab-team-img {
      width:100%; height:220px; object-fit:cover;
      display:block;
      transition:transform .4s ease;
    }
    .ab-team-card:hover .ab-team-img { transform:scale(1.05); }
    .ab-team-overlay {
      position:absolute; inset:0;
      background:linear-gradient(to top,rgba(139,4,4,.7) 0%,transparent 55%);
      opacity:0; transition:opacity .3s;
      display:flex; align-items:flex-end; justify-content:center; gap:.5rem; padding-bottom:.9rem;
    }
    .ab-team-card:hover .ab-team-overlay { opacity:1; }
    .ab-team-soc {
      width:34px; height:34px; border-radius:9px;
      background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.3);
      display:flex; align-items:center; justify-content:center;
      color:#fff; font-size:.9rem; text-decoration:none;
      transition:background .18s;
    }
    .ab-team-soc:hover { background:rgba(255,255,255,.35); color:#fff; }
    .ab-team-body { padding:1.1rem 1rem 1.25rem; }
    .ab-team-name {
      font-family:'Bricolage Grotesque',sans-serif;
      font-size:.97rem; font-weight:700; color:var(--t1); margin-bottom:.2rem;
    }
    .ab-team-role {
      font-size:.76rem; font-weight:600; color:var(--blue);
      text-transform:uppercase; letter-spacing:.07em; margin-bottom:.4rem;
    }
    .ab-team-bio { font-size:.78rem; color:var(--t3); line-height:1.55; }

    /* ══════════════════════════════════
       CTA BANNER
    ══════════════════════════════════ */
    .ab-cta {
      background:var(--grad);
      padding:4.5rem 1.5rem;
      text-align:center;
      position:relative; overflow:hidden;
    }
    .ab-cta::before {
      content:''; position:absolute; inset:0;
      background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70'%3E%3Ccircle cx='35' cy='35' r='32' fill='none' stroke='rgba(255,255,255,.06)' stroke-width='1'/%3E%3C/svg%3E") repeat;
      background-size:70px;
    }
    .ab-cta-inner { position:relative; z-index:1; max-width:640px; margin:0 auto; }
    .ab-cta-tag {
      display:inline-flex; align-items:center; gap:.4rem;
      background:rgba(255,255,255,.18); border-radius:50px;
      padding:.3rem .9rem;
      font-size:.75rem; font-weight:700; color:#fff;
      text-transform:uppercase; letter-spacing:.09em; margin-bottom:1.1rem;
    }
    .ab-cta-title {
      font-family:'Bricolage Grotesque',sans-serif;
      font-size:clamp(1.7rem,4vw,2.4rem); font-weight:800; color:#fff;
      line-height:1.2; margin-bottom:.75rem;
    }
    .ab-cta-sub { font-size:.97rem; color:rgba(255,255,255,.82); margin-bottom:2rem; line-height:1.65; }
    .ab-cta-btns { display:flex; flex-wrap:wrap; gap:.75rem; justify-content:center; }
    .ab-cta-btn-white {
      display:inline-flex; align-items:center; gap:.5rem;
      background:#fff; color:var(--blue);
      font-family:'Bricolage Grotesque',sans-serif;
      font-weight:700; font-size:.92rem;
      padding:.75rem 1.6rem; border-radius:50px;
      text-decoration:none;
      box-shadow:0 6px 20px rgba(0,0,0,.15);
      transition:transform .2s, box-shadow .2s;
    }
    .ab-cta-btn-white:hover { transform:translateY(-2px); box-shadow:0 10px 28px rgba(0,0,0,.2); color:var(--blue); }
    .ab-cta-btn-ghost {
      display:inline-flex; align-items:center; gap:.5rem;
      background:rgba(255,255,255,.14); color:#fff;
      font-family:'Bricolage Grotesque',sans-serif;
      font-weight:600; font-size:.92rem;
      padding:.72rem 1.4rem; border-radius:50px;
      text-decoration:none;
      border:1.5px solid rgba(255,255,255,.35);
      transition:all .2s;
    }
    .ab-cta-btn-ghost:hover { background:rgba(255,255,255,.25); color:#fff; transform:translateY(-2px); }

    /* ══════════════════════════════════
       RESPONSIVE
    ══════════════════════════════════ */
    @media (max-width: 992px) {
      .ab-hero-grid    { grid-template-columns:1fr; gap:2.5rem; }
      .ab-hero-collage { height:340px; }
      .ab-col-img-1    { width:58%; height:240px; }
      .ab-col-img-2    { width:50%; height:200px; }
      .ab-col-img-3    { width:34%; height:150px; }
      .ab-story-grid   { grid-template-columns:1fr; gap:2.5rem; }
      .ab-story-text   { padding-top:0; }
      .ab-feat-grid    { grid-template-columns:repeat(2,1fr); }
      .ab-values-grid  { grid-template-columns:1fr; gap:2rem; }
      .ab-values-img-wrap { order:-1; }
      .ab-values-img   { height:320px; }
      .ab-team-grid    { grid-template-columns:repeat(2,1fr); }
      .ab-stats-grid   { grid-template-columns:repeat(2,1fr); gap:1.5rem; }
    }

    @media (max-width: 600px) {
      /* Section spacing */
      .ab-section      { padding:3rem 1rem; overflow:hidden; }
      .ab-hero         { padding-top:calc(var(--h-h) + 2rem); padding-bottom:2rem; overflow:hidden; }
      .ab-page         { overflow-x:hidden; }

      /* Hero collage — reflow to stacked block so nothing overflows */
      .ab-hero-grid    { grid-template-columns:1fr; gap:2rem; }
      .ab-hero-collage {
        position:relative;
        height:auto;
        width:100%;
        display:flex;
        flex-direction:column;
        padding-bottom:0;
      }
      .ab-col-img-1 {
        position:relative;
        width:100%; height:210px;
        top:auto; right:auto; left:auto; bottom:auto;
        display:block;
        border-radius:14px;
      }
      .ab-col-img-2 {
        position:relative;
        width:100%; height:150px;
        top:auto; right:auto; left:auto; bottom:auto;
        margin-top:.75rem;
        border-radius:14px;
        z-index:auto;
      }
      .ab-col-img-3    { display:none; }
      .ab-col-badge {
        position:relative;
        right:auto; bottom:auto; left:auto;
        margin-top:.75rem;
        width:100%; max-width:100%;
        border-radius:12px;
      }

      /* Story section */
      .ab-story-grid   { grid-template-columns:1fr; gap:1.5rem; }
      .ab-story-img    { height:220px; object-position:center top; }
      .ab-story-year   { bottom:-12px; right:12px; }

      /* Features */
      .ab-feat-grid    { grid-template-columns:1fr; }

      /* Values */
      .ab-values-img   { height:220px; object-position:center top; }
      .ab-values-float { bottom:10px; left:10px; padding:.55rem .75rem; }

      /* Team / Reviews */
      .ab-team-grid    { grid-template-columns:repeat(2,1fr); }
      .ab-stats-grid   { grid-template-columns:repeat(2,1fr); gap:1.25rem; }

      /* CTA buttons */
      .ab-hero-ctas    { flex-direction:column; align-items:stretch; }
      .ab-hero-ctas a  { width:100%; justify-content:center; text-align:center; }
      .ab-cta-btns     { flex-direction:column; align-items:center; }
      .ab-cta-btns a   { width:100%; max-width:280px; justify-content:center; }

      /* Typography */
      .ab-lead         { font-size:.93rem; }
      .ab-title        { font-size:clamp(1.6rem,7vw,2.2rem); }
      .ab-cta          { padding:3rem 1rem; }
    }

    @media (max-width: 420px) {
      .ab-team-grid    { grid-template-columns:1fr; }
      .ab-col-img-2    { display:none; }
    }
	


/* ═══════════════════════════════════════════════════════════════
   TERMS & CONDITIONS PAGE  —  prefix: tc-
   Last updated indicator, sticky ToC sidebar, section cards,
   highlight boxes, responsive collapse
═══════════════════════════════════════════════════════════════ */

/* ── Page body class ── */
.tc-page { background: var(--bg); }

/* ═══════════════════════════════
   HERO BANNER
═══════════════════════════════ */
.tc-hero {
  position: relative;
  padding: calc(var(--h-h) + 2rem) 1.5rem 0.5rem;
  overflow: hidden;
  background: linear-gradient(160deg, #fff 0%, var(--bg) 55%, var(--bg2) 100%);
  border-bottom: 1px solid rgba(165,5,5,.08);
}

/* mesh dot pattern */
.tc-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(165,5,5,.06) 1px, transparent 1px);
  background-size: 26px 26px;
  pointer-events: none;
}

/* decorative gradient orbs */
.tc-hero-orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(80px);
}
.tc-hero-orb-1 {
  width: 440px; height: 440px;
  background: radial-gradient(circle, rgba(165,5,5,.10), transparent 70%);
  top: -160px; right: -100px;
  animation: floatUp 10s ease-in-out infinite;
}
.tc-hero-orb-2 {
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(200,56,10,.07), transparent 70%);
  bottom: -100px; left: -80px;
  animation: floatDn 13s ease-in-out infinite;
}

.tc-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
}

/* pill tag */
.tc-hero-tag {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--blue);
  background: rgba(165,5,5,.07);
  border: 1px solid rgba(165,5,5,.16);
  border-radius: 50px;
  padding: .3rem .95rem;
  margin-bottom: 1.3rem;
}
.tc-hero-tag i { font-size: .75rem; }

.tc-hero-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 800;
  color: var(--t1);
  letter-spacing: -.04em;
  line-height: 1.1;
  margin-bottom: 1rem;
}
.tc-hero-title em {
  font-style: italic;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.tc-hero-sub {
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  color: var(--t3);
  line-height: 1.7;
  max-width: 560px;
  margin: 0 auto 1.8rem;
}

/* meta row: last updated + reading time */
.tc-hero-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.4rem;
  flex-wrap: wrap;
}
.tc-meta-chip {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
  font-weight: 600;
  color: var(--t3);
  background: #fff;
  border: 1px solid rgba(165,5,5,.12);
  border-radius: 50px;
  padding: .3rem .9rem;
  box-shadow: 0 2px 8px rgba(165,5,5,.06);
}
.tc-meta-chip i { color: var(--blue); font-size: .78rem; }

/* ═══════════════════════════════
   PAGE LAYOUT — sidebar + content
═══════════════════════════════ */
.tc-wrap {
  max-width: 1000px;
  margin: 0 auto;
  padding: 3rem 1.5rem 5rem;
  display: block;
}

/* ═══════════════════════════════
   SIDEBAR — Table of Contents
═══════════════════════════════ */
.tc-sidebar {
  position: sticky;
  top: calc(var(--h-h) + 1.5rem);
}

.tc-toc-card {
  background: #fff;
  border: 1px solid rgba(165,5,5,.09);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 4px 22px rgba(165,5,5,.07), 0 1px 0 rgba(255,255,255,.9) inset;
}

.tc-toc-head {
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: 1rem 1.25rem .85rem;
  border-bottom: 1px solid rgba(165,5,5,.07);
  background: linear-gradient(135deg, rgba(165,5,5,.04), rgba(200,56,10,.02));
}
.tc-toc-head i {
  color: var(--blue);
  font-size: .9rem;
}
.tc-toc-head span {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .82rem;
  font-weight: 800;
  color: var(--t1);
  letter-spacing: -.01em;
  text-transform: uppercase;
}

.tc-toc-list {
  list-style: none;
  padding: .6rem 0;
  margin: 0;
}
.tc-toc-list li { margin: 0; }
.tc-toc-list a {
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: .52rem 1.25rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .8rem;
  font-weight: 500;
  color: var(--t3);
  text-decoration: none;
  border-left: 2px solid transparent;
  transition: color .18s, background .18s, border-color .18s, padding-left .18s;
  line-height: 1.4;
}
.tc-toc-list a .tc-toc-num {
  font-size: .65rem;
  font-weight: 700;
  color: var(--t4);
  min-width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(165,5,5,.06);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: background .18s, color .18s;
}
.tc-toc-list a:hover,
.tc-toc-list a.active {
  color: var(--blue);
  background: rgba(165,5,5,.04);
  border-left-color: var(--blue);
  padding-left: 1.45rem;
}
.tc-toc-list a:hover .tc-toc-num,
.tc-toc-list a.active .tc-toc-num {
  background: var(--grad);
  color: #fff;
}

/* Print & download links at bottom of ToC */
.tc-toc-foot {
  padding: .75rem 1.25rem;
  border-top: 1px solid rgba(165,5,5,.07);
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.tc-toc-action {
  display: flex;
  align-items: center;
  gap: .45rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .76rem;
  font-weight: 600;
  color: var(--t4);
  text-decoration: none;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  transition: color .18s;
}
.tc-toc-action i { font-size: .8rem; color: var(--blue); }
.tc-toc-action:hover { color: var(--blue); }

/* ═══════════════════════════════
   MAIN CONTENT
═══════════════════════════════ */
.tc-content {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  min-width: 0;
}

/* ── Acceptance banner at top ── */
.tc-accept-banner {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.1rem 1.4rem;
  background: linear-gradient(135deg, rgba(165,5,5,.06), rgba(200,56,10,.04));
  border: 1.5px solid rgba(165,5,5,.14);
  border-radius: 16px;
  box-shadow: 0 3px 14px rgba(165,5,5,.06);
}
.tc-accept-icon {
  width: 38px; height: 38px;
  border-radius: 10px;
  background: var(--grad);
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  font-size: .95rem;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(165,5,5,.28);
}
.tc-accept-text {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--t2);
  line-height: 1.65;
}
.tc-accept-text strong {
  display: block;
  font-weight: 700;
  color: var(--t1);
  margin-bottom: .18rem;
}

/* ── Section card ── */
.tc-section {
  background: #fff;
  border: 1px solid rgba(165,5,5,.08);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 3px 18px rgba(165,5,5,.06), 0 1px 0 rgba(255,255,255,.9) inset;
  scroll-margin-top: calc(var(--h-h) + 1.5rem);
  transition: box-shadow .25s, border-color .25s;
}
.tc-section:hover {
  box-shadow: 0 8px 32px rgba(165,5,5,.09), 0 1px 0 rgba(255,255,255,.9) inset;
  border-color: rgba(165,5,5,.13);
}

/* section header bar */
.tc-sec-head {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 1.1rem 1.6rem;
  background: linear-gradient(135deg, rgba(165,5,5,.04), rgba(200,56,10,.02));
  border-bottom: 1px solid rgba(165,5,5,.07);
  cursor: pointer;
  user-select: none;
}
.tc-sec-num {
  width: 28px; height: 28px;
  border-radius: 8px;
  background: var(--grad);
  display: flex; align-items: center; justify-content: center;
  font-family: 'DM Sans', sans-serif;
  font-size: .7rem;
  font-weight: 800;
  color: #fff;
  flex-shrink: 0;
  box-shadow: 0 3px 8px rgba(165,5,5,.28);
}
.tc-sec-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1rem;
  font-weight: 800;
  color: var(--t1);
  letter-spacing: -.02em;
  flex: 1;
}
.tc-sec-icon {
  font-size: .85rem;
  color: var(--blue);
  flex-shrink: 0;
  margin-right: .2rem;
}
.tc-sec-chevron {
  font-size: .78rem;
  color: var(--t4);
  flex-shrink: 0;
  transition: transform .28s cubic-bezier(.4,0,.2,1);
}
.tc-section.open .tc-sec-chevron { transform: rotate(180deg); }

/* section body */
.tc-sec-body {
  padding: 1.5rem 1.6rem 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

/* collapsible on mobile */
@media (max-width: 767px) {
  .tc-sec-body {
    overflow: hidden;
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    transition: max-height .38s cubic-bezier(.4,0,.2,1), padding .28s ease;
  }
  .tc-section.open .tc-sec-body {
    max-height: 2000px;
    padding-top: 1.3rem;
    padding-bottom: 1.5rem;
  }
}

/* prose typography inside sections */
.tc-sec-body p {
  font-family: 'DM Sans', sans-serif;
  font-size: .9rem;
  color: var(--t3);
  line-height: 1.8;
}
.tc-sec-body p + p { margin-top: .6rem; }
.tc-sec-body strong { color: var(--t2); font-weight: 600; }
.tc-sec-body a {
  color: var(--blue);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(165,5,5,.25);
  transition: border-color .18s, opacity .18s;
}
.tc-sec-body a:hover { opacity: .75; border-bottom-color: var(--blue); }

/* ── Ordered list ── */
.tc-list {
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  flex-direction: column;
  gap: .6rem;
}
.tc-list li {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--t3);
  line-height: 1.65;
}
.tc-list li::before {
  content: '';
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--grad);
  flex-shrink: 0;
  margin-top: .48rem;
}

/* ── Numbered list ── */
.tc-list-num {
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  flex-direction: column;
  gap: .65rem;
  counter-reset: tc-counter;
}
.tc-list-num li {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--t3);
  line-height: 1.65;
  counter-increment: tc-counter;
}
.tc-list-num li::before {
  content: counter(tc-counter);
  min-width: 22px; height: 22px;
  border-radius: 6px;
  background: linear-gradient(135deg, rgba(165,5,5,.10), rgba(200,56,10,.06));
  border: 1px solid rgba(165,5,5,.14);
  display: flex; align-items: center; justify-content: center;
  font-family: 'DM Sans', sans-serif;
  font-size: .68rem;
  font-weight: 800;
  color: var(--blue);
  flex-shrink: 0;
  margin-top: .12rem;
}

/* ── Highlight / callout boxes ── */
.tc-callout {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  padding: 1rem 1.2rem;
  border-radius: 14px;
  border-left: 3px solid;
}
.tc-callout-icon {
  font-size: .95rem;
  flex-shrink: 0;
  margin-top: .05rem;
}

/* variants */
.tc-callout-info {
  background: rgba(165,5,5,.05);
  border-color: var(--blue);
}
.tc-callout-info .tc-callout-icon { color: var(--blue); }

.tc-callout-warn {
  background: rgba(245,158,11,.07);
  border-color: #f59e0b;
}
.tc-callout-warn .tc-callout-icon { color: #d97706; }

.tc-callout-success {
  background: rgba(22,163,74,.06);
  border-color: #16a34a;
}
.tc-callout-success .tc-callout-icon { color: #16a34a; }

.tc-callout p {
  font-family: 'DM Sans', sans-serif;
  font-size: .84rem;
  color: var(--t2) !important;
  line-height: 1.65;
  margin: 0 !important;
}
.tc-callout p strong { color: var(--t1) !important; font-weight: 700; }

/* ── Two-column info grid inside sections ── */
.tc-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .85rem;
}
.tc-info-item {
  padding: .85rem 1rem;
  background: #fdf8f3;
  border: 1px solid rgba(165,5,5,.09);
  border-radius: 12px;
  transition: border-color .18s, box-shadow .18s;
}
.tc-info-item:hover {
  border-color: rgba(165,5,5,.22);
  box-shadow: 0 3px 10px rgba(165,5,5,.06);
}
.tc-info-item-label {
  font-family: 'DM Sans', sans-serif;
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--t4);
  margin-bottom: .3rem;
}
.tc-info-item-val {
  font-family: 'DM Sans', sans-serif;
  font-size: .85rem;
  font-weight: 600;
  color: var(--t2);
}

/* ── Do / Don't comparison row ── */
.tc-dos-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.tc-dos-col {
  border-radius: 14px;
  overflow: hidden;
}
.tc-dos-head {
  display: flex;
  align-items: center;
  gap: .45rem;
  padding: .65rem 1rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.tc-dos-col.allowed .tc-dos-head  { background: rgba(22,163,74,.10); color: #15803d; }
.tc-dos-col.denied  .tc-dos-head  { background: rgba(165,5,5,.08);   color: var(--blue); }
.tc-dos-list {
  list-style: none;
  padding: .7rem 1rem;
  margin: 0;
  background: #fdf8f3;
  display: flex;
  flex-direction: column;
  gap: .55rem;
}
.tc-dos-list li {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .82rem;
  color: var(--t3);
  line-height: 1.5;
}
.tc-dos-list li i { font-size: .78rem; flex-shrink: 0; margin-top: .1rem; }
.tc-dos-col.allowed .tc-dos-list li i { color: #16a34a; }
.tc-dos-col.denied  .tc-dos-list li i { color: var(--blue); }

/* ── Contact card at bottom ── */
.tc-contact-strip {
  background: var(--grad);
  border-radius: 20px;
  padding: 2rem 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
  position: relative;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(165,5,5,.24);
}
.tc-contact-strip::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 22px 22px;
  pointer-events: none;
}
.tc-contact-ring {
  position: absolute;
  width: 320px; height: 320px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.10);
  right: -120px; top: -140px;
  pointer-events: none;
}
.tc-contact-text { position: relative; z-index: 1; }
.tc-contact-text h3 {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.2rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -.02em;
  margin-bottom: .4rem;
}
.tc-contact-text p {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: rgba(255,255,255,.78);
  line-height: 1.6;
}
.tc-contact-actions {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
  flex-shrink: 0;
}
.tc-contact-btn {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  font-weight: 700;
  padding: .65rem 1.4rem;
  border-radius: 50px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  text-decoration: none;
  transition: transform .2s, box-shadow .2s, background .18s;
}
.tc-contact-btn.solid {
  background: #fff;
  color: var(--blue);
  border: none;
  box-shadow: 0 4px 16px rgba(0,0,0,.15);
}
.tc-contact-btn.solid:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.2); color: var(--blue); }
.tc-contact-btn.ghost {
  background: transparent;
  color: #fff;
  border: 1.5px solid rgba(255,255,255,.4);
}
.tc-contact-btn.ghost:hover { background: rgba(255,255,255,.15); transform: translateY(-2px); color: #fff; }

/* ── Version badge at very bottom ── */
.tc-version-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding: .9rem 1.2rem;
  background: #fff;
  border: 1px solid rgba(165,5,5,.08);
  border-radius: 14px;
  box-shadow: 0 2px 10px rgba(165,5,5,.05);
}
.tc-version-left {
  display: flex;
  align-items: center;
  gap: .6rem;
}
.tc-version-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--grad);
  flex-shrink: 0;
  box-shadow: 0 0 0 3px rgba(165,5,5,.15);
  animation: subtlePulse 2.5s ease-in-out infinite;
}
.tc-version-left span {
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
  color: var(--t4);
}
.tc-version-left strong { color: var(--t2); font-weight: 600; }
.tc-version-right {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.tc-version-right a {
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  font-weight: 600;
  color: var(--blue);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: .3rem;
  transition: opacity .18s;
}
.tc-version-right a:hover { opacity: .72; }

/* ═══════════════════════════════
   RESPONSIVE
═══════════════════════════════ */
@media (max-width: 900px) {
  .tc-wrap {
    padding: 2rem 1.25rem 4rem;
  }
  .tc-dos-grid { grid-template-columns: 1fr; }
  .tc-info-grid { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
  .tc-hero { padding: calc(var(--h-h) + 2.5rem) 1rem 2.5rem; }
  .tc-hero-title { font-size: 1.75rem; }
  .tc-sec-head { padding: .9rem 1.1rem; }
  .tc-sec-body { padding-left: 1.1rem; padding-right: 1.1rem; }
  .tc-contact-strip { padding: 1.4rem 1.25rem; }
  .tc-contact-actions { width: 100%; }
  .tc-contact-btn { flex: 1; justify-content: center; }
  .tc-version-bar { flex-direction: column; align-items: flex-start; gap: .65rem; }
}

/* ══════════════════════════════════════
   SINGLE CARD — All Sections Unified
══════════════════════════════════════ */
.tc-card {
  background: #fff;
  border-radius: 24px;
  border: 1px solid rgba(165,5,5,.09);
  box-shadow: 0 8px 40px rgba(165,5,5,.07), 0 2px 8px rgba(0,0,0,.04);
  overflow: hidden;
  margin-bottom: 2rem;
}

/* ── Each section entry ── */
.tc-entry {
  padding: 2rem 2.4rem;
}
.tc-entry:hover {
  background: rgba(165,5,5,.018);
  transition: background .2s;
}

/* ── Entry heading row ── */
.tc-entry-head {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

/* ── Icon circle ── */
.tc-entry-icon-wrap {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(165,5,5,.10);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  color: var(--blue);
  flex-shrink: 0;
}

/* ── Section number label ── */
.tc-entry-label {
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--blue);
  opacity: .65;
  line-height: 1;
  margin-bottom: .2rem;
}

/* ── Section title ── */
.tc-entry-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--t1);
  letter-spacing: -.02em;
  margin: 0;
  line-height: 1.2;
}

.tc-entry-body p {
  font-family: 'DM Sans', sans-serif;
  font-size: .93rem;
  color: var(--t3);
  line-height: 1.75;
  margin-bottom: .9rem;
}
.tc-entry-body p:last-child { margin-bottom: 0; }

/* ── Thin divider between sections ── */
.tc-entry-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(165,5,5,.10) 20%, rgba(165,5,5,.10) 80%, transparent);
  margin: 0 2.4rem;
}

@media (max-width: 600px) {
  .tc-entry { padding: 1.5rem 1.25rem; }
  .tc-entry-body { padding-left: 0; }
  .tc-entry-divider { margin: 0 1.25rem; }
  .tc-entry-title { font-size: 1rem; }
}
/* ═══════════════════════════════════════════════════════
   ABOUT PAGE — DEFINITIVE FIXES
   1. Desktop: single image fills collage properly (no tiny 62%-wide box)
   2. Mobile: no horizontal overflow / inner scroll from rich text
═══════════════════════════════════════════════════════ */

/* ── GLOBAL overflow guard (must be first) ── */
html { overflow-x: hidden !important; }
body { overflow-x: hidden !important; max-width: 100vw !important; }

/* ── DESKTOP: Make the single about image fill the right column nicely ── */
.ab-hero-collage {
  position: relative;
  width: 100%;
  height: 480px !important;          /* taller so it looks substantial */
  border-radius: 22px;
  overflow: hidden;
}

/* When only one image exists, make it fill the entire collage area */
.ab-col-img-1 {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;            /* full width, not 62% */
  height: 100% !important;           /* full height, not 290px */
  object-fit: cover !important;
  object-position: center top !important;
  border-radius: 20px !important;
  border: 3px solid #fff !important;
  box-shadow: 0 24px 64px rgba(165,5,5,.16), 0 8px 24px rgba(0,0,0,.08) !important;
  z-index: 2 !important;
}

/* Hide the other two collage images (they have no src in this template) */
.ab-col-img-2,
.ab-col-img-3 {
  display: none !important;
}

/* ── MOBILE: About section overflow & image fix ── */
@media (max-width: 991px) {
  .ab-hero-collage {
    height: 360px !important;
  }
}

@media (max-width: 767px) {
  /* Stop ANY element on the page from causing horizontal scroll */
  .ab-page,
  .ab-section,
  .ab-inner,
  .ab-hero,
  .ab-hero-grid,
  .ab-hero-text,
  .ab-hero-collage,
  .ab-feat-grid,
  .ab-team-grid,
  .ab-cta {
    overflow-x: hidden !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Single column on mobile */
  .ab-hero-grid {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }

  /* Image: full width, reasonable height */
  .ab-hero-collage {
    height: 260px !important;
    border-radius: 16px !important;
    width: 100% !important;
  }

  .ab-col-img-1 {
    border-radius: 14px !important;
    object-position: center center !important;
  }

  /* ── Rich text content overflow fix ── */
  /* The {!! $aboutUsSection->text !!} can inject anything */
  .ab-hero-text,
  .ab-hero-text > *,
  .ab-hero-text p,
  .ab-hero-text div,
  .ab-hero-text span,
  .ab-hero-text ul,
  .ab-hero-text ol,
  .ab-hero-text li,
  .ab-hero-text h1,
  .ab-hero-text h2,
  .ab-hero-text h3,
  .ab-hero-text h4,
  .ab-hero-text table,
  .ab-hero-text img,
  .ab-hero-body,
  .ab-title,
  .ab-lead,
  .ab-fade {
    max-width: 100% !important;
    width: auto !important;
    overflow-x: hidden !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    box-sizing: border-box !important;
  }

  /* Tables from rich text must not overflow */
  .ab-hero-text table {
    width: 100% !important;
    table-layout: fixed !important;
    display: block !important;
    overflow-x: auto !important;
  }

  /* Images from rich text */
  .ab-hero-text img {
    max-width: 100% !important;
    height: auto !important;
  }

  /* Section padding on mobile */
  .ab-section { padding: 3rem 1rem !important; }
  .ab-inner   { padding: 0 !important; }
  .ab-hero    { padding: calc(var(--h-h) + 1.5rem) 1rem 2rem !important; }

  /* Features grid: 1 col */
  .ab-feat-grid {
    grid-template-columns: 1fr !important;
    gap: .9rem !important;
  }

  /* Team/testimonials: 1 col */
  .ab-team-grid {
    grid-template-columns: 1fr !important;
    gap: .9rem !important;
  }

  /* CTA buttons stack */
  .ab-hero-ctas {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .ab-btn-primary,
  .ab-btn-outline {
    width: 100% !important;
    justify-content: center !important;
  }
}

@media (max-width: 480px) {
  .ab-hero-collage { height: 220px !important; }
  .ab-hero { padding: calc(var(--h-h) + 1rem) .9rem 1.5rem !important; }
}

/* ── WHY JOIN section — overflow fix ── */
#why-join {
  overflow-x: hidden !important;
}
.wj2-wrap {
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}
.wj2-bento {
  max-width: 100% !important;
  overflow: hidden !important;
}
.wj2-tile,
.wj2-tile-title,
.wj2-tile-desc,
.wj2-cta-h,
.wj2-cta-p {
  max-width: 100% !important;
  word-break: break-word !important;
  overflow-wrap: break-word !important;
  box-sizing: border-box !important;
}

@media (max-width: 767px) {
  #why-join {
    padding: 3rem 0 3.5rem !important;
    overflow-x: hidden !important;
  }

  .wj2-wrap {
    padding: 0 1rem !important;
  }

  /* Bento: stack vertically */
  .wj2-bento {
    display: flex !important;
    flex-direction: column !important;
    gap: .9rem !important;
    width: 100% !important;
    overflow: hidden !important;
  }

  /* Kill all grid placement */
  .wj2-tile-1, .wj2-tile-2, .wj2-tile-3,
  .wj2-tile-4, .wj2-tile-5 {
    grid-column: unset !important;
    grid-row: unset !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .wj2-tile {
    padding: 1.5rem 1.4rem 1.6rem !important;
    border-radius: 18px !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    transform: none !important;  /* ensure hover transforms don't apply on mobile */
  }

  .wj2-tile-num {
    font-size: 4rem !important;
    bottom: -.5rem !important;
    right: .5rem !important;
  }

  .wj2-tile-icon {
    width: 44px !important;
    height: 44px !important;
    font-size: 1.1rem !important;
    margin-bottom: 1rem !important;
  }

  .wj2-tile-title { font-size: .98rem !important; }
  .wj2-tile-desc  { font-size: .84rem !important; }

  .wj2-tile-cta {
    padding: 1.75rem 1.4rem !important;
  }

  .wj2-cta-h {
    font-size: clamp(1.4rem, 6vw, 1.9rem) !important;
    margin-bottom: .6rem !important;
  }

  .wj2-cta-btns {
    display: flex !important;
    flex-direction: column !important;
    gap: .6rem !important;
    width: 100% !important;
  }

  .wj2-btn-p,
  .wj2-btn-g {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .wj2-head { margin-bottom: 2rem !important; }
  .wj2-h2   { font-size: clamp(1.6rem, 6vw, 2rem) !important; }
  .wj2-sub  { font-size: .88rem !important; }
}


/* ═══════════════════════════════════════════════════════
   FINAL FIX — About page title mobile overflow
   "Where Ambition Meets Opportunity" overflows on mobile
   because the h1.ab-title renders wider than the viewport
═══════════════════════════════════════════════════════ */

@media (max-width: 767px) {

  /* The h1 title itself */
  h1.ab-title,
  .ab-title {
    font-size: clamp(1.55rem, 6.5vw, 2rem) !important;
    line-height: 1.18 !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
    max-width: 100% !important;
    width: 100% !important;
    white-space: normal !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  /* Also cover h2 titles used in other sections */
  h2.ab-title,
  .ab-features-head .ab-title,
  .ab-team-head .ab-title {
    font-size: clamp(1.5rem, 6vw, 1.9rem) !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
    max-width: 100% !important;
    white-space: normal !important;
  }

  /* Gradient em inside title */
  .ab-title em {
    display: inline !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
  }
}

@media (max-width: 480px) {
  h1.ab-title,
  .ab-title {
    font-size: clamp(1.4rem, 6vw, 1.75rem) !important;
  }
}

/* ═══════════════════════════════════════════════════════
   MOBILE SCROLL FIX — ab-hero section & title
   Removes both horizontal AND vertical inner scroll
   from "Where Ambition Meets Opportunity" title and
   the entire ab-hero section on mobile.
═══════════════════════════════════════════════════════ */
@media (max-width: 767px) {

  /* Kill all scroll on the section and every child container */
  .ab-hero,
  .ab-section.ab-hero,
  .ab-hero .ab-inner,
  .ab-hero .ab-hero-grid,
  .ab-hero .ab-hero-text,
  .ab-hero .ab-hero-collage {
    overflow: hidden !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;  /* allow natural page flow */
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
    /* strip any intrinsic scroll height */
    max-height: none !important;
    height: auto !important;
  }

  /* Title — no scroll, no overflow, just wrap cleanly */
  h1.ab-title,
  .ab-hero .ab-title,
  .ab-hero h1 {
    overflow: hidden !important;
    overflow-x: hidden !important;
    overflow-y: hidden !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
    /* Ensure font size never exceeds viewport */
    font-size: clamp(1.45rem, 6.5vw, 2rem) !important;
    line-height: 1.2 !important;
  }

  /* em/span inside the title (gradient text) */
  .ab-hero .ab-title em,
  .ab-hero h1 em,
  .ab-hero h1 span {
    display: inline !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
  }
}


/* ═══════════════════════════════════════════════════════
   DEFINITIVE MOBILE SCROLL FIX v2
   Eliminates ALL horizontal scroll in the ab-hero section.
   The culprit is rich-text paragraphs (.ab-hero-body and
   the {!! text !!} div) having max-width:520px or content
   wider than the viewport.
═══════════════════════════════════════════════════════ */
@media (max-width: 767px) {

  /* 1. Lock the entire page — nothing can create a wider context */
  html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
  }

  /* 2. Lock the ab-hero section and every ancestor/descendant */
  .ab-hero,
  .ab-section.ab-hero,
  .ab-hero > *,
  .ab-hero .ab-inner,
  .ab-hero .ab-hero-grid,
  .ab-hero .ab-hero-text,
  .ab-hero .ab-hero-collage {
    overflow: hidden !important;
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* 3. The title — wrap, never overflow */
  h1.ab-title,
  .ab-hero .ab-title,
  .ab-hero h1 {
    overflow: hidden !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
    font-size: clamp(1.45rem, 6.5vw, 2rem) !important;
    line-height: 1.2 !important;
  }

  /* 4. THE KEY FIX — ab-hero-body had max-width:520px which
        overflows on small screens. Reset it to 100%. */
  .ab-hero-body,
  .ab-hero .ab-hero-body {
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* 5. Rich text container ({!! $aboutUsSection->text !!}) and
        ALL its children — paragraphs, spans, strong, a, etc. */
  .ab-hero-text > div,
  .ab-hero-text > div *,
  .ab-hero-text p,
  .ab-hero-text span,
  .ab-hero-text strong,
  .ab-hero-text em,
  .ab-hero-text a,
  .ab-hero-text li,
  .ab-hero-text ul,
  .ab-hero-text ol {
    max-width: 100% !important;
    width: auto !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
  }

  /* 6. em/span inside the title (gradient text) */
  .ab-hero .ab-title em,
  .ab-hero h1 em,
  .ab-hero h1 span {
    display: inline !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
  }
}

/* ════════════════════════════════════════════
   GALLERY PAGE — DESIGN TOKENS (inherit from style.css)
════════════════════════════════════════════ */

/* ── Page Hero ── */
#gallery-hero {
  position: relative;
  padding: calc(var(--h-h) + 4rem) 0 3rem;
  background: linear-gradient(155deg, #fdf3e0 0%, #fdf3e0 60%, #faeacf 100%);
  overflow: hidden;
}
#gallery-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(165,5,5,.03) 1px, transparent 1px);
  background-size: 22px 22px;
  pointer-events: none;
}
.gh-orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(80px);
  animation: orbPulse 8s ease-in-out infinite;
}
.gh-orb-1 { width: 600px; height: 600px; top: -180px; right: -120px; background: radial-gradient(circle, rgba(165,5,5,.12), transparent 70%); }
.gh-orb-2 { width: 400px; height: 400px; bottom: -80px; left: -80px; background: radial-gradient(circle, rgba(200,56,10,.09), transparent 70%); animation-delay: 4s; }

.gh-inner {
  position: relative;
  z-index: 2;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
  text-align: center;
}
.gh-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .77rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--blue);
  background: rgba(165,5,5,.09);
  border: 1px solid rgba(165,5,5,.22);
  border-radius: 50px;
  padding: .42rem 1rem;
  margin-bottom: 1.4rem;
  animation: fadeUp .6s cubic-bezier(.22,1,.36,1) .1s both;
}
.gh-eyebrow-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--blue);
  box-shadow: 0 0 8px rgba(165,5,5,.55);
  animation: blink 1.6s ease-in-out infinite;
  flex-shrink: 0;
}
.gh-h1 {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  font-weight: 800;
  line-height: 1.07;
  color: #1a1a1a;
  letter-spacing: -.02em;
  margin-bottom: 1rem;
  animation: fadeUp .7s cubic-bezier(.22,1,.36,1) .25s both;
}
.gh-h1 em {
  font-style: italic;
  background: linear-gradient(135deg, #A50505 0%, #C8380A 50%, #8B0404 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.gh-sub {
  font-family: 'DM Sans', sans-serif;
  font-size: 1.05rem;
  color: var(--t3);
  max-width: 540px;
  margin: 0 auto;
  line-height: 1.7;
  animation: fadeUp .7s cubic-bezier(.22,1,.36,1) .38s both;
}
.gh-stats {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  flex-wrap: wrap;
  animation: fadeUp .7s cubic-bezier(.22,1,.36,1) .48s both;
}
.gh-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.gh-stat-val {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.9rem;
  font-weight: 800;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
}
.gh-stat-lbl {
  font-size: .78rem;
  color: var(--t4);
  font-weight: 500;
  margin-top: .2rem;
}
.gh-stat-divider {
  width: 1px;
  height: 36px;
  background: rgba(165,5,5,.18);
}

/* ── Filter Bar ── */
#gallery-filter {
  position: sticky;
  top: var(--h-h);
  z-index: 90;
  background: rgba(253,239,212,.88);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(165,5,5,.1);
  padding: .85rem 0;
  transition: box-shadow .25s;
}
#gallery-filter.raised {
  box-shadow: 0 4px 20px rgba(165,5,5,.08);
}
.gf-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.gf-tabs {
  display: flex;
  align-items: center;
  gap: .35rem;
  flex-wrap: wrap;
}
.gf-tab {
  font-family: 'DM Sans', sans-serif;
  font-size: .84rem;
  font-weight: 600;
  padding: .42rem 1rem;
  border-radius: 50px;
  border: 1.5px solid rgba(165,5,5,.18);
  background: transparent;
  color: var(--t3);
  cursor: pointer;
  transition: all .2s;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  white-space: nowrap;
}
.gf-tab:hover {
  border-color: rgba(165,5,5,.45);
  color: var(--blue);
  background: rgba(165,5,5,.05);
}
.gf-tab.active {
  background: var(--grad);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 14px rgba(165,5,5,.28);
}
.gf-right {
  display: flex;
  align-items: center;
  gap: .75rem;
}
.gf-count {
  font-family: 'DM Sans', sans-serif;
  font-size: .82rem;
  color: var(--t4);
  font-weight: 500;
  white-space: nowrap;
}
.gf-count strong { color: var(--t2); font-weight: 700; }
.gf-layout-toggle {
  display: flex;
  align-items: center;
  gap: .2rem;
  background: rgba(255,255,255,.8);
  border: 1px solid rgba(165,5,5,.14);
  border-radius: 10px;
  padding: .2rem;
}
.gf-layout-btn {
  width: 32px;
  height: 32px;
  border-radius: 7px;
  border: none;
  background: transparent;
  color: var(--t4);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .95rem;
  transition: all .18s;
}
.gf-layout-btn.active {
  background: var(--grad);
  color: #fff;
  box-shadow: 0 2px 8px rgba(165,5,5,.22);
}

/* ── Gallery Section ── */
#gallery-main {
  padding: 3rem 0 5rem;
  background: var(--bg);
}
.gm-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
}

/* Masonry Grid */
.gallery-masonry {
  columns: 4;
  column-gap: 1.1rem;
  transition: columns .3s;
}
@media (max-width: 1100px) { .gallery-masonry { columns: 3; } }
@media (max-width: 760px)  { .gallery-masonry { columns: 2; } }
@media (max-width: 480px)  { .gallery-masonry { columns: 1; } }

.gallery-masonry.layout-grid {
  columns: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.1rem;
}
@media (max-width: 900px) { .gallery-masonry.layout-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .gallery-masonry.layout-grid { grid-template-columns: 1fr; } }

/* Gallery Item */
.gallery-item {
  break-inside: avoid;
  margin-bottom: 1.1rem;
  border-radius: 18px;
  overflow: hidden;
  position: relative;
  cursor: pointer;
  background: #fff;
  border: 1px solid rgba(165,5,5,.08);
  box-shadow: var(--sm);
  opacity: 0;
  transform: translateY(24px) scale(.98);
  transition: opacity .45s cubic-bezier(.22,1,.36,1), transform .45s cubic-bezier(.22,1,.36,1), box-shadow .25s;
}
.gallery-item.visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.gallery-item:hover {
  box-shadow: var(--lg);
  transform: translateY(-3px) scale(1.01);
}
.gallery-item.hidden {
  display: none;
}

.gallery-masonry.layout-grid .gallery-item {
  break-inside: unset;
  margin-bottom: 0;
}

.gallery-img {
  width: 100%;
  display: block;
  object-fit: cover;
  transition: transform .45s cubic-bezier(.22,1,.36,1);
}
.gallery-item:hover .gallery-img {
  transform: scale(1.05);
}

.gallery-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,0,0,.72) 0%, rgba(165,5,5,.18) 55%, transparent 100%);
  opacity: 0;
  transition: opacity .3s;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.2rem;
}
.gallery-item:hover .gallery-overlay {
  opacity: 1;
}
.gallery-caption {
  font-family: 'DM Sans', sans-serif;
  font-size: .88rem;
  font-weight: 600;
  color: #fff;
  line-height: 1.3;
}

/* Featured item (first) */
.gallery-item.featured {
  grid-column: span 2;
}
.gallery-item.featured .gallery-img {
  height: 420px;
}
.gallery-masonry:not(.layout-grid) .gallery-item.featured .gallery-img {
  height: auto;
}

/* ── Load More ── */
.gallery-loadmore {
  text-align: center;
  margin-top: 3rem;
}
.btn-loadmore {
  font-family: 'DM Sans', sans-serif;
  font-size: .92rem;
  font-weight: 700;
  padding: .82rem 2.2rem;
  border-radius: 50px;
  border: 2px solid rgba(165,5,5,.28);
  background: transparent;
  color: var(--blue);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  transition: all .22s;
}
.btn-loadmore:hover {
  background: var(--grad);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 6px 20px rgba(165,5,5,.28);
  transform: translateY(-2px);
}

/* ── Lightbox ── */
#gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s;
}
#gallery-lightbox.open {
  opacity: 1;
  pointer-events: all;
}
.lb-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12,4,4,.88);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.lb-box {
  position: relative;
  z-index: 1;
  max-width: 90vw;
  max-height: 90vh;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 40px 100px rgba(0,0,0,.5);
  transform: scale(.94) translateY(16px);
  transition: transform .35s cubic-bezier(.22,1,.36,1);
  background: #0c0404;
  display: flex;
  align-items: center;
  justify-content: center;
}
#gallery-lightbox.open .lb-box {
  transform: scale(1) translateY(0);
}
.lb-img-wrap {
  position: relative;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
}
#lbImg {
  max-width: 90vw;
  max-height: 88vh;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  border-radius: 16px;
}
.lb-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-between;
  width: 100%;
  padding: 0 .7rem;
  pointer-events: none;
}
.lb-nav-btn {
  width: 42px; height: 42px;
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.2);
  color: #fff;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  pointer-events: all;
  transition: background .18s, transform .18s;
}
.lb-nav-btn:hover { background: rgba(165,5,5,.8); transform: scale(1.1) translateY(0); }
.lb-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: rgba(12,4,4,.5);
  backdrop-filter: blur(8px);
  border: none;
  color: #fff;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  transition: background .18s;
}
.lb-close:hover { background: var(--blue); }
/* lb counter */
.lb-counter {
  position: absolute;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(12,4,4,.55);
  backdrop-filter: blur(8px);
  color: rgba(255,255,255,.85);
  font-size: .78rem;
  font-weight: 600;
  padding: .3rem .85rem;
  border-radius: 50px;
  letter-spacing: .06em;
  pointer-events: none;
}

/* ── CTA Strip ── */
#gallery-cta {
  background: linear-gradient(135deg, #A50505 0%, #C8380A 55%, #8B0404 100%);
  padding: 4rem 0;
  position: relative;
  overflow: hidden;
}
#gallery-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 22px 22px;
}
.gcta-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.gcta-text h2 {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
  margin-bottom: .5rem;
}
.gcta-text p {
  font-size: 1rem;
  color: rgba(255,255,255,.75);
  max-width: 440px;
}
.gcta-btns {
  display: flex;
  gap: .75rem;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.gcta-btn-solid {
  font-family: 'DM Sans', sans-serif;
  font-size: .9rem;
  font-weight: 700;
  padding: .8rem 1.8rem;
  border-radius: 50px;
  border: none;
  background: #fff;
  color: var(--blue);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  text-decoration: none;
  box-shadow: 0 4px 16px rgba(0,0,0,.15);
  transition: transform .2s, box-shadow .2s;
}
.gcta-btn-solid:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.22); color: var(--blue); }
.gcta-btn-ghost {
  font-family: 'DM Sans', sans-serif;
  font-size: .9rem;
  font-weight: 700;
  padding: .8rem 1.8rem;
  border-radius: 50px;
  border: 1.5px solid rgba(255,255,255,.4);
  background: transparent;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  text-decoration: none;
  transition: background .2s, transform .2s;
}
.gcta-btn-ghost:hover { background: rgba(255,255,255,.14); transform: translateY(-2px); color: #fff; }

/* ── Video Items ── */
.gallery-item[data-type="video"] .gallery-img-wrap {
  position: relative;
}
video.gallery-video {
  width: 100%;
  display: block;
  background: #000;
}
.gallery-play-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: rgba(165,5,5,.88);
  backdrop-filter: blur(6px);
  border: 2.5px solid rgba(255,255,255,.55);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.25rem;
  pointer-events: none;
  box-shadow: 0 4px 20px rgba(165,5,5,.45);
  transition: transform .25s, background .2s;
  z-index: 3;
}
.gallery-item:hover .gallery-play-btn {
  transform: translate(-50%, -50%) scale(1.12);
  background: rgba(165,5,5,1);
}
.gallery-media-badge {
  position: absolute;
  top: .7rem;
  left: .7rem;
  background: rgba(165,5,5,.82);
  backdrop-filter: blur(6px);
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .26rem .65rem;
  border-radius: 50px;
  display: flex;
  align-items: center;
  gap: .35rem;
  z-index: 4;
  pointer-events: none;
}
.gallery-media-badge i { font-size: .7rem; }

/* Lightbox video */
#lbVideo {
  max-width: 90vw;
  max-height: 88vh;
  width: 860px;
  height: auto;
  border-radius: 16px;
  display: none;
  background: #000;
  outline: none;
}
#lbImg { display: block; }

/* ── Responsive tweaks ── */
@media (max-width: 860px) {
  .gcta-inner { flex-direction: column; text-align: center; }
  .gcta-btns { justify-content: center; }
  .gcta-text p { margin: 0 auto; }
}
@media (max-width: 600px) {
  .gf-inner { gap: .7rem; }
  .gh-stats { gap: 1.2rem; }
  .gh-stat-divider { height: 24px; }
}