/* assets/css/styles.css
   Everything except colors and fonts. Reads every color from tokens.css. */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);color:var(--ink);background:var(--bg);line-height:1.65;font-size:16px;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
::selection{background:var(--accent);color:var(--bg)}

.wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(1.15rem,4vw,2.5rem)}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--bg);padding:.6rem 1rem;z-index:100}
.skip:focus{left:1rem;top:1rem}

/* ---------- Starfield canvas (fixed, behind everything) ---------- */
#sky{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}
.page{position:relative;z-index:1}

/* ---------- Type ---------- */
h1,h2,h3{font-weight:400;line-height:1.05;letter-spacing:-.01em}
h1,h2{font-family:var(--font-display)}
h1{font-size:clamp(2.6rem,6.4vw,5.6rem)}
h2{font-size:clamp(2.1rem,4.4vw,3.6rem)}
h3{font-family:var(--font-body);font-weight:600;font-size:1.15rem;letter-spacing:0;line-height:1.3}
h1 em,h2 em{font-style:italic;color:var(--accent)}
.eyebrow{font-family:var(--font-label);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:.6rem}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px 2px var(--glow)}
.lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--muted);max-width:44rem}
.muted{color:var(--muted)}
.small{font-size:.86rem}
.center{text-align:center}
.center .lead{margin-left:auto;margin-right:auto}

/* ---------- Header ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .3s,border-color .3s,backdrop-filter .3s;border-bottom:1px solid transparent}
.site-header.scrolled{background:var(--shade);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px;gap:1rem}
.brand{display:flex;align-items:center;gap:.65rem}
.brand img.icon{height:34px;width:auto}
.brand img.wordmark{height:19px;width:auto}
.nav-links{display:flex;align-items:center;gap:1.6rem;list-style:none}
.nav-links a{color:var(--muted);font-size:.9rem;font-weight:500}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--ink);text-decoration:none}
.nav-right{display:flex;align-items:center;gap:.9rem}
.lang{font-family:var(--font-label);font-size:.78rem;color:var(--faint);letter-spacing:.08em}
.lang a{color:var(--muted)}
.lang .active{color:var(--ink)}
.menu-btn{display:none;background:none;border:1px solid var(--line-strong);color:var(--ink);border-radius:10px;width:42px;height:42px;cursor:pointer}
.menu-btn span{display:block;width:18px;height:1.5px;background:var(--ink);margin:4px auto;transition:transform .3s,opacity .3s}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.9rem 1.4rem;border-radius:999px;font-family:var(--font-body);font-weight:600;font-size:.95rem;border:1px solid transparent;cursor:pointer;transition:transform .2s,box-shadow .3s,background .3s,border-color .3s;text-decoration:none!important;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--accent-2);color:var(--ink);box-shadow:0 0 0 1px var(--blue-soft),0 10px 30px -10px var(--accent-2)}
.btn-primary:hover{box-shadow:0 0 0 1px var(--accent),0 12px 40px -8px var(--glow)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn-ghost:hover{border-color:var(--accent)}
.btn-wa{background:var(--wa);color:var(--wa-ink)}
.btn-wa:hover{box-shadow:0 10px 30px -10px var(--wa)}
.btn-sm{padding:.6rem 1rem;font-size:.85rem}
.btn svg{width:18px;height:18px;flex:none}

/* ---------- Sections ---------- */
section{position:relative}
.section{padding:clamp(4.5rem,10vw,8rem) 0}
.section-head{max-width:46rem;margin-bottom:clamp(2.2rem,5vw,3.5rem)}
.section-head h2{margin:.9rem 0 1rem}
.center.section-head{margin-left:auto;margin-right:auto}
.band{background:linear-gradient(180deg,transparent,var(--bg-2) 18%,var(--bg-2) 82%,transparent)}
.divider{height:1px;background:linear-gradient(90deg,transparent,var(--line-strong),transparent)}

/* ---------- Hero ---------- */
.hero{min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:7.5rem 0 4rem}
.hero .wrap{width:100%}
.hero-inner{max-width:52rem;position:relative}
.hero h1{margin:1.3rem 0 1.4rem}
.hero .lead{margin-bottom:2.2rem}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.8rem}
.hero-proof{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;margin-top:2.6rem;font-family:var(--font-label);font-size:.78rem;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}
.hero-proof span::before{content:"✦ ";color:var(--accent)}
.star-label{position:absolute;z-index:2;pointer-events:none;opacity:0;transition:opacity 1.2s ease;font-family:var(--font-label);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);white-space:nowrap}
.star-label.on{opacity:.9}
.star-label::before{content:"";position:absolute;right:calc(100% + 10px);top:50%;width:48px;height:1px;background:linear-gradient(90deg,transparent,var(--accent))}
.scroll-cue{position:absolute;left:50%;bottom:1.6rem;transform:translateX(-50%);width:22px;height:36px;border:1.5px solid var(--line-strong);border-radius:12px}
.scroll-cue::after{content:"";position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--accent);animation:cue 2s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}40%{opacity:1}100%{opacity:0;transform:translateY(12px)}}

/* Page hero (inner pages) */
.page-hero{padding:9.5rem 0 3.5rem}
.page-hero h1{font-size:clamp(2.4rem,5.4vw,4.4rem);margin:1.1rem 0 1.2rem;max-width:58rem}

/* ---------- Constellation proof wall ---------- */
.constellation{position:relative;padding:1rem 0}
.constellation svg.lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.constellation svg.lines line{stroke:var(--accent);stroke-width:1;stroke-opacity:.28;stroke-dasharray:4 6}
.nodes{display:flex;flex-wrap:wrap;justify-content:center;gap:2.2rem 3.2rem;position:relative;list-style:none}
.node{display:flex;align-items:center;gap:.7rem;font-family:var(--font-body);font-weight:600;font-size:clamp(1rem,1.8vw,1.25rem);color:var(--muted);letter-spacing:.02em;transition:color .3s}
.node:hover{color:var(--ink)}
.node .dot{width:7px;height:7px;border-radius:50%;background:var(--ink);box-shadow:0 0 10px 2px var(--glow);flex:none}
.node img{height:34px;width:auto;opacity:.85}

