/* Semillero Azulgrana · canteraccp.com (s3)
   Hoja propia de /semillero-azulgrana/, /semillero-azulgrana/nemby/ y
   /semillero-azulgrana/privacidad/ en los ocho idiomas. Se apoya en el sistema
   del sitio (campus-170726.css + campus-s3-hooks.css: Anton, Archivo, IBM Plex
   Mono, navy, rojo y dorado) y suma la marca del programa: azul #002E50 y rojo
   #BE1E2D.
   Reglas: mobile-first (320 px en adelante, sin desbordes), propiedades lógicas
   para que árabe y hebreo se espejen solos, foco visible, sin animaciones con
   prefers-reduced-motion y nada que dependa de JavaScript para verse bien. */

:root{
  --sem-azul:#002E50;
  --sem-azul-2:#0a3f68;
  --sem-azul-deep:#001a2e;
  --sem-rojo:#BE1E2D;
  --sem-tinta:#10213a;
  --sem-tenue:#55627c;
  --sem-linea:rgba(0,46,80,.14);
  --sem-crema:#fbf7ee;
  --sem-radio:22px;
  --sem-radio-sm:14px;
  --sem-sombra:0 18px 48px rgba(0,30,60,.12);
  --sem-sombra-lg:0 30px 80px rgba(0,22,44,.28);
  --sem-bar-h:68px;
}

