/* v0.2.88 — Superficie unificada de enlaces y encabezado; sistema cromático v0.2.86 (LOCAL, no publicado).
   Personalizaciones individuales y colores funcionales especiales conservan prioridad.
   Cambiar estas variables para ajustar la identidad compartida sin alterar geometría. */
:root{
  /* Identidad aprobada */
  --brand-primary:#234C73;
  --brand-primary-hover:#193B5E;
  --brand-vibrant:#234C73;
  --brand-accent:#E7B84B;
  --brand-accent-ink:#785606;
  --brand-primary-rgb:35,76,115;
  --shadow-ink-rgb:35,56,76;
  /* Texto, superficies y bordes */
  --text-primary:#253342;
  --text-muted:#526476;
  --text-secondary:#3F5061;
  --text-inverse:#FFFFFF;
  --text-inverse-muted:#D7E2ED;
  --surface-base:#F7F9FC;
  --surface-muted:#EDF2F8;
  --surface-card:#FFFFFF;
  --surface-input:#FBFCFE;
  --surface-tinted:#EAF1F8;
  --surface-highlight:#FFF5DB;
  --surface-dark:#1C2A39;
  --border-default:#DAE4EE;
  --border-strong:#A9BCD0;
  --focus-ring:rgba(var(--brand-primary-rgb),.30);
  --surface-shadow:0 18px 55px rgba(var(--shadow-ink-rgb),.12);
  /* Roles de componentes (se pueden cambiar sin tocar selectores) */
  --nav-bg:var(--surface-base);
  /* Superficie del recuadro flotante: sin tonos crema heredados. */
  --nav-shell-rgb:247,249,252;
  --nav-shell-bg:rgba(var(--nav-shell-rgb),.90);
  --nav-shell-bg-condensed:rgba(var(--nav-shell-rgb),.88);
  --nav-shell-border:var(--border-default);
  --nav-active-bg:var(--surface-tinted);
  --nav-active-text:var(--brand-primary);
  --button-primary-bg:var(--brand-primary);
  --button-primary-hover:var(--brand-primary-hover);
  --button-primary-text:var(--text-inverse);
  --button-accent-bg:var(--brand-accent);
  --button-accent-text:var(--text-primary);
  --card-bg:var(--surface-card);
  --card-border:var(--border-default);
  --card-selected-bg:var(--surface-highlight);
  --form-bg:var(--surface-input);
  --form-border:var(--border-default);
  --form-focus:var(--brand-primary);
  --modal-bg:var(--surface-card);
  --modal-border:var(--border-default);
  --modal-text:var(--text-primary);
  --cookie-bg:var(--surface-base);
  --cookie-text:var(--text-secondary);
  --footer-bg:#152739;
  --footer-text:#DBE5EE;
  --footer-muted:#B7C5D3;
  --hero-glow:#E8F1FB;
  --progress-track:var(--surface-muted);
  --progress-accent:var(--brand-accent);
  --color-danger:#BE4237;
  --color-warning:#946308;
  --color-success:#247B48;
  /* Colores de terceros: independientes de la identidad institucional */
  --whatsapp-green:#25D366;
  /* Compatibilidad CSS histórica: los nombres antiguos se mantienen como alias. */
  --orange:var(--brand-primary);
  --orange2:var(--brand-accent);
  --ink:var(--text-primary);
  --muted:var(--text-muted);
  --cream:var(--surface-muted);
  --cream2:var(--surface-base);
  --line:var(--border-default);
  --white:var(--surface-card);
  --radius:24px;
  --shadow:var(--surface-shadow);
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text-primary);background:var(--surface-base);line-height:1.55}h1, h2, h3, strong{line-height:1.06}h1, h2, h3{font-family:Georgia,"Times New Roman",serif}h1{font-size:clamp(3rem,7vw,6.6rem);letter-spacing:-.055em;margin:.18em 0}.hero h1 em{font-style:normal;color:var(--brand-primary)}h2{font-size:clamp(2.25rem,4vw,4.4rem);letter-spacing:-.035em;margin:.2em 0}h3{font-size:1.45rem}p{color:var(--text-muted)}a{color:inherit}.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:1000;background:var(--surface-card);padding:10px}.shell{width:min(1180px,calc(100% - 40px));margin:auto}.section-pad{padding:96px 0}.soft{background:var(--surface-muted)}.dark{background:var(--surface-dark);color:var(--surface-card)}.dark p{color:var(--text-inverse-muted)}.eyebrow{font-size:.78rem;letter-spacing:.16em;font-weight:800;color:var(--brand-primary)}.brand{display:flex;align-items:center;margin-right:auto}.brand img{width:clamp(270px,19vw,335px);height:82px;object-fit:contain;object-position:left center;filter:drop-shadow(0 1px 1px rgba(37,51,66,.22)) drop-shadow(0 0 2px rgba(37,51,66,.12))}.topbar nav{display:flex;gap:22px;align-items:center}.topbar nav a{text-decoration:none;font-weight:650;font-size:.94rem}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;padding:14px 20px;font-weight:800;text-decoration:none;cursor:pointer;transition:.22s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--brand-primary);color:var(--surface-card);box-shadow:0 10px 24px rgba(var(--brand-primary-rgb),.22)}.btn-ghost{background:var(--surface-card);border:1px solid var(--border-default)}.btn-light{background:var(--surface-card);color:var(--brand-primary)}.btn-outline-light{border:1px solid rgba(255,255,255,.5);color:var(--surface-card)}.menu-btn{display:none}.hero{min-height:calc(100vh - 82px);display:flex;align-items:center;background:radial-gradient(circle at 80% 20%,var(--hero-glow) 0,transparent 33%),linear-gradient(180deg,var(--surface-base),var(--surface-muted))}.hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:60px;align-items:center}.hero-copy>p{font-size:1.22rem;max-width:650px}.hero-actions{display:flex;gap:12px;margin:28px 0}.trust-row{display:flex;gap:12px;flex-wrap:wrap;font-size:.88rem;color:var(--text-muted)}.hero-visual{position:relative;min-height:580px}.photo-card{overflow:hidden;border-radius:32px;box-shadow:var(--shadow);background:var(--footer-text)}.photo-card.large{position:absolute;right:0;top:18px;width:88%;height:520px;transform:rotate(2deg)}.photo-card img{width:100%;height:100%;object-fit:cover}.accent-card{position:absolute;left:0;bottom:18px;background:var(--text-primary);color:var(--surface-card);padding:24px 28px;border-radius:22px;box-shadow:var(--shadow);display:grid}.accent-card strong{font-family:Georgia,serif;font-size:1.6rem}.accent-card span{color:var(--text-inverse-muted)}.section-head{max-width:780px;margin-bottom:42px}.section-head p{font-size:1.05rem}.section-head.light h2{color:var(--surface-card)}.module-strip{padding:38px 0;background:var(--surface-card);border-block:1px solid var(--border-default)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.metric strong{font-family:Georgia,serif;font-size:3rem;color:var(--brand-primary)}.metric span{display:block;color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em}.goal-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:28px;padding:34px;display:grid;grid-template-columns:1.1fr 1fr auto;align-items:center;gap:38px;box-shadow:var(--shadow)}.goal-progress{min-width:300px}.goal-labels{display:flex;justify-content:space-between}.progress{height:12px;border-radius:99px;background:var(--progress-track);overflow:hidden;margin-top:10px}.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brand-primary),var(--brand-accent));transition:width 1s ease}.donation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.donation-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:22px;padding:25px;text-align:left;display:grid;gap:10px;min-height:215px;cursor:pointer;transition:.25s}.donation-card:hover, .donation-card.selected{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--brand-accent)}.donation-card .icon{font-size:2rem}.donation-card strong{font-family:Georgia,serif;font-size:1.45rem}.donation-card small{color:var(--text-muted);font-size:.95rem}.donation-card>span:last-child{color:var(--brand-primary);font-weight:800;font-size:.86rem}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.step{position:relative;padding-top:74px}.step b{position:absolute;top:0;display:grid;place-items:center;width:56px;height:56px;border:1px solid var(--border-default);border-radius:50%;color:var(--brand-primary);font-family:Georgia,serif;font-size:1.35rem;background:var(--surface-card)}.step:after{content:"";position:absolute;top:28px;left:62px;width:calc(100% - 56px);height:1px;background:var(--border-default)}.step:last-child:after{display:none}.story-layout{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:310px 270px;gap:18px}.story{margin:0;position:relative;overflow:hidden;border-radius:24px;background:var(--surface-dark)}.story-tall{grid-row:span 2}.story-wide{grid-column:span 2}.story img{width:100%;height:100%;object-fit:cover;transition:.5s}.story:hover img{transform:scale(1.035)}.story figcaption{position:absolute;left:0;right:0;bottom:0;padding:50px 22px 20px;background:linear-gradient(transparent,rgba(0,0,0,.82));display:grid}.story figcaption strong{font-family:Georgia,serif;font-size:1.25rem;color:var(--surface-card)}.story figcaption span{color:var(--text-inverse-muted);font-size:.9rem}.allies-track{display:flex;gap:14px;overflow:auto;padding-bottom:8px}.ally{min-width:240px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:18px;padding:20px}.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.video-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:24px;overflow:hidden;box-shadow:0 12px 35px rgba(var(--shadow-ink-rgb),.05)}.video-thumb{position:relative;aspect-ratio:16/9;background:var(--surface-dark)}.video-thumb img{width:100%;height:100%;object-fit:cover}.play{position:absolute;inset:0;margin:auto;width:68px;height:68px;border:0;border-radius:50%;background:var(--surface-card);color:var(--brand-primary);font-size:1.5rem;cursor:pointer;box-shadow:var(--shadow)}.video-card h3{padding:0 20px;margin:20px 0 8px}.video-card p{padding:0 20px 20px;margin:0}.form-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:start}.form-intro{position:sticky;top:120px}.selected-summary{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.chip{background:var(--surface-card);border:1px solid var(--border-default);border-radius:99px;padding:8px 12px;font-size:.85rem;font-weight:700}.wizard{background:var(--surface-card);border:1px solid var(--border-default);border-radius:28px;padding:30px;box-shadow:var(--shadow)}.wizard-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:28px}.wizard-progress span{height:5px;border-radius:4px;background:var(--border-default)}.wizard-progress span.active{background:var(--brand-primary)}.wizard-step{display:none}.wizard-step.active{display:block}.fields.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:grid;gap:7px;font-size:.86rem;font-weight:750;margin-bottom:15px}input, select, textarea{font:inherit;border:1px solid var(--border-default);background:var(--surface-input);border-radius:12px;padding:13px 14px;outline:none}input:focus, select:focus, textarea:focus{border-color:var(--brand-primary);box-shadow:0 0 0 3px rgba(var(--brand-primary-rgb),.1)}.step-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.quick-picks{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.pick{border:1px solid var(--border-default);background:var(--surface-card);border-radius:99px;padding:9px 12px;cursor:pointer}.pick.active{background:var(--surface-tinted);border-color:var(--brand-accent);color:var(--brand-primary)}.conditions{display:grid;gap:10px}.condition-card{border-left:4px solid var(--brand-primary);background:var(--surface-tinted);padding:14px 16px;border-radius:12px;margin-bottom:10px}.condition-card ul{margin:8px 0 0;padding-left:20px}.upload{border:1px dashed var(--border-default);border-radius:16px;padding:18px}.upload input{display:none}.upload span{color:var(--brand-primary);font-weight:800}.form-note{font-size:.82rem}.check{grid-template-columns:auto 1fr;align-items:start}.check input{margin-top:4px}.review{background:var(--surface-muted);border-radius:16px;padding:18px;margin-bottom:18px}.faq-shell{max-width:900px}.faq-shell details{background:var(--surface-card);border:1px solid var(--border-default);border-radius:16px;padding:18px 20px;margin:10px 0}.faq-shell summary{font-family:Georgia,serif;font-size:1.15rem;font-weight:700;cursor:pointer}.contact{background:var(--surface-card)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.contact h2 small{font-family:Inter,sans-serif;font-size:1rem;color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase}.contact-list{padding:0;list-style:none;display:grid;gap:10px}.contact-cta{background:var(--brand-primary);color:var(--surface-card);border-radius:28px;padding:38px}.contact-cta p{color:var(--text-inverse-muted)}.contact-cta .btn{display:flex;margin-top:10px}.contact-cta h3{font-size:2rem}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:50px}footer{background:var(--footer-bg);color:var(--footer-text);padding:55px 0}footer img{width:260px;filter:saturate(.9)}footer p{color:var(--footer-muted)}footer a, footer span{display:block;text-decoration:none;color:var(--footer-muted);margin-top:8px}footer strong{color:var(--surface-card)}.whatsapp{position:fixed;right:30px;bottom:22px;width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:var(--surface-card);text-decoration:none;z-index:40;box-shadow:0 12px 28px rgba(37,211,102,.34);isolation:isolate;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;--wa-pulse-cycle:2.8s;--wa-wave-duration:1.15s;--wa-wave-scale:1.78;--wa-wave-opacity:.68}.whatsapp svg{width:37px;height:37px;display:block}.whatsapp::before, .whatsapp::after{content:"";position:absolute;inset:-2px;border-radius:50%;border:3px solid rgba(37,211,102,var(--wa-wave-opacity));box-shadow:0 0 16px rgba(37,211,102,.42);z-index:-1;opacity:0;pointer-events:none;transform:scale(1)}.whatsapp.pulse-enabled::before{animation:waRing var(--wa-pulse-cycle) ease-out infinite}.whatsapp.pulse-enabled::after{animation:waRing var(--wa-pulse-cycle) ease-out infinite;animation-delay:calc(var(--wa-pulse-cycle) * .18)}.whatsapp.pulse-enabled{animation:waButtonBeat var(--wa-pulse-cycle) ease-in-out infinite}.whatsapp:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 15px 34px rgba(37,211,102,.52)}.whatsapp.outside-hours{animation:none;box-shadow:0 10px 24px rgba(37,211,102,.22)}.whatsapp.outside-hours::before, .whatsapp.outside-hours::after{animation:none;opacity:0}@keyframes waRing{0%{transform:scale(.96);opacity:0}7%{opacity:var(--wa-wave-opacity)}38%{transform:scale(var(--wa-wave-scale));opacity:0}100%{transform:scale(var(--wa-wave-scale));opacity:0}}@keyframes waButtonBeat{0%,5%,15%,100%{transform:scale(1);box-shadow:0 12px 28px rgba(37,211,102,.34)}9%{transform:scale(1.055);box-shadow:0 13px 36px rgba(37,211,102,.60),0 0 0 5px rgba(37,211,102,.11)}}@media(prefers-reduced-motion:reduce){.whatsapp.pulse-enabled, .whatsapp.pulse-enabled::before, .whatsapp.pulse-enabled::after{animation:none}}.cookie{position:fixed;left:22px;bottom:22px;max-width:520px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:18px;padding:16px 18px;box-shadow:var(--shadow);z-index:80;display:flex;gap:16px;align-items:center}.cookie p{font-size:.82rem;margin:0}.cookie>div{display:flex;gap:8px}.cookie button{border:0;cursor:pointer}.cookie #cookie-reject{background:transparent;color:var(--text-primary);padding:12px 14px;border-radius:10px}.cookie #cookie-accept{background:var(--brand-primary);color:var(--surface-card);padding:12px 18px;border-radius:10px;font-weight:800;box-shadow:0 8px 18px rgba(var(--brand-primary-rgb),.2)}.cookie #cookie-accept:hover{background:var(--brand-primary);transform:translateY(-1px)}.seasonal{position:fixed;right:22px;bottom:95px;width:min(330px,calc(100% - 44px));background:var(--surface-card);border:1px solid var(--border-default);border-radius:20px;padding:20px;box-shadow:var(--shadow);z-index:45}.seasonal>button{float:right;border:0;background:none;font-size:1.4rem;cursor:pointer}.reveal{opacity:0;transform:translateY(18px);transition:.65s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}@media(max-width:960px){.topbar nav, .nav-cta{display:none}.menu-btn{display:block;margin-left:auto}.topbar.open nav{position:absolute;display:grid;left:16px;right:16px;top:76px;background:var(--surface-card);padding:18px;border-radius:18px;box-shadow:var(--shadow)}.brand img{width:205px}.hero-grid, .form-wrap, .contact-grid{grid-template-columns:1fr}.hero-visual{min-height:470px}.photo-card.large{height:420px}.form-intro{position:static}.donation-grid{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:repeat(2,1fr)}.story-layout{grid-template-columns:1fr 1fr;grid-template-rows:310px 260px 260px}.story-tall{grid-row:auto}.story-wide{grid-column:span 2}.goal-card{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.shell{width:min(100% - 28px,1180px)}.section-pad{padding:68px 0}.brand img{width:185px;height:48px}.hero{min-height:auto;padding-top:55px}.hero-grid{gap:30px}.hero h1{font-size:clamp(2.75rem,14vw,4.3rem)}.hero-actions{display:grid}.hero-visual{min-height:380px}.photo-card.large{width:92%;height:330px}.accent-card{padding:18px}.donation-grid, .video-grid, .fields.two, .footer-grid, .steps{grid-template-columns:1fr}.story-layout{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(4,300px)}.story-wide{grid-column:auto}.goal-progress{min-width:0}.contact-grid{gap:35px}.cookie{left:14px;right:14px;bottom:14px;max-width:none;display:grid}.whatsapp{right:14px}.wizard{padding:22px}.step:after{display:none}}

/* v0.1.2 — cookie explanation */
.cookie{align-items:flex-start;transition:max-width .25s ease,padding .25s ease}.cookie-copy{flex:1;min-width:0}.cookie-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.cookie-more{margin-top:4px;padding:0!important;background:transparent!important;color:var(--brand-primary)!important;font-size:.78rem;font-weight:800;text-decoration:underline;text-underline-offset:2px}.cookie-details{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-default)}.cookie-details p{font-size:.78rem;line-height:1.45;margin:0 0 8px;color:var(--text-muted)}.cookie-details p:last-child{margin-bottom:0}.cookie:has(.cookie-details:not([hidden])){max-width:620px}.cookie:has(.cookie-details:not([hidden])) .cookie-actions{align-self:flex-end}@media(max-width:640px){.cookie-actions{justify-content:flex-end}.cookie:has(.cookie-details:not([hidden])){max-width:none}}

/* v0.1.3 — selección de categorías antes de continuar */
.donation-card{position:relative}
.donation-card.selected{background:linear-gradient(145deg,var(--surface-highlight),var(--surface-highlight));border-color:var(--brand-primary);box-shadow:0 16px 38px rgba(var(--brand-primary-rgb),.16)}
.donation-card.selected::after{content:"✓";position:absolute;top:16px;right:16px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--brand-primary);color:var(--surface-card);font-weight:900}
.donation-card.selected>span:last-child{color:var(--brand-primary)}
.donation-continue{display:flex;justify-content:center;margin-top:28px;position:sticky;bottom:18px;z-index:20;pointer-events:none}
.donation-continue[hidden]{display:none}
.donation-continue button{pointer-events:auto;border:0;border-radius:999px;background:var(--text-primary);color:var(--surface-card);padding:11px 14px 11px 20px;display:flex;gap:14px;align-items:center;font-weight:800;cursor:pointer;box-shadow:0 16px 40px rgba(var(--shadow-ink-rgb),.25);animation:cuFloat 1.8s ease-in-out infinite}
.donation-continue button b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--brand-primary);font-size:1.2rem}
@keyframes cuFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(max-width:640px){.donation-continue{bottom:78px}.donation-continue button{max-width:calc(100vw - 44px)}}

/* v0.1.4 — richer hover feedback + compact expandable cookie notice */
.topbar nav a, .footer-grid a, .contact-list a, .cookie-more{
  display:inline-block;
  transition:color .22s ease, transform .22s cubic-bezier(.2,.75,.25,1), letter-spacing .22s ease;
  transform-origin:center;
}
.topbar nav a:hover, .topbar nav a:focus-visible, .footer-grid a:hover, .footer-grid a:focus-visible, .contact-list a:hover, .contact-list a:focus-visible{
  color:var(--brand-primary);
  transform:translateY(-2px) rotate(-1.2deg);
  letter-spacing:.015em;
}
.topbar nav a:focus-visible, .footer-grid a:focus-visible, .contact-list a:focus-visible, .cookie-more:focus-visible{
  outline:2px solid rgba(var(--brand-primary-rgb),.38);
  outline-offset:4px;
  border-radius:5px;
}

.cookie{
  width:min(610px,calc(100vw - 44px));
  max-width:none;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:
    "copy actions"
    "details details";
  column-gap:14px;
  row-gap:0;
  align-items:center;
  padding:15px 17px;
  transition:padding .25s ease, box-shadow .25s ease;
}
.cookie-copy{grid-area:copy;min-width:0;display:block!important}
.cookie-copy>p{font-size:.82rem;line-height:1.45;margin:0;color:var(--text-muted)}
.cookie-actions{grid-area:actions;display:flex!important;gap:6px!important;align-items:center;justify-content:flex-end;align-self:center}
.cookie-more{
  display:block;
  width:max-content;
  margin:5px 0 0;
  padding:0!important;
  background:transparent!important;
  color:var(--brand-primary)!important;
  font-size:.76rem;
  font-weight:800;
  text-decoration:none;
}
.cookie-more:hover{color:var(--brand-primary)!important;transform:translateX(2px)}
.cookie-details{
  grid-area:details;
  width:100%;
  margin-top:12px;
  padding-top:11px;
  border-top:1px solid var(--border-default);
  animation:cookieReveal .22s ease both;
}
.cookie-details[hidden]{display:none!important}
.cookie-details p{font-size:.78rem;line-height:1.48;margin:0 0 7px;color:var(--text-muted)}
.cookie-details p:last-child{margin-bottom:0}
.cookie #cookie-reject{padding:10px 12px;border-radius:10px;white-space:nowrap}
.cookie #cookie-accept{padding:10px 16px;white-space:nowrap}
@keyframes cookieReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