/* ---------- Pillars ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.pillar{padding:2rem 1.8rem;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,var(--surface),transparent);position:relative;overflow:hidden}
.pillar .num{font-family:var(--font-label);font-size:.75rem;color:var(--faint);letter-spacing:.15em}
.pillar h3{font-family:var(--font-display);font-weight:400;font-size:2rem;margin:.9rem 0 .7rem}
.pillar h3 em{color:var(--accent)}
.pillar p{color:var(--muted)}
.pillar .tag{display:inline-block;margin-top:1.2rem;font-family:var(--font-label);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);border:1px solid var(--line);padding:.3rem .6rem;border-radius:999px}
.outcome{margin-top:2.4rem;display:flex;gap:1.2rem;align-items:flex-start;padding:1.6rem 1.8rem;border-left:2px solid var(--accent);background:var(--glow-soft);border-radius:0 var(--radius) var(--radius) 0}
.outcome p{font-family:var(--font-display);font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.2}
.outcome small{display:block;font-family:var(--font-body);font-size:.92rem;color:var(--muted);margin-top:.6rem;line-height:1.55}

/* ---------- Packages ---------- */
.packages{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;align-items:stretch}
.pkg{position:relative;display:flex;flex-direction:column;padding:2rem 1.7rem 1.7rem;border-radius:22px;border:1px solid var(--line);background:linear-gradient(180deg,var(--surface),var(--bg-2));transition:border-color .35s,transform .35s,box-shadow .35s;overflow:hidden}
.pkg::after{content:"";position:absolute;top:22px;right:24px;width:6px;height:6px;border-radius:50%;background:var(--ink);box-shadow:0 0 8px 2px var(--glow);opacity:.5;transition:opacity .4s,box-shadow .4s,transform .4s}
.pkg:hover{border-color:var(--line-strong);transform:translateY(-4px);box-shadow:0 30px 60px -30px var(--glow)}
.pkg:hover::after{opacity:1;transform:scale(1.4);box-shadow:0 0 18px 6px var(--glow),0 0 50px 12px var(--glow-soft)}
.pkg.featured{border-color:var(--accent);background:linear-gradient(180deg,var(--surface-2),var(--bg-2))}
.pkg .type{align-self:flex-start;font-family:var(--font-label);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;padding:.32rem .7rem;border-radius:999px;border:1px solid var(--line-strong);color:var(--muted)}
.pkg.featured .type{border-color:var(--accent);color:var(--accent)}
.pkg h3{font-family:var(--font-display);font-weight:400;font-size:2.05rem;line-height:1.05;margin:1.1rem 0 .6rem}
.pkg .desc{color:var(--muted);font-size:.95rem;margin-bottom:1.3rem}
.pkg .price{font-family:var(--font-display);font-size:2.6rem;line-height:1;margin:.2rem 0 .35rem}
.pkg .price small{font-family:var(--font-body);font-size:.85rem;color:var(--muted);margin-left:.3rem}
.pkg .from{font-family:var(--font-label);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.pkg .note{font-size:.82rem;color:var(--aqua);margin-bottom:1rem}
.pkg h4{font-family:var(--font-label);font-weight:500;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:1.2rem 0 .6rem}
.pkg ul{list-style:none;display:grid;gap:.5rem;font-size:.93rem}
.pkg ul li{display:flex;gap:.6rem;align-items:flex-start}
.pkg ul.includes li::before{content:"";flex:none;width:16px;height:16px;margin-top:.22rem;border-radius:50%;background:radial-gradient(circle,var(--ink) 0 18%,var(--accent) 22% 34%,transparent 38%);box-shadow:0 0 8px var(--glow-soft)}
.pkg ul.addons li{color:var(--muted)}
.pkg ul.addons li::before{content:"+";color:var(--accent);font-weight:600;width:16px;text-align:center;flex:none}
.pkg .spacer{flex:1}
.pkg .actions{display:flex;flex-direction:column;gap:.6rem;margin-top:1.6rem}
.pkg .actions .btn{width:100%}
.pkg .more{font-size:.85rem;color:var(--muted);text-align:center}
.extras{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:1.2rem}
.extra{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;padding:1.5rem 1.7rem;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--shade-soft)}
.extra p{font-weight:600}
.extra p span{display:block;font-weight:400;color:var(--muted);font-size:.9rem;margin-top:.2rem}
.fineprint{margin-top:1.4rem;font-size:.82rem;color:var(--faint);text-align:center}