/* ------------------------------------------------------------ base -- */
.sem-page{ background:#fff; }
.sem-page main{ display:block; }
.sem-page section{ padding-block:clamp(3.25rem,7vw,6.5rem); }
.sem-page img,
.sem-page svg{ max-width:100%; }
.sem-page :is(h1,h2,h3,h4){ overflow-wrap:break-word; hyphens:auto; }
.sem-page h2{ font-size:clamp(2.05rem,6.4vw,3.9rem); color:var(--sem-azul); text-wrap:balance; }
.sem-page .dark h2,
.sem-page .sem-hero h2,
.sem-page .sem-route h2{ color:#fff; }
.sem-page .sec-head{ margin-bottom:clamp(1.8rem,4vw,3rem); }
.sem-sub{ color:var(--sem-tenue); font-size:clamp(1.02rem,1.6vw,1.14rem); line-height:1.65; max-width:62ch; margin-top:1.1rem; }
.dark .sem-sub{ color:#c8d2e6; }
.sem-page a:focus-visible,
.sem-page button:focus-visible,
.sem-page summary:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; border-radius:6px; }

.sem-skip{
  position:absolute; inset-inline-start:12px; top:-60px; z-index:400;
  padding:.8rem 1.1rem; border-radius:10px;
  background:#fff; color:var(--sem-azul); font-weight:700;
  box-shadow:var(--sem-sombra);
}
.sem-skip:focus{ top:12px; }
.sem-sr{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0;
}

/* Botones: el sistema del sitio (.btn rojo, .btn--line) con estados para
   bandas oscuras y ancho completo en celular. */
.sem-actions{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.6rem; }
.sem-page .btn{ min-height:48px; justify-content:center; text-align:center; line-height:1.25; }
.sem-page .btn--line{ border-color:rgba(0,46,80,.28); color:var(--sem-azul); }
.sem-page .btn--line:hover{ background:var(--sem-azul); border-color:var(--sem-azul); color:#fff; }
:is(.sem-hero,.sem-route,.dark,.sem-qr) .btn--line,
.sem-btn-light{ border-color:rgba(255,255,255,.42) !important; color:#fff !important; background:transparent; }
:is(.sem-hero,.sem-route,.dark,.sem-qr) .btn--line:hover,
.sem-btn-light:hover{ background:#fff !important; color:var(--sem-azul) !important; border-color:#fff !important; }
@media(max-width:560px){
  .sem-actions{ display:grid; grid-template-columns:minmax(0,1fr); }
  .sem-actions .btn{ width:100%; }
}

/* Ayuda «i»: cada acción explica qué pasa al tocarla. */
.sem-help{
  margin-top:1rem; max-width:62ch;
  border:1px solid var(--sem-linea); border-radius:var(--sem-radio-sm);
  background:rgba(0,46,80,.035);
}
.sem-help summary{
  display:flex; align-items:center; gap:.65rem; cursor:pointer; list-style:none;
  padding:.7rem .9rem; min-height:44px;
  color:var(--sem-azul); font-size:.92rem; font-weight:600; line-height:1.35;
}
.sem-help summary::-webkit-details-marker{ display:none; }
.sem-help summary::after{
  content:""; flex:0 0 9px; width:9px; height:9px; margin-inline-start:auto;
  border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(45deg); transition:transform .18s ease; opacity:.7;
}
.sem-help[open] summary::after{ transform:rotate(-135deg); }
.sem-help-i{
  flex:0 0 26px; width:26px; height:26px; display:inline-grid; place-items:center;
  border-radius:50%; background:var(--sem-azul); color:#fff;
  font:italic 700 .9rem/1 Georgia,"Times New Roman",serif;
}
.sem-help p{ padding:0 .95rem .9rem calc(.9rem + 26px + .65rem); color:var(--sem-tenue); font-size:.95rem; line-height:1.6; }
.sem-help--dark{ border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.06); }
.sem-help--dark summary{ color:#fff; }
.sem-help--dark .sem-help-i{ background:var(--gold); color:var(--sem-azul-deep); }
.sem-help--dark p{ color:#cdd7ea; }
@media(max-width:420px){ .sem-help p{ padding-inline-start:.95rem; } }

/* Íconos lineales propios (SVG en el HTML). */
.sem-ico{
  display:inline-grid; place-items:center; flex:0 0 auto;
  width:52px; height:52px; border-radius:16px;
  background:linear-gradient(145deg,var(--sem-azul-2),var(--sem-azul));
  color:#fff; box-shadow:0 10px 24px rgba(0,46,80,.22);
}
.sem-ico svg{ width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.sem-ico--lg{ width:72px; height:72px; border-radius:22px; }
.sem-ico--lg svg{ width:36px; height:36px; }

/* ---------------------------------------------------------- header -- */
.sem-header{ background:rgba(0,40,70,.95); }
.sem-brand{ display:flex; align-items:center; gap:.7rem; min-width:0; color:#fff; flex:0 1 auto; }
.sem-brand img{ height:44px; width:auto; flex:0 0 auto; }
.sem-brand-text{
  display:flex; flex-wrap:wrap; column-gap:.35em; min-width:0;
  font-family:var(--display); font-size:1.14rem; letter-spacing:.04em; text-transform:uppercase; line-height:1; /* lh-una-linea: marca «Semillero Azulgrana» en una línea, sin tildes */
}
.sem-brand-text b{ font-weight:400; color:#fff; }
.sem-brand-text strong{ font-weight:400; color:#ff5a60; }
/* Ñemby (D10): primero la marca municipal en texto, después el escudo. */
.semn-brand{ gap:.6rem; }
.semn-brand-text{ display:flex; flex-direction:column; min-width:0; line-height:1.05; /* lh-una-linea: marca del municipio en una línea (nowrap) */ }
.semn-brand-text b{ font-family:var(--display); font-weight:400; font-size:1.14rem; letter-spacing:.04em; text-transform:uppercase; color:#fff; white-space:nowrap; }
.semn-brand-text small{ font-family:var(--mono); font-size:.62rem; line-height:1.45; letter-spacing:.06em; color:var(--gold); margin-top:.12rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } /* recorta con «…»: el alto de línea deja entera la tilde de «Ñemity» */
.semn-brand img{ height:36px; width:auto; flex:0 0 auto; padding-inline-start:.6rem; border-inline-start:1px solid rgba(255,255,255,.22); box-sizing:content-box; }
.sem-page .nav-links .nav-cta{ background:var(--red); }
@media(max-width:1440px){
  .sem-page .nav-links a{ min-height:48px; display:flex; align-items:center; }
  .sem-page .nav-links .nav-cta{ justify-content:center; margin-top:1rem; }
}
@media(max-width:560px){ .semn-brand-text small{ display:none; } }
@media(max-width:480px){
  .sem-page .nav{ gap:.45rem; }
  .sem-brand{ gap:.5rem; }
  .sem-brand img{ height:38px; }
  .sem-brand-text{ flex-direction:column; font-size:.98rem; line-height:.98; /* lh-una-linea: marca «Semillero / Azulgrana» en dos líneas, sin tildes */ }
  .semn-brand-text b{ font-size:1rem; }
  .semn-brand img{ height:30px; padding-inline-start:.45rem; }
  .sem-page .nav-toggle{ flex:0 0 40px; width:40px; }
  .sem-page .lang{ flex:0 0 auto; }
  .sem-page .lang-btn{ padding:.48rem .62rem; }
}

/* ------------------------------------------------------- S1 portada -- */
.sem-hero{
  position:relative; overflow:hidden; isolation:isolate;
  --ink:#fff; --dim:#c9d4e8; --line:rgba(255,255,255,.2); --page:var(--sem-azul);
  color:#fff;
  background:
    radial-gradient(820px 520px at 92% -8%,rgba(190,30,45,.34),transparent 62%),
    radial-gradient(640px 420px at -10% 110%,rgba(240,180,41,.12),transparent 60%),
    linear-gradient(160deg,var(--sem-azul-2) 0%,var(--sem-azul) 42%,var(--sem-azul-deep) 100%);
}
.sem-page .sem-hero{ padding-block:clamp(2.4rem,6vw,5.6rem) clamp(3rem,7vw,6.2rem); }
.sem-hero-rings{
  position:absolute; z-index:-1; pointer-events:none;
  inset-block-start:-18%; inset-inline-end:-22%;
  width:min(820px,120vw); aspect-ratio:1;
  background:repeating-radial-gradient(circle at center,transparent 0 62px,rgba(255,255,255,.07) 62px 63px);
  -webkit-mask-image:radial-gradient(circle at center,#000 0 38%,transparent 70%);
  mask-image:radial-gradient(circle at center,#000 0 38%,transparent 70%);
}
.sem-hero .kicker{ color:var(--gold); }
.sem-hero .kicker::before{ background:var(--gold); }
.sem-hero-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(2rem,5vw,4rem); align-items:center; }
.sem-hero-copy{ min-width:0; }
.sem-hero h1{
  font-size:clamp(2.35rem,8.4vw,5.5rem); line-height:var(--display-lh); color:#fff;
  text-wrap:balance; max-width:15ch;
}
.sem-hero-lead{ color:#d3dcec; font-size:clamp(1.02rem,1.7vw,1.2rem); line-height:1.65; max-width:58ch; margin-top:1.3rem; }
.sem-tags{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.4rem; }
.sem-tags li{
  display:inline-flex; align-items:center; gap:.45rem; min-width:0;
  padding:.45rem .85rem; border-radius:999px;
  border:1px solid rgba(255,255,255,.26); background:rgba(255,255,255,.07);
  color:#fff; font-size:.86rem; font-weight:600; line-height:1.3;
}
.sem-tags li::before{ content:""; width:7px; height:7px; border-radius:50%; background:#ff6b70; flex:0 0 7px; }
.sem-tags .sem-tag-agreement{ border-color:rgba(240,180,41,.7); background:rgba(240,180,41,.14); color:#ffe2a0; }
.sem-tags .sem-tag-agreement::before{ background:var(--gold); }
.sem-tag-agreement[data-agreement="firmado"]{ background:var(--gold); color:var(--sem-azul-deep); border-color:var(--gold); }
.sem-tag-agreement[data-agreement="firmado"]::before{ background:var(--sem-azul-deep); }
.sem-hero-note{ margin-top:1rem; color:#aebbd3; font-size:.9rem; }
.sem-hero-visual{ position:relative; min-width:0; margin:0; padding-block-end:clamp(2.2rem,5vw,3rem); }
.sem-hero-photo{
  border-radius:var(--sem-radio); overflow:hidden;
  border:1px solid rgba(255,255,255,.18); box-shadow:var(--sem-sombra-lg);
  background:var(--sem-azul-deep);
}
.sem-hero-photo img{ width:100%; height:auto; aspect-ratio:1200/616; object-fit:cover; }
.sem-hero-crest{
  position:absolute; inset-inline-start:clamp(-.5rem,-1.5vw,-1.4rem); bottom:0;
  width:clamp(92px,24vw,150px); padding:.7rem;
  border-radius:24px; background:#fff; box-shadow:0 22px 50px rgba(0,16,32,.4);
}
.sem-hero-crest img{ width:100%; height:auto; }
.sem-hero-visual figcaption{
  position:absolute; inset-inline-end:.9rem; top:.9rem;
  padding:.35rem .7rem; border-radius:999px;
  background:rgba(0,26,46,.72); backdrop-filter:blur(6px);
  font-family:var(--mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:#fff;
}
@media(min-width:960px){
  .sem-hero-grid{ grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); }
  .sem-hero-visual{ padding-block-end:3.2rem; }
}

/* ------------------------------------------------------ S2 promesa -- */
.sem-promise-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(1.5rem,4vw,3.5rem); }
.sem-promise-head{ min-width:0; }
.sem-promise-body{ min-width:0; }
.sem-promise-text{
  position:relative; color:var(--sem-tinta);
  font-size:clamp(1.22rem,2.4vw,1.72rem); line-height:1.5; font-weight:500;
  padding-inline-start:1.3rem; border-inline-start:4px solid var(--sem-rojo);
}
.sem-pillars{ display:grid; grid-template-columns:minmax(0,1fr); gap:.8rem; margin-top:clamp(1.6rem,4vw,2.4rem); }
.sem-pillars li{
  display:flex; align-items:center; gap:1rem; min-width:0;
  padding:1rem 1.15rem; border-radius:var(--sem-radio-sm);
  background:linear-gradient(135deg,rgba(0,46,80,.06),rgba(0,46,80,.02));
  border:1px solid var(--sem-linea);
}
.sem-pillars span{ font-family:var(--display); font-size:2.2rem; line-height:1; /* lh-una-linea: cifras */ color:var(--sem-rojo); flex:0 0 auto; }
.sem-pillars p{ min-width:0; color:var(--sem-azul); font-weight:700; font-size:1.05rem; line-height:1.35; }
.sem-promise-close{
  display:inline-block; margin-top:1.6rem; padding:.55rem 1rem; border-radius:12px;
  background:var(--sem-crema); border:1px solid rgba(240,180,41,.55);
  color:var(--sem-tinta); font-weight:600;
}
@media(min-width:760px){ .sem-pillars{ grid-template-columns:repeat(3,minmax(0,1fr)); } .sem-pillars li{ flex-direction:column; align-items:flex-start; } }
@media(min-width:1024px){ .sem-promise-grid{ grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:start; } }

/* ------------------------------------------------------- S3 qué es -- */
.sem-what-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(2rem,5vw,4rem); align-items:start; }
.sem-what-copy{ min-width:0; }
.sem-official{
  position:relative; overflow:hidden; margin-top:1.8rem;
  padding:clamp(1.2rem,3vw,1.7rem); border-radius:var(--sem-radio);
  background:linear-gradient(150deg,var(--sem-azul-2),var(--sem-azul) 55%,var(--sem-azul-deep));
  color:#fff; box-shadow:var(--sem-sombra);
}
.sem-official::after{
  content:""; position:absolute; inset-inline-end:-40px; top:-40px; width:140px; height:140px;
  border-radius:50%; border:18px solid rgba(190,30,45,.35); pointer-events:none;
}
.sem-official-lead{ font-family:var(--mono); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.sem-official-name{ position:relative; margin-top:.55rem; font-size:clamp(1.25rem,2.6vw,1.6rem); font-weight:700; line-height:1.3; max-width:32ch; }
.sem-hashtag{ display:inline-block; margin-top:.7rem; font-family:var(--mono); font-size:.9rem; letter-spacing:.04em; color:var(--gold); }
.sem-official-tail{ position:relative; margin-top:.8rem; color:#d0daea; font-size:.95rem; line-height:1.6; max-width:52ch; }
.sem-phrase{
  margin-top:1.6rem; padding:1rem 1.2rem; border-radius:var(--sem-radio-sm);
  background:#fff; border:1px solid var(--sem-linea); border-inline-start:5px solid var(--gold);
  color:var(--sem-azul); font-size:clamp(1.08rem,2vw,1.28rem); font-weight:700; line-height:1.45;
}
.sem-lamina{ display:grid; grid-template-columns:minmax(0,1fr); gap:.9rem; }
.sem-lamina-item{
  position:relative; min-width:0; padding:1.3rem 1.3rem 1.4rem; border-radius:var(--sem-radio);
  background:#fff; border:1px solid var(--sem-linea); box-shadow:0 8px 24px rgba(0,30,60,.06);
}
.sem-lamina-item h3{ margin-top:1rem; font-size:clamp(1.7rem,4vw,2.2rem); color:var(--sem-azul); }
.sem-lamina-item p{ margin-top:.45rem; color:var(--sem-tenue); line-height:1.55; }
.sem-lamina-item:nth-child(2) .sem-ico{ background:linear-gradient(145deg,#d8323f,var(--sem-rojo)); }
.sem-lamina-item:nth-child(3) .sem-ico{ background:linear-gradient(145deg,#2d6a4f,#1f5039); }
.sem-lamina-item:nth-child(4) .sem-ico{ background:linear-gradient(145deg,#f5c34d,#d99a12); color:var(--sem-azul-deep); }
@media(min-width:560px){ .sem-lamina{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:1024px){ .sem-what-grid{ grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); } }

/* ------------------------------------------------------ S4 etapas -- */
.sem-stage-list{ display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; counter-reset:none; }
.sem-stage{
  position:relative; min-width:0; display:flex; flex-direction:column; gap:.55rem;
  padding:1.5rem 1.4rem 1.4rem; border-radius:var(--sem-radio);
  background:#fff; border:1px solid var(--sem-linea); box-shadow:0 8px 24px rgba(0,30,60,.05);
}
.sem-stage-n{
  display:grid; place-items:center; width:54px; height:54px; border-radius:50%;
  background:rgba(0,46,80,.08); color:var(--sem-azul);
  font-family:var(--display); font-size:1.7rem; line-height:1; /* lh-una-linea: cifras */
}
.sem-stage-label{ font-family:var(--mono); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--sem-rojo); margin-top:.35rem; }
.sem-stage h3{ font-size:clamp(1.55rem,3.2vw,2rem); color:var(--sem-azul); }
.sem-stage > p:not(.sem-stage-label):not(.sem-chip){ color:var(--sem-tenue); line-height:1.6; }
.sem-chip{
  align-self:flex-start; margin-top:auto; padding:.35rem .75rem; border-radius:999px;
  background:rgba(0,46,80,.07); color:var(--sem-azul); font-size:.82rem; font-weight:700;
}
.sem-stage--open{ background:linear-gradient(155deg,var(--sem-azul-2),var(--sem-azul) 60%,var(--sem-azul-deep)); border-color:transparent; color:#fff; box-shadow:var(--sem-sombra); }
.sem-stage--open .sem-stage-n{ background:var(--sem-rojo); color:#fff; }
.sem-stage--open .sem-stage-label{ color:var(--gold); }
.sem-stage--open h3{ color:#fff; }
.sem-stage--open > p:not(.sem-stage-label):not(.sem-chip){ color:#d3dcec; }
.sem-chip--open{ display:inline-flex; align-items:center; gap:.45rem; background:var(--gold); color:var(--sem-azul-deep); }
.sem-chip--open::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--sem-rojo); animation:semPulse 1.8s ease-in-out infinite; }
@keyframes semPulse{ 0%,100%{ opacity:1; transform:scale(1); } 50%{ opacity:.35; transform:scale(.7); } }
@media(min-width:900px){ .sem-stage-list{ grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* ----------------------------------------------- S5 qué gana cada uno -- */
.sem-value-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; }
.sem-value-card{
  min-width:0; padding:1.4rem; border-radius:var(--sem-radio);
  background:#fff; border:1px solid var(--sem-linea); box-shadow:0 8px 24px rgba(0,30,60,.05);
  transition:transform .18s ease, box-shadow .18s ease;
}
.sem-value-card:hover{ transform:translateY(-3px); box-shadow:var(--sem-sombra); }
.sem-value-card h3{ margin-top:1rem; font-size:clamp(1.4rem,2.6vw,1.7rem); color:var(--sem-azul); }
.sem-value-card p{ margin-top:.5rem; color:var(--sem-tenue); line-height:1.6; }
.sem-commerce{
  position:relative; overflow:hidden; margin-top:1.4rem;
  padding:clamp(1.4rem,4vw,2.4rem); border-radius:var(--sem-radio);
  background:
    radial-gradient(520px 260px at 100% 0%,rgba(190,30,45,.32),transparent 70%),
    linear-gradient(150deg,var(--sem-azul-2),var(--sem-azul) 55%,var(--sem-azul-deep));
  color:#fff; box-shadow:var(--sem-sombra);
}
.sem-commerce .kicker{ color:var(--gold); }
.sem-commerce .kicker::before{ background:var(--gold); }
.sem-commerce h3{ font-size:clamp(1.7rem,4.4vw,2.9rem); color:#fff; max-width:22ch; }
.sem-commerce p:not(.kicker){ margin-top:.9rem; color:#d3dcec; line-height:1.65; max-width:70ch; }
@media(min-width:620px){ .sem-value-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:1024px){ .sem-value-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* ----------------------------------------------------- S6 recorrido -- */
.sem-route{
  position:relative; overflow:hidden; color:#fff;
  --ink:#fff; --line:rgba(255,255,255,.2); --page:var(--sem-azul);
  background:
    radial-gradient(900px 520px at 0% 0%,rgba(240,180,41,.10),transparent 60%),
    radial-gradient(760px 480px at 100% 100%,rgba(190,30,45,.24),transparent 65%),
    linear-gradient(170deg,var(--sem-azul) 0%,var(--sem-azul-deep) 100%);
}
.sem-route .kicker{ color:var(--gold); }
.sem-route .kicker::before{ background:var(--gold); }
.sem-route-head{ display:grid; grid-template-columns:minmax(0,1fr); gap:1.2rem 3rem; align-items:end; }
.sem-route-head > div{ min-width:0; }
.sem-route-lead p{ color:#d0daea; line-height:1.65; max-width:62ch; }
.sem-route-lead p + p{ margin-top:.8rem; }
.sem-route-notice{
  display:flex; gap:.9rem; align-items:flex-start; margin-top:clamp(1.6rem,4vw,2.4rem);
  padding:1rem 1.15rem; border-radius:var(--sem-radio-sm);
  background:rgba(240,180,41,.12); border:1px solid rgba(240,180,41,.6);
}
.sem-route-notice > div{ min-width:0; }
.sem-route-notice-ico{
  flex:0 0 30px; width:30px; height:30px; display:grid; place-items:center; border-radius:50%;
  background:var(--gold); color:var(--sem-azul-deep); font-weight:800; font-size:1rem;
}
.sem-route-notice strong{ color:#ffe2a0; font-size:1.02rem; }
.sem-route-notice p + p{ margin-top:.3rem; color:#e3e9f4; font-size:.95rem; line-height:1.55; }
.sem-route-list-title{
  margin-top:clamp(2rem,5vw,3rem); font-family:var(--mono); font-size:.74rem; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; line-height:1.4; color:var(--gold);
}
.sem-route-list{ display:grid; grid-template-columns:minmax(0,1fr); gap:.8rem; margin-top:1rem; }
.sem-city{
  position:relative; display:flex; gap:1rem; min-width:0;
  padding:1.15rem 1.1rem 1.2rem; border-radius:var(--sem-radio-sm);
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.13);
}
.sem-city-n{
  flex:0 0 auto; min-width:2.6ch; font-family:var(--display); font-size:2rem; line-height:1; /* lh-una-linea: cifras */
  color:transparent; -webkit-text-stroke:1.4px rgba(255,255,255,.55);
}
.sem-city-body{ min-width:0; flex:1 1 auto; display:flex; flex-direction:column; align-items:flex-start; gap:.3rem; }
.sem-city-name{ font-family:var(--display); font-weight:400; font-size:1.5rem; line-height:var(--display-lh); text-transform:uppercase; letter-spacing:.02em; color:#fff; }
.sem-city-dept{ font-family:var(--mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:#9fb0cc; }
.sem-city-fact{ color:#cbd6e8; font-size:.93rem; line-height:1.55; }
.sem-badge{
  display:inline-flex; align-items:center; gap:.4rem; margin-top:.35rem;
  padding:.28rem .7rem; border-radius:999px;
  font-size:.78rem; font-weight:700; line-height:1.3;
  border:1px solid rgba(255,255,255,.3); color:#e6ecf6;
}
.sem-badge::before{ content:""; width:6px; height:6px; border-radius:50%; background:currentColor; flex:0 0 6px; opacity:.8; }
.sem-badge--programado{ border-color:rgba(240,180,41,.75); color:#ffd978; background:rgba(240,180,41,.12); }
.sem-badge--firmado{ border-color:var(--gold); background:var(--gold); color:var(--sem-azul-deep); }
.sem-city-ask{ margin-top:.5rem; color:#fff; font-weight:600; font-size:.95rem; }
.sem-city-cta{
  display:inline-flex; align-items:center; justify-content:center; gap:.45rem; min-height:44px;
  margin-top:.35rem; padding:.55rem 1rem; border-radius:999px;
  border:1px solid rgba(255,255,255,.4); color:#fff; font-size:.9rem; font-weight:600; line-height:1.25;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.sem-city-cta:hover{ background:#fff; color:var(--sem-azul); border-color:#fff; }
.sem-city--first{
  background:linear-gradient(135deg,rgba(190,30,45,.95),#8f1420);
  border-color:transparent; box-shadow:0 20px 50px rgba(120,10,20,.35);
}
.sem-city--first .sem-city-n{ color:#fff; -webkit-text-stroke:0; }
.sem-city--first .sem-city-name{ font-size:clamp(1.9rem,5vw,2.6rem); }
.sem-city--first .sem-city-dept{ color:#ffd1d4; }
.sem-city--first .sem-city-fact{ color:#fff; font-size:1rem; max-width:60ch; }
.sem-city--first .sem-badge--programado{ background:rgba(0,0,0,.18); }
.sem-city-cta--first{ background:#fff; color:var(--sem-rojo); border-color:#fff; margin-top:.7rem; }
.sem-city-cta--first:hover{ background:var(--sem-azul-deep); color:#fff; border-color:var(--sem-azul-deep); }
.sem-route-foot{ display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; align-items:start; margin-top:1.6rem; }
.sem-route-foot .btn{ justify-self:start; }
@media(min-width:720px){
  .sem-route-list{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sem-city--first{ grid-column:1 / -1; }
}
@media(min-width:1100px){
  .sem-route-head{ grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
  .sem-route-list{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .sem-route-foot{ grid-template-columns:minmax(0,1fr) auto; align-items:center; }
}
@media(max-width:560px){ .sem-route-foot .btn{ justify-self:stretch; width:100%; } }

/* ---------------------------------------------------- S7 tecnología -- */
.sem-tech{ overflow:hidden; }
.sem-tech .wrap{ position:relative; z-index:1; }
.sem-tech-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; }
.sem-tech-card{
  min-width:0; padding:1.5rem 1.4rem; border-radius:var(--sem-radio);
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); backdrop-filter:blur(4px);
}
.sem-tech-n{ display:block; font-family:var(--display); font-size:2.6rem; line-height:1; /* lh-una-linea: cifras «24/7» */ color:var(--red-hot); }
.sem-tech-card:nth-child(2) .sem-tech-n{ color:var(--gold); }
.sem-tech-card:nth-child(3) .sem-tech-n{ color:#8fd3ff; }
.sem-tech-card h3{ margin-top:.9rem; font-size:clamp(1.4rem,2.8vw,1.75rem); color:#fff; }
.sem-tech-card p{ margin-top:.6rem; color:#c9d3e6; line-height:1.6; }
.sem-never{
  margin-top:1.4rem; padding:clamp(1.3rem,3.5vw,2rem); border-radius:var(--sem-radio);
  background:rgba(8,14,36,.55); border:1px solid rgba(255,64,70,.45);
}
.sem-never h3{ font-size:clamp(1.5rem,3.4vw,2.1rem); color:#fff; }
.sem-never ul{ display:grid; grid-template-columns:minmax(0,1fr); gap:.65rem 1.6rem; margin-top:1rem; }
.sem-never li{ position:relative; padding-inline-start:2rem; color:#e3e9f4; line-height:1.5; }
.sem-never li::before{
  content:""; position:absolute; inset-inline-start:0; top:.18rem; width:1.25rem; height:1.25rem; border-radius:50%;
  background:
    linear-gradient(45deg,transparent 45%,#fff 45% 55%,transparent 55%),
    linear-gradient(-45deg,transparent 45%,#fff 45% 55%,transparent 55%),
    var(--red);
  background-size:62% 62%,62% 62%,100% 100%; background-position:center; background-repeat:no-repeat;
}
@media(min-width:900px){
  .sem-tech-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .sem-never ul{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* --------------------------------------------- S8 por qué Cerro Porteño -- */
.sem-stats{ display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; }
.sem-stat{
  min-width:0; padding:1.4rem; border-radius:var(--sem-radio);
  background:linear-gradient(160deg,#fff,#f4f7fb); border:1px solid var(--sem-linea);
  border-block-start:4px solid var(--sem-rojo);
}
.sem-stat dt{ font-family:var(--display); font-size:clamp(1.75rem,3.4vw,2.4rem); line-height:var(--display-lh); text-transform:uppercase; color:var(--sem-azul); }
.sem-stat dd{ margin:.6rem 0 0; color:var(--sem-tenue); line-height:1.55; }
.sem-source{ margin-top:1rem; font-family:var(--mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--faint); }
.sem-gallery{ display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; margin-top:clamp(1.6rem,4vw,2.6rem); }
.sem-gallery figure{ position:relative; margin:0; min-width:0; border-radius:var(--sem-radio); overflow:hidden; background:var(--sem-azul); box-shadow:var(--sem-sombra); }
.sem-gallery img{ width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.sem-gallery figcaption{
  position:absolute; inset-inline-start:.8rem; bottom:.8rem; max-width:calc(100% - 1.6rem);
  padding:.35rem .75rem; border-radius:999px; background:rgba(0,26,46,.8);
  font-family:var(--mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:#fff;
}
@media(min-width:620px){
  .sem-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sem-gallery{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(min-width:1100px){ .sem-stats{ grid-template-columns:repeat(4,minmax(0,1fr)); } }

/* ----------------------------------------------------- S9 el curso -- */
.sem-course-card{
  display:grid; grid-template-columns:minmax(0,1fr); overflow:hidden;
  border-radius:calc(var(--sem-radio) + 6px); background:#fff;
  border:1px solid var(--sem-linea); box-shadow:var(--sem-sombra-lg);
}
.sem-course-info{ min-width:0; padding:clamp(1.4rem,4vw,2.8rem); }
.sem-course-kicker{
  display:inline-flex; align-items:center; gap:.55rem; padding:.4rem .85rem; border-radius:999px;
  background:rgba(190,30,45,.08); color:var(--sem-rojo);
  font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; line-height:1.4;
}
.sem-dot{ width:8px; height:8px; flex:0 0 8px; border-radius:50%; background:var(--sem-rojo); animation:semPulse 1.8s ease-in-out infinite; }
.sem-course h2{ margin-top:1rem; }
.sem-course-sub{ margin-top:.4rem; color:var(--sem-rojo); font-weight:700; font-size:1.05rem; }
.sem-facts{ display:grid; grid-template-columns:minmax(0,1fr); gap:.5rem; margin-top:1.3rem; }
.sem-facts li{
  display:flex; align-items:center; gap:.6rem; min-width:0;
  padding:.65rem .8rem; border-radius:12px; background:#f3f6fa; color:var(--sem-tinta); font-weight:600; line-height:1.35;
}
.sem-facts li,
.sem-reqs li,
.sem-priv-summary li{ position:relative; }
.sem-facts li::before,
.sem-reqs li::before{ content:""; flex:0 0 20px; width:20px; height:20px; border-radius:50%; background:var(--sem-azul); }
.sem-reqs li::before{ background:var(--sem-rojo); margin-top:.12rem; }
/* La tilde no se espeja en árabe ni hebreo: bordes físicos, posición lógica. */
.sem-facts li::after,
.sem-reqs li::after,
.sem-priv-summary li::after{
  content:""; position:absolute; width:5px; height:9px;
  border-right:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(45deg);
}
.sem-facts li::after{ inset-inline-start:calc(.8rem + 7.5px); top:50%; margin-top:-6.5px; }
.sem-reqs li::after{ inset-inline-start:7.5px; top:calc(.12rem + 4px); }
.sem-course-body{ margin-top:1.3rem; color:var(--sem-tenue); line-height:1.7; max-width:66ch; }
.sem-course-req-title{ margin-top:1.5rem; font-size:1.5rem; color:var(--sem-azul); }
.sem-reqs{ display:grid; gap:.55rem; margin-top:.8rem; }
.sem-reqs li{ display:flex; align-items:flex-start; gap:.6rem; color:var(--sem-tinta); line-height:1.5; }
.sem-dates{
  margin-top:1.3rem; padding:.85rem 1rem; border-radius:12px;
  background:var(--sem-crema); border:1px solid rgba(240,180,41,.55); color:var(--sem-tinta); font-weight:600; line-height:1.5;
}
.sem-qr{
  min-width:0; display:flex; flex-direction:column; align-items:center; text-align:center;
  padding:clamp(1.6rem,4vw,2.6rem) clamp(1.2rem,3vw,2rem);
  background:
    radial-gradient(380px 240px at 50% 0%,rgba(190,30,45,.35),transparent 70%),
    linear-gradient(170deg,var(--sem-azul-2),var(--sem-azul) 55%,var(--sem-azul-deep));
  color:#fff;
}
.sem-qr-title{ font-family:var(--display); font-size:clamp(1.8rem,4vw,2.4rem); line-height:var(--display-lh); text-transform:uppercase; }
.sem-qr-frame{ margin-top:1.1rem; padding:.7rem; border-radius:18px; background:#fff; box-shadow:0 18px 40px rgba(0,10,25,.35); }
.sem-qr-code{ display:block; width:min(220px,62vw); height:auto; }
.sem-qr-line{ margin-top:1rem; color:var(--gold); font-weight:700; }
.sem-qr-type{ margin-top:.6rem; color:#cdd7ea; font-size:.92rem; line-height:1.5; }
.sem-qr-type strong{ display:inline-block; margin-top:.2rem; color:#fff; font-family:var(--mono); font-size:1.02rem; letter-spacing:.02em; }
.sem-qr-slug{ margin-top:.6rem; font-family:var(--mono); font-size:.62rem; letter-spacing:.08em; color:#8ea0bf; }
.sem-qr .sem-help{ text-align:start; width:100%; border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.06); }
.sem-qr .sem-help summary{ color:#fff; }
.sem-qr .sem-help-i{ background:var(--gold); color:var(--sem-azul-deep); }
.sem-qr .sem-help p{ color:#cdd7ea; }
@media(min-width:620px){ .sem-facts{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:980px){
  .sem-course-card{ grid-template-columns:minmax(0,1.45fr) minmax(0,.75fr); }
  .sem-qr{ justify-content:center; }
}
.sem-course-card--single{ grid-template-columns:minmax(0,1fr) !important; }

/* ---------------------------------------------------- S10 certificado -- */
.sem-cert-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(1.8rem,5vw,4rem); align-items:center; }
.sem-cert-copy{ min-width:0; }
.sem-cert-copy > p:not(.kicker):not(.sem-sub){ margin-top:.9rem; color:var(--sem-tinta); line-height:1.65; max-width:60ch; }
.sem-cert-copy .sem-sub strong{ color:var(--sem-azul); }
.sem-cert-note{
  padding:.8rem 1rem; border-radius:12px; background:#f3f6fa;
  border-inline-start:4px solid var(--sem-azul); color:var(--sem-tenue) !important; font-size:.95rem;
}
.sem-cert-sample{ margin:0; min-width:0; }
.sem-cert-svg{
  display:block; width:100%; height:auto; direction:ltr; unicode-bidi:isolate;
  border-radius:18px; box-shadow:var(--sem-sombra-lg);
}
.sem-cert-sample figcaption{ margin-top:.9rem; color:var(--sem-tenue); font-size:.9rem; line-height:1.55; }
@media(min-width:980px){ .sem-cert-grid{ grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); } }

/* ------------------------------------------------ S11 municipios/empresas -- */
.sem-b2b-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; }
.sem-b2b-card{
  min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:.7rem;
  padding:clamp(1.4rem,3.5vw,2.2rem); border-radius:var(--sem-radio);
  background:#fff; border:1px solid var(--sem-linea); box-shadow:0 8px 24px rgba(0,30,60,.06);
}
.sem-b2b-card h3{ margin-top:.4rem; font-size:clamp(1.55rem,3vw,2rem); color:var(--sem-azul); }
.sem-b2b-card p{ color:var(--sem-tenue); line-height:1.6; }
.sem-b2b-card .btn{ margin-top:auto; }
.sem-b2b-rule{
  padding:.7rem .9rem; border-radius:12px; background:rgba(190,30,45,.06);
  border:1px solid rgba(190,30,45,.22); color:#7c1a24 !important; font-size:.9rem;
}
@media(min-width:820px){ .sem-b2b-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px){ .sem-b2b-card .btn{ width:100%; } }

/* ------------------------------------------------ S12 preguntas -- */
.sem-faq-list{ display:grid; gap:.6rem; max-width:920px; }
.sem-faq-item{ border-radius:var(--sem-radio-sm); background:#fff; border:1px solid var(--sem-linea); transition:box-shadow .15s ease, border-color .15s ease; }
.sem-faq-item[open]{ border-color:rgba(0,46,80,.3); box-shadow:0 10px 28px rgba(0,30,60,.08); }
.sem-faq-item summary{
  display:flex; align-items:center; justify-content:space-between; gap:1rem; cursor:pointer; list-style:none;
  min-height:56px; padding:.9rem 1.1rem; color:var(--sem-azul); font-weight:700; font-size:1.02rem; line-height:1.4;
}
.sem-faq-item summary::-webkit-details-marker{ display:none; }
.sem-faq-item summary::after{
  content:"+"; flex:0 0 30px; width:30px; height:30px; display:grid; place-items:center; border-radius:50%;
  background:rgba(0,46,80,.08); color:var(--sem-azul); font-size:1.25rem; font-weight:700; line-height:1; /* lh-una-linea: signo «+» */
}
.sem-faq-item[open] summary::after{ content:"−"; background:var(--sem-rojo); color:#fff; }
.sem-faq-item p{ padding:0 1.1rem 1.1rem; color:var(--sem-tenue); line-height:1.65; max-width:72ch; }

/* ------------------------------------------------ S13 compromisos -- */
.sem-legal-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:1.2rem; align-items:start; }
.sem-legal-summary,
.sem-legal-text{ min-width:0; padding:clamp(1.3rem,3.5vw,2rem); border-radius:var(--sem-radio); background:#fff; border:1px solid var(--sem-linea); }
.sem-legal-summary h3,
.sem-legal-text h3,
.sem-legal-summary h2{ font-size:clamp(1.45rem,3vw,1.9rem); color:var(--sem-azul); }
.sem-legal-summary p{ margin-top:.8rem; color:var(--sem-tinta); line-height:1.65; }
.sem-legend{ font-family:var(--mono); font-size:.72rem !important; letter-spacing:.06em; color:var(--sem-tenue) !important; }
.sem-legal-summary .btn{ margin-top:1.2rem; }
.sem-legal-text ul{ display:grid; gap:.75rem; margin-top:1rem; }
.sem-legal-text li{ position:relative; padding-inline-start:1.2rem; color:var(--sem-tinta); font-size:.95rem; line-height:1.6; }
.sem-legal-text li::before{ content:""; position:absolute; inset-inline-start:0; top:.62em; width:6px; height:6px; border-radius:50%; background:var(--sem-rojo); }
.sem-legal-text a,
.sem-priv-legal a,
.sem-legal-summary a:not(.btn){ color:var(--sem-azul); text-decoration:underline; text-underline-offset:2px; overflow-wrap:anywhere; }
@media(min-width:900px){ .sem-legal-grid{ grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); } }
@media(max-width:560px){ .sem-legal-summary .btn{ width:100%; } }

/* ------------------------------------------------ Ñemby -- */
.semn-hero-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:2rem; align-items:center; }
.semn-hero-copy{ min-width:0; }
.semn-hero h1{ font-size:clamp(2.7rem,11vw,6rem); line-height:var(--display-lh); color:#fff; }
.semn-lema{ margin-top:.8rem; font-size:clamp(1.15rem,3.2vw,1.6rem); font-weight:700; color:var(--gold); line-height:1.3; }
.semn-hero .sem-hashtag{ font-size:1rem; margin-top:.5rem; }
.semn-hero .sem-badge{ margin-top:1rem; }
.semn-method{ margin-top:1.3rem; color:#c2cde2; font-size:.92rem; line-height:1.5; }
.semn-method span{ color:#fff; font-weight:700; }
.semn-hero-crest{ display:none; }
.semn-benefits .sec-head{ margin-bottom:1.4rem; }
.semn-ben-list{ display:grid; grid-template-columns:minmax(0,1fr); gap:.9rem; }
.semn-ben-list li{
  display:flex; align-items:center; gap:1rem; min-width:0; padding:1.1rem 1.2rem;
  border-radius:var(--sem-radio); background:#fff; border:1px solid var(--sem-linea); box-shadow:0 8px 24px rgba(0,30,60,.05);
}
.semn-ben-list p{ min-width:0; color:var(--sem-azul); font-weight:700; font-size:1.08rem; line-height:1.4; }
.semn-school-card{
  display:grid; grid-template-columns:minmax(0,1fr); gap:1.2rem; align-items:start;
  padding:clamp(1.4rem,4vw,2.4rem); border-radius:calc(var(--sem-radio) + 4px);
  background:linear-gradient(150deg,#fff,#f1f5fa); border:1px solid var(--sem-linea); box-shadow:var(--sem-sombra);
}
.semn-school-copy{ min-width:0; }
.semn-school-copy h2{ font-size:clamp(1.9rem,5vw,3rem); }
.semn-school-copy p{ margin-top:.8rem; color:var(--sem-tenue); line-height:1.65; max-width:62ch; }
.semn-more{ margin-top:1.6rem; }
.semn-close{
  text-align:center; color:#fff;
  background:
    radial-gradient(600px 300px at 50% 0%,rgba(190,30,45,.32),transparent 70%),
    linear-gradient(170deg,var(--sem-azul) 0%,var(--sem-azul-deep) 100%);
}
.semn-close-text{ max-width:28ch; margin-inline:auto; font-family:var(--display); font-size:clamp(1.8rem,5.4vw,3.4rem); line-height:var(--display-lh); text-transform:uppercase; text-wrap:balance; }
.semn-close .sem-hashtag{ font-size:1.05rem; margin-top:1rem; }
@media(min-width:760px){
  .semn-hero-grid{ grid-template-columns:minmax(0,1fr) auto; }
  .semn-hero-crest{ display:block; padding:1rem; border-radius:28px; background:#fff; box-shadow:0 26px 60px rgba(0,16,32,.4); }
  .semn-hero-crest img{ width:clamp(130px,16vw,170px); height:auto; }
  .semn-ben-list{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .semn-ben-list li{ flex-direction:column; align-items:flex-start; }
  .semn-school-card{ grid-template-columns:auto minmax(0,1fr); }
}

/* ------------------------------------------------ Privacidad -- */
.sem-priv-hero{
  color:#fff;
  background:
    radial-gradient(700px 380px at 100% 0%,rgba(190,30,45,.28),transparent 65%),
    linear-gradient(165deg,var(--sem-azul-2),var(--sem-azul) 50%,var(--sem-azul-deep));
}
.sem-priv-hero .kicker{ color:var(--gold); }
.sem-priv-hero .kicker::before{ background:var(--gold); }
.sem-priv-hero h1{ font-size:clamp(2.3rem,8vw,4.8rem); line-height:var(--display-lh); color:#fff; max-width:18ch; }
.sem-priv-hero .sem-hero-lead{ max-width:68ch; }
.sem-priv-version{ margin-top:1.1rem; font-family:var(--mono); font-size:.78rem; letter-spacing:.08em; color:#aebbd3; }
.sem-priv-version strong{ color:var(--gold); font-weight:500; }
.sem-priv-body{ background:#f4f6fa; }
.sem-priv-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:1.4rem; align-items:start; }
.sem-priv-summary{ min-width:0; padding:clamp(1.3rem,3.5vw,1.9rem); border-radius:var(--sem-radio); background:#fff; border:1px solid var(--sem-linea); box-shadow:var(--sem-sombra); }
.sem-priv-summary h2{ font-size:clamp(1.6rem,4vw,2.2rem); }
.sem-priv-summary ul{ display:grid; gap:.7rem; margin-top:1rem; }
.sem-priv-summary li{ position:relative; padding-inline-start:1.7rem; color:var(--sem-tinta); line-height:1.55; font-size:.96rem; }
.sem-priv-summary li::before{
  content:""; position:absolute; inset-inline-start:0; top:.15rem; width:18px; height:18px; border-radius:50%;
  background:var(--sem-azul);
}
.sem-priv-summary li::after{ inset-inline-start:6.5px; top:calc(.15rem + 3.5px); }
.sem-priv-summary .sem-legend{ margin-top:1rem; }
.sem-priv-actions{ display:grid; grid-template-columns:minmax(0,1fr); gap:.6rem; margin-top:1.3rem; }
.sem-priv-actions .btn{ width:100%; }
.sem-priv-text{ min-width:0; padding:clamp(1.3rem,4vw,2.6rem); border-radius:var(--sem-radio); background:#fff; border:1px solid var(--sem-linea); }
.sem-priv-text > h2{ font-size:clamp(1.7rem,4vw,2.4rem); }
.sem-priv-legal{ margin-top:1.2rem; color:var(--sem-tinta); line-height:1.7; max-width:74ch; overflow-wrap:break-word; }
.sem-priv-legal p{ margin-top:.8rem; }
.sem-priv-legal-title{ padding:.9rem 1rem; border-radius:12px; background:#f3f6fa; color:var(--sem-tenue); font-size:.92rem; }
.sem-priv-legal-title strong{ color:var(--sem-azul); font-size:1rem; }
.sem-priv-section{ margin-top:1.6rem; padding-top:1.3rem; border-top:1px solid var(--sem-linea); }
.sem-priv-section h3{ font-family:var(--body); font-size:1.12rem; font-weight:700; text-transform:none; letter-spacing:0; line-height:1.35; color:var(--sem-azul); }
.sem-priv-section ul{ display:grid; gap:.55rem; margin-top:.8rem; }
.sem-priv-section li{ position:relative; padding-inline-start:1.2rem; }
.sem-priv-section li::before{ content:""; position:absolute; inset-inline-start:0; top:.7em; width:6px; height:6px; border-radius:50%; background:var(--sem-rojo); }
@media(min-width:1024px){
  .sem-priv-grid{ grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); }
  .sem-priv-summary{ position:sticky; top:100px; }
}

/* ------------------------------------------------ pie -- */
.sem-footer{ background:linear-gradient(180deg,var(--sem-azul-deep),#00111f); }
.sem-foot-grid{ grid-template-columns:minmax(0,1fr) !important; gap:2rem !important; }
.sem-foot-grid > *{ min-width:0; }
.sem-footer .foot-logos img{ height:72px; }
.sem-footer .foot-col a{ display:inline-flex; align-items:center; min-height:32px; overflow-wrap:anywhere; }
.semn-foot-brand{ margin-bottom:1rem; color:#fff; line-height:1.4; }
.semn-foot-brand b{ display:block; font-family:var(--display); font-weight:400; font-size:1.5rem; letter-spacing:.03em; text-transform:uppercase; }
.sem-footer .foot-bottom{ flex-wrap:wrap; gap:.4rem 1.2rem; overflow-wrap:anywhere; }
@media(min-width:620px){ .sem-foot-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media(min-width:1024px){ .sem-foot-grid{ grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr)) !important; } }

/* ------------------------------------------------ barra fija de abajo -- */
/* Una sola capa abajo para todo lo que queda fijo (2026-09-27: «Sé parte» se
   montaba encima del texto de esta barra y «Privacidad» flotaba sobre el
   contenido). Contrato:
   - la barra declara data-cp-dock y campus-app.js monta «Sé parte» ADENTRO,
     como primer hijo: el flex reparte el ancho y nada se superpone, en ningún
     idioma ni ancho;
   - en el celular es la barra sólida con «Sé parte» y «Anotate gratis»; el
     texto «Gratis · Con certificado» se ve cuando entra (desde 560 px) o
     cuando no hay «Sé parte» (sin JavaScript);
   - en escritorio la barra es transparente y sólo muestra «Sé parte», abajo y
     del lado de inicio de la línea, como en el resto del sitio;
   - el control de privacidad no va acá: campus-app.js lo muda al pie. */
.sem-bar{
  position:fixed; z-index:250; inset-inline:0; bottom:0;
  display:flex; align-items:center; gap:.6rem;
  padding:0 max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
  pointer-events:none;
}
.sem-bar > *{ pointer-events:auto; }
.sem-bar-text,
.sem-bar > .btn{ display:none; }
.sem-bar .se-parte-fab{ position:static; flex:0 0 auto; }
@media(min-width:900px){
  .cp-fab-en-barra .site-footer::after{ content:""; display:block; block-size:calc(64px + env(safe-area-inset-bottom)); }
}
@media(max-width:899.98px){
  .sem-has-bar{ padding-bottom:calc(var(--sem-bar-h) + env(safe-area-inset-bottom)); }
  .sem-bar{
    min-height:var(--sem-bar-h);
    padding:.6rem max(16px,env(safe-area-inset-right)) calc(.6rem + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
    background:rgba(0,30,54,.97); backdrop-filter:blur(10px);
    border-top:1px solid rgba(255,255,255,.14);
    box-shadow:0 -12px 30px rgba(0,12,26,.28);
    pointer-events:auto;
  }
  .sem-bar-text{ display:block; flex:1 1 auto; min-width:0; color:#dfe7f3; font-size:.84rem; font-weight:600; line-height:1.3; }
  .sem-bar > .btn{ display:inline-flex; flex:0 0 auto; margin-inline-start:auto; min-height:46px; padding:.8rem 1.25rem; font-size:.72rem; white-space:nowrap; }
  /* «Sé parte» dentro de la barra: secundario (contorno), para que «Anotate
     gratis» siga siendo la acción principal. El corazón conserva el rojo. */
  .sem-bar .se-parte-fab{
    min-height:46px; padding:.55rem .95rem; gap:.45rem; font-size:.86rem;
    background:transparent; border-color:rgba(255,255,255,.42); box-shadow:none;
  }
  .sem-bar .se-parte-fab svg{ color:#ff5a60; }
  /* Si «Sé parte» quedó flotando (el colector sin pie, un navegador viejo),
     el botón de privacidad sube arriba de la barra en vez de taparla. */
  .sem-has-bar > .cp-analytics-manage{ bottom:calc(var(--sem-bar-h) + 10px + env(safe-area-inset-bottom)); }
}
@media(max-width:559.98px){
  .cp-fab-en-barra .sem-bar-text{ display:none; }
  .cp-fab-en-barra .sem-bar > .btn{ flex:1 1 auto; min-width:0; white-space:normal; line-height:1.2; text-align:center; }
}
@media(max-width:360px){
  .sem-bar-text{ font-size:.76rem; }
  .sem-bar > .btn{ padding-inline:1rem; letter-spacing:.08em; }
  .sem-bar .se-parte-fab{ padding-inline:.75rem; }
}

/* ---------------------------------------- tipografía por idioma -- */
/* Anton no tiene árabe, hebreo ni chino: esos títulos usan la fuente del
   sistema, con interlineado y peso que no cortan diacríticos ni ideogramas.
   Llevan además nombres en letra latina con tilde («Ñemby»): la tilde (1,078 em)
   no puede tocar las letras árabes y hebreas de la línea de arriba, que bajan
   hasta ~0,4 em (ي, ن), ni los ideogramas. Medido en Chrome con
   tools/check-render.mjs: árabe y hebreo 1,5; chino 1,3. */
html:is([lang="ar"],[lang="he"],[lang="zh"]) .sem-page :is(h1,h2,h3,.sem-qr-title,.semn-close-text,.sem-stat dt,.sem-tech-n):not([lang="es"]){
  line-height:1.3; letter-spacing:0; font-weight:800;
}
html:is([lang="ar"],[lang="he"]) .sem-page :is(h1,h2,h3,.sem-qr-title,.semn-close-text,.sem-stat dt,.sem-tech-n):not([lang="es"]){ line-height:1.5; }
html:is([lang="ar"],[lang="he"]) .sem-page :is(.kicker,.sem-stage-label,.sem-course-kicker,.sem-route-list-title,.sem-official-lead,.sem-source){ letter-spacing:0; }
html[lang="zh"] .sem-page :is(.kicker,.sem-stage-label,.sem-course-kicker,.sem-route-list-title,.sem-official-lead,.sem-source){ letter-spacing:.06em; }
html[lang="de"] .sem-page :is(h1,h2,h3){ hyphens:auto; }

/* ------------------------------------------------ accesibilidad -- */
@media(prefers-reduced-motion:reduce){
  .sem-page *,
  .sem-page *::before,
  .sem-page *::after{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .sem-value-card:hover{ transform:none; }
}
@media(forced-colors:active){
  .sem-city,.sem-stage,.sem-value-card,.sem-faq-item,.sem-help,.sem-bar,.sem-official,.sem-commerce,.sem-route-notice{ border:1px solid CanvasText; }
  .sem-city-n{ -webkit-text-stroke:0; color:CanvasText; }
}
@media print{
  .sem-bar,.sem-help,.nav-toggle,.lang,.sem-hero-rings,.sem-radar{ display:none !important; }
  .sem-has-bar{ padding-bottom:0; }
  .sem-hero,.sem-route,.sem-tech,.semn-close,.sem-priv-hero{ background:#fff !important; color:#000 !important; }
  .sem-page h1,.sem-page h2,.sem-page h3{ color:#000 !important; }
}