@media(max-width:640px){
  .cookie{left:14px;right:14px;bottom:14px;width:auto;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;padding:14px}
  .cookie-copy>p{font-size:.79rem}
  .cookie-actions{gap:4px!important}
  .cookie #cookie-reject{padding:9px 8px;font-size:.78rem}
  .cookie #cookie-accept{padding:9px 11px;font-size:.78rem}
}
@media(max-width:430px){
  .cookie{grid-template-columns:1fr;grid-template-areas:"copy" "actions" "details";row-gap:8px}
  .cookie-actions{justify-content:flex-start}
  .cookie-details{margin-top:2px}
}
@media(prefers-reduced-motion:reduce){
  .topbar nav a, .footer-grid a, .contact-list a, .cookie-more{transition:none!important}
  .topbar nav a:hover, .footer-grid a:hover, .contact-list a:hover, .cookie-more:hover{transform:none!important}
  .cookie-details{animation:none!important}
}


/* v0.1.5 — stable 3D navigation hover + TikTok showcase */
.topbar nav a{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  transform-style:preserve-3d;
  perspective:500px;
  transition:color .24s ease, transform .28s cubic-bezier(.2,.8,.2,1)!important;
  letter-spacing:0!important;
  will-change:transform;
}
.topbar nav a:hover, .topbar nav a:focus-visible{
  color:var(--brand-primary);
  transform:perspective(500px) rotateX(-18deg) translateY(-1px)!important;
  letter-spacing:0!important;
}
.topbar nav a::after{
  content:"";
  position:absolute;
  left:18%;right:18%;bottom:1px;
  height:2px;border-radius:99px;
  background:var(--brand-primary);
  transform:scaleX(0);
  transition:transform .24s ease;
}
.topbar nav a:hover::after, .topbar nav a:focus-visible::after{transform:scaleX(1)}

.video-showcase{display:grid;gap:18px}
.video-stage{
  min-height:430px;
  border-radius:28px;
  overflow:hidden;
  position:relative;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  align-items:stretch;
  background:
    radial-gradient(circle at 20% 15%,rgba(255,190,131,.35),transparent 28%),
    linear-gradient(135deg,var(--surface-dark) 0%,var(--surface-dark) 58%,var(--brand-primary) 160%);
  color:var(--surface-card);
  box-shadow:var(--shadow);
}
.video-stage-art{position:relative;min-height:430px;overflow:hidden}
.video-stage-art::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(145deg,rgba(255,255,255,.07),transparent 45%),linear-gradient(0deg,rgba(0,0,0,.42),transparent 48%);
}
.video-stage-art .video-number{
  position:absolute;left:34px;bottom:22px;
  font-family:Georgia,serif;font-size:clamp(5rem,12vw,10rem);line-height:.8;
  color:rgba(255,255,255,.15);font-weight:700
}
.video-stage-art .tiktok-mark{position:absolute;left:34px;top:30px;font-size:1rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.video-stage-art .viral-badge{position:absolute;right:26px;top:26px;background:var(--surface-card);color:var(--brand-primary);padding:8px 11px;border-radius:999px;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.video-stage-copy{padding:46px;display:flex;flex-direction:column;justify-content:center}
.video-stage-copy .eyebrow{color:var(--brand-accent)}
.video-stage-copy h3{font-size:clamp(2rem,3.5vw,3.35rem);margin:.35em 0;color:var(--surface-card)}
.video-stage-copy p{font-size:1.05rem;color:var(--text-inverse-muted);max-width:520px}
.video-stage-copy .video-meta{font-size:.82rem;color:var(--border-default);margin-top:6px}
.video-stage-copy .btn{margin-top:20px;width:max-content}
.video-carousel-shell{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}
.video-carousel{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;padding:4px 1px 8px}
.video-carousel::-webkit-scrollbar{display:none}
.video-mini{
  scroll-snap-align:start;flex:0 0 165px;min-height:112px;border:1px solid var(--border-default);background:var(--surface-card);border-radius:18px;padding:13px;text-align:left;cursor:pointer;
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background .22s ease;
}
.video-mini:hover{transform:translateY(-3px);border-color:var(--brand-accent);box-shadow:0 10px 24px rgba(var(--shadow-ink-rgb),.08)}
.video-mini.active{background:var(--surface-tinted);border-color:var(--brand-primary);box-shadow:0 10px 26px rgba(var(--brand-primary-rgb),.12)}
.video-mini b{display:block;color:var(--brand-primary);font-size:.76rem;margin-bottom:7px}
.video-mini strong{font-family:Georgia,serif;font-size:.98rem;display:block}
.video-mini small{display:block;color:var(--text-muted);margin-top:7px;font-size:.72rem}
.video-arrow{width:42px;height:42px;border-radius:50%;border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-primary);cursor:pointer;font-size:1.15rem;transition:.2s}
.video-arrow:hover{background:var(--text-primary);color:var(--surface-card);border-color:var(--text-primary);transform:translateY(-1px)}

@media(max-width:800px){
  .video-stage{grid-template-columns:1fr;min-height:0}
  .video-stage-art{min-height:230px}
  .video-stage-copy{padding:28px}
}
@media(max-width:640px){
  .video-mini{flex-basis:145px;min-height:105px}
  .video-arrow{width:36px;height:36px}
}
@media(prefers-reduced-motion:reduce){
  .topbar nav a:hover, .topbar nav a:focus-visible{transform:none!important}
  .video-mini:hover, .video-arrow:hover{transform:none!important}
}

/* v0.1.6 — hero compacto + franja opcional de aliados */
@media (min-width:961px){
  .hero.section-pad{padding:46px 0 52px}
  .hero{min-height:calc(100svh - 82px)}
  .hero-grid{grid-template-columns:1.02fr .98fr;gap:42px}
  .hero-copy{align-self:center}
  .hero h1{font-size:clamp(3.65rem,5.35vw,5.45rem);max-width:690px;line-height:.98;margin:.22em 0 .2em}
  .hero-copy>p{font-size:1.08rem;max-width:600px;margin:16px 0}
  .hero-actions{margin:22px 0 18px}
  .hero-visual{min-height:485px;display:flex;align-items:center}
  .photo-card.large{top:0;right:0;width:92%;height:465px;transform:rotate(1.2deg)}
  .accent-card{left:0;bottom:4px;padding:20px 24px}
}

.allies-section{overflow:hidden;background:var(--surface-base);border-block:1px solid var(--border-default)}
.allies-section .section-head{margin-bottom:20px}
.allies-demo-note{width:max-content;margin:0 auto 18px;padding:7px 12px;border:1px dashed var(--border-strong);border-radius:999px;color:var(--brand-primary);background:var(--surface-card);font-size:.72rem;font-weight:850;letter-spacing:.11em}
.allies-marquee{overflow:hidden;position:relative;padding:8px 0 10px;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.allies-track{display:flex;gap:16px;width:max-content;overflow:visible;padding:0;animation:allies-scroll 24s linear infinite}
.allies-marquee:hover .allies-track{animation-play-state:paused}
.ally{min-width:260px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:18px;padding:16px 20px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;box-shadow:0 8px 24px rgba(var(--shadow-ink-rgb),.055)}
.ally-mark{grid-row:1/span 2;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--surface-tinted);color:var(--brand-primary)}
.ally strong{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.98rem;line-height:1.15}
.ally small{color:var(--text-muted);font-size:.76rem;margin-top:3px}
@keyframes allies-scroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 8px))}}
@media (prefers-reduced-motion:reduce){.allies-track{animation:none}}
@media(max-width:640px){
  .allies-track{animation-duration:18s}
  .ally{min-width:220px}
}

/* v0.1.32 — mantener constante el espacio de la cabecera sticky.
   Al cambiar de tamaño el contenido, el documento ya no cambia su altura. */
@media (min-width:961px){
  
}

/* v0.1.7 — navegación flotante/compacta, anclas más altas y marquee continuo */
@media (min-width:961px){
  
  
  .brand img{transition:width .34s ease,height .34s ease}
  .topbar nav{transition:gap .34s ease}
  .nav-cta{transition:padding .34s ease,transform .22s ease,box-shadow .22s ease}
  
  
  .topbar.scrolled .brand img{width:190px;height:46px}
  
  .topbar.scrolled nav{gap:12px}
  .topbar.scrolled nav a{font-size:.94rem}
  

  /* Más contenido visible cuando el usuario entra mediante el menú */
  #que-donar.section-pad, #como-funciona.section-pad, #historias.section-pad, #formulario.section-pad, #preguntas.section-pad, .allies-section.section-pad, [data-module="videoGallery"].section-pad{padding-top:54px;padding-bottom:76px}
  .section-head{margin-bottom:30px}
  #que-donar .section-head{margin-bottom:32px}
  .donation-card{min-height:198px;padding:22px}
}

/* La foto conserva su proporción: se recorta, nunca se estira. */
.photo-card.large img{object-fit:cover;object-position:center 44%}

/* El movimiento de aliados lo controla JS para que sea continuo en todos los navegadores. */
.allies-track{
  animation:none!important;
  will-change:transform;
  flex-wrap:nowrap;
}
.allies-marquee:hover .allies-track{animation-play-state:running}

/* Un poco más de aire para el nombre largo de tecnología sin agrandar la tarjeta. */
.donation-card strong{line-height:1.12}

@media(max-width:960px){
  
}

/* Footer v0.1.8 — jerarquía y espaciado inspirados en layouts editoriales modernos */
footer{padding:64px 0 24px}
.footer-grid{
  display:grid;
  grid-template-columns:1.35fr .8fr 1fr 1.15fr;
  gap:56px;
  align-items:start;
}
.footer-brand img{width:245px;max-width:100%;height:auto;margin-bottom:18px}
.footer-brand p{max-width:360px;margin:0 0 22px;color:var(--footer-muted);line-height:1.7}
.footer-socials{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.footer-socials a, .footer-socials .social-pending{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:9px 13px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  margin:0;
  font-size:.86rem;
  font-weight:750;
}
.footer-socials a{color:var(--surface-card);background:rgba(255,255,255,.06)}
.footer-socials .social-pending{color:var(--text-muted);background:rgba(255,255,255,.025)}
.footer-col{display:flex;flex-direction:column;align-items:flex-start;gap:13px}
.footer-col strong{font-size:.92rem;margin-bottom:7px;letter-spacing:.015em}
.footer-col a, .footer-col span{display:block;margin:0;color:var(--footer-muted);text-decoration:none;line-height:1.45}
.footer-col a:hover, .footer-col a:focus-visible{color:var(--surface-card)}
.footer-follow p{margin:0 0 4px;color:var(--footer-muted);line-height:1.6;font-size:.92rem}
.youtube-coming{
  width:100%;
  margin-top:8px;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.06);
  color:var(--text-muted);
  border-radius:12px;
  padding:13px 14px;
  font:inherit;
  font-weight:800;
  text-align:left;
  cursor:not-allowed;
}
.footer-bottom{
  margin-top:48px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.13);
  display:flex;
  justify-content:space-between;
  gap:24px;
  color:var(--text-muted);
  font-size:.82rem;
}
.footer-bottom span{margin:0;color:var(--text-muted)}
@media(max-width:1050px){
  .footer-grid{grid-template-columns:1.3fr 1fr 1fr;gap:40px}
  .footer-follow{grid-column:1/-1;max-width:560px}
}
@media(max-width:720px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:36px 26px}
  .footer-brand, .footer-follow{grid-column:1/-1}
  .footer-bottom{flex-direction:column;gap:8px;margin-top:36px}
}
@media(max-width:480px){
  .footer-grid{grid-template-columns:1fr;gap:30px}
  .footer-brand, .footer-follow{grid-column:auto}
}


/* v0.1.12 — WhatsApp ripple, non-pausing allies, privacy modal */
.allies-marquee:hover .allies-track{animation-play-state:running!important}

.whatsapp{overflow:visible}
.whatsapp.pulse-enabled{animation:none!important}
.whatsapp.pulse-enabled::before, .whatsapp.pulse-enabled::after{animation:none!important;opacity:0!important}
.wa-ripple{
  position:absolute;
  inset:0;
  border-radius:50%;
  border:2.5px solid rgba(37,211,102,.68);
  box-shadow:0 0 12px rgba(37,211,102,.24);
  pointer-events:none;
  z-index:-1;
  opacity:0;
  transform:scale(1);
  animation:waRipple var(--wa-wave-duration,1.25s) cubic-bezier(.12,.68,.28,1) forwards;
}
@keyframes waRipple{
  0%{opacity:0;transform:scale(1)}
  10%{opacity:var(--wa-wave-opacity,.62)}
  72%{opacity:.12}
  100%{opacity:0;transform:scale(var(--wa-wave-scale,1.95))}
}
@media(prefers-reduced-motion:reduce){.wa-ripple{display:none!important}}

.privacy-modal{position:fixed;inset:0;z-index:140;display:grid;place-items:center;padding:24px}
.privacy-modal[hidden]{display:none!important}
.privacy-backdrop{position:absolute;inset:0;background:rgba(13,11,10,.66);backdrop-filter:blur(4px)}
.privacy-dialog{position:relative;z-index:1;width:min(720px,100%);max-height:min(82vh,760px);display:flex;flex-direction:column;background:var(--surface-base);border:1px solid rgba(255,255,255,.5);border-radius:26px;box-shadow:0 30px 90px rgba(0,0,0,.35);overflow:hidden;animation:privacyIn .22s ease both}
.privacy-dialog-scroll{padding:34px 38px 24px;overflow:auto}
.privacy-dialog h2{font-size:clamp(2rem,4vw,3.25rem);margin:.25em 0 .45em}
.privacy-dialog h3{font-size:1.25rem;margin:1.35em 0 .35em}
.privacy-dialog p{margin:.35em 0;color:var(--text-muted)}
.privacy-draft{background:var(--surface-tinted);border-left:4px solid var(--brand-primary);padding:13px 15px;border-radius:10px}
.privacy-close{position:absolute;right:16px;top:14px;width:38px;height:38px;border:0;border-radius:50%;background:var(--surface-card);color:var(--text-primary);font-size:1.5rem;cursor:pointer;box-shadow:0 5px 18px rgba(0,0,0,.10);z-index:2}
.privacy-close:hover{transform:rotate(8deg);color:var(--brand-primary)}
.privacy-dialog-actions{padding:14px 24px 20px;display:flex;justify-content:flex-end;border-top:1px solid var(--border-default);background:var(--surface-card)}
body.privacy-opened{overflow:hidden}
.privacy-open{color:var(--brand-primary);font-weight:800;text-underline-offset:3px}
@keyframes privacyIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:640px){.privacy-modal{padding:12px}.privacy-dialog{max-height:88vh;border-radius:20px}.privacy-dialog-scroll{padding:28px 22px 18px}.privacy-dialog-actions{padding:12px 18px 16px}}
nn/* v0.1.13 — correcciones de controles persistentes, marquee y onda WhatsApp */n.allies-marquee.js-marquee .allies-track{animation:none!important;will-change:transform}n.allies-marquee.js-marquee:hover .allies-track{animation-play-state:running!important}n.allies-marquee.no-pause:hover .allies-track{animation-play-state:running!important}nn/* El botón queda inmóvil. Los aros viven en una capa hermana por encima de la página. */n.whatsapp.pulse-enabled{animation:none!important}n.whatsapp.pulse-enabled::before, .whatsapp.pulse-enabled::after{animation:none!important;opacity:0!important}n.wa-ripple-layer{position:fixed;z-index:39;pointer-events:none;overflow:visible;border-radius:50%}n.wa-ripple-layer .wa-ripple{position:absolute;inset:0;border-radius:50%;border:3px solid rgba(37,211,102,.72);box-shadow:0 0 18px rgba(37,211,102,.28);opacity:0;transform:scale(1);animation:waRippleVisible var(--wa-wave-duration,1250ms) cubic-bezier(.12,.68,.28,1) forwards}n@keyframes waRippleVisible{0%{opacity:0;transform:scale(1)}8%{opacity:var(--wa-wave-opacity,.68)}70%{opacity:.16}100%{opacity:0;transform:scale(var(--wa-wave-scale,1.95))}}n@media(prefers-reduced-motion:reduce){.wa-ripple-layer .wa-ripple{animation-duration:1ms!important}}nn/* Panel demo */n.controls-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:24px}n.save-status{font-weight:800;color:var(--color-success);opacity:0;transition:opacity .2s ease}n.save-status.visible{opacity:1}n

/* v0.1.14 — ondas WhatsApp visibles y panel horario/campaña */
.whatsapp{overflow:visible!important;isolation:isolate}
.whatsapp.pulse-enabled{animation:none!important}
.whatsapp.pulse-enabled::before, .whatsapp.pulse-enabled::after{
  content:""!important;position:absolute!important;inset:-3px!important;border-radius:50%!important;
  border:3px solid rgba(37,211,102,.72)!important;box-shadow:0 0 14px rgba(37,211,102,.25)!important;
  pointer-events:none!important;z-index:-1!important;opacity:0;
  transform:scale(1);animation:waRippleCss var(--wa-pulse-cycle,2800ms) cubic-bezier(.18,.7,.25,1) infinite!important;
}
.whatsapp.pulse-enabled::after{animation-delay:calc(var(--wa-pulse-cycle,2800ms) * .16)!important}
.whatsapp.outside-hours::before, .whatsapp.outside-hours::after{animation:none!important;opacity:0!important}
@keyframes waRippleCss{
  0%,58%,100%{opacity:0;transform:scale(1)}
  4%{opacity:var(--wa-wave-opacity,.62);transform:scale(1.03)}
  34%{opacity:.08;transform:scale(var(--wa-wave-scale,1.95))}
  40%{opacity:0;transform:scale(var(--wa-wave-scale,1.95))}
}
/* En la demo se mantiene animación aunque el SO pida reducir movimiento; en producción podrá respetarse accesibilidad. */
.allies-marquee.js-marquee .allies-track{animation:none!important}
.schedule-grid{display:grid;gap:10px;margin-top:12px}.schedule-row{display:grid;grid-template-columns:110px 1fr 1fr;gap:12px;align-items:center;background:var(--surface-card);border:1px solid var(--border-default);padding:12px 14px;border-radius:14px}.schedule-row strong{font-family:Inter,sans-serif}.time-range{display:flex;gap:6px;align-items:center}.time-range input{min-width:0;width:100%;padding:8px;border:1px solid var(--border-default);border-radius:9px;background:var(--surface-card)}.campaign-fields{display:grid;gap:10px}.campaign-fields input, .campaign-fields textarea{width:100%;padding:11px 12px;border:1px solid var(--border-default);border-radius:10px;font:inherit}.campaign-fields textarea{min-height:82px;resize:vertical}@media(max-width:680px){.schedule-row{grid-template-columns:1fr}.time-range{width:100%}}

