/* Fe, Amor y Milagros - styles of the one-page website (Web/index.html).
   Colours are defined once below as variables; see Vault/Brand/Design Style.md. */
:root{
  color-scheme: light;
  --verde:#037D6D;      /* fondo A2 / A5 */
  --verde-hondo:#006B5E; /* círculos, U */
  --verde-noche:#044A40;
  --amarillo:#FFD201;
  --amarillo-punto:#FFD136;
  --tinta:#2C2A2B;
  --rojo:#ED1C24;
  --rosa:#D41E5B;
  --petroleo:#1F6E66;   /* 85×60 */
  --azul-gris:#6996A6;  /* 85×60 */
  --papel:#FFFDF4;
  --blanco:#FFFFFF;
  --display:"Barlow Semi Condensed","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --sans:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --gutter:clamp(16px,4vw,48px);
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--verde);color:var(--blanco);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--amarillo);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}
.eyebrow{font-family:var(--display);font-style:italic;font-weight:600;letter-spacing:.14em;font-size:clamp(14px,1.6vw,18px)}
.slash{font-weight:300;font-style:italic;opacity:.9}
h2,h3{text-wrap:balance;margin:0}

/* ---------- NAV ---------- */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--verde-noche) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.08)}
.nav .wrap{display:flex;align-items:center;gap:20px;min-height:58px}
.nav .brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;letter-spacing:-.01em}
.nav .brand img{height:26px;width:auto;background:#fff;border-radius:3px;padding:3px 5px}
.nav ul{display:flex;gap:4px;list-style:none;margin:0 0 0 auto;padding:0}
.nav ul a{display:block;padding:8px 12px;border-radius:999px;text-decoration:none;font-size:15px;font-weight:600;opacity:.88}
.nav ul a:hover{opacity:1;background:rgba(255,255,255,.1)}
.nav ul a.cta{background:var(--amarillo);color:var(--tinta);opacity:1}
@media (max-width:760px){.nav ul li:not(.keep){display:none}.nav .brand span{display:none}}

/* ---------- HERO ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(40px,7vw,84px) 0}
.hero .circles{position:absolute;z-index:-1;width:min(78vw,860px);right:-14%;top:-18%;opacity:.95}
.hero .u{position:absolute;z-index:-1;left:clamp(-40px,2vw,40px);top:-110px;width:clamp(120px,17vw,230px);color:var(--verde-hondo)}
.hero .splash1{position:absolute;z-index:-1;left:-10px;top:clamp(20px,3vw,40px);width:clamp(130px,18vw,240px)}
.hero-head{text-align:center;display:flex;flex-direction:column;align-items:center;gap:clamp(14px,2vw,22px)}
.logo{width:min(100%,820px);color:var(--blanco);height:auto;filter:drop-shadow(0 6px 30px rgba(0,40,30,.25))}
.logo-row{display:flex;align-items:flex-end;justify-content:center;gap:clamp(10px,2vw,20px);width:100%}
.fechas{font-family:var(--sans);font-weight:900;color:var(--amarillo);font-size:clamp(34px,6.6vw,76px);line-height:1;letter-spacing:-.015em;margin:clamp(6px,1.5vw,16px) 0 0;font-variant-numeric:lining-nums}
.lugar{font-weight:800;color:var(--amarillo);font-size:clamp(24px,3.9vw,46px);line-height:1.05;margin:0;letter-spacing:-.01em}
.lugar .hora{font-weight:500}
.hero-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 14px;align-items:center;margin-top:4px}
.pill{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:8px 18px;font-weight:700;font-size:16px;text-decoration:none}
.pill.rojo{background:#fff;color:var(--rojo);border:2px solid var(--rojo)}
.pill.linea{border:1.5px solid rgba(255,255,255,.55)}
.pill.linea:hover{background:rgba(255,255,255,.1)}
.transporte-aviso{font-family:var(--display);font-style:italic;font-weight:600;font-size:clamp(17px,2vw,22px)}

.cuenta{display:flex;gap:clamp(8px,1.6vw,16px);justify-content:center;margin-top:clamp(10px,2vw,18px)}
.cuenta div{min-width:clamp(64px,10vw,92px);padding:10px 6px 8px;border-radius:10px;background:rgba(0,0,0,.16);text-align:center}
.cuenta b{display:block;font-size:clamp(26px,4vw,40px);font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.cuenta span{font-size:12px;text-transform:uppercase;letter-spacing:.12em;opacity:.8}

/* frame like the poster */
.marco{position:relative;margin-top:clamp(36px,6vw,70px);max-width:980px;margin-inline:auto}
.marco-bar{background:var(--amarillo);color:var(--tinta);padding:14px clamp(16px,3vw,32px);font-size:clamp(20px,3vw,32px);font-weight:800;letter-spacing:-.01em;position:relative;z-index:2}
.marco-bar .slash,.marco-bar em{font-weight:400;font-style:normal}
.marco-foto{position:relative;aspect-ratio:16/10;max-width:100%;background:#d9d4c6 url(../img/multitud.webp) center 65%/cover no-repeat;overflow:visible}
.marco-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 38%)}
.marco-foto .mapa{position:absolute;left:4%;top:4%;width:62%;opacity:.95;z-index:1;mix-blend-mode:multiply}
.marco-foto .cfan{position:absolute;left:clamp(12px,3%,28px);top:clamp(12px,4%,28px);width:clamp(70px,11vw,118px);z-index:2}
.marco-foto .pill{position:absolute;left:27%;top:12%;z-index:2;font-size:clamp(14px,2vw,22px)}
.marco-foto .dk{position:absolute;z-index:3;right:-6%;bottom:0;height:128%;width:auto;max-width:none;filter:drop-shadow(0 18px 30px rgba(0,0,0,.25))}
.marco .splash2{position:absolute;right:-9%;bottom:-8%;width:clamp(120px,22vw,250px);z-index:4;pointer-events:none}
@media (max-width:640px){
  .marco-foto{aspect-ratio:4/5;background-position:30% 70%}
  .marco-foto .dk{height:96%;right:-18%}
  .marco-foto .mapa{width:90%}
  .marco-foto .pill{left:auto;right:12px;top:14px}
  .marco .splash2{right:-12%}
  .hero .splash1{width:96px;left:-34px;top:-14px;opacity:.9}
  .hero .u{width:92px;left:-20px}
}

