
/* v4 — copia fiel del Wix: blanco/negro minimalista */
/* Brisely (tipografía original de la web de Carmen, archivo TTF proporcionado por ella
   a través de Javier 2026-10-01; uso en su propia web — no redistribuir; auto-hospedada en build/fonts/) */
@font-face{
  font-family:"Brisely";
  src:url("../fonts/brisely.woff2") format("woff2"),
      url("../fonts/brisely.woff") format("woff");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
/* Slim Joe (Ion Lucin, release gratuito del autor) auto-hospedada en build/fonts/ */
@font-face{font-family:"Slim Joe";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/SlimJoe.woff2") format("woff2"),url("../fonts/SlimJoe.woff") format("woff")}
:root{
  --paper:#ffffff; --ink:#000000; --muted:#3d3d3d; --line:#e3e3e3;
  --font-script:"Brisely",cursive;
  --font-meaculpa:"Brisely",cursive; /* punto 3.3 (lightbox): nombre en script */
  --font-thin:"Josefin Sans","Century Gothic",Arial,sans-serif;
  --font-slim:"Slim Joe","Josefin Sans",sans-serif;
  --font-bold:"Oswald",Arial,sans-serif;
  --font-sys:"Archivo Black","Oswald",Arial,sans-serif;
  /* 2.5/3.4 (2ª revisión 2026-10-01): DIN Next Light y DIN Neuzeit Grotesk son
     comerciales (sin licencia para auto-hospedar). Se declaran primero con sus
     nombres reales (render exacto en equipos con licencia, p. ej. el Mac de
     Carmen) y como fallback Inter, el grotesco libre más cercano. */
  --font-din:"DIN Next Light","din-next-w01-light","DINNextW01-Light","Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-dinneuzeit:"DIN Neuzeit Grotesk Light","dinneuzeitgroteskltw01-_812426","Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --wrap:76rem;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-thin);font-weight:400;color:var(--ink);background:var(--paper);
  line-height:1.65;font-size:1rem;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 1.5rem}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:200}
.skip:focus{left:0}

/* ---------- cabecera ---------- */
.site-header{padding:1.7rem 0 1.4rem}
.header-inner{display:flex;align-items:center;justify-content:space-between}
.brand{font-family:var(--font-slim);font-weight:400;font-size:1.45rem;letter-spacing:.34em;
  text-decoration:none;color:var(--ink);white-space:nowrap}
.site-nav ul{display:flex;gap:2.75rem;list-style:none;align-items:center}
.site-nav a{text-decoration:none;color:var(--ink);font-family:var(--font-slim);font-weight:400;font-size:.98rem;letter-spacing:.06em;
  text-transform:uppercase;padding:.3rem 0}
.site-nav a:hover{font-weight:700}
.site-nav a[aria-current="page"]{font-weight:700}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:.6rem;min-width:44px;min-height:44px;
  position:relative;z-index:130}