/* v0.1.15 — multi-campaign notifications + scheduled seasonal themes + cookie fade */
.campaign-stack{position:fixed;left:22px;bottom:138px;z-index:47;width:min(340px,calc(100% - 44px));display:grid;gap:10px;pointer-events:none}
.campaign-note{position:relative;background:rgba(255,255,255,.97);border:1px solid var(--border-default);border-radius:18px;padding:16px 16px 15px;box-shadow:0 16px 42px rgba(var(--shadow-ink-rgb),.16);pointer-events:auto;animation:campaignIn .34s cubic-bezier(.2,.8,.2,1) both;overflow:hidden}
.campaign-note::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--brand-primary),var(--brand-accent))}
.campaign-note strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1.08rem;padding-right:24px}
.campaign-note p{font-size:.82rem;line-height:1.42;margin:6px 0 11px}
.campaign-note .btn{padding:9px 12px;font-size:.78rem;border-radius:9px}
.campaign-kicker{display:block;color:var(--brand-primary);font-size:.62rem;letter-spacing:.12em;font-weight:900;margin-bottom:5px}
.campaign-close{position:absolute;right:8px;top:7px;border:0;background:transparent;font-size:1.25rem;line-height:1;cursor:pointer;color:var(--text-secondary)}
.campaign-note.cycling{animation:campaignCycle .45s ease both}
@keyframes campaignIn{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
@keyframes campaignCycle{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}

.cookie{transition:opacity .28s ease,transform .28s ease,visibility .28s ease}
.cookie.cookie-dismiss{opacity:0;transform:translateY(12px) scale(.985);visibility:hidden}

.season-decor{position:fixed;inset:0;pointer-events:none;z-index:35;overflow:hidden}
.season-decor span{position:absolute;top:-8vh;left:calc(8% + var(--i)*21%);font-size:clamp(18px,2vw,30px);opacity:.12;animation:seasonFall calc(12s + var(--i)*1.8s) linear infinite;animation-delay:calc(var(--i)*-2.4s);filter:saturate(.8)}
.season-intensity-medium .season-decor span{opacity:.18}.season-intensity-high .season-decor span{opacity:.25}
@keyframes seasonFall{0%{transform:translate3d(0,-10vh,0) rotate(0)}50%{transform:translate3d(18px,52vh,0) rotate(170deg)}100%{transform:translate3d(-10px,112vh,0) rotate(340deg)}}

/* Seasonal borders: decorative only; brand palette remains intact. */
body.season-christmas .donation-card, body.season-christmas .campaign-note{box-shadow:inset 0 3px 0 rgba(255,255,255,.8),0 14px 40px rgba(var(--shadow-ink-rgb),.1)}
body.season-christmas .donation-card::after{content:"❄";position:absolute;right:10px;top:8px;color:#9cc8dc;opacity:.45;font-size:1rem}
body.season-halloween .donation-card::after{content:"🕸";position:absolute;right:8px;top:7px;opacity:.22;font-size:1.15rem}
body.season-summer .donation-card::after{content:"☀";position:absolute;right:10px;top:8px;color:#e8a328;opacity:.32;font-size:1rem}
body.season-winter .donation-card::after{content:"❄";position:absolute;right:10px;top:8px;color:#8db5c7;opacity:.35;font-size:1rem}
.donation-card{position:relative}

@media(max-width:640px){.campaign-stack{left:14px;right:14px;bottom:160px;width:auto}.campaign-note{padding:14px}.season-decor span{font-size:18px}}
@media(prefers-reduced-motion:reduce){.campaign-note, .season-decor span, .cookie{animation:none!important;transition:none!important}.season-decor{display:none}}

/* v0.1.16 — WhatsApp waves, compact rotating campaigns, persistent cookie choice */
/* Definitive WhatsApp ripple: a fixed sibling layer avoids pseudo-element/z-index conflicts. */
.whatsapp.pulse-enabled, .whatsapp.pulse-enabled::before, .whatsapp.pulse-enabled::after{animation:none!important}
.whatsapp.pulse-enabled::before, .whatsapp.pulse-enabled::after{display:none!important}
.wa-wave-layer{position:fixed;z-index:39;pointer-events:none;overflow:visible;border-radius:50%;--wa-pulse-cycle:2800ms;--wa-wave-scale:2.05;--wa-wave-opacity:.68}
.wa-wave-ring{position:absolute;inset:0;border-radius:50%;border:3px solid rgba(37,211,102,.75);box-shadow:0 0 13px rgba(37,211,102,.22);opacity:0;transform:scale(1);transform-origin:center}
.wa-wave-layer.active .wa-wave-ring{animation:waDropWave var(--wa-pulse-cycle) cubic-bezier(.12,.64,.28,1) infinite}
.wa-wave-layer.active .ring-2{animation-delay:calc(var(--wa-pulse-cycle) * .18)}
@keyframes waDropWave{
  0%,52%,100%{opacity:0;transform:scale(1)}
  3%{opacity:var(--wa-wave-opacity);transform:scale(1.01)}
  34%{opacity:.04;transform:scale(var(--wa-wave-scale))}
  38%{opacity:0;transform:scale(var(--wa-wave-scale))}
}

/* Compact campaign notifications. Title first; detail expands without making the resting UI heavy. */
.campaign-stack{width:min(315px,calc(100% - 44px));overflow:visible}
.campaign-viewport{overflow:hidden;padding:2px 2px 8px;min-height:184px}
.campaign-track{display:grid;gap:8px;will-change:transform,opacity}
.campaign-note{padding:0!important;min-height:52px;border-radius:15px!important;overflow:visible!important;transition:box-shadow .22s ease,border-color .22s ease,transform .22s ease;transform-origin:left center}
.campaign-note::before{border-radius:15px 0 0 15px}
.campaign-compact-row{min-height:52px;display:flex;align-items:center;gap:10px;padding:11px 12px 11px 15px}
.campaign-compact-row strong{font-size:.92rem!important;line-height:1.18;padding:0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.campaign-close{position:static!important;flex:0 0 auto;width:28px;height:28px;display:grid;place-items:center;border-radius:50%!important;background:var(--surface-tinted)!important;color:var(--text-secondary)!important;font-size:1.05rem!important;transition:.18s ease}
.campaign-close:hover{background:var(--surface-highlight)!important;color:var(--brand-primary)!important;transform:rotate(7deg)}
.campaign-expand{position:absolute;left:0;right:0;top:44px;z-index:6;background:rgba(255,255,255,.99);border:1px solid var(--border-default);border-top:0;border-radius:0 0 15px 15px;padding:0 14px 13px;box-shadow:0 18px 36px rgba(var(--shadow-ink-rgb),.16);opacity:0;visibility:hidden;transform:translateY(-6px) scale(.985);transform-origin:top;transition:opacity .2s ease,transform .2s ease,visibility .2s ease}
.campaign-expand p{margin:7px 0 10px;font-size:.80rem;line-height:1.42}
.campaign-expand .btn{padding:8px 11px;font-size:.76rem;border-radius:9px}
.campaign-note:hover, .campaign-note:focus-within, .campaign-note:focus{z-index:7;border-color:var(--brand-accent);box-shadow:0 15px 38px rgba(var(--shadow-ink-rgb),.18);transform:scale(1.025)}
.campaign-note:hover .campaign-expand, .campaign-note:focus-within .campaign-expand, .campaign-note:focus .campaign-expand{opacity:1;visibility:visible;transform:none}
.campaign-track-shift{animation:campaignShiftDown .52s cubic-bezier(.22,.78,.22,1) both}
.campaign-track-enter{animation:campaignEnterTop .28s ease both}
@keyframes campaignShiftDown{0%{transform:translateY(0);opacity:1}70%{transform:translateY(58px);opacity:.55}100%{transform:translateY(66px);opacity:0}}
@keyframes campaignEnterTop{from{transform:translateY(-18px);opacity:0}to{transform:none;opacity:1}}

/* Cookie dismissal stays visible long enough to read as a fade. */
.cookie{transition:opacity .52s ease,transform .52s ease,filter .52s ease,visibility .52s ease!important}
.cookie.cookie-dismiss{opacity:0!important;transform:translateY(14px) scale(.97)!important;filter:blur(2px);visibility:hidden!important}

@media(max-width:640px){
  .campaign-stack{width:auto}
  .campaign-viewport{min-height:175px}
  .campaign-note:hover, .campaign-note:focus-within, .campaign-note:focus{transform:none}
}


/* v0.1.17 — campaign sizes, cookie timeout support, configurable WhatsApp pulse count */
.campaign-note.campaign-size-large{width:min(315px,calc(100vw - 44px))}
.campaign-note.campaign-size-medium{width:min(235px,calc(100vw - 44px))}
.campaign-note.campaign-size-small{width:min(158px,calc(100vw - 44px));border-radius:999px!important}
.campaign-size-small::before{border-radius:999px 0 0 999px!important}
.campaign-size-small .campaign-compact-row{min-height:42px;padding:8px 9px 8px 13px}
.campaign-size-small .campaign-compact-row strong{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.campaign-size-small .campaign-close{width:26px;height:26px;font-size:1rem}
.campaign-size-medium .campaign-compact-row strong{font-size:.9rem}
.campaign-size-medium:hover, .campaign-size-medium:focus-within, .campaign-size-small:hover, .campaign-size-small:focus-within{width:min(315px,calc(100vw - 44px));border-radius:15px!important}
.campaign-size-small:hover::before, .campaign-size-small:focus-within::before{border-radius:15px 0 0 15px!important}
.campaign-size-medium .campaign-expand, .campaign-size-small .campaign-expand{width:min(315px,calc(100vw - 44px));right:auto}
.wa-wave-layer.active .wa-wave-ring{animation:waDropWave var(--wa-pulse-cycle) cubic-bezier(.12,.64,.28,1) infinite;animation-delay:calc(var(--ring-index,0) * 170ms)}
@media(max-width:640px){.campaign-note.campaign-size-large, .campaign-note.campaign-size-medium, .campaign-note.campaign-size-small, .campaign-size-medium:hover, .campaign-size-small:hover{max-width:calc(100vw - 28px)}}


/* v0.1.18 — campañas compactas, marquee de título, expansión en flujo, modal y acceso desde navegación */
.topbar nav .nav-campaign-link{
  position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:34px;
  border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:650;font-size:.94rem;cursor:pointer;
  transform-style:preserve-3d;perspective:500px;transition:color .24s ease,transform .28s cubic-bezier(.2,.8,.2,1);white-space:nowrap
}
.topbar nav .nav-campaign-link:hover, .topbar nav .nav-campaign-link:focus-visible{color:var(--brand-primary);transform:perspective(500px) rotateX(-18deg) translateY(-1px)}
.topbar nav .nav-campaign-link::after{content:"";position:absolute;left:18%;right:18%;bottom:1px;height:2px;border-radius:99px;background:var(--brand-primary);transform:scaleX(0);transition:transform .24s ease}
.topbar nav .nav-campaign-link:hover::after, .topbar nav .nav-campaign-link:focus-visible::after{transform:scaleX(1)}
.topbar nav .nav-campaign-link[hidden]{display:none!important}

/* 30% less resting footprint than v0.1.17. */
.campaign-stack{width:min(222px,calc(100% - 44px))}
.campaign-viewport{overflow:visible;min-height:0;padding:2px 2px 8px}
.campaign-track{display:grid;gap:7px;align-items:start}
.campaign-note{position:relative!important;overflow:hidden!important;transform:none!important;transition:width .24s ease,box-shadow .22s ease,border-color .22s ease,border-radius .22s ease!important}
.campaign-note.campaign-size-large{width:min(220px,calc(100vw - 44px))}
.campaign-note.campaign-size-medium{width:min(165px,calc(100vw - 44px))}
.campaign-note.campaign-size-small{width:min(112px,calc(100vw - 44px));border-radius:999px!important}
.campaign-compact-row{min-height:40px!important;padding:7px 8px 7px 12px!important;gap:6px!important}
.campaign-title-clip{display:block;min-width:0;overflow:hidden;flex:1;mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 91%,transparent 100%)}
.campaign-title-marquee{display:inline-block!important;width:max-content!important;max-width:none!important;padding:0 16px 0 0!important;white-space:nowrap!important;font-size:.74rem!important;line-height:1.1!important;animation:campaignTitleRead 7.2s linear infinite}
.campaign-size-large .campaign-title-marquee{font-size:.82rem!important}
.campaign-close{width:24px!important;height:24px!important;font-size:.92rem!important}
@keyframes campaignTitleRead{0%,12%{transform:translateX(0)}88%,100%{transform:translateX(calc(-100% + 96px))}}

/* Detail expansion is in normal flow: it pushes the notifications below instead of covering them. */
.campaign-expand{position:static!important;width:auto!important;right:auto!important;top:auto!important;z-index:auto!important;border:0!important;border-top:1px solid transparent!important;border-radius:0!important;box-shadow:none!important;padding:0 11px!important;max-height:0;opacity:0;visibility:hidden;overflow:hidden;transform:none!important;transition:max-height .28s ease,opacity .2s ease,padding .28s ease,border-color .2s ease!important}
.campaign-note:hover, .campaign-note:focus-within, .campaign-note:focus{width:min(270px,calc(100vw - 44px))!important;border-radius:15px!important;box-shadow:0 15px 38px rgba(var(--shadow-ink-rgb),.18);border-color:var(--brand-accent);z-index:auto!important}
.campaign-note:hover .campaign-expand, .campaign-note:focus-within .campaign-expand, .campaign-note:focus .campaign-expand{max-height:170px;opacity:1;visibility:visible;padding:7px 11px 11px!important;border-top-color:var(--border-default)!important}
.campaign-note:hover .campaign-title-clip, .campaign-note:focus-within .campaign-title-clip{mask-image:none}
.campaign-note:hover .campaign-title-marquee, .campaign-note:focus-within .campaign-title-marquee{animation:none;white-space:normal!important;width:auto!important;font-size:.82rem!important}
.campaign-note:hover::before, .campaign-note:focus-within::before{border-radius:15px 0 0 15px!important}
.campaign-expand p{margin:0 0 8px;font-size:.73rem;line-height:1.35}
.campaign-expand .btn{padding:7px 9px;font-size:.72rem}

/* Vertical rotation continues top -> bottom when more than three are active. */
@keyframes campaignShiftDown{0%{transform:translateY(0);opacity:1}72%{transform:translateY(46px);opacity:.5}100%{transform:translateY(56px);opacity:0}}
@keyframes campaignEnterTop{from{transform:translateY(-20px);opacity:0}to{transform:none;opacity:1}}

.campaign-modal{position:fixed;inset:0;z-index:150;display:grid;place-items:center;padding:24px}
.campaign-modal[hidden]{display:none!important}
.campaign-modal-backdrop{position:absolute;inset:0;background:rgba(13,11,10,.66);backdrop-filter:blur(4px)}
.campaign-dialog{position:relative;z-index:1;width:min(700px,100%);max-height:min(82vh,760px);display:flex;flex-direction:column;background:var(--surface-base);border:1px solid rgba(255,255,255,.55);border-radius:26px;box-shadow:0 30px 90px rgba(0,0,0,.35);overflow:hidden;animation:campaignModalIn .22s ease both}
.campaign-dialog-scroll{padding:34px 38px 24px;overflow:auto}
.campaign-dialog h2{font-size:clamp(2rem,4vw,3.15rem);margin:.25em 0 .4em}
.campaign-modal-summary{font-size:1.02rem;color:var(--text-primary);font-weight:700;background:var(--surface-tinted);border-left:4px solid var(--brand-primary);padding:13px 15px;border-radius:10px}
.campaign-modal-detail{color:var(--text-muted);line-height:1.65}
.campaign-modal-close{position:absolute;right:16px;top:14px;width:38px;height:38px;border:0;border-radius:50%;background:var(--surface-card);color:var(--text-primary);font-size:1.5rem;cursor:pointer;box-shadow:0 5px 18px rgba(0,0,0,.10);z-index:2}
.campaign-modal-close:hover{transform:rotate(8deg);color:var(--brand-primary)}
.campaign-dialog-actions{padding:14px 24px 20px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--border-default);background:var(--surface-card)}
.campaign-chooser{display:grid;gap:10px}
.campaign-choice{display:grid;gap:5px;text-align:left;width:100%;border:1px solid var(--border-default);background:var(--surface-card);border-radius:15px;padding:14px 16px;cursor:pointer;transition:.2s ease}
.campaign-choice:hover{border-color:var(--brand-accent);transform:translateY(-2px);box-shadow:0 10px 24px rgba(var(--shadow-ink-rgb),.08)}
.campaign-choice strong{font-family:Georgia,"Times New Roman",serif;font-size:1.05rem}
.campaign-choice span{color:var(--text-muted);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.campaign-modal-opened{overflow:hidden}
@keyframes campaignModalIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}

@media(max-width:960px){.topbar.open nav .nav-campaign-link{display:inline-flex;justify-content:flex-start}}
@media(max-width:640px){
  .campaign-stack{left:14px;right:auto;width:min(190px,calc(100vw - 28px))}
  .campaign-note.campaign-size-large{width:min(190px,calc(100vw - 28px))}
  .campaign-note.campaign-size-medium{width:min(150px,calc(100vw - 28px))}
  .campaign-note.campaign-size-small{width:min(108px,calc(100vw - 28px))}
  .campaign-note:hover, .campaign-note:focus-within, .campaign-note:focus{width:min(250px,calc(100vw - 28px))!important}
  .campaign-modal{padding:12px}.campaign-dialog{max-height:88vh;border-radius:20px}.campaign-dialog-scroll{padding:28px 22px 18px}.campaign-dialog-actions{padding:12px 18px 16px}
}
@media(prefers-reduced-motion:reduce){.campaign-title-marquee{animation:none!important}.campaign-note, .campaign-expand, .campaign-dialog{transition:none!important;animation:none!important}}


/* v0.1.19 — ticker de títulos de campaña + nieve ambiental navideña */
.campaign-title-clip{
  position:relative;
  overflow:hidden;
  mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
}
.campaign-title-marquee{
  display:inline-block!important;
  width:max-content!important;
  min-width:max-content!important;
  max-width:none!important;
  padding-right:28px!important;
  white-space:nowrap!important;
  will-change:transform;
  animation:campaignTitleTicker 7.4s linear infinite!important;
}
@keyframes campaignTitleTicker{
  0%{transform:translateX(110%)}
  100%{transform:translateX(-110%)}
}
.campaign-note:hover .campaign-title-marquee, .campaign-note:focus-within .campaign-title-marquee{
  animation:none!important;
  transform:none!important;
  white-space:normal!important;
  width:auto!important;
}

/* Capa estacional: la nieve no bloquea clics y queda por debajo de modales/controles. */
.season-decor{position:fixed;inset:0;pointer-events:none;z-index:9998;overflow:hidden}
.season-decor .snowflake{
  position:absolute;
  top:-12vh;
  left:var(--left);
  width:var(--size);
  height:var(--size);
  display:grid;
  place-items:center;
  color:rgba(248,252,255,var(--snow-alpha,.72));
  text-shadow:0 1px 2px rgba(43,68,82,.34),0 0 9px rgba(125,183,213,.30);
  font-size:var(--size);
  line-height:1;
  opacity:0;
  animation:snowFall var(--duration) linear infinite;
  animation-delay:var(--delay);
  will-change:transform,opacity;
}
body.season-christmas.season-intensity-low .snowflake{--snow-alpha:.56}
body.season-christmas.season-intensity-medium .snowflake{--snow-alpha:.72}
body.season-christmas.season-intensity-high .snowflake{--snow-alpha:.88}
@keyframes snowFall{
  0%{transform:translate3d(0,-8vh,0) rotate(0deg);opacity:0}
  8%{opacity:1}
  50%{transform:translate3d(var(--drift),52vh,0) rotate(180deg);opacity:.92}
  92%{opacity:.72}
  100%{transform:translate3d(calc(var(--drift) * -0.35),112vh,0) rotate(360deg);opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .campaign-title-marquee{animation:none!important;transform:none!important}
  .season-decor .snowflake{animation:none!important;display:none!important}
}

/* v0.1.20: temas independientes + prioridad */
.season-decor .season-symbol{position:absolute;top:8%;left:calc(8% + (var(--i) * 15%));font-size:clamp(20px,2.4vw,36px);opacity:.22;filter:drop-shadow(0 2px 5px rgba(0,0,0,.12));animation:seasonFloat 8s ease-in-out infinite;animation-delay:calc(var(--i) * -1s)}
@keyframes seasonFloat{50%{transform:translateY(18px) rotate(8deg)}}
nn/* v0.1.21: nieve realmente visible sobre toda la UI, sin bloquear interacción. */
#season-decor.season-decor{
  position:fixed!important;
  inset:0!important;
  z-index:2147483000!important;
  pointer-events:none!important;
  overflow:hidden!important;
  isolation:isolate;
}
#season-decor .snowflake{
  position:absolute!important;
  top:-10vh!important;
  left:var(--left)!important;
  display:block!important;
  width:auto!important;
  height:auto!important;
  font-family:"Segoe UI Symbol","Apple Symbols",sans-serif!important;
  font-size:var(--size)!important;
  line-height:1!important;
  color:rgba(220,239,250,var(--snow-alpha,.78))!important;
  text-shadow:0 1px 2px rgba(26,61,80,.58),0 0 8px rgba(255,255,255,.98),0 0 14px rgba(112,180,215,.40)!important;
  opacity:0!important;
  animation:snowFallVisible var(--duration) linear infinite!important;
  animation-delay:var(--delay)!important;
  will-change:transform,opacity;
}
body.season-christmas.season-intensity-low #season-decor .snowflake{--snow-alpha:.64}
body.season-christmas.season-intensity-medium #season-decor .snowflake{--snow-alpha:.82}
body.season-christmas.season-intensity-high #season-decor .snowflake{--snow-alpha:.96}
@keyframes snowFallVisible{
  0%{transform:translate3d(0,-12vh,0) rotate(0deg);opacity:0}
  5%{opacity:.92}
  48%{transform:translate3d(var(--drift),52vh,0) rotate(170deg);opacity:1}
  94%{opacity:.8}
  100%{transform:translate3d(0,116vh,0) rotate(340deg);opacity:0}
}
/* Incluso con 'reducir movimiento', mantenemos una versión muy lenta y discreta si el administrador activó el tema. */
@media(prefers-reduced-motion:reduce){
  body.season-christmas #season-decor .snowflake{
    display:block!important;
    animation-duration:24s!important;
  }
}

/* v0.1.22 — aliados configurables */
.ally-logo{grid-row:1/span 2;width:40px;height:40px;border-radius:12px;object-fit:contain;background:var(--surface-card);padding:4px;border:1px solid var(--border-default)}

/* v0.1.23 — tamaño libre de campañas, ticker fiable y meta de corazones */
.campaign-stack{width:min(460px,calc(100% - 44px))!important}
.campaign-note.campaign-size-large, .campaign-note.campaign-size-medium, .campaign-note.campaign-size-small{
  width:min(var(--campaign-width,250px),calc(100vw - 44px))!important;
  max-width:calc(100vw - 44px)!important;
}
.campaign-note:hover, .campaign-note:focus-within, .campaign-note:focus{
  width:min(calc(var(--campaign-width,250px) + 110px),calc(100vw - 44px))!important;
}
.campaign-title-marquee{animation:none!important;transform:translateX(0)!important}
.campaign-title-marquee.is-scrolling{
  animation:campaignTitleDynamic var(--campaign-marquee-duration,8s) linear infinite!important;
}
@keyframes campaignTitleDynamic{
  0%,14%{transform:translateX(0)}
  86%,100%{transform:translateX(var(--campaign-marquee-distance,-120px))}
}
.campaign-note:hover .campaign-title-marquee, .campaign-note:focus-within .campaign-title-marquee{
  animation:none!important;transform:none!important;
}

:root{--goal-color:var(--brand-primary);--goal-thickness:22px}
.goal-progress{min-width:320px;overflow:visible}
.goal-labels{display:flex;justify-content:space-between;align-items:baseline;gap:18px;min-height:27px}
.goal-labels strong, .goal-labels span{font-size:.95rem;line-height:1.15;font-weight:800;color:var(--text-primary)}
.goal-labels [hidden], #goal-percent[hidden]{display:none!important}
.heart-progress-wrap{position:relative;margin:18px 25px 9px 0;padding-right:14px}
.heart-progress-wrap .progress{height:var(--goal-thickness);border-radius:999px;overflow:hidden;margin:0;background:var(--progress-track);box-shadow:inset 0 1px 2px rgba(50,30,20,.08)}
.heart-progress-wrap .progress span{border-radius:999px;box-shadow:0 0 14px color-mix(in srgb,var(--goal-color) 30%, transparent)}
.goal-heart{position:absolute;top:50%;display:grid;place-items:center;transform:translate(-50%,-50%);color:var(--goal-color);filter:drop-shadow(0 3px 7px rgba(80,35,15,.22));z-index:2;line-height:1;transition:left 1s ease}
.goal-heart-current{left:-11px;font-size:28px;text-shadow:0 0 0 var(--surface-card)}
.goal-heart-target{right:-23px;transform:translateY(-50%);font-size:42px}
#goal-percent{display:block;margin-top:8px;font-weight:900;color:var(--goal-color);font-size:1rem}
@media(max-width:760px){.goal-progress{min-width:0}.goal-card{grid-template-columns:1fr}.heart-progress-wrap{margin-right:22px}}

/* v0.1.24 — aviso de cookies compacto */
.cookie{width:min(340px,calc(100vw - 28px))!important;grid-template-columns:1fr!important;grid-template-areas:"copy" "actions" "details"!important;row-gap:9px!important;padding:14px!important}.cookie:has(.cookie-details:not([hidden])){max-width:340px!important}.cookie-actions{justify-content:flex-end!important;flex-wrap:wrap}.cookie-details{margin-top:0!important}@media(max-width:380px){.cookie{left:14px!important;right:14px!important;width:auto!important}}

/* v0.1.25 — aviso compacto con acciones centradas y menor altura */
.cookie{row-gap:5px!important;padding:11px 13px 10px!important;align-content:start!important;}
.cookie-copy>p{font-size:.78rem!important;line-height:1.32!important;margin:0!important;}
.cookie-more{margin-top:3px!important;line-height:1.2!important;}
.cookie-actions{justify-content:center!important;gap:12px!important;margin:0!important;align-self:center!important;}
.cookie #cookie-reject{padding:7px 11px!important;font-size:.82rem!important;}
.cookie #cookie-accept{padding:9px 15px!important;font-size:.84rem!important;}
.cookie-details{margin-top:4px!important;}
@media(max-width:380px){.cookie{padding:11px 12px!important}.cookie-actions{gap:8px!important}}

/* v0.1.26 — aviso horizontal discreto: texto a la izquierda, acciones a la derecha. */
.cookie{
  width:min(395px,calc(100vw - 24px))!important;
  max-width:none!important;
  left:12px!important;right:auto!important;bottom:12px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 92px!important;
  grid-template-areas:"copy actions" "details details"!important;
  column-gap:9px!important;row-gap:0!important;
  align-items:center!important;
  padding:10px 11px!important;
  border-radius:15px!important;
}
.cookie-copy>p{font-size:.71rem!important;line-height:1.36!important;letter-spacing:0!important}
.cookie-more{font-size:.7rem!important;margin-top:4px!important}
.cookie-actions{
  grid-area:actions!important;display:flex!important;flex-direction:column!important;
  align-items:stretch!important;justify-content:center!important;
  gap:4px!important;margin:0!important;min-width:0!important;
}
.cookie #cookie-reject, .cookie #cookie-accept{
  width:100%!important;min-height:31px!important;
  padding:6px 5px!important;font-size:.73rem!important;line-height:1.1!important;
  text-align:center!important;
}
.cookie-details{grid-area:details!important;margin-top:8px!important;padding-top:8px!important}
.cookie-details p{font-size:.72rem!important;line-height:1.45!important}
.cookie:has(.cookie-details:not([hidden])){max-width:none!important}
@media(max-width:430px){
  .cookie{width:min(350px,calc(100vw - 20px))!important;left:10px!important;right:auto!important;bottom:10px!important;grid-template-columns:minmax(0,1fr) 82px!important;padding:9px 10px!important;column-gap:7px!important}
  .cookie-copy>p{font-size:.69rem!important}
  .cookie #cookie-reject, .cookie #cookie-accept{font-size:.7rem!important;min-height:30px!important}
}

/* v0.1.27 — respetar atributo hidden pese a display:grid !important */
.cookie[hidden], .privacy-modal[hidden], .cookie-details[hidden]{display:none!important;}

/* v0.1.28 — aliados 1-3 estáticos y centrados; desde 4 movimiento continuo. */
.allies-marquee.allies-static{mask-image:none!important;-webkit-mask-image:none!important;overflow:visible}
.allies-marquee.allies-static .allies-track{display:flex;justify-content:center;align-items:stretch;width:100%;max-width:1180px;margin:0 auto;transform:none!important;animation:none!important;will-change:auto;flex-wrap:wrap}
.allies-marquee.allies-static .ally{flex:0 1 285px;min-width:0;width:min(285px,100%)}
@media(max-width:640px){.allies-marquee.allies-static .allies-track{padding:0 14px;gap:12px}.allies-marquee.allies-static .ally{flex:0 1 min(285px,100%)}}

/* v0.1.29 — aviso aún más compacto, aceptar arriba, rechazar debajo */
.cookie:not([hidden]){width:min(350px,calc(100vw - 20px))!important;grid-template-columns:minmax(0,1fr) 83px!important;column-gap:7px!important;padding:9px 10px!important;}
.cookie-copy>p{font-size:.69rem!important;line-height:1.32!important;}
.cookie-actions{gap:4px!important;}
.cookie #cookie-accept{order:0;min-height:32px!important;width:100%!important;padding:7px 5px!important;}
.cookie #cookie-reject{order:1;min-height:32px!important;width:100%!important;background:transparent!important;padding:6px 4px!important;font-size:.7rem!important;}
@media(max-width:430px){.cookie:not([hidden]){width:min(330px,calc(100vw - 20px))!important;grid-template-columns:minmax(0,1fr) 79px!important;}}

/* v0.1.30: panel de video de tamaño estable, título adaptativo y reproductor integrado */
@media(min-width:801px){.video-stage{height:430px;min-height:430px;max-height:430px}.video-stage-art, .video-stage-copy{min-height:0;height:100%}}
.video-stage{overflow:hidden}.video-stage-copy{min-width:0;overflow:hidden;gap:10px;padding:28px 36px}
.video-stage-copy h3{font-size:clamp(1.55rem,2.55vw,2.65rem);line-height:1.1;margin:0;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.video-stage-copy p{font-size:.95rem;line-height:1.4;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.video-stage-copy .eyebrow{font-size:.68rem;letter-spacing:.12em;line-height:1.4}
.video-stage-copy .btn{margin-top:4px;align-self:flex-start;max-width:100%;white-space:normal}
.video-stage-art iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:3}
.video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;border:0;border-radius:50%;background:var(--brand-primary);color:white;width:72px;height:72px;font-size:28px;cursor:pointer}
@media(max-width:800px){.video-stage{height:auto;max-height:none}.video-stage-art{height:240px;min-height:240px}.video-stage-copy{min-height:230px;max-height:310px;padding:24px}.video-stage-copy h3{font-size:clamp(1.5rem,5vw,2.1rem)}}

/* v0.1.36 — navegación compacta: distancia controlada entre marca y enlaces. */
@media (min-width:961px){
  .topbar.scrolled .brand{margin-right:0!important;flex-shrink:0}
  .topbar.scrolled nav{margin-left:24px!important;flex-shrink:0}
  
}
/* Los enlaces ocultos por configuración no deben ser reactivados por display de navegación. */
.topbar nav #nav-media-link[hidden], .topbar nav #nav-campaign-link[hidden], [data-module][hidden]{display:none!important}

/* v0.1.40 — formulario más claro y privacidad resumida */
.selected-summary[hidden]{display:none!important}
.form-whatsapp-hint{font-size:.88rem;line-height:1.55;color:var(--text-secondary);margin:15px 0 0;max-width:480px}
.form-whatsapp-hint strong{color:var(--text-secondary);font-weight:750}
.privacy-dialog-short{width:min(540px,100%);max-height:min(82vh,650px)}
.privacy-dialog-short h2{font-size:clamp(1.7rem,3vw,2.4rem)}
.privacy-dialog-short .privacy-dialog-scroll{padding:30px 32px 20px}
.privacy-dialog-short p{margin:0 0 15px;line-height:1.55}
.privacy-dialog-short .privacy-summary-note{font-size:.85rem;border-top:1px solid var(--border-default);padding-top:12px;margin-bottom:0}
.privacy-summary-note a{color:var(--brand-primary);font-weight:700}
@media(max-width:640px){.privacy-dialog-short .privacy-dialog-scroll{padding:26px 20px 16px}}

/* v0.1.41 - Historias de impacto interactivas */
.story-open{display:block;width:100%;height:100%;border:0;padding:0;text-align:left;cursor:pointer;color:inherit;font:inherit;background:transparent;position:relative;overflow:hidden}
.story-open:focus-visible{outline:3px solid var(--brand-primary);outline-offset:4px}
.story-open .story-caption{position:absolute;bottom:0;left:0;right:0;display:flex;flex-direction:column;gap:4px;padding:20px;background:linear-gradient(transparent,rgba(0,0,0,.83));color:white}
.story-open .story-caption span{font-size:.9rem}.story-open .story-caption em{font-style:normal;font-size:.76rem;opacity:.88}
.story-modal{position:fixed;inset:0;z-index:170;display:grid;place-items:center;padding:18px}
.story-modal[hidden]{display:none!important}.story-modal-backdrop{position:absolute;inset:0;background:rgba(13,11,10,.76);backdrop-filter:blur(5px)}
.story-dialog{position:relative;z-index:1;width:min(720px,100%);max-height:90vh;overflow:hidden;background:var(--surface-input);border-radius:24px;box-shadow:0 25px 90px #0006}
.story-dialog-scroll{max-height:90vh;overflow-y:auto}.story-dialog-scroll>img{display:block;width:100%;max-height:48vh;object-fit:contain;background:var(--surface-dark)}
.story-dialog-copy{padding:24px 30px 32px}.story-dialog-copy h2{margin:8px 0 12px}.story-dialog-copy p{line-height:1.65;white-space:pre-line;color:var(--text-secondary)}
.story-dialog-copy dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 16px;margin:18px 0 0}.story-dialog-copy dt{font-weight:700}.story-dialog-copy dd{margin:0;color:var(--text-secondary)}
.story-modal-close{position:absolute;right:14px;top:14px;z-index:3;border:0;border-radius:50%;width:42px;height:42px;background:white;color:var(--text-primary);font-size:28px;cursor:pointer;box-shadow:0 4px 18px #0003}
body.story-modal-open{overflow:hidden}.trust-message{margin-top:22px;padding:20px;border:1px solid var(--border-default);border-radius:18px;background:var(--surface-muted)}.trust-message h3{font-size:1.22rem;margin:0 0 8px}.trust-message p{margin:0 0 14px}.trust-message .btn{display:inline-flex}
@media(max-width:600px){.story-dialog-copy{padding:20px}.story-dialog-scroll>img{max-height:40vh}.story-modal{padding:10px}}

/* v0.1.42: módulo de confianza compacto y video introductorio */
.trust-message{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;margin-top:18px}
.trust-message>div{min-width:0;flex:1}.trust-message h3{font-size:1.16rem;line-height:1.3;margin:0 0 6px}
.trust-message p{margin:0;font-size:.9rem;line-height:1.5}
.trust-message .btn{flex-shrink:0;white-space:nowrap;padding:12px 15px;font-size:.87rem}
#videos-intro{color:var(--text-muted);font-size:1rem;line-height:1.6;margin-top:12px}
.company-public-consent[hidden]{display:none!important}
.company-public-consent{margin:0 0 16px;font-weight:500}
@media(max-width:700px){.trust-message{flex-wrap:wrap;gap:10px}.trust-message .btn{margin-left:auto}}

/* v0.1.43: descripción de Media idéntica a la de Aliados */
#videos-intro{font-size:1.05rem;line-height:1.55;color:var(--text-muted);font-weight:400;font-family:inherit;margin-top:1em}

/* v0.1.57 — meta mensual compacta, conservando opciones de configuración y reveal */
[data-module="monthlyGoal"]{padding:34px 0}
[data-module="monthlyGoal"] .goal-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 24px;align-items:center;padding:22px 28px;border-radius:22px}
[data-module="monthlyGoal"] .goal-heading{grid-column:1/-1;display:flex;align-items:baseline;flex-wrap:wrap;gap:7px 16px}
[data-module="monthlyGoal"] .goal-heading .eyebrow{font-size:.68rem;white-space:nowrap}
[data-module="monthlyGoal"] #goal-title{font-size:clamp(1.35rem,2.4vw,1.95rem);line-height:1.15;letter-spacing:-.025em;margin:0}
[data-module="monthlyGoal"] #goal-note{font-size:.86rem;margin:0;color:var(--text-muted)}
[data-module="monthlyGoal"] .goal-progress{min-width:0;width:100%;max-width:none}
[data-module="monthlyGoal"] .goal-labels{min-height:20px;margin-bottom:2px}
[data-module="monthlyGoal"] .goal-labels strong, [data-module="monthlyGoal"] .goal-labels span{font-size:.84rem}
[data-module="monthlyGoal"] .heart-progress-wrap{margin:14px 27px 5px 13px;padding:0}
[data-module="monthlyGoal"] .goal-heart-current{font-size:26px;left:0;transition:left 1.1s cubic-bezier(.2,.7,.2,1)}
[data-module="monthlyGoal"] .goal-heart-target{font-size:43px;right:-27px;color:var(--goal-color);font-weight:800;filter:drop-shadow(0 2px 3px rgba(80,35,15,.12))}
[data-module="monthlyGoal"] .progress span{transition:width 1.1s cubic-bezier(.2,.7,.2,1)}
[data-module="monthlyGoal"] #goal-percent{font-size:.82rem;margin-top:4px}
[data-module="monthlyGoal"] .btn{padding:11px 16px;white-space:nowrap;font-size:.87rem}
.metric strong{font-variant-numeric:tabular-nums}
@media(max-width:760px){[data-module="monthlyGoal"]{padding:26px 0}[data-module="monthlyGoal"] .goal-card{grid-template-columns:1fr;padding:20px;gap:14px}[data-module="monthlyGoal"] .goal-heading{display:block}[data-module="monthlyGoal"] #goal-title{margin:4px 0}[data-module="monthlyGoal"] .goal-heading .eyebrow{font-size:.67rem}[data-module="monthlyGoal"] .btn{justify-self:start}}
@media(prefers-reduced-motion:reduce){[data-module="monthlyGoal"] .goal-heart-current, [data-module="monthlyGoal"] .progress span{transition:none}}

/* v0.1.59 — frasco PNG transparente; el contenido se dibuja detrás del vidrio. */
.donation-jar{--jar-lift:0px;position:fixed;left:16px;bottom:calc(18px + var(--jar-lift));width:145px;z-index:61;pointer-events:none;text-align:center;transition:bottom .42s cubic-bezier(.2,.7,.2,1)}
.donation-jar[hidden], #monthly-goal-section[hidden]{display:none!important}
.jar-topline{display:flex;flex-direction:column;align-items:center;gap:1px;margin:0 0 3px;font-weight:900;letter-spacing:.055em;color:var(--brand-primary-hover);text-shadow:0 1px 2px var(--surface-card),0 0 5px var(--surface-card)}
.jar-topline span{font-size:12px}.jar-topline strong{font-size:14px}
.jar-vessel{width:100%;aspect-ratio:550/842;position:relative}
.jar-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:3;pointer-events:none}
.jar-contents{position:absolute;left:12%;right:12%;top:26%;bottom:9%;overflow:hidden;z-index:2;clip-path:polygon(10% 0,90% 0,99% 13%,99% 86%,90% 98%,10% 98%,1% 86%,1% 13%)}
.jar-items, .jar-drop-layer{position:absolute;inset:0;overflow:hidden}
.jar-item{position:absolute;line-height:1;font-size:17px;transform-origin:center;filter:drop-shadow(0 1px 1px #fff9)}
.jar-falling{position:absolute;top:-25px;font-size:18px;line-height:1;animation:jarFall .46s cubic-bezier(.22,.66,.44,1) forwards;filter:drop-shadow(0 1px 1px #fff9)}
@keyframes jarFall{0%{transform:translateY(0) rotate(-20deg);opacity:0}10%{opacity:1}78%{transform:translateY(var(--fall)) rotate(var(--tilt));opacity:1}90%{transform:translateY(calc(var(--fall) - 8px)) rotate(var(--tilt));opacity:1}100%{transform:translateY(var(--fall)) rotate(var(--tilt));opacity:0}}
@media(max-width:640px){.donation-jar{width:110px;left:8px;bottom:calc(12px + var(--jar-lift))}.jar-topline span{font-size:10px}.jar-topline strong{font-size:12px}.jar-item{font-size:13px}.jar-falling{font-size:14px}}
@media(prefers-reduced-motion:reduce){.donation-jar{transition:none}.jar-falling{display:none}}


/* v0.1.60: lienzo transparente con gravedad y colisiones para los objetos del frasco. */
.jar-physics{display:block;position:absolute;inset:0;width:100%;height:100%;background:transparent;pointer-events:none}

/* v0.1.61 — tamaños configurables y zona de dibujo más cercana al vidrio. */
.donation-jar[data-jar-size="large"]{--jar-width:145px}
.donation-jar[data-jar-size="medium"]{--jar-width:116px}
.donation-jar[data-jar-size="small"]{--jar-width:72.5px}
.donation-jar{width:var(--jar-width,145px)}
.jar-contents{left:7%;right:7%;top:24%;bottom:7%;clip-path:none;overflow:hidden;border-radius:17% 17% 15% 15% / 9% 9% 12% 12%}
@media(max-width:640px){.donation-jar[data-jar-size="large"]{--jar-width:110px}.donation-jar[data-jar-size="medium"]{--jar-width:88px}.donation-jar[data-jar-size="small"]{--jar-width:55px}}

/* v0.1.62: margen lateral constante, independiente del escalado del frasco. */
.donation-jar{left:22px}
@media(max-width:640px){.donation-jar{left:16px}}

/* v0.1.63: centro lateral fijo para los tres tamaños del frasco. */
.donation-jar{left:calc(22px + (145px - var(--jar-width,145px))/2)}
@media(max-width:640px){.donation-jar{left:calc(16px + (110px - var(--jar-width,110px))/2)}}

/* v0.1.64: centro fijo en la zona libre izquierda, para todos los tamaños. */
.donation-jar{left:calc(8px + (145px - var(--jar-width,145px))/2)}
@media(max-width:640px){.donation-jar{left:calc(8px + (110px - var(--jar-width,110px))/2)}}

/* v0.1.68: tamaño configurable de emojis; la boca del frasco conserva el vidrio PNG encima. */
.jar-topline span{overflow-wrap:anywhere;max-width:100%}

/* v0.1.69: capa de desborde delante del vidrio, únicamente cuando la meta llega al 100%. */
.jar-overflow-physics{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;background:transparent;overflow:visible}

/* v0.1.70: regalos del mismo tamaño sobre la boca y espacio seguro para el título. */
.jar-overflow-physics{inset:auto;position:absolute;z-index:5;pointer-events:none;background:transparent;max-width:none;max-height:none}
.donation-jar.jar-at-capacity .jar-topline{margin-bottom:calc(var(--jar-width,145px)*.26);position:relative;z-index:6}

/* v0.1.72: reserva vertical para regalos sobre la boca, sin tapar el texto. */
.donation-jar.jar-at-capacity .jar-topline{margin-bottom:calc(var(--jar-width,145px)*.36)}

/* v0.1.73: la pila superior tiene una sola fila (4 regalos).
   El usuario puede bajar el encabezado sin desplazar el frasco. */
.donation-jar .jar-topline{position:relative;top:var(--jar-title-lower,0px);margin-bottom:calc(3px - var(--jar-title-lower,0px));z-index:6}
.donation-jar.jar-at-capacity .jar-topline{margin-bottom:calc(var(--jar-width,145px)*.36 - var(--jar-title-lower,0px))}

/* v0.1.74: el título no se parte al escoger frasco pequeño. */
.donation-jar .jar-topline span{white-space:nowrap;overflow-wrap:normal;word-break:normal;max-width:none;line-height:1.15}

/* v0.1.94: una única capa de partículas, detrás del PNG, sin máscaras rectas. */
.jar-vessel .jar-unified-physics{z-index:2!important;pointer-events:none}
.jar-vessel .jar-photo{z-index:3}
.jar-contents .jar-physics{visibility:hidden}
.jar-contents{overflow:visible}

/* v0.2.03 — Adaptación responsive integral, sin alterar la física del frasco. */
.story-dialog{width:min(820px,100%)}
.story-dialog-scroll>img{max-height:56vh}
.story-dialog-copy{padding:16px 24px 22px}
.story-dialog-copy h2{font-size:clamp(1.35rem,2.5vw,2rem);line-height:1.12;margin:4px 0 8px}
.story-dialog-copy p{font-size:.91rem;line-height:1.42;margin:0 0 8px}
.story-dialog-copy dl{margin-top:10px;font-size:.83rem;gap:5px 12px}
.video-mini{flex-basis:clamp(118px,18vw,155px);min-height:86px;padding:10px 11px;border-radius:14px}
.video-mini b{font-size:.66rem;margin-bottom:4px}
.video-mini strong{font-size:.83rem;line-height:1.18;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.video-mini small{font-size:.66rem;margin-top:5px}
.ally{min-width:185px;padding:13px;border-radius:14px}
.ally strong{font-size:.85rem;line-height:1.2}
.ally small{font-size:.7rem;line-height:1.3}
@media(max-width:960px){
  .menu-btn{display:inline-flex;align-items:center;justify-content:center;min-width:84px;min-height:44px;padding:9px 17px;border:1px solid var(--border-default);border-radius:999px;background:var(--surface-card);color:var(--brand-primary);font:800 .85rem Inter,system-ui,sans-serif;letter-spacing:.02em;box-shadow:0 5px 18px rgba(var(--shadow-ink-rgb),.10);transition:background .22s,color .22s,box-shadow .22s,transform .22s}
  .menu-btn:active{transform:scale(.96)}.menu-btn:focus-visible{outline:3px solid var(--brand-accent);outline-offset:3px}
  .topbar.open .menu-btn{background:var(--brand-primary);color:white;box-shadow:0 7px 22px rgba(var(--brand-primary-rgb),.25)}
  .topbar nav{display:grid!important;position:absolute;top:calc(100% + 6px);left:14px;right:14px;gap:3px;padding:12px;border:1px solid var(--border-default);border-radius:22px;background:var(--surface-base);box-shadow:0 22px 48px rgba(var(--shadow-ink-rgb),.20);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-9px) scale(.985);transform-origin:top center;transition:opacity .23s ease,transform .23s ease,visibility .23s}
  .topbar.open nav{top:calc(100% + 6px);left:14px;right:14px;opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}
  .topbar nav a{display:flex;align-items:center;min-height:43px;padding:10px 15px;border-radius:12px;font-size:.94rem;transition:background .18s,color .18s,transform .18s}
  .topbar nav a:hover, .topbar nav a:focus-visible, .topbar nav a:active{background:var(--surface-tinted);color:var(--brand-primary);transform:translateX(3px)}
  .topbar nav a[aria-current="location"]{background:var(--surface-tinted);color:var(--brand-primary)}
  
}
@media(max-width:640px){
  .section-pad{padding:46px 0}.section-head{margin-bottom:22px}.section-head h2{font-size:clamp(1.9rem,8vw,2.55rem)}.section-head p{font-size:.91rem;line-height:1.45}
  .donation-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .donation-card{min-width:0;min-height:150px;padding:11px 7px;gap:6px;border-radius:14px;align-content:start;text-align:center}
  .donation-card .icon{font-size:1.55rem}.donation-card strong{font-size:clamp(.72rem,2.65vw,.91rem);line-height:1.12;overflow-wrap:anywhere}
  .donation-card small{font-size:.69rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .donation-card>span:last-child{font-size:.69rem;align-self:end}.donation-card:hover, .donation-card.selected{transform:none}
  .module-strip{padding:19px 0}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .metric{min-width:0;text-align:center}.metric strong{display:block;font-size:clamp(.96rem,4.3vw,1.5rem);letter-spacing:-.05em;white-space:nowrap;line-height:1.2}
  .metric span{font-size:clamp(.49rem,1.85vw,.66rem);line-height:1.15;letter-spacing:0;overflow-wrap:anywhere;margin-top:4px}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 10px}
  .step{min-width:0;padding:43px 10px 10px;border:1px solid var(--border-default);border-radius:16px;background:var(--surface-card)}
  .step b{width:31px;height:31px;top:9px;left:10px;font-size:.9rem}.step:after{display:none}
  .step h3{font-size:clamp(.95rem,3.5vw,1.13rem);line-height:1.17;margin:5px 0 6px}.step p{font-size:.77rem;line-height:1.35;margin:0}
  .allies-track{gap:7px}.ally{min-width:110px;width:110px;max-width:110px;padding:8px;border-radius:11px}
  .ally-logo{width:27px;height:27px;border-radius:7px}.ally strong{font-size:.69rem;overflow-wrap:anywhere}.ally small{font-size:.6rem;line-height:1.15}
  .allies-marquee.allies-static .allies-track{gap:7px;padding:0 10px}.allies-marquee.allies-static .ally{flex:0 1 110px;width:110px;min-width:0}
  .video-carousel-shell{gap:4px}.video-carousel{gap:6px}.video-mini{flex:0 0 89px;min-height:88px;padding:8px 6px;border-radius:11px}
  .video-mini b{font-size:.57rem}.video-mini strong{font-size:.7rem}.video-mini small{font-size:.58rem}
  .video-arrow{width:29px;height:34px;flex-shrink:0}
  .story-dialog{border-radius:17px}.story-dialog-scroll>img{max-height:50vh}.story-dialog-copy{padding:13px 16px 18px}
  .story-dialog-copy h2{font-size:1.35rem;line-height:1.15}.story-dialog-copy p{font-size:.83rem;line-height:1.35}
  .story-dialog-copy dl{font-size:.73rem;margin-top:8px}
  /* Los tamaños físicos se recalculan desde el ancho real del frasco (canvas). */
  .donation-jar[data-jar-size="large"]{--jar-width:55px}
  .donation-jar[data-jar-size="medium"]{--jar-width:44px}
  .donation-jar[data-jar-size="small"]{--jar-width:30px}
  .donation-jar{left:calc(7px + (55px - var(--jar-width,55px))/2);bottom:calc(10px + var(--jar-lift));max-width:calc(100vw - 18px)}
  .donation-jar .jar-topline span{font-size:7px}.donation-jar .jar-topline strong{font-size:9px}
  .donation-jar.jar-at-capacity .jar-topline{margin-bottom:calc(var(--jar-width)*.36 - var(--jar-title-lower,0px))}
}
@media(max-width:370px){.donation-card{padding:9px 5px}.metric strong{font-size:.96rem}.video-mini{flex-basis:80px}.allies-track .ally{min-width:100px;width:100px}}
@media(prefers-reduced-motion:reduce){.topbar nav, .topbar nav a, .menu-btn{transition:none!important}}


/* v0.2.04 — pulido de navegación, aliados, historias y media */
@media(max-width:960px){
  
  
  
  
  .topbar .brand img{width:230px;height:64px;transition:width .36s,height .36s}
  .topbar.scrolled .brand img{width:190px;height:52px}
  .topbar .menu-btn{min-height:38px;min-width:74px;padding:7px 13px;transition:background .24s,color .24s,transform .24s,box-shadow .24s}
  .topbar.scrolled .menu-btn{min-height:35px;padding:6px 12px}
  .topbar nav, .topbar.open nav{display:grid!important;position:absolute;top:calc(100% + 8px);left:0;right:0;gap:3px;padding:0 13px;max-height:0;overflow:hidden;border:1px solid transparent;border-radius:19px;background:rgba(255,250,247,.98);box-shadow:0 20px 44px rgba(var(--shadow-ink-rgb),.16);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-12px);clip-path:inset(0 0 100% 0 round 19px);transition:max-height .48s cubic-bezier(.22,.75,.25,1),padding .48s cubic-bezier(.22,.75,.25,1),opacity .3s,transform .48s cubic-bezier(.22,.75,.25,1),clip-path .48s cubic-bezier(.22,.75,.25,1),visibility 0s linear .48s}
  .topbar.open nav{max-height:min(74vh,560px);padding:12px 13px;overflow-y:auto;border-color:var(--border-default);opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);clip-path:inset(0 0 0 0 round 19px);transition:max-height .48s cubic-bezier(.22,.75,.25,1),padding .48s cubic-bezier(.22,.75,.25,1),opacity .3s,transform .48s cubic-bezier(.22,.75,.25,1),clip-path .48s cubic-bezier(.22,.75,.25,1),visibility 0s}
  .topbar nav a, .topbar nav .nav-campaign-link{transition:background .22s,color .22s,transform .22s}
}
/* Los aliados tienen siempre logo arriba, nombre al centro y descripción debajo. */
.allies-track{gap:14px}
.ally, .allies-marquee.allies-static .ally{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:8px;min-width:clamp(170px,21vw,240px);width:clamp(170px,21vw,240px);max-width:240px;min-height:162px;padding:17px 13px;border-radius:17px}
.ally .ally-logo{display:block;width:58px;height:58px;max-width:100%;object-fit:contain;border-radius:10px}
.ally .ally-mark{flex:none;width:58px;height:58px;grid-row:auto}
.ally strong{font-size:.91rem;line-height:1.18;overflow-wrap:anywhere}
.ally small{font-size:.73rem;line-height:1.25;overflow-wrap:anywhere;margin-top:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:640px){
  .allies-track{gap:10px}
  .ally, .allies-marquee.allies-static .ally{flex:0 0 calc((100vw - 48px)/3);width:calc((100vw - 48px)/3);min-width:calc((100vw - 48px)/3);max-width:none;min-height:145px;padding:11px 7px;gap:6px;border-radius:13px}
  .ally .ally-logo, .ally .ally-mark{width:42px;height:42px}
  .ally strong{font-size:clamp(.67rem,2.5vw,.79rem)}
  .ally small{font-size:clamp(.59rem,2.1vw,.68rem)}
  .allies-marquee.allies-static .allies-track{gap:10px;flex-wrap:nowrap;justify-content:center;padding:0 10px}
}
/* Historias: menos altura en página, sin sacrificar el detalle de la foto al abrirla. */
#historias.section-pad{padding-top:clamp(40px,5vw,66px);padding-bottom:clamp(40px,5vw,66px)}
#historias .section-head{margin-bottom:20px}
#historias .section-head p{line-height:1.42}
.story-layout{grid-template-rows:235px 200px;gap:12px}
.story, .story-open{border-radius:17px}
.story-open .story-caption{padding:32px 12px 11px;gap:2px}
.story-open .story-caption strong{font-size:clamp(.9rem,1.55vw,1.13rem);line-height:1.12}
.story-open .story-caption span{font-size:.76rem;line-height:1.22;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.story-open .story-caption em{font-size:.69rem}
@media(max-width:960px){.story-layout{grid-template-rows:200px 175px 175px;gap:11px}}
@media(max-width:640px){
  #historias .section-head{margin-bottom:15px}
  #historias .section-head h2{font-size:clamp(1.75rem,7vw,2.25rem)}
  #historias .section-head p{font-size:.83rem;line-height:1.36}
  .story-layout{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,175px);gap:9px}
  .story-tall, .story-wide{grid-row:auto;grid-column:auto}
  .story-open .story-caption{padding:23px 9px 9px}
  .story-open .story-caption strong{font-size:.88rem}
  .story-open .story-caption span{font-size:.69rem;-webkit-line-clamp:2}
  .story-open .story-caption em{font-size:.62rem}
}
/* En móvil el video ocupa el área principal; descripción inferior ~30% de la altura del video. */
@media(max-width:800px){
  .video-stage-art{height:clamp(220px,57vw,310px);min-height:0}
  .video-stage-copy{min-height:0;max-height:none;height:auto;padding:12px 17px;gap:5px;justify-content:center}
  .video-stage-copy h3{font-size:clamp(1.04rem,3.8vw,1.5rem);line-height:1.16;-webkit-line-clamp:2}
  .video-stage-copy p{font-size:.77rem;line-height:1.28;-webkit-line-clamp:2}
  .video-stage-copy .btn{margin-top:2px;padding:8px 11px;font-size:.76rem}
  .video-stage-copy .video-meta{font-size:.7rem;margin-top:0}
}
@media(prefers-reduced-motion:reduce){.topbar .brand img, .topbar nav{transition:none!important}}

/* v0.2.05 — portada compacta en móvil y navegación flotante progresiva. */
@media(max-width:960px){
  
  
  
  
  .topbar.scrolled .brand img{width:clamp(170px,34vw,205px);height:48px}
  .topbar.scrolled .menu-btn{min-width:60px;padding:6px 9px;font-size:.78rem}
  /* La cortina usa altura real y recorte animado; no display:none. */
  .topbar nav, .topbar.open nav{display:grid!important;top:calc(100% + 8px);left:0;right:0;max-height:min(74vh,560px);overflow:hidden;visibility:visible;opacity:1;pointer-events:none;padding:0 13px;border-color:transparent;transform:none;clip-path:inset(0 0 100% 0 round 19px);box-shadow:none;transition:clip-path .48s cubic-bezier(.22,.75,.25,1),padding .48s cubic-bezier(.22,.75,.25,1),border-color .3s,box-shadow .3s}
  .topbar.open nav{pointer-events:auto;padding:12px 13px;border-color:var(--border-default);clip-path:inset(0 0 0 0 round 19px);box-shadow:0 20px 44px rgba(var(--shadow-ink-rgb),.16);overflow-y:auto}
}
@media(max-width:640px){
  .hero.section-pad{padding:18px 0 30px;min-height:0}
  .hero-grid{display:flex;flex-direction:column;gap:12px}
  .hero-copy{width:100%}
  .hero-copy .eyebrow{font-size:.65rem;letter-spacing:.1em}
  .hero h1{font-size:clamp(2.1rem,9.1vw,3.05rem);line-height:1.01;letter-spacing:-.045em;margin:9px 0}
  .hero-copy>p{font-size:.88rem;line-height:1.4;margin:10px 0}
  .hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0 10px}
  .hero-actions .btn{min-width:0;padding:12px 7px;font-size:clamp(.69rem,2.65vw,.84rem);line-height:1.2;text-align:center;min-height:46px}
  .hero .trust-row{gap:5px 11px;font-size:.69rem;line-height:1.2}
  .hero-visual{width:100%;min-height:0;height:clamp(185px,53vw,265px);margin-top:5px;display:block}
  .hero-visual .photo-card.large{position:absolute;inset:0 4% 0 0;width:96%;height:100%;transform:rotate(.6deg);border-radius:20px}
  .hero-visual .accent-card{bottom:8px;left:8px;padding:9px 12px;border-radius:12px}
  .hero-visual .accent-card strong{font-size:1rem}.hero-visual .accent-card span{font-size:.7rem}
  
}
@media(max-width:370px){.topbar.scrolled .brand img{width:164px}.topbar.scrolled .menu-btn{min-width:58px}}
@media(prefers-reduced-motion:reduce){.topbar nav{transition:none!important}}

/* v0.2.06 — barra móvil más delgada, botón separado del borde y
   transición estabilizada (la lógica usa histéresis). */
@media(max-width:960px){
  
  .topbar.scrolled .brand img{height:44px}
  .topbar.scrolled .menu-btn{margin-right:3px;min-width:56px;padding:5px 9px;line-height:1.1}
  
}

/* v0.2.07 — animaciones móviles: elasticidad moderada, ocultación deslizante
   y menú cortina. Se aplica al final para resolver las reglas heredadas. */
@media (max-width:960px) {
  
  
  
  /* Solo el fondo se transparenta; marca y botón conservan su opacidad. */
  
  .topbar .brand img{
    transition:width .72s cubic-bezier(.22,1.20,.36,1),
      height .72s cubic-bezier(.22,1.20,.36,1) !important;
  }
  .topbar .menu-btn{
    transition:min-width .65s cubic-bezier(.22,1.18,.36,1),
      padding .65s ease,background .25s,color .25s !important;
  }
  /* Cortina real: evitar max-height/visibility que produzcan saltos.
     Se anima el recorte, y las opciones entran en cascada. */
  .topbar nav, .topbar.open nav{
    display:grid !important;
    max-height:min(74vh,560px) !important;
    padding:12px 13px !important;
    overflow:hidden !important;
    visibility:visible !important;
    opacity:0 !important;
    pointer-events:none !important;
    transform:translateY(-12px) !important;
    clip-path:inset(0 0 100% 0 round 19px) !important;
    border-color:transparent !important;
    box-shadow:none !important;
    transition:clip-path .62s cubic-bezier(.22,.78,.22,1),
      transform .62s cubic-bezier(.22,1,.36,1),
      opacity .35s ease,border-color .35s ease,box-shadow .35s ease !important;
  }
  .topbar.open nav{
    opacity:1 !important;
    pointer-events:auto !important;
    transform:translateY(0) !important;
    clip-path:inset(0 0 0 0 round 19px) !important;
    border-color:var(--border-default) !important;
    box-shadow:0 20px 44px rgba(var(--shadow-ink-rgb),.16) !important;
    overflow-y:auto !important;
  }
  .topbar nav a{
    opacity:0;transform:translateY(-8px);
    transition:opacity .3s ease,transform .45s cubic-bezier(.22,1,.36,1),
      color .2s ease,background .2s ease !important;
  }
  .topbar.open nav a{opacity:1;transform:translateY(0)}
  .topbar.open nav a:nth-child(1){transition-delay:.06s}
  .topbar.open nav a:nth-child(2){transition-delay:.09s}
  .topbar.open nav a:nth-child(3){transition-delay:.12s}
  .topbar.open nav a:nth-child(4){transition-delay:.15s}
  .topbar.open nav a:nth-child(5){transition-delay:.18s}
  .topbar.open nav a:nth-child(6){transition-delay:.21s}
  .topbar.open nav a:nth-child(7){transition-delay:.24s}
  .topbar.open nav a:nth-child(8){transition-delay:.27s}
}
@media (max-width:960px) and (prefers-reduced-motion:reduce) {
  .topbar .brand img, .topbar .menu-btn, .topbar nav, .topbar nav a{transition:none !important}
}

/* v0.2.08 — anchura interpolable, rebote y salida real del menú. */
@media(max-width:960px){
  
  
  .topbar nav .mobile-donate-link{display:flex;justify-content:center;background:var(--brand-primary);color:var(--surface-card)!important;margin:7px 2px 3px;min-height:43px;border-radius:13px;box-shadow:0 7px 18px rgba(var(--brand-primary-rgb),.18)}
  .topbar nav .mobile-donate-link:hover, .topbar nav .mobile-donate-link:focus-visible{background:var(--brand-primary);color:var(--surface-card)!important}
  .topbar.open.menu-closing nav{
    opacity:0!important;pointer-events:none!important;
    transform:translateY(-12px)!important;
    clip-path:inset(0 0 100% 0 round 19px)!important;
    border-color:transparent!important;box-shadow:none!important;
    transition:clip-path .55s cubic-bezier(.4,0,.7,1),
      transform .55s ease,opacity .48s ease,
      border-color .5s ease,box-shadow .5s ease!important;
  }
  .topbar.open.menu-closing nav a{opacity:0;transform:translateY(-8px);transition-delay:0s!important}
}
@media(min-width:961px){.topbar nav .mobile-donate-link{display:none!important}}
@media(max-width:960px) and (prefers-reduced-motion:reduce){
  .topbar.open.menu-closing nav{transition:none!important}
}

/* v0.2.09: encabezado con geometría estable; no participa en el
   redimensionamiento vertical del documento y no produce scroll anchoring. */




@media(min-width:961px){
 
 
 .topbar .brand img{transition:width .8s cubic-bezier(.2,1.12,.3,1),height .8s ease!important}
 .topbar.scrolled .brand img{width:200px;height:49px}
}
@media(max-width:960px){
 
 
 
 .topbar nav{top:calc(100% + 8px)}
}
@media(prefers-reduced-motion:reduce){.topbar .brand img{transition:none!important}}

/* v0.2.10: corrección de navegación, prevalece sobre revisiones anteriores.
   No se anima el tamaño del contenedor sticky: solo su contenido visual. */
@media(min-width:961px){
  
}


@media(max-width:960px){
  
  
  /* Botón CTA contenido, no una banda naranja de ancho completo. */
  .topbar nav .mobile-donate-link{
    width:max-content!important;max-width:calc(100% - 30px)!important;
    min-width:132px!important;min-height:41px!important;
    padding:10px 23px!important;
    margin:9px auto 5px!important;
    align-self:center!important;
    flex:none!important;
    box-sizing:border-box!important;
  }
  /* El cierre se anima en CSS, sin WAAPI que interfiera con los estados. */
  .topbar.open.menu-closing nav{
    opacity:0!important;
    transform:translateY(-12px)!important;
    clip-path:inset(0 0 100% 0 round 19px)!important;
    pointer-events:none!important;
    transition:clip-path .58s cubic-bezier(.42,0,.65,1),
      transform .58s ease,opacity .52s ease,
      border-color .52s ease,box-shadow .52s ease!important;
  }
  .topbar.open.menu-closing nav a{opacity:0!important;transform:translateY(-8px)!important;transition-delay:0s!important}
}
@media(prefers-reduced-motion:reduce){
  .topbar nav{transition:none!important}
}

/* v0.2.11: transiciones de cabecera controladas por Web Animations.
   Evitar animaciones CSS paralelas que cancelan los fotogramas de tamaño. */

@media(max-width:960px){
 
}
@media(prefers-reduced-motion:reduce){
 
}

/* v0.2.12 — Único controlador FLIP para el tamaño y WAAPI para el recorrido.
   La cabecera mantiene altura fija en el documento. */


@media(min-width:961px){
 
}
@media(max-width:960px){
 
}
@media(prefers-reduced-motion:reduce){
 
}

/* v0.2.13: una sola fuente de animación para la cabecera.
   Anula transition:none de revisiones anteriores. El contenedor sticky
   conserva su altura fija: solo cambian las dimensiones de .nav-shell. */


@media(min-width:961px){
  
}
@media(max-width:960px){
  
  
  
  
}
@media(prefers-reduced-motion:reduce){
  
}

/* v0.2.14: geometría gobernada por resorte RAF, no por transitions CSS.
   Solo nav-shell cambia de tamaño: la altura del documento permanece estable. */

@media(max-width:960px){
 
}

/* ===== v0.2.15 CABECERA RECONSTRUIDA =====
   Solo estas reglas gobiernan ancho, alto y desplazamiento.
   La barra exterior tiene altura constante; menú y destinos se conservan. */


@media(min-width:961px){
 
 
 
 
}
@media(max-width:960px){
 
 
 
 
 
}
@media(prefers-reduced-motion:reduce){
 
}

/* v0.2.16 — SISTEMA ÚNICO DE CABECERA. Se eliminaron las reglas anteriores
   de topbar/nav-shell; se conservan reglas de botones, logo y menú cortina. */
.topbar{position:fixed!important;top:0;left:0;right:0;z-index:70;background:transparent!important;border:0!important;backdrop-filter:none!important;transform:translate3d(0,0,0);transition:transform .85s cubic-bezier(.2,.8,.25,1)!important;will-change:transform;pointer-events:auto}
.topbar .nav-shell{position:relative;display:flex;align-items:center;gap:18px;margin:0 auto;box-sizing:border-box;border:1px solid var(--nav-shell-border);background:var(--nav-shell-bg);border-radius:23px;box-shadow:0 8px 25px rgba(var(--shadow-ink-rgb),.09);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:width 1.1s cubic-bezier(.18,1.18,.28,1),height 1.1s cubic-bezier(.18,1.12,.28,1),border-radius .7s ease,background .5s ease,box-shadow .7s ease!important;will-change:width,height}
.header-layout-spacer{height:96px;pointer-events:none}
@media(min-width:961px){
 .topbar{height:96px!important;padding-top:7px!important}
 .topbar .nav-shell{width:calc(100% - 32px)!important;max-width:1240px!important;height:82px!important;padding:0 16px}
 .topbar.scrolled .nav-shell{width:calc(100% - 110px)!important;max-width:990px!important;height:66px!important}
 .topbar.header-hidden{transform:translate3d(0,0,0)!important}
}
@media(max-width:960px){
 .header-layout-spacer{height:72px}
 .topbar{height:72px!important;min-height:72px!important;padding:0!important}
 .topbar .nav-shell{width:calc(100% - 22px)!important;max-width:none!important;min-width:0!important;height:72px!important;padding:0 12px!important;gap:8px}
 .topbar.scrolled .nav-shell{width:50%!important;min-width:194px!important;max-width:330px!important;height:49px!important;padding:0 10px!important;background:var(--nav-shell-bg-condensed)}
 .topbar.header-hidden:not(.open){transform:translate3d(0,-115%,0)!important;pointer-events:none}
 .topbar:not(.header-hidden){transform:translate3d(0,0,0)!important}
}
@media(prefers-reduced-motion:reduce){.topbar,.topbar .nav-shell{transition:none!important}}

/* v0.2.18: opción EXPLÍCITA para probar movimiento completo cuando
   Edge emula prefers-reduced-motion. Sin opción, se respeta accesibilidad. */
html.motion-full-optin .topbar{transition:transform .85s cubic-bezier(.2,.8,.25,1)!important}
html.motion-full-optin .topbar .nav-shell{transition:width 1.1s cubic-bezier(.18,1.18,.28,1),height 1.1s cubic-bezier(.18,1.12,.28,1),border-radius .7s ease,background .5s ease,box-shadow .7s ease!important}

/* v0.2.19 — La navegación de escritorio cabe dentro de su cápsula.
   Se mantienen intactas las transiciones de tamaño/entrada de v0.2.18. */
@media (min-width:961px){
 .topbar .nav-shell{gap:clamp(8px,1.15vw,22px)!important;min-width:0!important}
 .topbar .brand{flex:0 0 auto!important;min-width:0!important;margin-right:clamp(4px,.6vw,10px)!important}
 .topbar .brand img{max-width:100%;object-fit:contain}
 .topbar nav,.topbar.scrolled nav{display:flex;flex:1 1 auto!important;min-width:0!important;margin-left:0!important;gap:clamp(7px,.85vw,15px)!important;white-space:nowrap}
 .topbar nav a{white-space:nowrap}
 .topbar .nav-cta{flex:0 0 auto!important;white-space:nowrap!important;width:auto!important;min-width:max-content!important;align-self:center;line-height:1.2;text-align:center;padding:13px 16px!important;margin:0!important}
 .topbar.scrolled .nav-cta{padding:11px 14px!important}
}
@media (min-width:961px) and (max-width:1279px){
 .topbar.scrolled .nav-shell{width:calc(100% - 32px)!important;max-width:1120px!important}
 .topbar .nav-shell{gap:10px!important}
 .topbar .brand img,.topbar.scrolled .brand img{width:clamp(255px,21vw,320px)!important;height:76px!important}
 .topbar nav,.topbar.scrolled nav{gap:clamp(5px,.7vw,10px)!important}
 .topbar nav a,.topbar.scrolled nav a{font-size:clamp(.72rem,.96vw,.87rem)!important}
 .topbar .nav-cta,.topbar.scrolled .nav-cta{font-size:.82rem!important;padding:11px 12px!important}
}

/* v0.2.20: ajustes EXCLUSIVOS de escritorio. Sin cambios al menú móvil. */
@media(min-width:961px){
 /* 1.1s -> 1.6s; el resorte queda visible durante todo el recorrido. */
 .topbar .nav-shell{transition:width 1.6s cubic-bezier(.18,1.12,.27,1),height 1.6s cubic-bezier(.18,1.08,.27,1),border-radius .85s ease,background .5s ease,box-shadow .85s ease!important}
 .topbar.scrolled .nav-shell{height:66px!important;padding-left:10px!important;padding-right:10px!important;gap:clamp(4px,.6vw,10px)!important}
 .topbar .brand img,.topbar nav a,.topbar .nav-cta{transition:font-size 1.45s cubic-bezier(.2,.8,.3,1),width 1.45s cubic-bezier(.2,.8,.3,1),height 1.45s cubic-bezier(.2,.8,.3,1),padding 1.45s cubic-bezier(.2,.8,.3,1)!important}
 .topbar.scrolled .brand img{width:clamp(230px,18vw,285px)!important;height:62px!important}
 .topbar.scrolled nav{gap:clamp(5px,.6vw,10px)!important}
 .topbar.scrolled nav a{font-size:clamp(.7rem,.88vw,.79rem)!important}
 .topbar.scrolled .nav-cta{font-size:.77rem!important;padding:9px 12px!important;min-height:35px!important}
}
@media(min-width:1280px){
 /* Reducción del ancho máximo de 990 a 792px (=20%). */
 .topbar.scrolled .nav-shell{max-width:792px!important;width:calc(100% - 110px)!important}
 .topbar.scrolled .brand img{width:118px!important;height:33px!important}
 .topbar.scrolled nav{gap:6px!important}
 .topbar.scrolled nav a{font-size:.72rem!important}
 .topbar.scrolled .nav-cta{font-size:.73rem!important;padding:9px 10px!important}
}
@media(min-width:961px) and (max-width:1279px){
 /* No forzar 792px en ventanas estrechas: preservar CTA dentro del bloque. */
 .topbar.scrolled .nav-shell{max-width:1120px!important;width:calc(100% - 32px)!important}
}
/* La preferencia de movimiento reducido se respeta salvo opt-in explícito. */
@media(prefers-reduced-motion:reduce){
 html:not(.motion-full-optin) .topbar .nav-shell,
 html:not(.motion-full-optin) .topbar .brand img,
 html:not(.motion-full-optin) .topbar nav a,
 html:not(.motion-full-optin) .topbar .nav-cta{transition:none!important}
}
@media(min-width:961px){
 html.motion-full-optin .topbar .nav-shell{transition:width 1.6s cubic-bezier(.18,1.12,.27,1),height 1.6s cubic-bezier(.18,1.08,.27,1),border-radius .85s ease,background .5s ease,box-shadow .85s ease!important}
}

/* v0.2.21 — distribuir el espacio interior durante la transición de escritorio.
   El CTA permanece pegado al extremo derecho, nunca queda un hueco después. */
@media(min-width:961px){
 .topbar .nav-shell{justify-content:space-between!important;column-gap:clamp(7px,.9vw,16px)!important}
 .topbar .brand,.topbar.scrolled .brand{margin-right:0!important;flex:0 0 auto!important}
 .topbar nav,.topbar.scrolled nav{flex:1 1 auto!important;justify-content:space-evenly!important;margin-left:0!important;min-width:0!important;gap:clamp(4px,.5vw,9px)!important}
 .topbar .nav-cta,.topbar.scrolled .nav-cta{margin-left:0!important;margin-right:0!important;flex:0 0 auto!important;align-self:center!important}
}
@media(min-width:1280px){
 .topbar.scrolled .nav-shell{max-width:812px!important}
 .topbar.scrolled nav a{font-size:.70rem!important}
 .topbar.scrolled .brand img{width:114px!important}
}

/* v0.2.22 — distribución legible de escritorio. La barra compacta
   mantiene ancho suficiente para los enlaces; no se fuerza su compresión. */
@media (min-width:1280px){
 .topbar.scrolled .nav-shell{max-width:1030px!important;width:calc(100% - 100px)!important}
 .topbar.scrolled .brand img{width:148px!important;height:37px!important}
 .topbar.scrolled nav a{font-size:.79rem!important}
 .topbar.scrolled nav{gap:clamp(12px,1vw,18px)!important}
 .topbar.scrolled .nav-cta{font-size:.78rem!important;padding:10px 14px!important}
}
@media (min-width:961px){
 .topbar .nav-shell,.topbar.scrolled .nav-shell{justify-content:space-between!important;gap:clamp(16px,1.5vw,28px)!important}
 .topbar .brand,.topbar.scrolled .brand{margin:0!important;flex:0 0 auto!important}
 .topbar nav,.topbar.scrolled nav{display:flex;flex:1 1 auto!important;justify-content:flex-end!important;gap:clamp(10px,1.05vw,19px)!important;margin:0!important;min-width:0!important}
 .topbar nav a,.topbar.scrolled nav a{white-space:nowrap!important;letter-spacing:0!important}
 .topbar .nav-cta,.topbar.scrolled .nav-cta{margin:0!important;flex:0 0 auto!important;white-space:nowrap!important}
}
@media (min-width:961px) and (max-width:1279px){
 .topbar .nav-shell,.topbar.scrolled .nav-shell{gap:clamp(8px,1vw,16px)!important}
 .topbar nav,.topbar.scrolled nav{gap:clamp(7px,.75vw,11px)!important}
 .topbar .brand img,.topbar.scrolled .brand img{width:clamp(120px,14vw,170px)!important}
}

/* v0.2.23 — aliados: bordes más tempranos, centro sin atenuación. */
.allies-marquee:not(.allies-static){
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 21%,#000 79%,transparent 100%)!important;
  mask-image:linear-gradient(90deg,transparent 0%,#000 21%,#000 79%,transparent 100%)!important;
}
/* v0.2.23 — compacto de escritorio: reducir a la mitad el hueco entre
   logotipo e Inicio sin apretar las palabras entre sí. */
@media(min-width:1280px){
  .topbar.scrolled .nav-shell{
    max-width:970px!important;
    width:calc(100% - 100px)!important;
    justify-content:center!important;
    gap:12px!important;
  }
  .topbar.scrolled .brand{flex:0 0 auto!important;margin:0!important}
  .topbar.scrolled nav{
    flex:0 1 auto!important;
    justify-content:flex-start!important;
    margin:0!important;
    gap:clamp(12px,1vw,18px)!important;
  }
  .topbar.scrolled .nav-cta{flex:0 0 auto!important;margin:0!important}
}

/* v0.2.24: compacto centrado, sin espacio muerto en los extremos. */
@media(min-width:1280px){
 .topbar.scrolled .nav-shell{
   width:fit-content!important;
   max-width:calc(100% - 40px)!important;
   min-width:0!important;
   padding-left:18px!important;
   padding-right:18px!important;
   justify-content:center!important;
   gap:16px!important;
 }
 .topbar.scrolled nav{
   flex:0 0 auto!important;
   justify-content:flex-start!important;
   gap:clamp(11px,.95vw,16px)!important;
 }
 .topbar.scrolled .brand,.topbar.scrolled .nav-cta{flex:0 0 auto!important}
}
/* Media utiliza el mismo reveal al entrar en viewport que las demás secciones. */
#media .section-head.reveal,
#media .video-showcase.reveal{
  transition:opacity .8s cubic-bezier(.2,.7,.2,1),
             transform .8s cubic-bezier(.2,.7,.2,1)!important;
}
#media .section-head.reveal:not(.visible),
#media .video-showcase.reveal:not(.visible){
  opacity:0;transform:translateY(25px);
}
#media .section-head.reveal.visible,
#media .video-showcase.reveal.visible{
  opacity:1;transform:translateY(0);
}
@media(prefers-reduced-motion:reduce){
 html:not(.motion-full-optin) #media .reveal{transition:none!important;transform:none!important}
}