/* ---------- STRIPE ---------- */
.franja{background:var(--amarillo);color:var(--tinta);padding-block:clamp(26px,4vw,40px);margin-top:0;position:relative;z-index:1}
.franja .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.dato b{display:block;font-weight:900;font-size:clamp(18px,2.2vw,24px);line-height:1.1}
.dato span{font-size:15px}
@media (max-width:860px){.franja .wrap{grid-template-columns:repeat(2,1fr)}}

/* ---------- SECTION BASE ---------- */
section{position:relative}
.sec{padding-block:clamp(64px,9vw,120px)}
.sec-titulo{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:.95;letter-spacing:-.005em;font-size:clamp(40px,6.2vw,80px)}
.sec-titulo .slash{font-family:var(--sans);font-weight:300;text-transform:none;font-size:.7em;vertical-align:.08em}
.kicker{font-family:var(--display);font-weight:700;letter-spacing:.2em;text-transform:uppercase;font-size:14px;margin:0 0 14px}

/* ---------- VISION ---------- */
.vision{background:var(--papel);color:var(--tinta)}
.vision .grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,5vw,72px);align-items:start}
.vision .kicker{color:var(--verde)}
.vision .sec-titulo{color:var(--verde)}
.vision p{max-width:62ch;margin:0 0 1em}
.vision .lead{font-size:clamp(19px,2vw,22px);font-weight:500;line-height:1.45}
.vision .lead strong{color:var(--verde)}
.mensaje{margin-top:28px;padding:22px 24px;background:var(--verde);color:#fff;border-radius:4px;display:flex;flex-direction:column;gap:2px}
.mensaje small{font-family:var(--display);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:14px;opacity:.85}
.mensaje strong{font-family:var(--display);font-weight:800;font-size:clamp(30px,3.6vw,42px);line-height:1;color:var(--amarillo);text-transform:uppercase}
@media (max-width:860px){.vision .grid{grid-template-columns:1fr}}

/* ---------- EVANGELIST ---------- */
.evangelista{background:var(--verde-noche);overflow:hidden;isolation:isolate}
.evangelista .circles{position:absolute;z-index:-1;left:-22%;bottom:-30%;width:min(90vw,900px);opacity:.55}
.ev-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,70px);align-items:center}
.ev-foto{position:relative}
.ev-foto .fondo{position:absolute;inset:8% 0 0 0;background:var(--amarillo)}
.ev-foto .mapa{position:absolute;inset:14% -6% auto auto;width:88%;opacity:.9;mix-blend-mode:multiply}
.ev-foto img.dk{position:relative;width:100%;height:auto}
.ev-foto .nombre{position:absolute;left:0;right:0;bottom:0;background:var(--petroleo);padding:12px 18px;font-weight:800;font-size:clamp(18px,2.2vw,24px)}
.ev-foto .nombre span{font-weight:400}
.evangelista .kicker{color:var(--amarillo)}
.evangelista .sec-titulo{color:#fff}
.evangelista .sec-titulo em{font-style:normal;color:var(--amarillo)}
.bio p{max-width:62ch;margin:0 0 1em;color:rgba(255,255,255,.9)}
.bio p:first-of-type{font-size:clamp(19px,2vw,21px);color:#fff}
.bio blockquote{margin:22px 0 0;padding:0 0 0 18px;border-left:4px solid var(--amarillo);font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(20px,2.3vw,25px);line-height:1.3;max-width:52ch}
.fuente{font-size:13px;opacity:.65;margin-top:18px}
@media (max-width:860px){.ev-grid{grid-template-columns:1fr}.ev-foto{max-width:460px}}

.cifras{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:clamp(48px,7vw,84px);border-top:1px solid rgba(255,255,255,.18)}
.cifra{padding:22px 18px 0 0}
.cifra b{display:block;font-family:var(--display);font-weight:800;font-size:clamp(40px,5vw,62px);line-height:1;color:var(--amarillo);font-variant-numeric:tabular-nums}
.cifra span{display:block;font-size:15px;opacity:.85;max-width:22ch;margin-top:6px}
@media (max-width:760px){.cifras{grid-template-columns:repeat(2,1fr);row-gap:10px}}

/* ---------- AFRICA ---------- */
.africa{background:var(--verde-noche);padding-bottom:clamp(64px,9vw,120px)}
.africa-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 40px;margin-bottom:28px}
.africa-head .sec-titulo{font-size:clamp(34px,4.8vw,60px)}
.africa-head .sec-titulo em{font-style:normal;color:var(--amarillo)}
.africa-head p{max-width:46ch;margin:0;opacity:.85}
.mosaico{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(90px,11vw,150px);gap:8px}
.mosaico figure{margin:0;position:relative;overflow:hidden;background:var(--verde-hondo)}
.mosaico img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.mosaico figure:hover img{transform:scale(1.04)}
.mosaico figcaption{position:absolute;left:0;bottom:0;padding:6px 10px;font-size:13px;font-weight:600;background:rgba(0,0,0,.45)}
.m1{grid-column:span 3;grid-row:span 3}
.m2{grid-column:span 3;grid-row:span 2}
.m3{grid-column:span 1;grid-row:span 1}
.m4{grid-column:span 2;grid-row:span 1}
.m5{grid-column:span 2;grid-row:span 2}
.m6{grid-column:span 2;grid-row:span 2}
.m7{grid-column:span 2;grid-row:span 2}
@media (max-width:760px){
  .mosaico{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}
  .m1{grid-column:span 2;grid-row:span 2}
  .m2,.m3,.m4,.m5,.m6,.m7{grid-column:span 1;grid-row:span 1}
}
.legado{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,48px);align-items:center;margin-top:clamp(48px,7vw,80px);background:#fff;color:var(--tinta);padding:clamp(20px,3vw,36px);position:relative}
.legado img{width:clamp(110px,15vw,170px);height:auto}
.legado h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(24px,3vw,34px);line-height:1;color:var(--verde)}
.legado h3 small{display:block;font-family:var(--sans);text-transform:none;font-weight:500;font-size:15px;color:var(--tinta);opacity:.7;margin-top:6px}
.legado p{margin:12px 0 0;max-width:68ch}
.legado .cita{font-family:var(--display);font-style:italic;font-weight:600;font-size:clamp(19px,2vw,22px);color:var(--rosa)}
@media (max-width:640px){.legado{grid-template-columns:1fr}}