/* ---------- Experiences ---------- */
.experiences{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.exp{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column}
.exp figure{aspect-ratio:4/3;overflow:hidden;position:relative}
.exp figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.exp:hover figure img{transform:scale(1.05)}
.exp figcaption{position:absolute;left:0;right:0;top:0;padding:.6rem .9rem 1.6rem;font-size:.72rem;color:var(--ink);background:linear-gradient(var(--shade),transparent)}
.exp .body{padding:1.4rem 1.5rem 1.6rem}
.exp h3{font-family:var(--font-display);font-weight:400;font-size:1.8rem;margin-bottom:.5rem}
.exp p{color:var(--muted);font-size:.95rem}

/* ---------- Metrics ---------- */
.metrics{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.metric{padding:2rem 1rem;text-align:center;border-right:1px solid var(--line)}
.metric:last-child{border-right:none}
.metric b{display:block;font-family:var(--font-display);font-weight:400;font-size:clamp(2.4rem,4.4vw,3.6rem);line-height:1;color:var(--ink);text-shadow:0 0 30px var(--glow-soft)}
.metric span{display:block;margin-top:.6rem;font-size:.82rem;color:var(--muted);line-height:1.4}

/* ---------- Story + photo ---------- */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.split.reverse{grid-template-columns:.95fr 1.05fr}
.split.reverse .media{order:-1}
.story p{color:var(--muted);margin-bottom:1.1rem;font-size:1.04rem}
.story p.big{font-family:var(--font-display);color:var(--ink);font-size:clamp(1.6rem,2.8vw,2.2rem);line-height:1.18;margin-bottom:1.4rem}
.media{position:relative}
.media img{border-radius:var(--radius);border:1px solid var(--line);width:100%}
.media .cap{font-size:.78rem;color:var(--faint);margin-top:.6rem}
.photo-stack{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.photo-stack img{border-radius:14px;border:1px solid var(--line);height:100%;object-fit:cover}
.photo-stack .tall{grid-row:span 2}

/* ---------- Team ---------- */
.team{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.member{position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line);background:radial-gradient(120% 80% at 50% 0%,var(--blue-soft),transparent 60%),var(--surface);display:grid;grid-template-columns:.9fr 1.1fr;align-items:end;min-height:360px}
.member img{width:100%;height:100%;max-height:420px;object-fit:contain;object-position:bottom;filter:grayscale(1) contrast(1.05)}
.member .info{padding:2rem 1.8rem 2rem 0;align-self:center}
.member h3{font-family:var(--font-display);font-weight:400;font-size:2rem}
.member .role{font-family:var(--font-label);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:.4rem 0 1rem}
.member p{color:var(--muted);font-size:.94rem}

/* ---------- Testimonials ---------- */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.quote{padding:1.8rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.quote blockquote{font-family:var(--font-display);font-size:1.4rem;line-height:1.3}
.quote cite{display:block;margin-top:1.2rem;font-style:normal;font-size:.88rem;color:var(--muted)}
.quote.is-placeholder{border-style:dashed;background:transparent}
.quote.is-placeholder blockquote{color:var(--faint);font-size:1.15rem}

/* ---------- Community teaser / cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.card{padding:1.6rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--shade-soft)}
.card h3{margin-bottom:.45rem}
.card p{color:var(--muted);font-size:.94rem}
.card .ico{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--glow-soft);color:var(--accent);margin-bottom:1rem;font-size:1.1rem}
.cta-row{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.center .cta-row{justify-content:center}

/* ---------- FAQ ---------- */
.faq{max-width:52rem;margin:0 auto}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item h3{margin:0}
.faq-item button{width:100%;text-align:left;background:none;border:none;color:var(--ink);font:inherit;font-weight:600;font-size:1.06rem;padding:1.35rem 2.5rem 1.35rem 0;cursor:pointer;position:relative}
.faq-item button::after{content:"+";position:absolute;right:.3rem;top:50%;transform:translateY(-50%);font-weight:300;font-size:1.6rem;color:var(--accent);transition:transform .3s}
.faq-item button[aria-expanded="true"]::after{transform:translateY(-50%) rotate(45deg)}
.faq-item .answer{overflow:hidden;max-height:0;transition:max-height .45s ease}
.faq-item .answer p{color:var(--muted);padding-bottom:1.4rem;max-width:46rem}
.no-js .faq-item .answer{max-height:none}

/* ---------- Final CTA ---------- */
.final{padding:clamp(5rem,12vw,9rem) 0;text-align:center;position:relative}
.final h2{font-size:clamp(2.4rem,6vw,4.8rem);max-width:56rem;margin:1rem auto 1.2rem}

/* ---------- Calendar ---------- */
.cal-notice{display:flex;gap:.8rem;align-items:flex-start;padding:1rem 1.2rem;border:1px dashed var(--accent);border-radius:14px;color:var(--muted);font-size:.9rem;margin-bottom:2rem;background:var(--glow-soft)}
.featured-event{display:grid;grid-template-columns:auto 1fr auto;gap:1.6rem;align-items:center;padding:1.8rem;border:1px solid var(--accent);border-radius:22px;background:linear-gradient(120deg,var(--surface-2),var(--bg-2));margin-bottom:2rem}
.date-chip{width:78px;text-align:center;border-radius:16px;padding:.7rem .4rem;background:var(--accent-2);box-shadow:0 10px 30px -10px var(--accent-2)}
.date-chip .m{display:block;font-family:var(--font-label);font-size:.7rem;letter-spacing:.14em}
.date-chip .d{display:block;font-family:var(--font-display);font-size:2.2rem;line-height:1}
.featured-event h3{font-family:var(--font-display);font-weight:400;font-size:1.9rem}
.featured-event .meta{color:var(--muted);font-size:.9rem;margin-top:.3rem}
.badge{display:inline-block;font-family:var(--font-label);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;padding:.25rem .55rem;border-radius:999px;border:1px solid var(--line-strong);color:var(--muted);margin-right:.35rem}
.badge.hl{border-color:var(--accent);color:var(--accent)}
.cal-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:1.4rem;align-items:start}
.cal{border:1px solid var(--line);border-radius:22px;background:var(--surface);padding:1.3rem}
.cal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.cal-top h3{font-family:var(--font-display);font-weight:400;font-size:1.7rem;text-transform:capitalize}
.cal-nav{display:flex;gap:.4rem}
.cal-nav button{width:38px;height:38px;border-radius:10px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);cursor:pointer;font-size:1rem}
.cal-nav button:hover{border-color:var(--accent)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-grid .dow{font-family:var(--font-label);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);text-align:center;padding:.3rem 0}
.cal-grid .day{min-height:74px;border-radius:10px;padding:.35rem;font-size:.78rem;color:var(--muted);background:var(--shade-soft);border:1px solid transparent;overflow:hidden}
.cal-grid .day.out{opacity:.3}
.cal-grid .day.today{border-color:var(--accent)}
.cal-grid .day .n{display:block;font-weight:600;margin-bottom:.2rem}
.cal-grid .ev{display:block;font-size:.66rem;line-height:1.25;padding:.15rem .3rem;border-radius:5px;background:var(--blue-soft);color:var(--ink);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-grid .ev.virtual{background:var(--glow-soft)}
.filters{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}
.filters button{font:inherit;font-size:.82rem;padding:.45rem .85rem;border-radius:999px;border:1px solid var(--line-strong);background:transparent;color:var(--muted);cursor:pointer}
.filters button[aria-pressed="true"]{border-color:var(--accent);color:var(--ink);background:var(--glow-soft)}
.ev-list{list-style:none;display:grid;gap:.7rem}
.ev-item{display:grid;grid-template-columns:62px 1fr;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.ev-item .date-chip{width:62px;padding:.45rem .3rem;background:var(--surface-2);box-shadow:none;border:1px solid var(--line-strong)}
.ev-item .date-chip .d{font-size:1.7rem}
.ev-item h4{font-size:.98rem;font-weight:600;margin:.25rem 0 .2rem}
.ev-item .meta{font-size:.82rem;color:var(--muted)}
.empty{color:var(--faint);font-size:.9rem;padding:1rem}

/* ---------- Footer ---------- */
.site-footer{position:relative;z-index:1;background:var(--footer-bg);color:var(--footer-fg);padding:4rem 0 2.2rem;border-top:1px solid var(--line)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.foot-grid h4{font-family:var(--font-label);font-weight:500;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:1rem}
.foot-grid ul{list-style:none;display:grid;gap:.5rem;font-size:.9rem}
.foot-grid a{color:var(--footer-fg)}
.foot-brand img{height:22px;width:auto;margin-bottom:1rem}
.foot-brand p{font-size:.9rem;color:var(--muted);max-width:22rem}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--line);font-size:.82rem;color:var(--faint)}
.eky-credit{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none!important;font-family:var(--font-body);font-size:.82rem;color:var(--footer-fg);opacity:.85}
.eky-credit:hover{opacity:1}
.eky-credit__text{color:var(--footer-fg)}
.eky-credit svg{--eky-bg:var(--footer-bg);--eky-fg:var(--footer-fg);height:15px;width:auto;display:block}

/* ---------- Floating WhatsApp ---------- */
.wa-float{position:fixed;right:1.1rem;bottom:1.1rem;z-index:60;width:56px;height:56px;border-radius:50%;background:var(--wa);color:var(--wa-ink);display:grid;place-items:center;box-shadow:0 12px 30px -8px var(--wa);transition:transform .2s}
.wa-float:hover{transform:scale(1.06)}
.wa-float svg{width:28px;height:28px}

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

/* ---------- Legal ---------- */
.prose{max-width:46rem}
.prose h2{font-size:1.8rem;margin:2.2rem 0 .8rem}
.prose p,.prose li{color:var(--muted);margin-bottom:.9rem}
.prose ul{padding-left:1.2rem}

/* ---------- Responsive ---------- */
@media (max-width:1020px){
  .packages,.experiences,.quotes,.cards,.pillars{grid-template-columns:1fr 1fr}
  .packages .pkg:last-child{grid-column:span 2}
  .metrics{grid-template-columns:repeat(3,1fr)}
  .metric:nth-child(3){border-right:none}
  .metric:nth-child(n+4){border-top:1px solid var(--line)}
  .team{grid-template-columns:1fr}
  .cal-layout{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .nav-links{position:fixed;inset:74px 0 auto 0;flex-direction:column;align-items:flex-start;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:.6rem clamp(1.15rem,4vw,2.5rem) 1.2rem;transform:translateY(-120%);transition:transform .35s ease;z-index:-1}
  .nav-links.open{transform:none}
  .nav-links li{width:100%}
  .nav-links a{display:block;padding:.85rem 0;font-size:1.05rem;border-bottom:1px solid var(--line)}
  .menu-btn{display:block}
  .nav-right .btn{display:none}
  .split,.split.reverse{grid-template-columns:1fr}
  .split.reverse .media{order:0}
  .extras{grid-template-columns:1fr}
  .featured-event{grid-template-columns:auto 1fr}
  .featured-event .btn{grid-column:span 2}
}
@media (max-width:640px){
  .packages,.experiences,.quotes,.cards,.pillars{grid-template-columns:1fr}
  .packages .pkg:last-child{grid-column:auto}
  .metrics{grid-template-columns:1fr 1fr}
  .metric{border-right:1px solid var(--line)!important;border-top:1px solid var(--line)}
  .metric:nth-child(2n){border-right:none!important}
  .metric:nth-child(-n+2){border-top:none}
  .metric:last-child{grid-column:span 2;border-right:none!important}
  .member{grid-template-columns:1fr;min-height:0}
  .member img{max-height:300px}
  .member .info{padding:0 1.5rem 1.8rem}
  .extra{flex-direction:column;align-items:flex-start}
  .foot-grid{grid-template-columns:1fr}
  .cal-grid .day{min-height:52px;font-size:.7rem}
  .cal-grid .ev{font-size:0;height:6px;padding:0;border-radius:3px}
  .hero{padding-top:6.5rem}
  .star-label{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .scroll-cue::after{animation:none}
  *{transition-duration:.01ms!important}
}

/* ---------- Focus star anchor (position of the star that shines in the hero) ---------- */
#focus-anchor{position:absolute;right:21%;top:25%;width:0;height:0}
#focus-anchor .star-label{left:72px;top:-.7em}
@media (max-width:1100px){#focus-anchor{right:14%;top:17%}#focus-anchor .star-label{display:none}}
@media (max-width:640px){#focus-anchor{right:10%;top:10.5%}}

/* =================== v2 additions =================== */
img{height:auto}
.star-label::before{display:none}
.star-label{transition:opacity 1.6s ease,letter-spacing 1.6s ease;letter-spacing:.4em}
.star-label.on{letter-spacing:.14em}

/* Stats band (count-up on scroll) */
.stats-band{padding:clamp(2.5rem,6vw,4.5rem) 0 1rem}
.stats-band .metrics{position:relative}
.stats-band .metrics::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);transform:scaleX(0);transition:transform 1.6s ease}
.stats-band .metrics.in::before{transform:scaleX(1)}
.metric b{font-variant-numeric:tabular-nums}
.js-stats .metric{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease;transition-delay:calc(var(--i,0) * 130ms)}
.js-stats .metrics.in .metric{opacity:1;transform:none}
.stats-note{text-align:center;color:var(--muted);font-family:var(--font-label);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;margin-top:1.4rem}

/* Moving gallery */
.gallery-sec{padding-bottom:clamp(3rem,7vw,5rem)}
.gallery{--gh:clamp(150px,18vw,250px);display:grid;gap:14px;overflow:hidden;padding:18px 0;-webkit-mask-image:linear-gradient(90deg,transparent,var(--bg) 7%,var(--bg) 93%,transparent);mask-image:linear-gradient(90deg,transparent,var(--bg) 7%,var(--bg) 93%,transparent)}
.g-row{cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.g-row.dragging{cursor:grabbing}
.g-track{display:flex;gap:14px;width:max-content;will-change:transform}
.g-item{flex:none;height:var(--gh);margin:0;border-radius:14px;overflow:hidden;position:relative;border:1px solid var(--line);background:var(--surface);transition:transform .6s cubic-bezier(.2,.8,.2,1),box-shadow .6s,border-color .6s;transform:perspective(900px) rotateY(var(--ry,0deg)) scale(var(--sc,1))}
.g-item img{height:100%;width:auto;display:block;pointer-events:none}
.g-item:hover,.g-item:focus-visible{--sc:1.05;z-index:2;border-color:var(--accent);box-shadow:0 24px 50px -22px var(--glow)}
.g-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.6rem .8rem .6rem;font-size:.74rem;line-height:1.35;color:var(--ink);background:linear-gradient(transparent,var(--shade));opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s}
.g-item:hover figcaption,.g-item:focus-visible figcaption{opacity:1;transform:none}
.lightbox{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:var(--shade);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);opacity:0;transition:opacity .35s}
.lightbox.open{opacity:1}
.lightbox[hidden]{display:none}
.lb-fig{margin:0;max-width:min(92vw,1300px);text-align:center;transform:scale(.96);transition:transform .35s}
.lightbox.open .lb-fig{transform:none}
.lb-fig img{max-width:100%;max-height:80vh;width:auto;height:auto;border-radius:14px;margin:0 auto;box-shadow:0 30px 80px -30px var(--glow)}
.lb-fig figcaption{margin-top:.9rem;color:var(--muted);font-size:.9rem}
.lightbox button{position:absolute;background:var(--shade-soft);border:1px solid var(--line-strong);color:var(--ink);width:48px;height:48px;border-radius:50%;font-size:1.6rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.lightbox button:hover{border-color:var(--accent)}
.lb-close{top:1.2rem;right:1.2rem}
.lb-prev{left:1.2rem;top:50%;transform:translateY(-50%)}
.lb-next{right:1.2rem;top:50%;transform:translateY(-50%)}

/* Founders (single photo of both) */
.founders{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:26px;overflow:hidden;background:linear-gradient(120deg,var(--surface),var(--bg-2))}
.f-bios{padding:clamp(1.8rem,4vw,3.2rem);display:grid;gap:2.2rem;align-content:center}
.f-bio h3{font-family:var(--font-display);font-weight:400;font-size:2rem}
.f-bio .role{font-family:var(--font-label);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:.35rem 0 .8rem}
.f-bio p{color:var(--muted);font-size:.95rem}
.f-photo{position:relative;margin:0;min-height:420px}
.f-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
.f-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--surface),transparent 30%)}
.f-tag{position:absolute;z-index:1;font-family:var(--font-display);font-size:1.5rem;line-height:1.1;color:var(--ink);text-shadow:0 2px 18px var(--bg)}
.f-tag span{display:block;font-family:var(--font-label);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-top:.3rem}
.f-tag-x{top:1.6rem;right:1.8rem;text-align:right}
.f-tag-p{bottom:1.6rem;left:2.4rem}
.li-link{display:inline-flex;align-items:center;gap:.45rem;margin-top:.9rem;font-size:.85rem;font-weight:600;color:var(--accent)}
.li-link svg{width:16px;height:16px}
@media (max-width:860px){
  .founders{grid-template-columns:1fr}
  .f-photo{order:-1;min-height:0;aspect-ratio:1190/1080}
  .f-photo::after{background:linear-gradient(0deg,var(--surface),transparent 35%)}
  .f-tag-p{bottom:1rem;left:1.2rem}.f-tag-x{top:1rem;right:1.2rem}
}
@media (max-width:640px){.gallery{--gh:150px;gap:10px}.g-track{gap:10px}.lb-prev,.lb-next{top:auto;bottom:1.2rem;transform:none}}
@media (prefers-reduced-motion:reduce){.js-stats .metric{opacity:1;transform:none}}
.metric b .count{display:inline;margin:0;font-size:inherit;color:inherit;line-height:inherit}

/* v3: astronaut founders photo, names at the bottom under each founder */
.f-photo img{object-position:center center}
.f-tag-x{top:auto;bottom:1.6rem;right:2rem;text-align:right}
.f-tag-p{bottom:1.6rem;left:2.4rem}
@media (max-width:860px){.f-photo{aspect-ratio:1000/717}.f-tag-x{bottom:1rem;right:1.2rem}.f-tag-p{bottom:1rem;left:1.2rem}.f-tag{font-size:1.15rem}}

/* v4: pricing page packages as horizontal cards on desktop */
.packages-wide{grid-template-columns:1fr!important;gap:1.4rem}
.packages-wide .pkg:last-child{grid-column:auto!important}
.pkg-wide .pkg-head,.pkg-wide .pkg-body,.pkg-wide .pkg-side{display:flex;flex-direction:column}
.pkg-wide .pkg-head .actions{margin-top:1.4rem}
.pkg-wide .pkg-side:empty{display:none}
@media (min-width:1021px){
  .pkg-wide{display:grid;grid-template-columns:1.05fr 1.25fr 1fr;gap:2.6rem;padding:2.4rem 2.4rem 2.2rem;align-items:start}
  .pkg-wide::after{top:26px;right:28px}
  .pkg-wide .pkg-body h4:first-child,.pkg-wide .pkg-side h4:first-child{margin-top:.4rem}
  .pkg-wide .pkg-body,.pkg-wide .pkg-side{padding-left:2.2rem;border-left:1px solid var(--line);min-height:100%}
  .pkg-wide .pkg-side:empty{display:flex}
  .pkg-wide:hover{transform:translateY(-2px)}
}

/* v4: calendar titles readable inside the month grid */
.cal-grid .day{min-height:96px}
.cal-grid .ev{white-space:normal;text-overflow:clip;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.25;font-size:.68rem;padding:.2rem .35rem;max-height:calc(3.75em + .4rem)}
@media (max-width:640px){.cal-grid .day{min-height:52px}.cal-grid .ev{display:block;-webkit-line-clamp:unset;font-size:0;height:6px;padding:0}}

/* v4: latest YouTube + Spotify (auto-updating embeds) */
.latest{display:grid;grid-template-columns:1.55fr 1fr;gap:1.2rem;align-items:stretch}
.latest-yt,.latest-sp{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.latest-yt{aspect-ratio:16/9}
.latest iframe{display:block;width:100%;height:100%;border:0}
.latest-sp{min-height:352px}
@media (max-width:860px){.latest{grid-template-columns:1fr}.latest-sp{height:352px}}

/* v4: client logos (white) on the constellation wall */
.node-logo img{height:clamp(26px,3vw,40px);width:auto;max-width:170px;object-fit:contain;opacity:.82;transition:opacity .3s,filter .3s}
.node-logo:hover img{opacity:1;filter:drop-shadow(0 0 10px var(--glow))}
.node-logo img[alt="Weris"]{height:clamp(20px,2.3vw,30px)}
.node-logo img[alt="SNBX"],.node-logo img[alt="Casa TIC"]{height:clamp(30px,3.4vw,46px)}
@media (max-width:640px){.nodes{gap:1.3rem 1.6rem}.node-logo img{height:24px;max-width:130px}.node-logo img[alt="Weris"]{height:18px}.node-logo img[alt="SNBX"],.node-logo img[alt="Casa TIC"]{height:30px}}

/* v5: social icons under "Lo más reciente" (same glow as the client logos) */
.socials{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem 2.4rem;margin-top:2.2rem;padding:0}
.socials .soc{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;color:var(--ink);opacity:.72;border-radius:50%;transition:opacity .3s,transform .3s,filter .3s}
.socials .soc svg{width:28px;height:28px;display:block}
.socials .soc:hover,.socials .soc:focus-visible{opacity:1;transform:translateY(-2px);filter:drop-shadow(0 0 10px var(--glow)) drop-shadow(0 0 22px var(--glow-soft))}
.socials .soc:focus-visible{outline:1px solid var(--accent);outline-offset:4px}
@media (max-width:640px){.socials{gap:.9rem 1.5rem;justify-content:center}.socials .soc svg{width:26px;height:26px}}
.node-logo a{display:inline-flex;border-radius:6px}
.node-logo a:focus-visible{outline:1px solid var(--accent);outline-offset:6px}

/* v5: calendar filters, two groups that combine */
.cal-filters{display:flex;flex-wrap:wrap;gap:1rem 2.4rem;align-items:flex-start;margin-bottom:1.4rem;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.cal-filters .f-group{display:flex;flex-direction:column;gap:.55rem;min-width:0}
.cal-filters .f-label{font-family:var(--font-label);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.cal-filters .filters{margin-bottom:0}
.cal-filters .filters button:hover{border-color:var(--accent);color:var(--ink)}
.ev-list .empty{padding:1.2rem;border:1px dashed var(--line-strong);border-radius:16px;color:var(--muted);font-size:.9rem}

/* v5: embed sizing fixes. A box with aspect-ratio inside a grid does not stretch to full width on its own
   (iOS showed YouTube at half width), and Spotify draws its card at most ~352px tall and leaves the rest
   of the frame transparent, so the frame gets a fixed height and no box of its own behind it. */
.latest{align-items:center}
.latest-yt{width:100%;justify-self:stretch}
.latest-sp{width:100%;min-height:0;height:352px;border:0;background:transparent;border-radius:12px}
@media (max-width:860px){.latest{gap:1rem}.latest-sp{height:152px}}

/* v7: everybodyknowsyou logo 20% larger (it is wide, so max-width sets its size) */
.node-logo img[alt="everybodyknowsyou"]{max-width:204px}
@media (max-width:640px){.node-logo img[alt="everybodyknowsyou"]{max-width:156px}}

/* v8: brand manual colors. The manual's blue gradient (Azul vibrante bottom left, teal top right)
   sits behind the starfield as a soft glow, so the stars stay the hero. */
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(70% 60% at 0% 100%,rgba(16,6,159,.42),transparent 70%),
             radial-gradient(55% 50% at 100% 0%,rgba(2,129,183,.22),transparent 70%)}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 0 0 1px var(--blue-soft),0 10px 30px -10px var(--accent-2)}
.date-chip{background:var(--grad);color:#fff}

/* v9: option B. Headings in the brand font look (Kumbh Sans bold); the serif stays only for
   italic highlight words and quotes. */
h1,h2{font-weight:700;letter-spacing:-.025em;line-height:1.06}
h1{font-size:clamp(2.4rem,5.2vw,4.6rem)}
h2{font-size:clamp(1.9rem,3.7vw,3.1rem)}
h1 em,h2 em{font-family:var(--font-accent);font-weight:400;letter-spacing:0;font-size:1.08em}
.pillar h3,.pkg h3,.exp h3,.member h3,.f-bio h3,.featured-event h3,.cal-top h3{font-weight:700;letter-spacing:-.015em}
.pillar h3,.member h3,.f-bio h3{font-size:1.65rem}
.pkg h3{font-size:1.7rem}
.exp h3{font-size:1.5rem}
.featured-event h3{font-size:1.6rem}
.cal-top h3{font-size:1.45rem}
.pkg .price,.metric b,.date-chip .d{font-weight:600;letter-spacing:-.02em}
.f-tag{font-weight:600;font-size:1.25rem}
.outcome p,.story p.big,.quote blockquote{font-family:var(--font-accent)}

/* v10: media-first layout (Paula's feedback) */
.final-mail{margin-top:1.1rem;color:var(--muted);font-size:.92rem}
.final-mail a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}
.final-mail a:hover{text-decoration-color:var(--accent)}
.nav-contact{white-space:nowrap}
#trabaja .cards{margin-bottom:2rem}

/* v12: Paula's type choices. Labels in the brand sans instead of a code-style font;
   highlight words in DM Serif Display italic with a blue-to-light gradient. */
.eyebrow,.lang,.hero-proof,.star-label,.pillar .num,.pillar .tag,.pkg .type,.pkg .from,.pkg h4,.member .role,
.date-chip .m,.badge,.cal-grid .dow,.foot-grid h4,.stats-note,.f-bio .role,.f-tag span,.cal-filters .f-label{font-weight:600}
.eyebrow{font-size:.78rem;letter-spacing:.16em}
h1 em,h2 em{font-family:var(--font-accent);font-style:italic;font-weight:400;letter-spacing:-.005em;font-size:1.04em;
  background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  -webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .08em .06em 0}
.pillar h3 em{font-family:var(--font-accent);font-style:italic;font-weight:400;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;padding-right:.06em}
@media (forced-colors:active){h1 em,h2 em,.pillar h3 em{color:CanvasText;-webkit-text-fill-color:CanvasText;background:none}}

/* v12: Episodes page (cards load a picture; the player loads on click) */
.ep{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;display:flex;flex-direction:column;transition:border-color .3s,transform .3s}
.ep:hover{border-color:var(--line-strong);transform:translateY(-3px)}
.ep-video{position:relative;aspect-ratio:16/9;background:#000}
.ep-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ep-play{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer;display:block}
.ep-play img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease,filter .4s}
.ep-play:hover img{transform:scale(1.04);filter:brightness(1.08)}
.ep-icon{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:var(--grad);box-shadow:0 0 0 1px rgba(255,255,255,.25),0 10px 30px -6px var(--accent-2);transition:transform .3s,box-shadow .3s}
.ep-icon::after{content:"";position:absolute;left:26px;top:20px;border-style:solid;border-width:12px 0 12px 19px;border-color:transparent transparent transparent #fff}
.ep-play:hover .ep-icon,.ep-play:focus-visible .ep-icon{transform:scale(1.08);box-shadow:0 0 0 1px rgba(255,255,255,.4),0 0 30px 6px var(--glow)}
.ep-play:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.ep-body{padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.ep-body time,.ep-tag{font-family:var(--font-label);font-weight:600;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.ep-tag{color:var(--accent);margin-bottom:-.2rem}
.ep-title{font-family:var(--font-display);font-weight:700;font-size:1.08rem;line-height:1.3;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ep-desc{color:var(--muted);font-size:.9rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ep-link{margin-top:auto;padding-top:.4rem;color:var(--accent);font-weight:600;font-size:.88rem;text-decoration:none}
.ep-link:hover{text-decoration:underline;text-underline-offset:3px}
.ep-featured{display:grid;grid-template-columns:1.5fr 1fr;align-items:stretch}
.ep-featured:hover{transform:none}
.ep-featured .ep-body{padding:2rem;justify-content:center;gap:.8rem}
.ep-featured .ep-title{font-size:clamp(1.3rem,2.2vw,1.8rem);line-height:1.2;-webkit-line-clamp:4}
.ep-featured .ep-desc{font-size:.98rem;-webkit-line-clamp:5}
.ep-featured .ep-icon{width:84px;height:84px;margin:-42px 0 0 -42px}
.ep-featured .ep-icon::after{left:34px;top:26px;border-width:16px 0 16px 25px}
.ep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.3rem;margin-top:1.6rem}
.ep-more-wrap{display:flex;justify-content:center;margin-top:2.2rem}
.ep-note{margin-top:.8rem;color:var(--faint);font-size:.9rem}
.latest-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem;margin-top:2rem}
.latest-foot .socials{margin-top:0}
.socials-center{justify-content:center;margin-top:1.8rem}
@media (max-width:860px){.ep-featured{grid-template-columns:1fr}.ep-featured .ep-body{padding:1.4rem}}
@media (max-width:640px){.latest-foot{justify-content:center}}
.ep-featured .ep-video{aspect-ratio:auto;min-width:0;min-height:320px;height:100%}
@media (max-width:860px){.ep-featured .ep-video{aspect-ratio:16/9;min-height:0;height:auto}}

/* v14: newest episode + most watched (Paula: title under the picture, no description) */
.ep-section-title{font-size:clamp(1.6rem,3vw,2.3rem);margin:3.2rem 0 0}
.ep-card .ep-body{padding:1rem 1.1rem 1.2rem;gap:.45rem}
.ep-card .ep-title{font-size:1.02rem;-webkit-line-clamp:3}
.ep-card .ep-link{padding-top:.2rem;font-size:.84rem}
.ep-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}

/* v15: featured testimonial (short version shown, full version behind a toggle) */
.quotes-feature{display:block;max-width:880px;margin:0 auto}
.quote-feature{padding:clamp(1.8rem,4vw,3rem);position:relative;overflow:hidden;border-color:var(--line-strong);background:linear-gradient(160deg,var(--surface-2),var(--surface) 60%)}
.quote-feature::before{content:"“";position:absolute;top:-.12em;right:.15em;font-family:var(--font-accent);font-size:11rem;line-height:1;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;opacity:.35;pointer-events:none}
.quote-feature blockquote{font-family:var(--font-body);font-size:inherit;line-height:inherit;margin:0}
.q-short{font-family:var(--font-accent);font-size:clamp(1.45rem,2.6vw,2.05rem);line-height:1.3;color:var(--ink);position:relative}
.q-more{margin-top:1.3rem}
.q-more summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.55rem;font-weight:600;font-size:.92rem;color:var(--accent);padding:.35rem 0}
.q-more summary::-webkit-details-marker{display:none}
.q-more summary:hover .q-open,.q-more summary:hover .q-close{text-decoration:underline;text-underline-offset:3px}
.q-more summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}
.q-arrow{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .3s}
.q-more[open] .q-arrow{transform:rotate(-135deg) translateY(-2px)}
.q-close,.q-more[open] .q-open{display:none}
.q-more[open] .q-close{display:inline}
.q-long{margin-top:1rem;color:var(--muted);font-size:1.02rem;line-height:1.75;max-width:62ch;animation:qfade .5s ease}
@keyframes qfade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.quote-feature figcaption{margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.2rem}
.quote-feature cite{margin:0;font-style:normal;font-weight:700;font-size:1.02rem;color:var(--ink)}
.q-role{color:var(--muted);font-size:.9rem}
.q-note{color:var(--faint);font-size:.8rem;margin-top:.3rem}
@media (prefers-reduced-motion:reduce){.q-long{animation:none}.q-arrow{transition:none}}
@media (max-width:640px){.quote-feature::before{font-size:6.5rem;opacity:.18;right:.1em}}

/* v16: two testimonials side by side on wide screens */
.quotes-two{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem;max-width:1200px;align-items:start}
.quotes-two .q-short{font-size:clamp(1.3rem,2vw,1.65rem)}
.q-long p+p{margin-top:.9rem}
@media (max-width:900px){.quotes-two{grid-template-columns:1fr}}
/* three or more testimonials: three columns on wide screens, one column below */
.quotes-three{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:1200px;align-items:start}
.quotes-three .quote-feature{padding:clamp(1.5rem,2.4vw,2.2rem)}
.quotes-three .q-short{font-size:clamp(1.2rem,1.6vw,1.45rem)}
.quotes-three .quote-feature::before{font-size:8rem}
@media (max-width:1080px){.quotes-three{grid-template-columns:1fr;max-width:760px}}

/* v17: Paula and Xochitl's observations (Nov 5) */
/* boxes darker / more see-through everywhere */
.pillar{background:linear-gradient(180deg,var(--surface),rgba(5,10,44,.2))}
.card{background:var(--surface)}
.card h3{margin-top:0}
/* "Qué hacemos": bigger numbers with room above, tighter lines */
.pillar .num{display:block;font-size:1.15rem;font-weight:700;letter-spacing:.08em;color:var(--accent);margin:.4rem 0 .2rem}
.pillar p{line-height:1.5}
.pillar h3{line-height:1.15}
/* experiences: caption at the bottom left of each photo */
.exp figure{position:relative}
.exp figcaption{top:auto;bottom:0;padding:1.8rem .9rem .65rem;text-align:left;background:linear-gradient(transparent,var(--shade))}
/* testimonials: bigger name and role so they match the quote */
.quote-feature cite{font-size:1.15rem}
.q-role{font-size:.98rem;line-height:1.45}
.q-more summary{font-size:.98rem}
/* where to listen strip, under the hero */
.platforms{padding:1.2rem 0 2.6rem}
.platforms .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 2rem}
.pf-label{font-family:var(--font-label);font-weight:600;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.pf-list{list-style:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.9rem 2.1rem;margin:0;padding:0}
.pf{display:inline-flex;align-items:center;gap:.55rem;color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem;opacity:.75;transition:opacity .3s,filter .3s,transform .3s}
.pf:hover,.pf:focus-visible{opacity:1;transform:translateY(-1px);filter:drop-shadow(0 0 10px var(--glow))}
.pf svg{width:22px;height:22px;flex:none}
.pf-img{height:30px;width:auto;display:block}
@media (max-width:640px){.pf-list{gap:.8rem 1.4rem}.pf{font-size:.88rem}}
/* episodes: smaller white play button, tighter lines */
.ep-icon{width:50px;height:50px;margin:-25px 0 0 -25px;background:#fff;box-shadow:0 6px 22px -6px rgba(0,0,0,.6)}
.ep-icon::after{left:20px;top:15px;border-width:10px 0 10px 15px;border-color:transparent transparent transparent #0A1040}
.ep-featured .ep-icon{width:62px;height:62px;margin:-31px 0 0 -31px}
.ep-featured .ep-icon::after{left:25px;top:19px;border-width:12px 0 12px 18px}
.ep-play:hover .ep-icon,.ep-play:focus-visible .ep-icon{transform:scale(1.08);box-shadow:0 0 0 4px rgba(255,255,255,.25),0 0 26px 4px var(--glow)}
.ep-title{line-height:1.18}
.ep-featured .ep-title{line-height:1.12}
.ep-desc{line-height:1.42}
/* join form */
.join-card{display:grid;grid-template-columns:1fr 1.4fr;gap:2.4rem;padding:clamp(1.6rem,3.5vw,2.8rem);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface)}
.join-intro h2{margin:.8rem 0 1rem}
.join-intro p{color:var(--muted)}
.join-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.1rem;align-content:start}
.join-form label{display:flex;flex-direction:column;gap:.4rem;font-size:.86rem;font-weight:600;color:var(--muted)}
.join-form .full{grid-column:1 / -1}
.join-form input{font:inherit;font-weight:400;font-size:1rem;color:var(--ink);background:rgba(2,6,32,.6);border:1px solid var(--line-strong);border-radius:12px;padding:.8rem .95rem;outline:none;transition:border-color .2s,box-shadow .2s}
.join-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--glow-soft)}
.join-form input[aria-invalid="true"]{border-color:#ff8a8a}
.form-error{color:#ffb4b4;font-size:.9rem;margin:0}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.2rem;margin-top:.4rem}
.form-note{color:var(--faint);font-size:.82rem;margin:0;flex:1;min-width:14rem}
@media (max-width:860px){.join-card{grid-template-columns:1fr;gap:1.6rem}.join-form{grid-template-columns:1fr}}
.wrap.narrow .story{max-width:46rem}
/* v19: testimonial photos */
.quote-feature figcaption{flex-direction:row;align-items:center;gap:1rem}
.q-who{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.q-avatar{flex:0 0 auto;width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--line-strong);background:var(--surface-2)}
.q-initials{display:grid;place-items:center;font-weight:700;font-size:1.25rem;color:#fff;background:var(--grad)}
.quotes-two .quote-feature figcaption{align-items:flex-start}
@media (max-width:640px){.q-avatar{width:54px;height:54px}}
.quote-feature figcaption:not(:has(.q-role)){align-items:center}
/* v20 (v22: now slide to the left): testimonials move all the time (looped). Pauses on hover, keyboard focus,
   or while a full testimonial is open. Reduced motion: a still row you can scroll sideways. */
.q-marquee{overflow:hidden;padding:.4rem 0 1rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.q-track{display:flex;width:max-content;animation:q-move var(--q-dur,64s) linear infinite}
.q-set{display:flex;gap:1.3rem;padding-right:1.3rem;align-items:flex-start}
.q-set .quote-feature{width:min(440px,82vw);flex:0 0 auto;padding:clamp(1.5rem,2.4vw,2.2rem)}
.q-set .q-short{font-size:clamp(1.15rem,1.6vw,1.4rem)}
.q-set .quote-feature::before{font-size:8rem}
.q-marquee:hover .q-track,.q-marquee:focus-within .q-track,.q-marquee:has(details[open]) .q-track{animation-play-state:paused}
@keyframes q-move{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (max-width:640px){.q-set .quote-feature{width:84vw}.q-track{animation-duration:calc(var(--q-dur,64s) * .8)}}
@media (prefers-reduced-motion:reduce){
 .q-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;scroll-snap-type:x mandatory}
 .q-track{animation:none;padding:0 1.25rem}
 .q-set[aria-hidden]{display:none}
 .q-set .quote-feature{scroll-snap-align:start}
}
.q-set{align-items:stretch}
.q-set .quote-feature{display:flex;flex-direction:column}
.q-set .quote-feature figcaption{margin-top:auto;align-items:flex-start}
.q-set .quote-feature blockquote{margin-bottom:1.6rem}
.q-set .quote-feature figcaption:not(:has(.q-role)){align-items:center}
/* v21: Nelson asked for the testimonials to move all the time, so the strip keeps moving
   even when the device asks for reduced motion (it still pauses on hover, focus or when opened). */
@media (prefers-reduced-motion:reduce){
 .q-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);scroll-snap-type:none}
 .q-track{animation:q-move var(--q-dur,64s) linear infinite;padding:0}
 .q-set[aria-hidden]{display:flex}
}
/* v23: real events, with description, entry and links */
.ev-item .ev-desc{margin:.45rem 0 .3rem;font-size:.97rem;line-height:1.5;color:var(--ink)}
.ev-item .ev-info{margin:0;font-size:.88rem;color:var(--muted)}
.ev-item .ev-links{margin:.5rem 0 0;display:flex;gap:1.1rem;flex-wrap:wrap;font-size:.9rem;font-weight:600}
.ev-item .ev-links a{color:var(--accent);text-decoration:none}
.ev-item .ev-links a:hover{text-decoration:underline}
.ev-item{align-items:flex-start}.ev-item .date-chip{align-self:flex-start;height:auto}
/* v24: calendar full width on top, upcoming events below it (Nelson's request) */
.cal-layout{grid-template-columns:1fr;gap:2.4rem}
.cal{padding:clamp(1.1rem,2vw,1.8rem)}
.cal-grid{gap:6px}
.cal-grid .day{min-height:120px;padding:.5rem;font-size:.85rem}
.cal-grid .ev{font-size:.78rem;-webkit-line-clamp:2;max-height:calc(2.5em + .45rem);padding:.25rem .45rem;margin-top:4px;text-decoration:none}
.cal-grid a.ev:hover{background:var(--accent);color:#04102a}
.cal-up h2{margin-bottom:1.2rem}
@media (min-width:900px){.ev-list{grid-template-columns:1fr 1fr;gap:1rem}}
.ev-item{scroll-margin-top:110px}
.ev-item:target{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
@media (max-width:640px){.cal-grid .day{min-height:52px;padding:.35rem}}
/* v26: phones. The grid shows dots; tapping a day lists its events in the panel under the grid. */
.cal-day{display:none}
.cal-grid .day.has{cursor:pointer}
.cal-grid .day.sel{border-color:var(--accent-2);background:var(--blue-soft)}
@media (max-width:640px){
 .cal{padding:1rem .8rem}
 .cal-grid{gap:3px}
 .cal-grid .day{min-height:54px;padding:.3rem .2rem;text-align:center}
 .cal-grid .day .n{margin-bottom:.25rem}
 .cal-grid .ev{display:inline-block;width:7px;height:7px;min-height:0;max-height:none;padding:0;margin:0 1px;border-radius:50%;font-size:0;line-height:0;background:var(--accent);-webkit-line-clamp:unset;overflow:hidden;vertical-align:top}
 .cal-grid .ev.virtual{background:var(--accent-2)}
 .cal-grid a.ev{pointer-events:none}
 .cal-grid .day.today{border-color:var(--accent)}
 .cal-grid .day.sel{border-color:#fff}
 .cal-day{display:block;margin-top:1rem;padding:1rem;border-radius:16px;background:var(--surface-2);border:1px solid var(--line-strong)}
 .cal-day h4{font-size:1.05rem;margin:0 0 .6rem}
 .cal-day ul{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
 .cal-day li{display:grid;grid-template-columns:5.6rem 1fr;gap:.6rem;font-size:.92rem;line-height:1.35}
 .cal-day .t{color:var(--accent);font-weight:600;font-size:.82rem}
 .cal-day .w a{color:var(--ink);font-weight:600;text-decoration:none}
 .cal-day .w small{display:block;color:var(--muted);font-size:.8rem;margin-top:.15rem}
 .cal-day-hint{margin:0;color:var(--muted);font-size:.9rem}
}