/* v0.2.26 — transición efectiva para Media, independiente de reglas previas. */
#media .section-head.reveal,
#media .video-showcase.reveal{
  opacity:0;
  transform:translate3d(0,32px,0);
  transition:opacity .9s cubic-bezier(.2,.7,.2,1),
             transform .9s cubic-bezier(.2,.7,.2,1)!important;
}
#media .section-head.reveal.visible,
#media .video-showcase.reveal.visible{
  opacity:1;
  transform:translate3d(0,0,0);
}
@media(prefers-reduced-motion:reduce){
 html:not(.motion-full-optin) #media .reveal{opacity:1;transform:none;transition:none!important}
}

/* Aviso informativo discreto debajo de las acciones del formulario. */
.form-privacy-note{font-size:.78rem;line-height:1.55;color:var(--text-muted);margin:12px 0 0;max-width:640px}.form-privacy-note a{color:inherit;text-decoration:underline;text-underline-offset:2px}.form-privacy-note a:hover{color:var(--brand-primary)}

/* v0.2.42: evitar saltos de scroll al expandir condiciones del formulario. */
#formulario .wizard, #formulario #conditions-box {overflow-anchor:none}

/* v0.2.43: impedir que el navegador ancle a FAQ al contraerse el wizard */
#formulario {overflow-anchor:none}