/* ---------- TRANSPORT ---------- */
.transporte{background:var(--azul-gris);color:#fff;overflow:hidden;isolation:isolate}
.transporte .circles{position:absolute;z-index:-1;right:-18%;top:-20%;width:min(80vw,760px);opacity:.5}
.transporte .kicker{color:var(--amarillo)}
.tr-head{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,64px);align-items:end}
.tr-head p{margin:0;max-width:52ch;font-size:18px}
.bus{display:flex;align-items:center;gap:14px}
.bus svg{flex:none;width:clamp(58px,7vw,84px);height:auto}
@media (max-width:860px){.tr-head{grid-template-columns:1fr}}

.pasos{list-style:none;padding:0;margin:clamp(36px,5vw,56px) 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,2vw,20px);counter-reset:paso}
.pasos li{background:var(--petroleo);padding:22px 22px 24px;counter-increment:paso;position:relative}
.pasos li::before{content:counter(paso);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--amarillo);color:var(--tinta);font-weight:900;font-size:20px;margin-bottom:14px}
.pasos h3{font-size:20px;font-weight:800;margin-bottom:6px}
.pasos p{margin:0;opacity:.9;font-size:16px}
@media (max-width:860px){.pasos{grid-template-columns:1fr}}

.rutas-wrap{margin-top:clamp(28px,4vw,44px);background:#fff;color:var(--tinta);padding:clamp(18px,3vw,30px)}
.rutas-top{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;align-items:baseline;margin-bottom:14px}
.rutas-top h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(24px,3vw,32px);color:var(--petroleo)}
.rutas-top p{margin:0;font-size:15px;opacity:.75}
.zonas{border-top:2px solid var(--petroleo)}
.zona{border-bottom:1px solid #E3E8E9}
.zona summary,.zona.pendiente{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:14px 12px}
.zona summary{cursor:pointer;list-style:none}
.zona summary::-webkit-details-marker{display:none}
.zona summary::after{content:"+";margin-left:auto;font-size:24px;line-height:1;color:var(--petroleo)}
.zona[open] summary::after{content:"–"}
.zona-nombre{font-weight:800;font-size:17px}
.zona-info{font-size:14px;font-weight:700;color:var(--petroleo)}
.paradas{list-style:none;counter-reset:parada;margin:0;padding:0 12px 10px}
.paradas li{counter-increment:parada;position:relative;display:grid;gap:2px;padding:12px 0 12px 40px;border-top:1px solid #E3E8E9}
.paradas li::before{content:counter(parada);position:absolute;left:0;top:12px;width:28px;height:28px;border-radius:50%;background:var(--amarillo);font-weight:800;display:grid;place-items:center}
.paradas .salida{font-size:15px}
.ver-mapa{font-size:14px;font-weight:700;color:var(--petroleo);margin-top:2px}
.pc{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.04em;padding:3px 9px;border-radius:999px;background:#FFF3B0;color:#6B5600;border:1px dashed #C9A800}
.contacto{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;margin-top:18px;padding:18px 20px;background:var(--amarillo);color:var(--tinta)}
.contacto b{font-size:18px}
.contacto p{margin:2px 0 0;font-size:15px}
.contacto .num{font-size:clamp(20px,2.4vw,26px);font-weight:900;font-variant-numeric:tabular-nums;user-select:all}
@media (max-width:640px){.contacto{grid-template-columns:1fr}}
.tr-nota{font-size:15px;margin-top:16px;opacity:.9;max-width:80ch}

/* ---------- PRAYER ---------- */
.oracion{background:var(--rosa);color:#fff;overflow:hidden}
.or-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.yo{font-family:var(--display);font-weight:800;font-size:clamp(44px,6.5vw,86px);line-height:.95;margin:0}
.yo span{display:block}
.yo span:last-child{color:var(--amarillo)}
.or-grid p{max-width:56ch;margin:0 0 1em}
.versiculo{font-family:var(--display);font-style:italic;font-weight:600;font-size:clamp(20px,2.3vw,26px);line-height:1.3;border-top:2px solid rgba(255,255,255,.4);padding-top:18px;margin-top:10px}
.versiculo small{display:block;font-style:normal;font-weight:700;letter-spacing:.14em;font-size:14px;margin-top:8px;opacity:.85}
@media (max-width:860px){.or-grid{grid-template-columns:1fr}}

/* ---------- INFO ---------- */
.info{background:var(--papel);color:var(--tinta)}
.info .sec-titulo{color:var(--verde)}
.info .kicker{color:var(--verde)}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:36px;border-top:3px solid var(--verde)}
.info-grid div{padding:22px 22px 26px 0}
.info-grid div+div{padding-left:22px;border-left:1px solid #E1DFD4}
.info-grid h3{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--verde);margin-bottom:10px}
.info-grid p{margin:0;font-size:18px;font-weight:600;line-height:1.35}
.info-grid p small{display:block;font-weight:400;font-size:15px;margin-top:6px;opacity:.8}
@media (max-width:760px){.info-grid{grid-template-columns:1fr}.info-grid div+div{padding-left:0;border-left:0;border-top:1px solid #E1DFD4}}
.faq{margin-top:40px;display:grid;gap:10px;max-width:860px}
.faq details{background:#fff;border:1px solid #E1DFD4;padding:0 18px}
.faq summary{cursor:pointer;padding:16px 0;font-weight:700;font-size:17px;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:400;font-size:24px;line-height:1;color:var(--verde)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 16px;max-width:70ch}

/* ---------- FOOTER ---------- */
.cierre{background:var(--amarillo);color:var(--tinta);text-align:center;padding-block:clamp(44px,6vw,72px);position:relative;overflow:hidden}
.cierre h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(40px,7.4vw,96px);line-height:.92;color:var(--verde)}
.cierre p{font-family:var(--display);font-weight:700;letter-spacing:.32em;text-transform:uppercase;margin:12px 0 0;font-size:clamp(13px,1.6vw,18px);color:var(--rosa)}
footer{background:var(--verde-noche);padding-block:36px;font-size:15px}
footer .wrap{display:flex;flex-wrap:wrap;gap:20px 36px;align-items:center;justify-content:space-between}
footer .marca{display:flex;align-items:center;gap:14px}
footer .marca img{height:42px;width:auto;background:#fff;padding:5px 8px;border-radius:3px}
footer ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px}
footer a{text-decoration:none;opacity:.9}
footer a:hover{opacity:1;text-decoration:underline}
footer .legal{flex-basis:100%;opacity:.6;font-size:13px}

/* entrance */
@keyframes sube{from{transform:translateY(14px);opacity:.001}to{transform:none;opacity:1}}
.hero-head>*{animation:sube .8s cubic-bezier(.2,.7,.2,1) both}
.hero-head>*:nth-child(2){animation-delay:.08s}.hero-head>*:nth-child(3){animation-delay:.16s}.hero-head>*:nth-child(4){animation-delay:.24s}.hero-head>*:nth-child(5){animation-delay:.32s}.hero-head>*:nth-child(6){animation-delay:.4s}