.nav-toggle .mplus{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:#d6c39a;color:#111;font-size:1.3rem;line-height:1;transition:transform .25s}
body.nav-open .nav-toggle .mplus{transform:rotate(45deg)}

/* ---------- script hero (sangra por la derecha como el original) ---------- */
.bleed{overflow:visible}  /* antes overflow:hidden: recortaba la C de Mea Culpa; el sangrado derecho ya no existe (margin-right:.5em) */
.script-hero{font-family:var(--font-script);font-weight:400;text-align:right;white-space:nowrap;
  line-height:1.15;margin-right:-6vw;padding-right:.12em} /* padding-right: la tinta de los swash de Brisely sobrepasa el ancho de avance */
.script-hero.h-mega{font-size:min(6.25rem,14.5vw);margin-top:2rem;margin-right:.5em;line-height:1.7} /* 1.1 (2ª rev): 100px como el Wix (font_2); .5em de margen dcho. para que el swash de Brisely (overshoot medido 0.18em) termine dentro, como en el Wix */ /* P1bis (2026-10-02): 1.7 + .bleed sin recorte: el ascendente alto de la C de Mea Culpa ya no se corta */
/* P1 (3ª rev): el contenedor del título hero necesita aire vertical por arriba y por abajo */
.hero-title-sec{padding:2.6rem 0 2.8rem} /* P1bis (2026-10-02): contenedor amplio para que Mea Culpa respire */
.script-hero.h-page{font-size:min(3.75rem,13vw);margin-top:1.2rem} /* 3.2 (2ª rev): 60px como el Wix book */

/* ---------- titulares finos ---------- */
.thin-title{font-family:var(--font-slim);font-weight:400;letter-spacing:.05em;line-height:1.05}
.thin-title a{color:var(--ink);text-decoration:none}
.thin-title a:hover{text-decoration:none} /* 1.2+5.2 (2ª rev): ningún hipervínculo subraya en hover */
.sec-title{font-size:clamp(1.875rem,0.9rem + 4.8vw,5.2rem);margin:3.5rem 0 1rem;font-weight:400;letter-spacing:.22em} /* 1.4: fino y tracking ancho como el footer */
.sec-title-vb{font-size:clamp(1.75rem,4.6vw,3.56rem);font-weight:400;letter-spacing:.22em} /* 1.4 */
.sec-title-sm{font-size:clamp(2rem,5vw,3.4rem);margin:2.5rem 0 .8rem;font-weight:400;letter-spacing:.22em} /* 3.6: Neutras/Personalidad = misma tipografía que 1.4 */
.title-mail{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.title-mail .sec-title{margin-bottom:0}

/* ---------- email con icono ---------- */
.mail-line{display:flex;align-items:center;gap:.6rem;justify-content:flex-end;
  font-size:1.02rem;font-weight:300}
.mail-line svg{width:1.15rem;height:1.15rem;fill:none;stroke:var(--ink);stroke-width:1.5}
.mail-line a{text-decoration:none;color:var(--ink)}
.mail-line a:hover{text-decoration:none} /* 1.2+5.2 (2ª rev) */

/* ---------- secciones ---------- */
section{padding:2.5rem 0}
.lead-c{max-width:46rem;margin:0 auto;text-align:center;font-weight:300;font-size:1.12rem}
p.justi{text-align:justify}

/* ---------- vídeos ---------- */
.video-block{margin:3.5rem 0}
.video-num{font-family:var(--font-bold);font-weight:600;font-size:1.55rem;text-align:left;margin-bottom:.4rem}
.video-title{font-family:var(--font-slim);font-weight:400;font-size:1.5625rem;text-align:left;margin-bottom:1.4rem;
  letter-spacing:.18em;text-transform:uppercase}
/* m\u00f3vil: n\u00fameros siempre a la izq; t\u00edtulos por posici\u00f3n (como el original) */
.video-block:nth-of-type(3) .video-title,.video-block:nth-of-type(7) .video-title{text-align:right}
.video-block:nth-of-type(5) .video-title,.video-block:nth-of-type(9) .video-title{text-align:center}
.video-grid{display:grid;gap:2.5rem;align-items:start}
/* P7 (3ª rev): equilibrado vertical de los vídeos que desbordan (V2, V5: -18px; V9: -38px) */
.video-block[data-vfix="-18px"] .video-text{transform:translateY(-18px)}
.video-block[data-vfix="-38px"] .video-text{transform:translateY(-38px)}
.video-desc{font-family:var(--font-din);font-weight:300;text-align:justify;max-width:26rem;margin:0 auto;
  font-size:1.0625rem;line-height:1.6} /* 2.5 (2ª rev): DIN NEXT LIGHT 17px como el Wix (font_7) */
.video-media{position:relative}
.video-poster{position:relative;aspect-ratio:16/9;background:#111;border:0;width:100%;cursor:pointer;padding:0;display:block}
.video-poster img{width:100%;height:100%;object-fit:cover}
.play-icon{position:absolute;inset:0;display:grid;place-items:center}
.play-icon span{width:4.2rem;height:4.2rem;border-radius:50%;background:rgba(255,255,255,.92);color:#000;
  display:grid;place-items:center;font-size:1.4rem;padding-left:.25rem;transition:transform .2s}
.video-poster:hover .play-icon span{transform:scale(1.08)}
hr.sep{border:0;border-top:1px solid var(--line);margin:3.5rem 0}
.video-player{width:100%;aspect-ratio:16/9;background:#000}
.video-embed{position:relative;width:100%;aspect-ratio:16/9;background:#000}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.script-hero.left{text-align:left;margin-right:0}
.av-intro{max-width:24rem;font-weight:300;margin:1.2rem 0 2rem}
.av-intro p{margin-bottom:.6rem}
.narrow{max-width:62rem}

/* ---------- modal aviso vídeo ---------- */
.video-modal{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.75);display:grid;place-items:center;padding:1.5rem}
.video-modal[hidden]{display:none}
.video-modal .box{background:#fff;max-width:28rem;padding:2.4rem;text-align:center;position:relative}
.video-modal h3{font-family:var(--font-slim);font-weight:400;font-size:1.9rem;margin-bottom:.7rem}
.video-modal p{font-weight:300;margin-bottom:1.5rem}
.vm-close{position:absolute;top:.4rem;right:.8rem;background:none;border:0;font-size:1.6rem;cursor:pointer;min-width:44px;min-height:44px}
.btn-line{display:inline-block;border:1px solid var(--ink);color:var(--ink);text-decoration:none;
  padding:.8rem 1.8rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;font-size:.85rem}
.btn-line:hover{background:var(--ink);color:#fff}

/* ---------- galerías ---------- */
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.g-item{overflow:hidden;background:#f4f4f4}
.g-item img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform .5s ease}
.g-link{display:block}
.g-item:hover img{transform:scale(1.03)}
.gallery-bleed{max-width:none;padding:0}
.gallery.is-bleed{padding:0 .3rem}
.gallery-bleed .gallery{gap:.4rem}
/* ---------- carrusel horizontal portada (punto 1.3): mismo contenido que el Book ---------- */
.carousel-wrap{position:relative;margin:0 -1.5rem}
.home-carousel{display:flex;gap:clamp(.75rem,2vw,1.25rem);overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;scroll-padding:0 1.5rem;scrollbar-width:none;-ms-overflow-style:none;
  -webkit-overflow-scrolling:touch;padding:.25rem 1.5rem}
.home-carousel::-webkit-scrollbar{display:none}
.home-carousel .g-item{flex:0 0 auto;width:clamp(9.5rem,30vw,15rem);scroll-snap-align:start}
.home-carousel .g-item img{aspect-ratio:9/25;object-fit:cover} /* 1.3.d: calibrado a la referencia de Carmen (h/w ~2.7); reversible en 1 línea; pendiente de su confirmación */
/* 1.3 (2ª rev): reencuadre carrusel — misma medida de fragmento, solo cambia la posición del recorte */
.home-carousel .g-item img[data-n="30"]{object-position:12% 50%} /* cara visible en vez de pelo */
.home-carousel .g-item img[data-n="14"]{object-position:21% 50%}
.car-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:2.75rem;height:2.75rem;
  border:0;border-radius:50%;background:rgba(255,255,255,.85);color:#111;font-size:1.7rem;line-height:1;
  display:grid;place-items:center;padding:0 0 .15rem;cursor:pointer;opacity:.45;
  box-shadow:0 2px 10px rgba(0,0,0,.18);transition:opacity .2s,transform .2s}
.car-btn:hover,.car-btn:focus-visible{opacity:1;transform:translateY(-50%) scale(1.07)}
.car-prev{left:.5rem}
.car-next{right:.5rem}
.car-btn[hidden]{display:none}
@media(max-width:639px){.carousel-wrap{margin:0}}
@media (prefers-reduced-motion:reduce){.home-carousel{scroll-snap-type:x proximity;scroll-behavior:auto}}

/* ---------- hero audiovisual (2ª revisión 2026-10-01) ----------
   2.1: Brisely intacto. 2.2: más aire entre nombre y descripción.
   2.3: foto de Carmen integrada en la franja lateral (como el Wix).
   2.4: caja desplazada a la izquierda y del ancho justo hasta el final de "Tur"
        (los párrafos no aportan ancho intrínseco: width:0 + min-width:100%). */
.av-hero{background:#0c0c0c;padding:0;display:flex;align-items:stretch;overflow:hidden}
.av-hero-box{background:rgba(238,238,238,.72);color:#141414; /* P6 (3ª rev 2026-10-02, Carmen): fondo más blanco como el Wix, manteniendo transparencia */
  padding:clamp(1.6rem,4vw,2.6rem) clamp(1.8rem,4vw,3rem);
  width:fit-content;max-width:min(40rem,82%);
  margin:clamp(2.5rem,6vw,4rem) 0 clamp(2.5rem,6vw,4rem) 6%;
  align-self:center;position:relative;z-index:2}
.av-hero-box .script-hero{font-family:var(--font-meaculpa,var(--font-script));
  font-size:clamp(2.75rem,6vw,4.625rem);text-align:left;margin:0 0 1.6rem;white-space:nowrap}
.av-hero-box p{font-weight:300;margin-bottom:.55rem}
/* P5 (3ª rev): jerarquía de espaciado como el Wix — compacto entre 2-3, mayor entre 3-4 */
.av-hero-box .av-sub1{margin-bottom:.32rem}
.av-hero-box .av-sub2{margin-bottom:1.25rem}
.av-hero-box .av-sub3{margin-bottom:0}
.av-hero-box p:not(.script-hero){width:0;min-width:100%}
.av-hero-photo{flex:1 1 auto;position:relative;min-width:0;min-height:17rem}
.av-hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:55% 32%}
@media(max-width:819px){
  .av-hero{flex-direction:column}
  .av-hero-photo{order:-1;flex:none;min-height:11rem}
  .av-hero-box{margin:2rem auto;max-width:92%}
}

/* ---------- collage book (Neutras / Personalidad, sistema Wix) ---------- */
.book-sec{margin:3rem 0 1.4rem}
.collage-module{display:grid;grid-template-columns:2fr 1fr 1fr;gap:5px;margin-bottom:5px}
.collage-module.mirror{grid-template-columns:1fr 1fr 2fr}
.collage-module .cell-small{aspect-ratio:3/4;overflow:hidden}
.collage-module .cell-big{grid-column:1;grid-row:1/span 2;overflow:hidden}
.collage-module.mirror .cell-big{grid-column:3}
.collage-module .g-item,.collage-module .g-link{height:100%}
.collage-module .g-link{display:block}
.collage-module img{width:100%;height:100%;object-fit:cover;display:block}
/* 3.5 (2ª rev): reencuadre collage — misma medida, cara visible como en el Wix */
.collage-module .g-item img[data-n="14"]{object-position:8% 50%}

/* ---------- load more progresivo (solo book, solo m\u00f3vil; la portada es carrusel) ---------- */
.loadmore-wrap{display:none;text-align:center;margin:2.4rem 0}
.loadmore{text-transform:none;letter-spacing:.02em}
@media(max-width:639px){
  .loadmore-wrap{display:block}
  .gallery-bleed .wrap{padding:0}
  .book-sec-wrap .collage-module:nth-child(n+3){display:none}
  .book-sec-wrap.expanded .collage-module{display:grid}
}

/* ---------- lightbox (vista detalle como el Wix: foto + panel lateral de créditos) ---------- */
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.94);
  display:flex;align-items:center;justify-content:center}
.lightbox[hidden]{display:none}
.lb-stage{display:flex;align-items:center;justify-content:center;gap:2.5rem;
  max-width:min(96vw,80rem);max-height:94vh}
.lightbox figure{margin:0;max-width:min(66vw,58rem);text-align:center}
.lightbox img{max-height:86vh;max-width:100%;width:auto;height:auto;margin:0 auto;display:block}
.lb-panel{color:#fff;flex:none;max-width:20rem;align-self:stretch;display:flex;flex-direction:column;
  justify-content:flex-end;padding-bottom:1.2rem} /* 3.8 (2ª rev): texto abajo a la derecha, no centrado vertical */
.lb-title{font-family:var(--font-meaculpa);font-weight:400;font-size:clamp(2rem,3.5vw,2.9rem);
  line-height:1.5;margin:0 0 1.1rem;white-space:nowrap} /* 3.8: nombre siempre en una línea */ /* P2 (3ª rev 2026-10-02, Carmen): line-height 1.5 + margen 1.1rem para que el script no pise los créditos; estructural para todas las fotos */
.lb-credits{font-family:var(--font-slim);font-weight:300;font-size:.95rem;letter-spacing:.12em;
  text-transform:uppercase;line-height:2}
.lb-credits p{margin:0}
.lightbox button{position:absolute;background:none;border:0;color:#fff;font-size:2rem;cursor:pointer;
  min-width:48px;min-height:48px}
.lb-close{top:1rem;right:1.2rem}
.lb-prev{left:.6rem;top:50%;transform:translateY(-50%)}
.lb-next{right:.6rem;top:50%;transform:translateY(-50%)}
@media(max-width:700px){
  .lb-stage{flex-direction:column;gap:1.1rem;overflow-y:auto}
  .lightbox figure{max-width:94vw}
  .lightbox img{max-height:58vh}
  .lb-panel{max-width:100%;text-align:center}
}

/* ---------- lightbox: fullscreen (punto 3.5) ---------- */
.lb-fs{top:1rem;left:1.2rem}
.lb-fs svg{width:1.4rem;height:1.4rem;display:block}
.lightbox .icon-exit{display:none}
.lightbox.is-fullscreen .icon-enter{display:none}
.lightbox.is-fullscreen .icon-exit{display:block}
.lightbox.is-fullscreen{background:#000}
.lightbox.is-fullscreen figure{max-width:100vw}
.lightbox.is-fullscreen img{max-width:100vw;max-height:100vh;object-fit:contain}
.lightbox.is-fullscreen .lb-panel{display:none}
.lightbox.is-fullscreen button{color:#fff}

/* ---------- book intro ---------- */
.book-intro{display:grid;gap:2rem;align-items:start;margin:1rem 0 3rem}
.book-intro .b-photo{max-width:22rem;aspect-ratio:1/1} /* 3.1 (2ª rev): foto cuadrada como el Wix */
.book-intro .b-photo img{width:100%;height:100%;object-fit:cover;display:block}
.book-intro .b-text p{font-weight:300;font-size:1.05rem;margin-bottom:1rem;max-width:44rem}
.book-intro .b-text p.script-hero{font-family:var(--font-script);font-weight:400; /* 3.2 (2ª rev): peso ligero como Inicio/Audiovisual, sin faux-bold */
  font-size:min(3.75rem,13vw);max-width:none;padding-bottom:.32em;margin-bottom:1.5rem;margin-right:0} /* 3.3 (2ª rev): más aire con el texto; margin-right:0 anula el -6vw heredado */
.din-neuzeit{font-family:var(--font-dinneuzeit);font-weight:400} /* 3.4 (2ª rev): DIN neuzeit Grotesk para "cómo"/"diferentes" */
.b-photo{position:relative;overflow:hidden}
.b-photo::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.55);pointer-events:none}

/* ---------- bio-cv ---------- */
.bcv-title{font-family:var(--font-sys);font-weight:700;font-size:clamp(4rem,14vw,9rem);
  line-height:1;letter-spacing:-.02em;text-align:right;white-space:nowrap;
  margin:1rem 0 .5rem}
.bcv-medidas{text-align:center;font-family:var(--font-thin);font-weight:300;font-size:1.02rem;margin:2.5rem auto;line-height:2;letter-spacing:.06em}
.bcv-bio{text-align:center;max-width:46rem;margin:0 auto 1.2rem}
.bcv-bio p{font-weight:300;font-size:1.08rem;margin-bottom:1rem}
.cv-h{font-family:var(--font-bold);font-weight:600;font-size:1.55rem;margin:3.2rem 0 1.6rem;
  text-align:center;text-transform:uppercase;letter-spacing:.14em}
.cv-label{font-family:var(--font-slim);font-weight:400;font-size:clamp(1.7rem,4vw,2.6rem);margin:2.6rem 0 1.2rem;
  text-transform:uppercase;letter-spacing:.14em}
.cv-comma{font-size:1.18em;line-height:1} /* 4.1 (2ª rev): la coma se lee claramente como coma */
.cv-rows{display:grid;gap:.45rem;margin-bottom:1rem}
.cv-row{display:grid;grid-template-columns:7.5rem 1.6fr 1fr 1fr;gap:1rem;align-items:baseline;
  padding:.35rem 0;font-weight:300}
.cv-row .yr{font-family:var(--font-bold);font-weight:500;white-space:nowrap;text-align:right}
.cv-row .obra{font-weight:400}
.cv-row .obra small{display:block;font-weight:300}
.cv-form2{display:grid;gap:2rem}
@media(min-width:760px){
  .cv-form2{grid-template-columns:1fr 1fr;gap:0}
  .cv-form2 .cv-rows:last-child{border-left:1px solid var(--line);padding-left:2.5rem}
  .cv-form2 .cv-rows:first-child{padding-right:2.5rem}
}
.cv-row.f2{grid-template-columns:7.5rem 1fr}
.cv-apt{font-weight:300;max-width:60rem;margin:0 auto;text-align:center}
.bcv-dl{margin:2.5rem 0;text-align:center}
.bcv-dl a{display:inline-block;border:1px solid var(--ink);color:var(--ink);text-decoration:none;
  padding:.95rem 2.4rem;font-weight:400;font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;
  box-shadow:0 8px 18px rgba(0,0,0,.14)}
.bcv-dl a:hover{background:var(--ink);color:#fff}
@media(max-width:700px){
  .cv-row{grid-template-columns:5.5rem 1fr}
  .cv-row .dir{display:none}
  .bcv-title{white-space:normal}
}

/* ---------- bio-cv m\u00f3vil condensada (como el original) ---------- */
.bcv-m{display:none}
.bcv-m-note{font-weight:300;max-width:26rem;margin:1.4rem auto 0;text-align:center}
.only-m{display:none}
.cv-rule{border:0;border-top:1px solid var(--ink);width:min(40rem,85%);margin:.5rem auto 0}
@media(max-width:760px){
  .only-m{display:block}
  .only-d{display:none!important}
  .cv-full{display:none}
  .bcv-m{display:block;text-align:center}
  .bcv-m .cv-h{margin:1.6rem 0 1rem}
  .bcv-m .bcv-dl{margin:0 0 1rem}
}

/* ---------- contacto ---------- */
.big-cta{font-family:var(--font-slim);font-weight:400;font-size:clamp(2rem,4.6vw,3.56rem);
  line-height:1.08;letter-spacing:.05em;text-transform:uppercase;margin:2rem 0 1rem}
.contact-grid{display:grid;gap:3rem;align-items:start;margin-top:1rem}
.contact-photo img{width:100%}
.form-title{font-family:var(--font-slim);font-weight:400;font-size:clamp(2.2rem,5vw,3.6rem);margin-bottom:1.8rem;letter-spacing:.05em}
form.contacto{display:grid;gap:1.3rem}
.f-row{display:grid;gap:1.3rem;grid-template-columns:1fr 1fr}
.campo{display:grid;gap:.4rem}
.campo label{font-weight:400;font-size:.92rem;letter-spacing:.1em;text-transform:uppercase}
.campo input,.campo textarea{font:inherit;font-weight:300;padding:.7rem .8rem;border:1px solid var(--ink);
  background:#fff;color:var(--ink);width:100%;border-radius:0}
.campo input:focus,.campo textarea:focus{outline:2px solid var(--ink);outline-offset:1px}
.campo textarea{min-height:8rem;resize:vertical}
.honey{position:absolute;left:-9999px}
.form-ok{border:1px solid var(--ink);padding:1rem 1.2rem;font-weight:400}
.form-err{border:1px solid #a00;color:#a00;padding:1rem 1.2rem}
.enviar-wrap{text-align:center;margin-top:.5rem}
.btn-text{background:none;border:0;font:inherit;font-weight:400;font-size:1.05rem;cursor:pointer;
  color:var(--ink);padding:.8rem 2rem;min-height:44px}
.btn-text:hover{text-decoration:none} /* 5.2 (2ª rev): sin subrayado en hover */
/* 5.2 (2ª rev): regla global — ningún hipervínculo muestra subrayado al pasar el cursor */
a:hover{text-decoration:none}
.mailto-alt{font-weight:300;font-size:.95rem;text-align:center}

.contact-mid{display:none}
.contact-top{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.contact-top .mail-line{white-space:nowrap}
.contact-photo{max-width:34rem}
.contact-photo img{width:100%;display:block}
@media(max-width:760px){
  .contact-top{flex-wrap:nowrap;align-items:flex-start}
  .contact-top .big-cta{flex:1;margin:1rem 0}
  .contact-top .mail-line{font-size:.85rem;margin-top:1.4rem}
  .contact-photo{max-width:none;margin:0 -1.5rem}
  .contact-photo img{height:200px;object-fit:cover}
}

/* ---------- pie ---------- */
.site-footer{padding:4.5rem 0 2rem;margin-top:2rem}
.foot-grid{display:grid;gap:2.5rem}
.foot-brand{font-family:var(--font-slim);font-weight:400;font-size:clamp(2.4rem,6vw,3.7rem);
  letter-spacing:.22em;line-height:1.5}
.foot-brand a{color:var(--ink);text-decoration:none;display:inline-block}
.foot-brand .fb1{display:block}
.foot-brand .fb2{display:block;text-align:right}
.foot-legal{font-weight:300;font-size:.95rem;display:grid;gap:.3rem}
.foot-legal a{color:var(--ink);text-decoration:none} /* 5.1 (2ª rev): "Política de privacidad" sin subrayado, sigue siendo enlace */
.foot-side{display:flex;flex-direction:column;gap:1.6rem;align-items:flex-start}
.social{display:flex;gap:1.5rem;flex-wrap:wrap}
.social a{display:flex;align-items:center;gap:.45rem;text-decoration:none;color:var(--ink)}
.social svg{width:1.05rem;height:1.05rem;fill:var(--ink)}
.social span{font-family:var(--font-bold);font-weight:600;font-size:.92rem;letter-spacing:.06em}
.to-top{width:64px;height:64px;border-radius:50%;border:2px solid var(--ink);background:#fff;cursor:pointer;
  font-size:1.7rem;line-height:1;color:var(--ink);display:grid;place-items:center;padding-bottom:.25rem}
.to-top:hover{background:var(--ink);color:#fff}

/* ---------- animaciones (fail-open: sin .js todo visible) ---------- */
html.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
html.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html.js .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ---------- responsive ---------- */
@media (min-width:640px){
  .gallery{grid-template-columns:repeat(3,1fr)}
  .book-intro{grid-template-columns:22rem 1fr}
  .foot-grid{grid-template-columns:1fr auto;align-items:end}
  .foot-side{align-items:flex-end}
}
/* pie móvil: que CARMEN/TUR quepa en 2 líneas */
@media (max-width:639px){
  .script-hero{margin-right:6vw}
  .script-hero.h-mega{margin-right:6vw} /* el tope 14.2vw del font-size ya garantiza que quepa */
  .foot-brand{font-size:1.5rem;letter-spacing:.15em}
  .foot-brand .fb2{text-align:left}
  .title-mail{display:block;text-align:right}
  .title-mail .mail-line{justify-content:flex-end;margin-top:.7rem}
  .foot-grid{display:grid;grid-template-columns:1fr auto;grid-template-areas:"brand side" "legal legal";gap:1.1rem;align-items:start}
  .foot-grid>div:first-child{display:contents}
  .foot-brand{grid-area:brand}
  .foot-side{grid-area:side;min-width:0}
  .foot-side .social{flex-direction:column;align-items:flex-end;gap:.65rem;flex-wrap:nowrap}
  .foot-legal{grid-area:legal}
  .to-top{display:none}
}
@media (min-width:1024px){
  .video-grid{grid-template-columns:minmax(18rem,24rem) 1fr}
  .video-grid.flip{grid-template-columns:1fr minmax(18rem,24rem)}
  .video-grid.flip .video-text{order:2}
  .video-grid.flip .video-media{order:1}
  /* n\u00famero y t\u00edtulo al lado interior (hacia el v\u00eddeo); excepci\u00f3n: bloque 01 a la izq */
  .video-block:nth-of-type(odd) .video-num,.video-block:nth-of-type(odd) .video-title{text-align:right}
  .video-block:nth-of-type(1) .video-title{text-align:left}
  .video-block:nth-of-type(even) .video-num,.video-block:nth-of-type(even) .video-title{text-align:left}
  .contact-grid{grid-template-columns:1fr 1fr}
  .cv-row{grid-template-columns:7.5rem 1.3fr 1fr 1fr}
}
@media (max-width:1023px){
  .nav-toggle{display:block}
  .site-nav{position:fixed;inset:0;background:#fff;z-index:120;display:grid;place-items:center;
    opacity:0;pointer-events:none;transition:opacity .3s}
  body.nav-open .site-nav{opacity:1;pointer-events:auto}
  body.nav-open{overflow:hidden}
  .site-nav ul{flex-direction:column;text-align:center;gap:1.6rem}
  .site-nav a{font-size:1.9rem;font-weight:400;letter-spacing:.1em}
  .f-row{grid-template-columns:1fr}
}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px}