/* v0.2.44: el paso de categorías no altera automáticamente la vista.
   Evita el anclaje y el desplazamiento suave implícito del navegador. */
html.cu-category-step { overflow-anchor:none; scroll-behavior:auto; }
html.cu-category-step body { overflow-anchor:none; }
html.cu-category-step #formulario,
html.cu-category-step #donation-form,
html.cu-category-step #conditions-box,
html.cu-category-step #selected-summary { overflow-anchor:none; }

/* v0.2.46: mantener estable la columna izquierda mientras se eligen categorías.
   Su sticky y sus chips dinámicos alteraban el encuadre al crecer/encogerse. */
html.cu-category-step #formulario .form-intro {position:static!important;}
html.cu-category-step #formulario .selected-summary {display:none!important;}
html.cu-category-step #formulario .form-wrap {align-items:start;}


/* v0.2.47 — respetar el atributo hidden del aviso.
   Las reglas .cookie { display:grid } impedían ocultarlo tras Aceptar/Rechazar. */
#cookie[hidden] { display:none!important; }
#cookie.cookie-dismiss { pointer-events:none!important; }

/* v0.2.49: mantener la altura de la sección anterior al formulario estable.
   Mostrar/ocultar Continuar no debe desplazar las secciones inferiores. */
#que-donar #donation-continue[hidden] { display:flex!important; visibility:hidden!important; pointer-events:none!important; }
#que-donar #donation-continue:not([hidden]) { visibility:visible; }

/* v0.2.50: enlaces del pie estables al pasar el cursor.
   La regla global añadía giro, desplazamiento y espaciado de letras. */
.footer-grid a, .footer-col a {
  transform:none!important; letter-spacing:normal!important;
  transition:color .18s ease, background-color .18s ease, border-color .18s ease!important;
}
.footer-grid a:hover, .footer-grid a:focus-visible,
.footer-col a:hover, .footer-col a:focus-visible {
  transform:none!important; letter-spacing:normal!important;
}

/* v0.2.54 — paso 2 y aviso móvil compacto */
.required-mark{color:var(--color-danger);font-weight:800}.optional-help{border:0;background:transparent;color:var(--text-secondary);font-size:.77em;font-weight:500;padding:2px 4px;cursor:help;text-decoration:underline dotted;text-underline-offset:3px;vertical-align:baseline}.optional-help:hover,.optional-help:focus-visible{color:var(--text-secondary)}.optional-explanation{display:block;font-size:.76rem;font-weight:400;line-height:1.45;color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--border-default);border-radius:8px;padding:8px 10px;margin:5px 0;max-width:360px}.pickup-preference{margin:18px 0 10px;padding:16px;border:1px solid var(--border-default);border-radius:14px;background:var(--surface-input)}.pickup-preference h4{font-size:1rem;line-height:1.5;margin:0 0 12px}.pickup-preference input[type=date]{width:100%;min-height:44px;padding:10px;border:1px solid var(--border-default);border-radius:10px;background:white;color:var(--text-primary);font:inherit}.pickup-preference .fields{margin-top:12px}.pickup-note{font-size:.79rem;line-height:1.45;color:var(--text-muted);margin:9px 0 0}.review-row{display:grid;grid-template-columns:minmax(110px,36%) minmax(0,1fr);gap:8px;border-bottom:1px solid var(--border-default);padding:9px 0;line-height:1.5;overflow-wrap:anywhere}.review-row strong{font-family:inherit;font-size:.91rem;line-height:1.45;color:var(--text-primary)}.review-row span{font-size:.91rem;color:var(--text-secondary)}
@media(max-width:640px){
  #cookie.cookie{width:min(330px,calc(100vw - 24px))!important;max-width:330px!important;left:10px!important;right:auto!important;bottom:10px!important;padding:8px 9px!important;grid-template-columns:minmax(0,1fr) 77px!important;grid-template-areas:"copy actions" "details details"!important;column-gap:7px!important;row-gap:0!important;min-height:0!important;max-height:min(55dvh,340px)!important;overflow-y:auto!important;background:var(--surface-base)!important;color:var(--text-primary)!important;box-shadow:0 5px 18px rgba(0,0,0,.16)!important;border-radius:12px!important}
  #cookie .cookie-copy{display:block!important;visibility:visible!important;opacity:1!important;color:var(--text-primary)!important}
  #cookie .cookie-copy>p{display:block!important;color:var(--text-secondary)!important;opacity:1!important;visibility:visible!important;font-size:10.5px!important;line-height:1.32!important;margin:0!important}
  #cookie .cookie-more{font-size:10px!important;margin-top:2px!important;line-height:1.25!important}
  #cookie .cookie-actions{gap:4px!important;display:flex!important;flex-direction:column!important}
  #cookie #cookie-accept,#cookie #cookie-reject{min-height:29px!important;padding:5px 4px!important;font-size:10.5px!important;line-height:1.15!important}
  #cookie .cookie-details{margin-top:5px!important;padding-top:6px!important}
  .pickup-preference{padding:12px}.review-row{grid-template-columns:minmax(96px,39%) minmax(0,1fr);gap:6px}
}

/* v0.2.55: jerarquía de campos y ayudas flotantes sin cambios de geometría */
.wizard-step .address-module{background:var(--surface-input);border:1px solid var(--border-default);border-radius:14px;padding:16px;margin:12px 0 16px}
.wizard-step .address-module>label:last-child{margin-bottom:0}
.wizard-step .optional-static{font-size:.78em;font-weight:500;color:var(--text-muted)}
.wizard-step .optional-help{display:inline!important;position:static!important;width:auto!important;min-width:0!important;max-width:none!important;margin:0 0 0 3px!important;padding:0 2px!important;line-height:inherit!important;vertical-align:baseline!important;white-space:nowrap;font-size:.78em!important;font-weight:500!important;color:var(--text-muted)!important}
.wizard-step label{display:block;min-width:0}
.wizard-step label>input,.wizard-step label>select,.wizard-step label>textarea{display:block;width:100%;margin-top:8px;min-width:0}
.wizard-step .fields.two>*{min-width:0}
.wizard-step .required-mark{display:inline!important;margin-left:2px;color:var(--brand-primary)}
.optional-floating-tip{position:fixed;z-index:10000;box-sizing:border-box;max-width:calc(100vw - 24px);padding:10px 12px;border-radius:9px;border:1px solid var(--border-default);background:var(--surface-tinted);color:var(--text-secondary);box-shadow:0 9px 28px rgba(32,24,15,.18);font:400 12px/1.48 Inter,system-ui,sans-serif;white-space:normal;overflow-wrap:break-word;pointer-events:none}
.optional-floating-tip[hidden]{display:none!important}
@media(max-width:640px){.wizard-step .address-module{padding:12px}.wizard-step .pickup-preference{padding:12px}}

/* v0.2.56: formulario estable, ayudas ancladas y calendario */
.wizard-step .company-public-consent{display:flex!important;align-items:flex-start;gap:10px;width:100%;margin:8px 0 18px;font-weight:500;line-height:1.5;cursor:pointer}
.wizard-step .company-public-consent[hidden]{display:none!important}
.wizard-step .company-public-consent input[type=checkbox]{display:block!important;flex:0 0 18px;width:18px!important;height:18px;margin:3px 0 0!important;padding:0;accent-color:var(--brand-primary)}
.wizard-step .company-public-consent span{display:block;flex:1;min-width:0;font-size:.87rem}
.wizard-step .address-module,.wizard-step .pickup-preference{background:var(--surface-input)}
.optional-floating-tip{pointer-events:none}
.pickup-three{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,2fr);gap:12px;align-items:start}
.pickup-three>.fields.two{margin-top:0;gap:10px}
.pickup-three label{min-width:0}
.pickup-date-field{position:relative}
.pickup-date-wrap{position:relative}
.pickup-date-wrap input{padding-right:30px!important;min-height:46px}
.pickup-date-open{position:absolute;right:7px;top:50%;transform:translateY(-50%);background:transparent;border:0;cursor:pointer;color:var(--text-secondary);font-size:17px;padding:6px}
.pickup-calendar{position:absolute;top:calc(100% + 5px);left:0;z-index:120;width:min(292px,calc(100vw - 44px));background:var(--surface-card);border:1px solid var(--border-default);border-radius:12px;padding:10px;box-shadow:0 12px 30px #0002}
.pickup-calendar[hidden]{display:none!important}
.pickup-calendar-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;text-transform:capitalize}
.pickup-calendar-head button{border:0;background:var(--surface-tinted);border-radius:6px;padding:4px 10px;cursor:pointer}
.pickup-calendar-head button:disabled{opacity:.3;cursor:default}
.pickup-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.pickup-calendar-grid>span,.pickup-calendar-grid>button{min-width:0;padding:7px 0;font-size:12px}
.pickup-calendar-grid>button{border:0;border-radius:7px;background:var(--surface-tinted);cursor:pointer}
.pickup-calendar-grid>button:hover:not(:disabled),.pickup-calendar-grid>button.selected{background:var(--brand-primary);color:white}
.pickup-calendar-grid .sunday{color:var(--color-danger)!important;background:var(--surface-tinted)!important;font-weight:700;cursor:not-allowed}
.pickup-calendar-grid .outside{color:#aaa;cursor:not-allowed}
@media(max-width:640px){.pickup-three{grid-template-columns:1fr}.pickup-three>.fields.two{display:grid;grid-template-columns:1fr 1fr}.pickup-calendar{max-width:calc(100vw - 60px)}}

/* v0.2.57: selector único, campos suaves y columnas alineadas */
.wizard-step .address-module input,.wizard-step .address-module select,.wizard-step .pickup-preference input:not([type=hidden]),.wizard-step .pickup-preference select{background:var(--surface-input)!important;border-color:var(--border-default)!important}
.wizard-step .other-location-field[hidden]{display:none!important}
.pickup-three{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:10px}
.pickup-three>.fields.two{display:contents}
.pickup-three>label,.pickup-three>.fields.two>label{align-self:end;min-width:0}
.pickup-three .pickup-date-wrap input:not([type=hidden]),.pickup-three select{height:46px!important;min-height:46px!important;box-sizing:border-box}
.pickup-date-wrap input[type=hidden]{display:none!important}
.pickup-date-wrap input[type=text]{cursor:text;padding-right:35px!important}
.pickup-calendar{width:min(215px,calc(100vw - 32px));padding:7px;border-radius:10px;max-height:min(295px,65dvh);overflow-y:auto}
.pickup-calendar-head{font-size:12px;margin-bottom:4px}
.pickup-calendar-head button{padding:3px 7px}
.pickup-calendar-grid{gap:2px}
.pickup-calendar-grid>span,.pickup-calendar-grid>button{font-size:10px;padding:4px 0}
@media(max-width:640px){.pickup-three{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.pickup-three>.fields.two{display:contents}.pickup-three label{font-size:11px}.pickup-three select,.pickup-three input{font-size:11px!important;padding-left:5px!important;padding-right:5px!important}.pickup-three .pickup-date-wrap input[type=text]{padding-right:24px!important}.pickup-date-open{right:1px;font-size:13px}.pickup-calendar{left:0;max-width:calc(100vw - 32px)}}
@media(max-width:390px){.pickup-three{grid-template-columns:1fr 1fr}.pickup-date-field{grid-column:1/-1}.pickup-three>.fields.two>label{min-width:0}}

/* v0.2.58: campos de recojo sin solapamientos y menú de distritos con 10 filas */
.pickup-three{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr)!important;align-items:end!important;gap:10px!important}
.pickup-three>.fields.two{display:contents!important}
.pickup-three .pickup-date-field,.pickup-three>.fields.two>label{min-width:0!important;width:100%!important;max-width:100%!important;align-self:end!important}
.pickup-three .pickup-date-wrap{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
.pickup-three .pickup-date-wrap input[type=text]{display:block;width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;padding-right:29px!important}
.pickup-three select{display:block;width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
.pickup-date-open{right:4px}
.district-select-shell{position:relative;min-width:0}
.district-select-shell>select{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;overflow:hidden!important}
.district-select-trigger{width:100%;min-height:46px;text-align:left;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-input);color:var(--text-primary);font:inherit;font-weight:600;padding:10px 34px 10px 14px;cursor:pointer;position:relative}
.district-select-trigger:after{content:'⌄';position:absolute;right:12px;top:50%;transform:translateY(-50%)}
.district-select-menu{position:absolute;z-index:300;left:0;right:0;top:calc(100% + 4px);background:var(--surface-card);border:1px solid var(--border-default);border-radius:10px;box-shadow:0 12px 25px #0002;overflow-y:auto;max-height:min(420px,60dvh);overscroll-behavior:contain}
.district-select-menu[hidden]{display:none!important}
.district-select-menu button{display:block;width:100%;min-height:40px;padding:9px 12px;text-align:left;border:0;background:var(--surface-card);color:var(--text-primary);font:inherit;font-size:13px;cursor:pointer}
.district-select-menu button:hover,.district-select-menu button:focus-visible{background:var(--surface-tinted)}
@media(max-width:640px){.pickup-three{gap:6px!important;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)!important}.pickup-three .pickup-date-wrap input[type=text]{padding-left:7px!important;padding-right:24px!important}.pickup-three select{padding-left:5px!important;padding-right:14px!important}.pickup-three label{font-size:11px!important}}
@media(max-width:390px){.pickup-three{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)!important}.pickup-date-field{grid-column:auto!important}}

/* v0.2.59 — ajuste puntual de campos y lista de distritos */
.wizard-step .address-module .fields.two{align-items:start}
.wizard-step .address-module .fields.two>label{margin-bottom:0}
.wizard-step .address-module .district-select-trigger{height:48px;min-height:48px;margin-top:8px;line-height:1.35}
.wizard-step .address-module .fields.two>label[data-config-field="reference"]>input{height:48px;min-height:48px}
.district-select-menu{max-height:min(340px,60dvh)}
.district-select-menu button{min-height:32px;padding:6px 12px;line-height:20px;font-size:13px}
@media(max-width:640px){
  body.cu-form-in-view #floating-whatsapp,body.cu-form-in-view .wa-wave-layer{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
  #floating-whatsapp,.wa-wave-layer{transition:opacity .2s ease,visibility .2s ease}
}

/* v0.2.60 — envío y estado de atención sobre WhatsApp */
.step-actions .submit-wa-icon{width:20px;height:20px;display:inline-block;flex:none;margin-left:8px;vertical-align:middle}
.wa-online-status{position:absolute;bottom:calc(100% + 16px);left:50%;transform:translateX(-50%);min-width:84px;padding:5px 8px;border:1px solid #b6e6c6;border-radius:10px;background:#f3fff7;color:#117b3d;text-align:center;font:700 12px/1.25 Inter,system-ui,sans-serif;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.1);pointer-events:none}
.wa-online-status[hidden]{display:none!important}
@media(max-width:640px){.wa-online-status{font-size:11px;min-width:76px;bottom:calc(100% + 9px)}}

/* v0.2.61 — escala compacta de WhatsApp únicamente en celulares.
   Mantiene el anclaje inferior derecho, las ondas y la ocultación en el formulario. */
@media (max-width:640px){
  #floating-whatsapp.whatsapp{width:56px;height:56px;right:18px;}
  #floating-whatsapp.whatsapp svg{width:31px;height:31px;}
  #floating-whatsapp .wa-online-status{
    min-width:64px;padding:4px 6px;font-size:9px;line-height:1.18;
    border-radius:8px;bottom:calc(100% + 10px);
  }
}

/* v0.2.67: WhatsApp compacto exclusivamente en móviles */
@media(max-width:640px){
 #floating-whatsapp.whatsapp{width:45px;height:45px;right:18px;bottom:14px}
 #floating-whatsapp.whatsapp svg{width:24px;height:24px}
 #floating-whatsapp .wa-online-status{min-width:53px;padding:3px 4px;font-size:8px;line-height:1.12;border-radius:7px;bottom:calc(100% + 7px)}
}

/* v0.2.68: disposición del bloque de confianza en móviles y tablets.
   El diseño de escritorio permanece sin cambios. */
@media (max-width: 900px) {
  .trust-message {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 14px;
    height: auto;
  }
  .trust-message > div {
    flex: 0 1 auto;
    width: 100%;
    min-width: 0;
  }
  .trust-message .btn {
    align-self: center;
    margin-left: 0;
    max-width: 100%;
    white-space: normal;
    text-align: center;
  }
}

/* v0.2.70: titulo legible en movil y tablet; se permite salto natural
   en pantallas estrechas. Escritorio (>900px) no se modifica. */
@media (max-width: 900px) {
  .trust-message { gap: 10px; }
  .trust-message h3 {
    font-size: 1.12rem;
    letter-spacing: -0.015em;
    line-height: 1.3;
    white-space: normal;
    overflow-wrap: break-word;
    margin-bottom: 6px;
  }
  .trust-message .btn { padding: 10px 14px; }
}
@media (max-width: 350px) {
  .trust-message { padding-left: 12px; padding-right: 12px; }
}


/* v0.2.74 — aviso compacto legible y explicación independiente. Solo cookies. */
#cookie.cookie:not([hidden]){
  width:min(356px,calc(100vw - 24px))!important;
  max-width:356px!important;
  left:12px!important;right:auto!important;bottom:12px!important;
  display:grid!important;grid-template-columns:minmax(0,1fr)!important;
  grid-template-areas:"copy" "actions"!important;
  row-gap:8px!important;column-gap:0!important;
  padding:12px 14px!important;max-height:min(50dvh,330px)!important;
  overflow-x:hidden!important;overflow-y:auto!important;
  border-radius:14px!important;background:var(--surface-base)!important;
}
#cookie .cookie-copy>p{font-size:12.25px!important;line-height:1.47!important;color:var(--text-secondary)!important;overflow-wrap:break-word!important;}
#cookie .cookie-more{font-size:12px!important;line-height:1.4!important;margin-top:7px!important;color:var(--brand-primary)!important;}
#cookie .cookie-actions{display:flex!important;flex-direction:row!important;justify-content:flex-end!important;align-items:center!important;gap:13px!important;margin:0!important;}
#cookie #cookie-accept{order:1!important;width:auto!important;min-height:36px!important;padding:8px 17px!important;font-size:12px!important;line-height:1.25!important;background:var(--brand-primary)!important;color:var(--surface-card)!important;}
#cookie #cookie-reject{order:0!important;width:auto!important;min-height:34px!important;padding:6px 7px!important;font-size:12px!important;line-height:1.3!important;background:transparent!important;color:var(--text-secondary)!important;text-decoration:underline!important;text-underline-offset:2px!important;}
#cookie #cookie-reject:focus-visible,#cookie #cookie-accept:focus-visible,.cookie-info-panel button:focus-visible,.cookie-info-panel a:focus-visible{outline:3px solid var(--brand-primary)!important;outline-offset:3px!important;}
#cookie-details.cookie-info-panel{box-sizing:border-box;position:fixed;left:12px;bottom:176px;z-index:82;
 width:min(435px,calc(100vw - 24px));max-height:min(64dvh,510px);overflow:hidden;
 background:var(--surface-base);border:1px solid var(--border-default);border-radius:16px;
 box-shadow:0 14px 45px rgba(var(--shadow-ink-rgb),.23);color:var(--text-primary);
 display:flex;flex-direction:column;min-height:0;
}
#cookie-details.cookie-info-panel[hidden]{display:none!important;}
.cookie-info-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:15px 17px 10px;border-bottom:1px solid var(--border-default);flex-shrink:0;}
.cookie-info-head h2{font-family:Georgia,serif;font-size:clamp(17px,3.4vw,21px);letter-spacing:-.02em;line-height:1.24;margin:0!important;}
.cookie-info-close{background:transparent;border:0;border-radius:8px;cursor:pointer;color:var(--text-secondary);font-size:25px;line-height:1;width:31px;height:31px;flex:none;}
.cookie-info-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:13px 17px 8px;}
.cookie-info-content p{font-size:13px;line-height:1.58;color:var(--text-secondary);margin:0 0 12px;overflow-wrap:anywhere;}
.cookie-info-content #cookie-current-choice{font-size:12px;color:var(--brand-primary);font-weight:700;}
.cookie-info-content a{color:var(--brand-primary);text-decoration:underline;text-underline-offset:3px;}
.cookie-info-actions{padding:9px 17px 14px;border-top:1px solid var(--border-default);flex-shrink:0;display:flex;justify-content:flex-end;}
.cookie-info-back{border:1px solid var(--border-default);background:var(--surface-tinted);color:var(--brand-primary);cursor:pointer;border-radius:9px;font-weight:700;font-size:12px;padding:8px 12px;}
@media(max-width:430px){
 #cookie.cookie:not([hidden]){width:calc(100vw - 24px)!important;max-width:356px!important;}
 #cookie .cookie-copy>p{font-size:12px!important;line-height:1.47!important;}
 #cookie-details.cookie-info-panel{width:calc(100vw - 24px);max-height:57dvh;}
}
@media(prefers-reduced-motion:reduce){#cookie.cookie,.cookie-info-panel{animation:none!important;transition:none!important;}}


/* v0.2.75 — solamente el aviso de cookies; diseño compacto, sin destello inicial. */
#cookie[hidden]{display:none!important;}
#cookie.cookie:not([hidden]){
  box-sizing:border-box!important;
  width:min(320px,calc(100vw - 20px))!important;
  max-width:320px!important;
  left:10px!important;right:auto!important;bottom:10px!important;
  padding:10px 11px 9px!important;
  border-radius:12px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"copy copy" "more actions"!important;
  column-gap:6px!important;row-gap:6px!important;
  max-height:min(58dvh,325px)!important;
  overflow-x:hidden!important;overflow-y:auto!important;
  transition:opacity .36s ease,transform .36s ease,visibility .36s ease!important;
}
#cookie .cookie-copy{grid-area:copy!important;min-width:0!important;margin:0!important;}
#cookie .cookie-copy>p{font-size:12px!important;line-height:1.4!important;margin:0!important;letter-spacing:0!important;}
#cookie .cookie-more{
  grid-area:more!important;justify-self:start!important;align-self:center!important;
  margin:0!important;padding:4px 0!important;text-align:left!important;
  min-height:32px!important;font-size:11.5px!important;line-height:1.2!important;
}
#cookie .cookie-actions{
  grid-area:actions!important;display:flex!important;flex-wrap:nowrap!important;
  justify-content:flex-end!important;align-items:center!important;
  margin:0!important;gap:6px!important;min-width:0!important;
}
#cookie #cookie-accept{
  padding:7px 10px!important;min-height:34px!important;
  font-size:11.75px!important;white-space:nowrap!important;
}
#cookie #cookie-reject{
  padding:5px 5px!important;min-height:33px!important;
  font-size:11.75px!important;white-space:nowrap!important;
}
#cookie.cookie-enter{opacity:0!important;transform:translateY(12px)!important;visibility:visible!important;}
#cookie.cookie.cookie-dismiss:not([hidden]){opacity:0!important;transform:translateY(11px)!important;filter:none!important;pointer-events:none!important;transition-duration:.48s!important;}
@media(max-width:350px){
 #cookie.cookie:not([hidden]){padding:9px 10px 8px!important;column-gap:3px!important;row-gap:5px!important;}
 #cookie .cookie-actions{gap:4px!important;}
 #cookie .cookie-more{font-size:11px!important;}
 #cookie #cookie-accept,#cookie #cookie-reject{font-size:11.25px!important;}
 #cookie #cookie-accept{padding:6px 8px!important;}
}
@media(prefers-reduced-motion:reduce){
 #cookie.cookie:not([hidden]),#cookie.cookie-enter,#cookie.cookie.cookie-dismiss:not([hidden]){transition:none!important;animation:none!important;transform:none!important;}
}

/* v0.2.76 — cierre visual de cookies: tarjeta discreta y explicación breve.
   Conservar la política completa para finalidades de medición/publicidad.
   Es un override acotado, sin tocar estilos de otros módulos. */
#cookie.cookie:not([hidden]){
  width:min(342px,calc(100vw - 20px))!important;
  max-width:342px!important;
  left:10px!important;right:auto!important;
  bottom:max(10px,env(safe-area-inset-bottom))!important;
  padding:8px 10px 7px!important;
  row-gap:3px!important;column-gap:7px!important;
  border-radius:11px!important;
  overflow-y:auto!important;
  max-height:min(52dvh,290px)!important;
}
#cookie .cookie-copy>p{font-size:12px!important;line-height:1.37!important;}
#cookie .cookie-more{font-size:11.5px!important;min-height:29px!important;padding:3px 0!important;}
#cookie .cookie-actions{gap:5px!important;}
#cookie #cookie-accept{font-size:11.75px!important;min-height:31px!important;padding:5px 11px!important;}
#cookie #cookie-reject{font-size:11.75px!important;min-height:31px!important;padding:4px 5px!important;}
/* Al leer la explicación, nunca dejar dos recuadros visibles simultáneamente. */
#cookie.cookie.cookie-panel-open:not([hidden]){opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:none!important;}
#cookie-details.cookie-info-panel{
  left:10px!important;
  bottom:max(10px,env(safe-area-inset-bottom))!important;
  width:min(334px,calc(100vw - 20px))!important;
  max-height:min(360px,calc(100dvh - 20px))!important;
  border-radius:12px!important;
}
#cookie-details .cookie-info-head{padding:9px 11px 6px!important;gap:8px!important;align-items:center!important;}
#cookie-details .cookie-info-head h2{font-size:16px!important;line-height:1.23!important;margin:0!important;}
#cookie-details .cookie-info-close{font-size:23px!important;width:31px!important;height:31px!important;}
#cookie-details .cookie-info-content{padding:8px 11px 6px!important;overflow-y:auto!important;}
#cookie-details .cookie-info-content p{font-size:12.25px!important;line-height:1.46!important;margin:0 0 8px!important;}
#cookie-details .cookie-info-content a{font-size:12.25px!important;font-weight:650;display:inline-block;margin-bottom:3px;}
#cookie-details .cookie-info-actions{padding:6px 11px 9px!important;justify-content:flex-end!important;}
#cookie-details .cookie-info-back{padding:6px 10px!important;min-height:31px!important;}
@media(max-width:350px){
 #cookie.cookie:not([hidden]){padding:7px 9px!important;row-gap:3px!important;column-gap:4px!important;}
 #cookie .cookie-copy>p{font-size:11.9px!important;line-height:1.36!important;}
 #cookie .cookie-more{font-size:11.25px!important;}
 #cookie #cookie-reject,#cookie #cookie-accept{font-size:11.5px!important;}
 #cookie-details .cookie-info-head h2{font-size:15.5px!important;}
}
@media(prefers-reduced-motion:reduce){
 #cookie.cookie.cookie-panel-open:not([hidden]){transition:none!important;animation:none!important;}
}


/* ALTERNATIVA B — Azul y amarillo dinámicos; comparación LOCAL, no decisión de despliegue. */
:root[data-cu-palette="B"]{
  --brand-primary:#173F66;
  --brand-primary-hover:#287FB0;
  --brand-vibrant:#287FB0;
  --brand-accent:#F4C542;
  --brand-accent-ink:#493A00;
  --brand-primary-rgb:23,63,102;
  --shadow-ink-rgb:23,47,76;
  --surface-base:#F7F9FC;
  --surface-muted:#ECF3F9;
  --surface-card:#FFFFFF;
  --surface-input:#FBFDFF;
  --surface-tinted:#E8F2F9;
  --surface-highlight:#FFF5CF;
  --surface-dark:#132C44;
  --border-default:#D6E3EF;
  --border-strong:#9FC3D8;
  --hero-glow:#E1EFF8;
  --footer-bg:#102D49;
  --footer-text:#E4F0F9;
  --footer-muted:#BBCFDB;
  --text-primary:#253342;
  --text-secondary:#3F5061;
  --text-muted:#526476;
}
/* Energía contenida: azul vivo en acentos y amarillo solo en CTA destacado. */
.hero h1 em{color:var(--brand-vibrant)}
.eyebrow{color:var(--brand-primary)}
.dark .eyebrow{color:var(--brand-accent)}
.hero-actions .btn-primary,.topbar .nav-cta{background:var(--button-accent-bg);color:var(--button-accent-text)}
.hero-actions .btn-primary:hover,.topbar .nav-cta:hover{background:var(--brand-accent);color:var(--text-primary);filter:brightness(.96)}
.hero-actions .btn-primary:focus-visible,.topbar .nav-cta:focus-visible{outline:3px solid var(--brand-primary);outline-offset:3px}

/* v0.2.86 — roles compartidos: navegación, botones, formularios, tarjetas, modales y avisos.
   Los estilos personalizados individuales siguen teniendo prioridad cuando corresponda. */
/* v0.2.88 — los enlaces de la barra superior comparten la superficie azulada
   de .nav-shell; el menú móvil mantiene su superficie independiente. */
@media(min-width:961px){.topbar nav{background:transparent}}
@media(max-width:960px){.topbar nav,.topbar.open nav{background:var(--nav-bg)}}
.topbar nav a[aria-current="location"],.topbar nav a:focus-visible{color:var(--nav-active-text)}
.btn-primary,.contact-cta,#cookie #cookie-accept{background:var(--button-primary-bg);color:var(--button-primary-text)}
.btn-primary:hover,#cookie #cookie-accept:hover{background:var(--button-primary-hover)}
.goal-card,.donation-card,.wizard,.ally,.video-card,.faq-shell details,.chip,.fieldbox{background:var(--card-bg);border-color:var(--card-border)}
input:not([type=checkbox]):not([type=radio]),select,textarea,.district-select-trigger{background:var(--form-bg);border-color:var(--form-border)}
input:focus,select:focus,textarea:focus{border-color:var(--form-focus)}
#cookie.cookie:not([hidden]){background:var(--cookie-bg)!important}
#cookie .cookie-copy>p,#cookie-details .cookie-info-content p{color:var(--cookie-text)!important}
#cookie-details.cookie-info-panel,.privacy-dialog,.story-dialog{background:var(--modal-bg);border-color:var(--modal-border);color:var(--modal-text)}

/* v0.2.92 — sombra luminosa discreta del CTA; no altera su interacción. */
.topbar .nav-cta{box-shadow:0 0 0 1px rgba(255,220,105,.44),0 0 15px 3px rgba(244,197,66,.28),0 8px 22px rgba(161,111,13,.14)!important}
.topbar .nav-cta:hover{box-shadow:0 0 0 1px rgba(255,220,105,.65),0 0 21px 5px rgba(244,197,66,.40),0 10px 25px rgba(161,111,13,.18)!important}

/* v0.2.94 — distribución institucional azul marino + amarillo suave.
   Ajustes de apariencia exclusivamente. No altera eventos ni lógica funcional. */
:root{
 --cu-gold-detail:#E7B84B;
 --cu-gold-border:rgba(199,150,43,.54);
 --cu-gold-light:#FFF7E3;
 --cu-navy-detail:#234C73;
 --cu-whatsapp-green:#25D366;
}
/* Marcos discretos de dos tonos (sin cambiar estructura ni tamaño). */
.donation-card,.video-card,.faq-shell details,.wizard,.goal-card,.ally{
 border-color:var(--cu-gold-border);
}
.donation-card:nth-child(even),.video-card:nth-child(even),.faq-shell details:nth-child(even){
 border-color:rgba(35,76,115,.45);
}
.donation-card:hover,.donation-card.selected,.faq-shell details[open]{
 border-color:var(--cu-gold-detail);
 box-shadow:0 12px 28px rgba(35,76,115,.09),inset 3px 0 0 rgba(231,184,75,.75);
}
/* El panel de historias / video oscurecido: acentos claros en las tarjetas. */
.dark .story,.dark .video-card,.dark .story-tall,.dark .story-wide{
 outline:1px solid rgba(231,184,75,.65);
 outline-offset:-1px;
}
.dark .story:nth-child(even){outline-color:rgba(155,190,220,.66)}
/* Pasos del formulario: dorado para el paso activo, azul suavizado en espera. */
.wizard-progress span{background:#DDE7F0}
.wizard-progress span.active{background:var(--cu-gold-detail)}
.wizard-step h3{color:var(--cu-navy-detail)}
.wizard .btn-primary,.step-actions .btn-primary{background:var(--cu-gold-detail);color:var(--text-primary)}
.wizard .btn-primary:hover,.step-actions .btn-primary:hover{background:#F2C85F;color:var(--text-primary)}
/* Preguntas frecuentes: título bien contrastado y señal de amarillo sin saturación. */
.faq-shell details{background:linear-gradient(90deg,rgba(231,184,75,.08),var(--surface-card) 24%)}
.faq-shell summary{color:var(--text-primary)}
.faq-shell details[open] summary{color:var(--cu-navy-detail)}
/* Llamada a la acción del contacto: amarillo suave, texto oscuro legible. */
.contact-cta{background:linear-gradient(135deg,#F3CF74,#E7B84B)!important;color:var(--text-primary)!important}
.contact-cta h3,.contact-cta p{color:var(--text-primary)!important}
.contact-cta .btn-light{background:#FFFFFF;color:var(--text-primary)}
.contact-cta #contact-whatsapp{
 background:var(--cu-whatsapp-green)!important;
 border-color:var(--cu-whatsapp-green)!important;
 color:#FFFFFF!important;
 box-shadow:0 6px 18px rgba(37,211,102,.20);
}
.contact-cta #contact-whatsapp:hover{filter:brightness(.94)}


/* v0.2.97 — jerarquía de títulos y contraste cálido. Solo presentación. */
:root{
 --cu-section-kicker:#A97914; /* dorado oscuro accesible sobre fondos claros */
 --cu-section-heading:#173653;
 --cu-dark-kicker:#8CC8EC;
 --cu-dark-heading:#F4C542;
 --cu-cta-navy:#234C73;
}
/* Pequeños encabezados de secciones públicas; sin afectar controles ni textos. */
.section-head .eyebrow,.form-intro>.eyebrow,.contact-grid>.reveal>.eyebrow,
.contact-grid .eyebrow,.goal-heading>.eyebrow {color:var(--cu-section-kicker)}
.section-head h2,.form-intro>h2,.contact-grid>.reveal>h2,
.goal-heading>h2 {color:var(--cu-section-heading)}
/* Contraste invertido exclusivamente en paneles oscuros. */
.dark .section-head .eyebrow,.dark .eyebrow {color:var(--cu-dark-kicker)}
.dark .section-head h2,.section-head.light h2 {color:var(--cu-dark-heading)}
/* Recuadro de contacto: mantener el dorado institucional y diferenciar CTA. */
.contact-cta{background:linear-gradient(135deg,#F6D680 0%,#E7B84B 100%)!important;
 border:1px solid rgba(183,132,28,.32);box-shadow:0 16px 34px rgba(35,76,115,.10)}
.contact-cta .btn-light{background:var(--cu-cta-navy)!important;color:#FFFFFF!important;
 box-shadow:0 7px 18px rgba(35,76,115,.20);border:1px solid rgba(255,255,255,.15)}
.contact-cta .btn-light:hover{background:#315D83!important;filter:brightness(1.04)}
.contact-cta #contact-whatsapp{background:#25D366!important;color:#FFFFFF!important}
.contact-cta #contact-whatsapp:hover{filter:brightness(1.07);box-shadow:0 9px 22px rgba(37,211,102,.30)}

/* v0.2.98 — ajustes estrictamente visuales; controlados por variables semánticas. */
:root{
 --cu-gold-bright:#F4C542;
 --cu-gold-warm:#E7B84B;
 --cu-gold-deep:#DBA92F;
 --cu-cta-gradient:linear-gradient(135deg,#FFE390 0%,var(--cu-gold-bright) 58%,var(--cu-gold-deep) 100%);
 --cu-cta-blue:#173F66;
 --cu-contact-icon:#D5A02E;
 --cu-contact-icon-highlight:#F0BD43;
}
/* Kicker de portada: misma intención que el resto de títulos pequeños. */
.hero .eyebrow,.hero #hero-eyebrow{color:var(--cu-section-kicker)!important}
/* Tarjeta sobre foto: titular cálido y subtítulo sin cambio de tamaño. */
.hero .accent-card strong{color:var(--cu-gold-bright)}
.hero .accent-card span{color:#F7F9FC}
/* Recuadro amarillo con mayor luz arriba a la izquierda y profundidad abajo. */
.contact-cta{
 background:var(--cu-cta-gradient)!important;
 border:1px solid rgba(183,132,28,.40)!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 17px 34px rgba(35,76,115,.13)!important;
}
.contact-cta>.btn{display:flex;align-items:center;justify-content:center;gap:12px;min-height:60px}
.contact-cta>.btn svg{width:28px;height:28px;flex:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}
.contact-cta #contact-whatsapp svg{width:30px;height:30px}
.contact-cta .btn-light{background:linear-gradient(180deg,#285A85,var(--cu-cta-blue))!important}
.contact-cta #contact-whatsapp{background:linear-gradient(180deg,#29D86C,#17BD55)!important}
.contact-cta #contact-whatsapp:hover{filter:brightness(1.08);box-shadow:0 10px 25px rgba(37,211,102,.32)}
/* Iconos informativos: sin envolver los enlaces ni cambiar sus destinos. */
.contact-list li{display:flex;align-items:baseline;gap:12px}
.contact-list li>svg{width:21px;height:21px;flex:0 0 21px;align-self:center;stroke:var(--cu-contact-icon);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.contact-list li>svg rect,.contact-list li>svg circle{stroke:var(--cu-contact-icon)}
/* Vista previa progresiva del indicador: no modifica paso, validaciones ni estado. */
.wizard-progress span{transition:background-color .24s ease,box-shadow .24s ease}
.wizard-progress:has(span:nth-child(1):hover) span:nth-child(-n+1),
.wizard-progress:has(span:nth-child(2):hover) span:nth-child(-n+2),
.wizard-progress:has(span:nth-child(3):hover) span:nth-child(-n+3),
.wizard-progress:has(span:nth-child(4):hover) span:nth-child(-n+4){
 background:var(--cu-gold-bright);box-shadow:0 0 0 1px rgba(219,169,47,.25)
}
@media(prefers-reduced-motion:reduce){.wizard-progress span{transition:none}}

/* v0.2.99: pulido exclusivamente visual, sin alterar acciones ni medición. */
:root { --nav-hover-gold: #B78216; --step-hover-gold:#E7B84B; }
@media (min-width:961px) {
 .topbar nav a:not(.mobile-donate-link):hover,
 .topbar nav a:not(.mobile-donate-link):focus-visible { color:var(--nav-hover-gold)!important; }
 .topbar nav a:not(.mobile-donate-link):hover::after,
 .topbar nav a:not(.mobile-donate-link):focus-visible::after { background:var(--nav-hover-gold)!important; }
}
.contact-cta .btn { font-size:1.08rem; }
.contact-cta .btn svg { width:27px;height:27px;flex-shrink:0; }
/* Resaltado decorativo acumulativo: no cambia pasos ni validación. */
@media (hover:hover) and (pointer:fine) {
 .steps:has(.step:nth-child(1):hover) .step:nth-child(-n+1) b,
 .steps:has(.step:nth-child(2):hover) .step:nth-child(-n+2) b,
 .steps:has(.step:nth-child(3):hover) .step:nth-child(-n+3) b,
 .steps:has(.step:nth-child(4):hover) .step:nth-child(-n+4) b {
   background:var(--step-hover-gold);border-color:var(--step-hover-gold);
   color:#173F66;box-shadow:0 5px 17px rgba(183,130,22,.19);
   transition:background .24s ease,border-color .24s ease,box-shadow .24s ease,color .24s ease;
 }
}
@media(prefers-reduced-motion:reduce){.steps .step b{transition:none!important}}

/* v0.2.100 — identidad visual: símbolo uniforme de WhatsApp, sin cambios en enlaces. */
.contact-cta #contact-whatsapp svg.cu-wa-symbol{
  width:30px;height:30px;display:block;flex:none;
  stroke:none!important;stroke-width:0!important;fill:currentColor!important;
  transform:none!important;
}
.contact-cta #contact-whatsapp svg.cu-wa-symbol path{fill:currentColor!important;stroke:none!important}

/* v0.2.100 — recorrido decorativo; no afecta el asistente del formulario. */
.steps.cu-steps-playing .step b{
  background:color-mix(in srgb,var(--cu-step-gold,#E7B84B) var(--cu-step-circle-fill,0%),white);
  border-color:color-mix(in srgb,var(--cu-step-gold,#E7B84B) var(--cu-step-circle-fill,0%),var(--border-default));
  color:var(--text-primary);
  transition:background-color .12s linear,border-color .12s linear;
}
.steps.cu-steps-playing .step:not(:last-child)::after{
  height:2px;
  background:linear-gradient(to right,var(--cu-step-gold,#E7B84B) 0 var(--cu-step-line-fill,0%),var(--border-default) var(--cu-step-line-fill,0%) 100%);
}
@media(prefers-reduced-motion:reduce){.steps.cu-steps-playing .step b{transition:none}}

/* v0.2.101: correcciones cosméticas limitadas. */
/* Mismo símbolo para ambos botones; el teléfono interior ocupa mejor el globo. */
#floating-whatsapp svg, .contact-cta #contact-whatsapp svg.cu-wa-symbol { overflow:visible; }
#floating-whatsapp svg .cu-wa-handset, .contact-cta #contact-whatsapp svg.cu-wa-symbol .cu-wa-handset {
  transform-box:view-box;
  transform-origin:50% 50%;
  transform:scale(1.23);
}
/* Suprimir la mezcla de filtros/cambio de fondo que causaba parpadeos. */
.contact-cta .btn-light,.contact-cta .btn-light:hover,.contact-cta .btn-light:focus-visible {
  background:linear-gradient(180deg,#285A85,var(--cu-cta-blue))!important;
  filter:none!important;
  transition:box-shadow .22s ease!important;
}
.contact-cta .btn-light:hover,.contact-cta .btn-light:focus-visible {
  box-shadow:0 10px 25px rgba(23,63,102,.33)!important;
}
/* Anular el comportamiento previo basado en hover y animación de v0.2.100. */
.steps.cu-steps-auto .step b {
  background:color-mix(in srgb,var(--cu-step-gold,#E7B84B) var(--cu-auto-circle,0%),white)!important;
  border-color:color-mix(in srgb,var(--cu-step-gold,#E7B84B) var(--cu-auto-circle,0%),var(--border-default))!important;
  color:var(--text-primary)!important;
  box-shadow:none!important;
  transition:none!important;
}
.steps.cu-steps-auto .step:not(:last-child)::after {
  height:3px!important;
  background:linear-gradient(to right,var(--cu-step-gold,#E7B84B) 0 var(--cu-auto-line,0%),var(--border-default) var(--cu-auto-line,0%) 100%)!important;
}
@media(hover:hover) and (pointer:fine) {
 .steps.cu-steps-auto:has(.step:hover) .step b { box-shadow:none!important; }
}
@media(prefers-reduced-motion:reduce) {
 .steps.cu-steps-auto .step b,.steps.cu-steps-auto .step::after {transition:none!important;}
}

/* v0.2.102 — marca WhatsApp basada en la referencia proporcionada; sin cambios de enlaces. */
#floating-whatsapp img.cu-wa-icon{width:40px;height:40px;object-fit:contain;display:block;position:relative;z-index:1;flex-shrink:0}
.contact-cta #contact-whatsapp img.cu-wa-icon{width:33px;height:33px;display:block;object-fit:contain;flex-shrink:0}
@media(max-width:640px){#floating-whatsapp img.cu-wa-icon{width:31px;height:31px}}
@media(max-width:400px){#floating-whatsapp img.cu-wa-icon{width:26px;height:26px}}
/* La secuencia es exclusivamente automática: ningún estado hover modifica los círculos. */
.steps.cu-steps-auto .step:hover b{transform:none!important;box-shadow:none!important}

/* v0.2.103 — botón de donación: ícono más legible y halo azul discreto.
   Exclusivamente visual: se mantienen el href y el marcado originales. */
.contact-cta .btn-light svg{
  width:34px!important;
  height:34px!important;
  flex:0 0 34px;
}
.contact-cta .btn-light,.contact-cta .btn-light:hover,.contact-cta .btn-light:focus-visible{
  transition:box-shadow .24s ease,transform .22s ease!important;
}
.contact-cta .btn-light:hover,.contact-cta .btn-light:focus-visible{
  box-shadow:0 10px 26px rgba(23,63,102,.34),0 0 0 3px rgba(87,154,214,.20),0 0 26px rgba(56,136,206,.38)!important;
}
@media(prefers-reduced-motion:reduce){
  .contact-cta .btn-light{transition:none!important}
}

/* v0.2.104 — recorrido decorativo 01→04 sin hover ni repetición.
   El avance se controla únicamente en pasos-visuales-local.js. */
.steps.cu-steps-once .step b,
.steps.cu-steps-once .step:hover b {
  background:linear-gradient(to top,var(--brand-accent) 0 var(--cu-once-circle,0%),var(--surface-card) var(--cu-once-circle,0%) 100%)!important;
  border-color:var(--border-default)!important;
  color:var(--text-primary)!important;
  transform:none!important;
  box-shadow:none!important;
  transition:none!important;
}
.steps.cu-steps-once .step:not(:last-child)::after,
.steps.cu-steps-once .step:not(:last-child):hover::after {
  height:3px!important;
  background:linear-gradient(to right,var(--brand-accent) 0 var(--cu-once-line,0%),var(--border-default) var(--cu-once-line,0%) 100%)!important;
  transition:none!important;
}

/* v0.2.105: el progreso se calcula por un único controlador JS; el círculo empieza vacío. */
.steps.cu-steps-once .step b{background-repeat:no-repeat!important}


/* v0.2.106 — Ajustes SOLO visuales: cabecera móvil y sección Media.
   Reutiliza los tokens cromáticos, no altera navegación ni reproducción. */
:root{
  --media-accent-gold:#E7B84B;
  --media-border-gold:#DFC16F;
  --media-glow-warm:rgba(206,133,56,.23);
  --media-selected-blue:#287FB0;
  --media-selected-glow:rgba(40,127,176,.28);
}
/* Media: halo cálido restringido al fondo, sin desplazar contenidos. */
.video-stage{
  background:radial-gradient(ellipse at 17% 17%,var(--media-glow-warm) 0%,transparent 47%),
    radial-gradient(ellipse at 75% 100%,rgba(231,184,75,.08),transparent 49%),
    linear-gradient(135deg,#14283B 0%,#193752 100%);
  border:1px solid rgba(231,184,75,.55);
}
.video-stage-art .tiktok-mark{color:var(--media-accent-gold)}
.video-stage-copy .eyebrow{color:var(--media-accent-gold)}
.video-mini:not(.active){border:1px solid var(--media-border-gold);box-shadow:0 3px 12px rgba(130,96,35,.05)}
.video-mini.active{
  border:2px solid var(--media-selected-blue);
  background:linear-gradient(145deg,#F5FAFF,#E8F2FC);
  box-shadow:0 0 0 2px rgba(40,127,176,.10),0 0 18px var(--media-selected-glow);
}
.video-mini:hover:not(.active){border-color:var(--media-accent-gold);box-shadow:0 8px 20px rgba(206,133,56,.14)}
@media(max-width:960px){
  /* El CTA del desplegable usa la misma identidad dorada de escritorio. */
  .topbar nav .mobile-donate-link,
  .topbar nav .mobile-donate-link:hover,
  .topbar nav .mobile-donate-link:focus-visible{
    background:linear-gradient(180deg,#F9D75F 0%,var(--brand-accent) 100%)!important;
    color:var(--text-primary)!important;
    box-shadow:0 0 0 1px rgba(255,225,129,.65),0 0 16px rgba(231,184,75,.32),0 7px 18px rgba(130,96,35,.13)!important;
  }
  /* Evitar que Menú salga de la cápsula, incluso durante su contracción. */
  .topbar .nav-shell,.topbar.scrolled .nav-shell{padding-right:14px!important;gap:6px!important}
  .topbar .brand{min-width:0!important;flex:1 1 auto!important;overflow:hidden}
  .topbar .brand img{max-width:100%!important;min-width:0!important}
  .topbar .menu-btn,.topbar.scrolled .menu-btn{
    flex:0 0 auto!important;min-width:58px!important;max-width:78px!important;
    margin-left:4px!important;margin-right:0!important;
    box-sizing:border-box!important;transform:none;
  }
}
@media(max-width:390px){
  .topbar .nav-shell,.topbar.scrolled .nav-shell{padding-right:11px!important;padding-left:9px!important}
  .topbar .menu-btn,.topbar.scrolled .menu-btn{min-width:54px!important;padding-left:9px!important;padding-right:9px!important}
}

/* v0.2.109 — Iconos sociales del pie: solo presentación; no enlaces inventados. */
.footer-socials{gap:15px}
.footer-socials .social-icon{
 display:inline-flex;align-items:center;justify-content:center;
 width:49px;height:49px;min-height:49px;padding:10px;margin:0;
 border:1px solid rgba(255,255,255,.17);border-radius:13px;
 background:rgba(255,255,255,.045);color:#fff;
 transition:color .25s ease,background-color .25s ease,border-color .25s ease,box-shadow .25s ease,transform .25s ease;
}
.footer-socials .social-icon svg{width:28px;height:28px;display:block;fill:currentColor;flex:none}
.footer-socials a.social-icon:hover,.footer-socials a.social-icon:focus-visible{
 color:#F5C84B;background:rgba(245,200,75,.1);border-color:#F5C84B;
 box-shadow:0 0 17px rgba(245,200,75,.34);transform:translateY(-2px);
}
.footer-socials .social-unlinked{opacity:.75;cursor:default}
@media(prefers-reduced-motion:reduce){.footer-socials .social-icon{transition:none!important}}

/* v0.2.111 — ÚNICO AJUSTE: logotipo de la barra contraída en escritorio.
   En v0.2.110 las reglas compactas heredadas lo reducían hasta 148×37px.
   Móviles <=960px no reciben esta modificación. */
@media (min-width:1280px){
  .topbar.scrolled .brand img{width:210px!important;height:54px!important;}
}
@media (min-width:961px) and (max-width:1279px){
  .topbar.scrolled .brand img{width:clamp(170px,16vw,195px)!important;height:53px!important;}
}
