/* ============================================================
   franciscogomez.mx · styles.css
   Sistema "Teja y Ceniza" (rediseño jul 2026).
   Off-white #f0eee9 · Noir #12100e · Espresso #44261f · Malva #ac8f86.
   Hoja compartida de las 8 páginas (info.html conserva su inline).
   Tema claro/oscuro global: html[data-theme] + selector en el footer
   ('system' por defecto, persistido en localStorage fg-theme).
   ============================================================ */
:root{
  --bg:#12100e;
  --bg-alt:#191510;
  --bg-section:#f0eee9;
  --bg-warm:#f0eee9;
  --text:#1c1917;
  --text-light:#f0ece2;
  --text-muted:#55514a;
  --accent:#8f8a82;
  --accent-text:#5c574f;
  --acc:#44261f;          /* resaltado sobre claro */
  --acc-d:#c4a89e;        /* resaltado sobre oscuro (texto) */
  --logo-accent:#44261f;
  --logo-accent-light:#ac8f86;
  --glow:rgba(68,38,31,.09);
  --border:rgba(28,25,23,.14);
  --border-light:rgba(240,236,226,.14);
  --df:'Newsreader', Georgia, serif;
  --bf:'Instrument Sans', -apple-system, sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --sm:1rem; --md:2rem; --lg:4rem; --xl:6rem;
}
html[data-theme="dark"]{
  --bg-section:#12100e;
  --text:#f0ece2;
  --text-muted:rgba(240,236,226,.7);
  --accent-text:#c4a89e;
  --acc:#c4a89e;
  --border:rgba(240,236,226,.16);
  --glow:rgba(196,168,158,.12);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:17px;}
body{font-family:var(--bf);background:var(--bg-section);color:var(--text);line-height:1.72;font-size:18.5px;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;}
section{scroll-margin-top:4.5rem;}
p,li{text-wrap:pretty;}
h1,h2,h3{text-wrap:balance;}
.container{max-width:1280px;margin:0 auto;padding:0 clamp(18px,4vw,48px);}

/* Selección por fondo */
::selection{background:var(--acc);color:var(--bg-section);}
html[data-theme="dark"] ::selection{background:var(--text-light);color:#12100e;}
footer ::selection,.cta-final ::selection{background:var(--text-light);color:#12100e;}
.s-cafe ::selection{background:var(--text-light);color:#44261f;}

/* ===== NAV ===== */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1rem clamp(18px,4vw,48px);transition:background-color .4s var(--ease),border-color .4s var(--ease),padding .4s var(--ease);}
nav.nav-solid{background:color-mix(in srgb,var(--bg-section) 92%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding-top:.7rem;padding-bottom:.7rem;border-bottom:1px solid var(--border);}
.nav-logo{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--text);}
.nav-mark{width:31px;height:31px;flex-shrink:0;display:block;}
.nav-mark circle{fill:var(--acc);transition:fill .4s var(--ease);}
.nav-logo span{font-weight:500;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;}
.nav-menu{display:flex;align-items:center;gap:1.8rem;list-style:none;margin-left:auto;margin-right:2rem;}
.nav-link{font-size:.78rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted);text-decoration:none;transition:color .25s;position:relative;}
.nav-link::after{content:'';position:absolute;bottom:-5px;left:0;width:100%;height:1.5px;background:var(--acc);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease);}
.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1);}
.nav-link:hover,.nav-link.active{color:var(--text);}
.nav-cta{padding:.55rem 1.35rem;font-size:.76rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;background:var(--acc);border:1px solid var(--acc);color:var(--bg-section);transition:background-color .3s,color .3s,border-color .3s,transform .15s ease-out;}
.nav-cta:hover{background:transparent;color:var(--acc);}
.nav-cta:active{transform:scale(.97);}

/* Mobile */
.mobile-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;z-index:102;}
.hamburger-line{width:22px;height:1.5px;background:var(--text);transition:transform .3s,opacity .3s,background-color .3s;}
.mobile-toggle.open .hamburger-line:nth-child(2){opacity:0;}
.mobile-toggle.open .hamburger-line:nth-child(3){transform:rotate(-45deg) translate(4.5px,-4.5px);}
.mobile-overlay{position:fixed;inset:0;background:rgba(18,16,14,.55);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;z-index:100;}
.mobile-overlay.open{opacity:1;visibility:visible;}
.mobile-drawer{position:fixed;top:0;right:0;bottom:0;width:min(300px,80vw);background:var(--bg-section);z-index:101;transform:translateX(100%);transition:transform .35s var(--ease);padding:5rem var(--md) var(--md);display:flex;flex-direction:column;}
.mobile-drawer.open{transform:translateX(0);}
.mobile-drawer-close{position:absolute;top:1rem;right:1rem;width:44px;height:44px;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.mobile-drawer-close svg{width:20px;height:20px;stroke:var(--text);stroke-width:1.5;}
.mobile-drawer a{display:block;padding:.9rem 0;font-size:.85rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);text-decoration:none;border-bottom:1px solid var(--border);transition:color .3s;}
.mobile-drawer a:hover{color:var(--text);}
.mobile-drawer .drawer-sec{margin-top:1.1rem;display:flex;flex-wrap:wrap;gap:0 1rem;}
.mobile-drawer .drawer-sec a{font-size:.72rem;color:var(--text-muted);border-bottom:none;padding:.55rem 0;letter-spacing:.08em;flex:0 0 auto;}
.mobile-drawer .mobile-cta{margin-top:auto;text-align:center;padding:1rem;background:var(--acc);color:var(--bg-section);border:none;transition:transform .15s ease-out;}
@media (max-width:900px){.nav-menu{display:none;}.nav-cta-desktop{display:none;}.mobile-toggle{display:flex;}}

/* ===== HERO ===== */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:var(--bg-section);color:var(--text);position:relative;overflow:hidden;padding:7rem clamp(18px,4vw,48px) 6rem;}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(circle 900px at 50% 24%,var(--glow) 0%,transparent 70%);pointer-events:none;}
.hero h1{position:relative;z-index:1;font-family:var(--df);font-weight:400;font-size:clamp(2.6rem,6.8vw,5rem);line-height:1.1;letter-spacing:-.01em;text-wrap:balance;max-width:1000px;margin-bottom:2rem;}
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em;}
.hero h1 .line>span{display:block;transform:translateY(112%);}
.loaded .hero h1 .line>span{animation:rise 1.05s var(--ease) .1s forwards;}
.loaded .hero h1 .line:nth-child(2)>span{animation-delay:.24s;}
@keyframes rise{to{transform:translateY(0);}}
.lugar{position:relative;display:inline-block;color:var(--acc);white-space:nowrap;}
.lugar svg{position:absolute;left:-2%;bottom:-.3em;width:104%;height:.4em;overflow:visible;}
.lugar path{stroke:var(--acc);stroke-width:7;fill:none;stroke-linecap:round;stroke-dasharray:320;stroke-dashoffset:320;}
.loaded .lugar path{animation:draw 1s var(--ease) 1.2s forwards;}
@keyframes draw{to{stroke-dashoffset:0;}}
.lugar circle{fill:var(--acc);opacity:0;transform:translateY(-14px);}
.loaded .lugar circle{animation:landdot .55s var(--ease) 2.05s forwards;}
@keyframes landdot{from{opacity:0;transform:translateY(-14px);}60%{opacity:1;transform:translateY(2px);}to{opacity:1;transform:translateY(0);}}
.hero-meta{position:relative;z-index:1;display:flex;align-items:center;gap:1.1rem;opacity:0;flex-wrap:wrap;justify-content:center;}
.loaded .hero-meta{animation:fadeup 1s var(--ease) .7s forwards;}
@keyframes fadeup{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.hero-meta span{font-size:.82rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);}
.hero-meta .sep{width:1px;height:15px;background:var(--border);}
.hero-actions{position:relative;z-index:1;display:flex;align-items:center;gap:1.1rem;margin-top:2.6rem;flex-wrap:wrap;justify-content:center;opacity:0;}
.loaded .hero-actions{animation:fadeup 1s var(--ease) .95s forwards;}
.hero-more{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:1;font-size:.7rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);text-decoration:none;opacity:0;transition:color .3s;}
.hero-more:hover{color:var(--acc);}
.loaded .hero-more{animation:fadein 1s ease 1.4s forwards;}
@keyframes fadein{to{opacity:1;}}
.hero-more span{display:inline-block;}
.loaded .hero-more span{animation:nudge 4s var(--ease) 3.2s infinite;}
@keyframes nudge{0%,84%,100%{transform:translateY(0);}90%{transform:translateY(5px);}95%{transform:translateY(-1px);}}

/* ===== BASE DE SECCIONES ===== */
section{padding:clamp(4.5rem,8vw,7.5rem) 0;}
.hairline{border-top:1px solid var(--border);}
.sec-head{max-width:820px;margin-bottom:clamp(2.2rem,4.5vw,3.2rem);}
.sec-head h2{font-family:var(--df);font-weight:400;font-size:clamp(2rem,4vw,3rem);line-height:1.12;letter-spacing:-.005em;text-wrap:balance;margin-bottom:.7rem;}
.s-cafe{background:#44261f;color:#f0eee9;}
.stag{display:block;font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.9rem;}
.s-cafe .stag{color:rgba(244,241,234,.7);}
.label{font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sm);display:block;}
.heading{font-family:var(--df);font-size:clamp(1.8rem,3vw,2.5rem);font-weight:400;line-height:1.2;margin-bottom:var(--md);}

/* Reveals */
.rv{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.visible .rv{opacity:1;transform:none;}

/* Botones */
.btn{display:inline-block;padding:.88rem 2.3rem;font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;transition:background-color .3s,color .3s,border-color .3s,transform .15s ease-out;text-align:center;border:1px solid transparent;}
.btn:active{transform:scale(.97);}
.btn-solid{background:var(--text);color:var(--bg-section);border-color:var(--text);}
.btn-solid:hover{background:transparent;color:var(--text);}
.btn-ghost{color:var(--text-muted);border-color:var(--border);}
.btn-ghost:hover{border-color:var(--acc);color:var(--acc);}
.btn-acc{background:var(--acc);color:var(--bg-section);border-color:var(--acc);}
.btn-acc:hover{background:transparent;color:var(--acc);}
.btn-paper{background:#f0eee9;color:#44261f;border-color:#f0eee9;}
.btn-paper:hover{background:transparent;color:#f0eee9;}

/* Enlaces animados (estilo original: apagados, se encienden) */
.link-anim{display:inline-flex;align-items:center;gap:.55rem;margin-top:1.6rem;font-size:.82rem;font-weight:600;letter-spacing:.05em;color:var(--text-muted);text-decoration:none;border-bottom:1px solid var(--border);padding-bottom:3px;transition:color .3s,border-color .3s;}
.link-anim .arr{display:inline-block;transition:transform .3s var(--ease);}
.link-anim:hover{color:var(--acc);border-color:var(--acc);}
@media (hover:hover){.link-anim:hover .arr{transform:translateX(4px);}}
.appr-link{margin-top:auto;display:inline-flex;align-items:center;gap:.55rem;font-size:.74rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--text-muted);text-decoration:none;border-bottom:1px solid var(--border);padding-bottom:4px;align-self:flex-start;transition:color .3s,border-color .3s;}
.appr-link:hover{color:var(--acc);border-color:var(--acc);}
.appr-link .arr{display:inline-block;transition:transform .3s var(--ease);}
@media (hover:hover){.appr-link:hover .arr{transform:translateX(4px);}}

/* Tarjetas rectas con vida (zoom óptico: sin capas rasterizadas) */
.cardq{padding:clamp(1.5rem,2.8vw,2.2rem);background:transparent;border:1px solid var(--border);transition:transform .32s var(--ease),border-color .32s var(--ease);}
@media (hover:hover){.cardq:hover{transform:scale(1.03);border-color:var(--acc);}}

/* Cursor acompañante */
@media (hover:hover) and (pointer:fine){
  .cur-ring{position:fixed;top:0;left:0;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.75);pointer-events:none;z-index:9999;mix-blend-mode:difference;opacity:0;transform:translate(-50%,-50%) scale(1);transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .3s;}
  body.cur-on .cur-ring{opacity:1;}
  .cur-ring.hov{transform:translate(-50%,-50%) scale(1.6);}
}

/* WhatsApp flotante (móvil) */
.wa-float{display:none;position:fixed;bottom:1.2rem;right:1.2rem;z-index:90;width:54px;height:54px;border-radius:50%;background:#25D366;color:#fff;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 4px 16px rgba(0,0,0,.18);transition:transform .3s;}
.wa-float:hover{transform:scale(1.05);}
.wa-float:active{transform:scale(.97);}
.wa-float svg{width:28px;height:28px;fill:#fff;}
@media (max-width:900px){.wa-float{display:inline-flex;}}

/* ============================================================
   INDEX
   ============================================================ */

/* Sobre mí */
.about-grid{display:grid;grid-template-columns:360px 1fr;gap:clamp(2.5rem,6vw,5.5rem);align-items:center;}
.about-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;filter:grayscale(72%) sepia(8%) contrast(1.02);transition:filter .6s var(--ease);}
.about-photo:hover img{filter:none;}
.about-text h2{font-family:var(--df);font-weight:400;font-size:clamp(2rem,3.4vw,2.7rem);margin-bottom:1.2rem;}
.about-text p{color:var(--text-muted);margin-bottom:1rem;max-width:62ch;font-size:1.02rem;}
.about-text p:first-of-type{color:var(--text);font-size:1.12rem;}
.credentials{margin-top:1.7rem;display:flex;flex-direction:column;}
.credential{padding:.8rem 0;border-bottom:1px solid var(--border);font-size:.95rem;color:var(--text-muted);}
.credential:first-child{border-top:1px solid var(--border);}
.credential strong{color:var(--text);font-weight:500;}
@media (max-width:860px){.about-grid{grid-template-columns:1fr;}.about-photo{max-width:320px;}}

/* Consulta (asimétrica con margen vivo) */
.mc-grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(3rem,6vw,6.5rem);align-items:start;margin-top:.6rem;}
.mc-rail{position:sticky;top:6rem;}
.mc-quote{font-family:var(--df);font-weight:400;font-size:clamp(1.7rem,2.8vw,2.4rem);line-height:1.3;color:var(--text);text-wrap:balance;}
.mc-quote em{font-style:italic;color:var(--acc);}
.mc-dotline{width:64px;height:1px;background:var(--acc);margin:2.2rem 0;position:relative;}
.mc-dotline::after{content:'';position:absolute;right:-14px;top:-3.5px;width:8px;height:8px;border-radius:50%;background:var(--acc);}
.mc-mini h4{font-family:var(--df);font-style:italic;font-weight:400;font-size:1.12rem;color:var(--acc);margin-bottom:.55rem;}
.mc-mini p{font-size:.93rem;color:var(--text-muted);line-height:1.7;max-width:36ch;}
.mc-body{border-left:1px solid var(--border);padding-left:clamp(2rem,4vw,4rem);}
.mc-body p{font-size:1.05rem;color:var(--text-muted);max-width:64ch;}
.mc-body p+p{margin-top:1.6rem;}
.mc-expect{margin-top:clamp(3.5rem,7vw,5.5rem);padding-top:clamp(2.2rem,4vw,3rem);border-top:1px solid var(--border);}
.mc-expect-t{font-family:var(--df);font-weight:400;font-size:clamp(1.4rem,2.4vw,1.8rem);margin-bottom:2rem;}
.mc-expect .expect-grid{margin-bottom:0;}
@media (max-width:860px){.mc-grid{grid-template-columns:1fr;gap:2.2rem;}.mc-rail{position:static;}.mc-body{border-left:none;padding-left:0;}}
.consulta-mini{background:color-mix(in srgb,var(--text) 6%,var(--bg-section));padding:1.6rem 1.8rem;transition:transform .32s var(--ease);}
@media (hover:hover){.consulta-mini:hover{transform:scale(1.02);}}
.consulta-mini h4{font-family:var(--df);font-weight:400;font-size:1.15rem;margin-bottom:.5rem;color:var(--acc);}
.consulta-mini p{font-size:.98rem;color:var(--text-muted);margin:0;}

/* Servicios */
.serv-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:clamp(2rem,4.5vw,4rem);align-items:start;}
.serv-card{border:1px solid var(--border);border-top:2px solid var(--acc);background:color-mix(in srgb,var(--text) 4%,var(--bg-section));padding:clamp(1.8rem,3.2vw,2.8rem);}
.serv-card h3{font-family:var(--df);font-weight:400;font-size:1.45rem;margin-bottom:1rem;}
.serv-card>p{font-size:.98rem;color:var(--text-muted);margin-bottom:1.6rem;max-width:58ch;}
.spec{border-top:1px solid var(--border);margin-bottom:1.7rem;}
.spec-row{display:grid;grid-template-columns:120px 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border);font-size:.94rem;color:var(--text-muted);align-items:baseline;}
.spec-row .k{font-size:.68rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--acc);}
.spec-row .v strong{color:var(--text);font-weight:600;}
.serv-side h3{font-family:var(--df);font-weight:400;font-size:1.35rem;margin-bottom:.7rem;}
.serv-side p{font-size:.98rem;color:var(--text-muted);margin-bottom:1rem;max-width:48ch;}
@media (max-width:900px){.serv-grid{grid-template-columns:1fr;}}

/* Especialidades (fondo oscuro) */
.esp-top{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.esp-card{color:var(--text);}
.esp-card h4{font-family:var(--df);font-weight:400;font-size:clamp(1.4rem,2.1vw,1.7rem);margin-bottom:.7rem;transition:color .32s var(--ease);}
.esp-card p{font-size:1.02rem;color:var(--text-muted);line-height:1.7;transition:color .32s var(--ease);}
@media (hover:hover){.esp-card:hover p{color:var(--text);}}
.esp-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:16px;}
.esp-mini .cardq{padding:1.4rem 1.5rem;}
.esp-mini h4{font-family:var(--df);font-weight:400;font-size:1.16rem;margin-bottom:.5rem;color:var(--text);transition:color .32s var(--ease);}
.esp-mini p{font-size:.96rem;color:var(--text-muted);line-height:1.64;transition:color .32s var(--ease);}
@media (hover:hover){.esp-mini .cardq:hover p{color:var(--text);}}
@media (max-width:1000px){.esp-mini{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.esp-top{grid-template-columns:1fr;}.esp-mini{grid-template-columns:1fr;}}

/* En consulta: columnas integradas */
.expect-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:clamp(2.4rem,5vw,3.6rem);}
.expect-col{padding:0 clamp(1.4rem,2.6vw,2.4rem);border-left:1px solid var(--border);transition:transform .32s var(--ease);}
.expect-col:first-child{border-left:none;padding-left:0;}
@media (hover:hover){.expect-col:hover{transform:scale(1.025);}}
.expect-col h3{font-family:var(--df);font-weight:400;font-size:1.18rem;margin-bottom:.5rem;color:var(--text);}
.expect-col p{font-size:.98rem;color:var(--text-muted);}
.help-wrap{max-width:1010px;margin-top:clamp(2.6rem,5vw,4rem);}
.help-lead{font-family:var(--df);font-weight:400;font-size:clamp(1.4rem,2.4vw,1.8rem);margin-bottom:1rem;color:var(--text);}
.help-list{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(2.4rem,5.5vw,4.8rem);}
.help-item{padding:1.05rem .6rem 1.05rem .2rem;border-top:1px solid var(--border);font-size:1rem;color:var(--text-muted);display:flex;gap:.9rem;align-items:baseline;text-wrap:pretty;}
.help-item::before{content:'';width:16px;height:2px;background:var(--acc);flex-shrink:0;margin-top:.7em;}
.help-mini{margin-top:1.8rem;max-width:660px;}
.help-mini p{font-family:var(--df);font-size:1.05rem;color:var(--acc);margin:0;}
@media (max-width:860px){.expect-grid{grid-template-columns:1fr;}.expect-col{border-left:none;padding:1.1rem 0;border-top:1px solid var(--border);}.expect-col:first-child{border-top:none;padding-top:0;}.help-list{grid-template-columns:1fr;}}

/* Aproximaciones (fondo oscuro) */
.appr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.appr-grid .cardq{display:flex;flex-direction:column;min-height:330px;color:var(--text);}
.siglas{font-family:var(--df);font-weight:400;font-size:clamp(1.9rem,3vw,2.5rem);color:var(--text);line-height:1;margin-bottom:.45rem;}
.siglas-rule{width:34px;height:2px;background:var(--acc);margin-bottom:1.1rem;}
.appr-grid h3{font-family:var(--df);font-weight:400;font-size:1.15rem;margin-bottom:.6rem;color:var(--text);}
.appr-grid p{font-size:.95rem;color:var(--text-muted);margin-bottom:1.4rem;transition:color .32s var(--ease);}
.appr-grid p strong{color:var(--text);font-weight:500;}
@media (hover:hover){.appr-grid .cardq:hover p{color:var(--text);}}
@media (max-width:860px){.appr-grid{grid-template-columns:1fr;}.appr-grid .cardq{min-height:0;}}

/* Testimonios: flechas laterales + puntitos */
.t-wrap{position:relative;padding:0 62px;}
.t-row{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none;padding:.3rem .3rem 1rem;cursor:grab;}
.t-row::-webkit-scrollbar{display:none;}
.t-row.dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto;user-select:none;}
.t-row.dragging .t-card{pointer-events:none;}
.t-card{flex:0 0 min(400px,85%);scroll-snap-align:start;background:var(--bg-section);border:1px solid var(--border);padding:1.9rem 1.8rem 1.6rem;display:flex;flex-direction:column;}
.t-mark{font-family:var(--df);font-size:2.5rem;line-height:.6;color:var(--acc);margin-bottom:1rem;}
.t-card p{font-size:.97rem;color:var(--text-muted);line-height:1.7;font-style:italic;}
.t-card p strong{color:var(--text);font-weight:500;font-style:normal;}
.t-author{margin-top:auto;padding-top:1.2rem;font-size:.72rem;color:var(--acc);font-weight:600;letter-spacing:.12em;text-transform:uppercase;}
.t-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:46px;height:46px;border:1px solid var(--border);background:var(--bg-section);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color .3s,color .3s,opacity .3s;color:var(--text);}
.t-btn.t-left{left:0;}
.t-btn.t-right{right:0;}
.t-btn:hover:not(:disabled){border-color:var(--acc);color:var(--acc);}
.t-btn:disabled{opacity:0;pointer-events:none;}
.t-btn svg{width:14px;height:14px;stroke:currentColor;}
.t-dots{display:flex;gap:9px;justify-content:center;margin-top:.8rem;}
.t-dot{width:7px;height:7px;border-radius:50%;background:var(--border);border:none;padding:0;cursor:pointer;transition:background-color .3s,transform .3s;}
.t-dot.active{background:var(--acc);transform:scale(1.25);}
@media (max-width:700px){.t-btn{display:none;}.t-wrap{padding:0;}}

/* FAQ */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,5vw,4.5rem);align-items:start;}
.faq-list{display:flex;flex-direction:column;}
.acc-item{border-bottom:1px solid var(--border);}
.acc-item:first-child{border-top:1px solid var(--border);}
.acc-header{width:100%;background:none;border:none;font-family:var(--bf);font-size:1rem;font-weight:400;color:var(--text);text-align:left;cursor:pointer;padding:1.15rem .2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:44px;transition:color .3s;}
.acc-header:hover{color:var(--acc);}
.faq-plus{width:20px;height:20px;flex-shrink:0;position:relative;color:var(--acc);}
.faq-plus::before,.faq-plus::after{content:'';position:absolute;background:currentColor;transition:transform .3s var(--ease);}
.faq-plus::before{width:13px;height:2px;top:50%;left:50%;transform:translate(-50%,-50%);}
.faq-plus::after{width:2px;height:13px;top:50%;left:50%;transform:translate(-50%,-50%);}
.acc-item.active .faq-plus::after{transform:translate(-50%,-50%) rotate(90deg);}
.acc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease);}
.acc-item.active .acc-body{grid-template-rows:1fr;}
.acc-inner{overflow:hidden;}
.acc-pad{padding:0 .2rem 1.3rem;font-size:.95rem;color:var(--text-muted);line-height:1.68;max-width:62ch;}
@media (max-width:860px){.faq-grid{grid-template-columns:1fr;}}

/* Qué pasa cuando me escribes (banda espresso) */
.s-cafe .sec-head h2{color:#f0eee9;}
.pasos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.paso{background:transparent;border:1px solid rgba(240,236,226,.22);padding:1.7rem 1.6rem;transition:transform .32s var(--ease),border-color .32s var(--ease);}
@media (hover:hover){.paso:hover{transform:scale(1.03);border-color:rgba(240,236,226,.45);}}
.paso .p-num{font-family:var(--df);font-size:1.7rem;color:#b39a8c;line-height:1;display:block;margin-bottom:.8rem;}
.paso h3{font-family:var(--df);font-weight:400;font-size:1.18rem;margin-bottom:.5rem;}
.paso p{font-size:.95rem;color:rgba(244,241,234,.8);line-height:1.65;}
.pasos-cta{margin-top:2.2rem;display:flex;align-items:center;gap:1.8rem;flex-wrap:wrap;}
.pasos-nota{font-family:var(--df);font-size:clamp(1.05rem,1.8vw,1.3rem);color:#f0eee9;}
@media (max-width:860px){.pasos-grid{grid-template-columns:1fr;}}

/* Contacto */
.contacto-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);background:var(--bg-section);}
.contacto-info{padding:clamp(1.8rem,4vw,3.5rem);}
.contacto-info h2{font-family:var(--df);font-weight:400;font-size:clamp(1.6rem,2.6vw,2rem);line-height:1.25;margin-bottom:1rem;}
.contacto-info>p{font-size:.98rem;color:var(--text-muted);margin-bottom:1.8rem;max-width:54ch;}
.c-methods{display:flex;flex-direction:column;margin-bottom:1.6rem;}
.c-method{display:flex;gap:1rem;align-items:flex-start;padding:.9rem 0;border-bottom:1px solid var(--border);}
.c-method:first-child{border-top:1px solid var(--border);}
.c-method svg{width:17px;height:17px;flex-shrink:0;margin-top:5px;stroke:var(--acc);fill:none;stroke-width:1.5;}
.c-method h4{font-size:.76rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.1rem;}
.c-method p{font-size:.94rem;color:var(--text-muted);}
.c-method a{text-decoration:none;border-bottom:1px solid var(--acc);transition:border-color .3s;}
.c-method a:hover{border-color:var(--text);}
.c-method .small{font-size:.8rem;font-style:italic;opacity:.7;}
.crisis-note{font-size:.83rem;color:var(--text-muted);line-height:1.6;padding-top:1rem;border-top:1px solid var(--border);margin-bottom:1.6rem;max-width:58ch;}
.crisis-note strong{color:var(--text);font-weight:500;}
.contacto-photo{overflow:hidden;}
.contacto-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(70%) sepia(8%);transition:filter .6s var(--ease);}
.contacto-photo:hover img{filter:none;}
@media (max-width:820px){.contacto-grid{grid-template-columns:1fr;}.contacto-photo{min-height:260px;order:-1;}}
@media (hover:none){
  .about-photo img,.contacto-photo img{transition:filter .9s var(--ease);}
  .about-photo.photo-live img,.contacto-photo.photo-live img{filter:none;}
}

/* Footer */
footer{background:var(--bg);color:var(--text-light);padding:clamp(2.4rem,5vw,3.5rem) 0 1.5rem;border-top:1px solid var(--border-light);}
.footer-inner{max-width:1280px;margin:0 auto;padding:0 clamp(18px,4vw,48px);display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;flex-wrap:wrap;}
.footer-brand{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem;font-weight:500;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;}
.footer-brand svg{width:24px;height:24px;flex-shrink:0;}
.footer-loc{font-size:.87rem;color:rgba(240,236,226,.55);line-height:1.6;}
.footer-nav{display:flex;gap:clamp(1.6rem,4vw,3.2rem);}
.fn-col{display:flex;flex-direction:column;}
.fn-t{font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--acc-d);margin-bottom:.45rem;}
.footer-nav a{font-size:.87rem;color:rgba(240,236,226,.55);text-decoration:none;padding:.22rem 0;transition:color .3s;}
.footer-nav a:hover{color:var(--acc-d);}
.footer-links{display:flex;gap:1.4rem;}
.footer-links a{font-size:.85rem;color:rgba(240,236,226,.55);text-decoration:none;transition:color .3s;padding:.4rem 0;}
.footer-links a:hover{color:var(--acc-d);}
.footer-bottom{max-width:1280px;margin:1.8rem auto 0;padding:1rem clamp(18px,4vw,48px) 0;border-top:1px solid var(--border-light);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.8rem;color:rgba(240,236,226,.5);}
.footer-bottom a{color:inherit;text-decoration:underline;}
@media (max-width:600px){.footer-inner{flex-direction:column;gap:var(--sm);}.footer-bottom{flex-direction:column;gap:.3rem;}}

/* Toggle de tema (footer): un solo ícono, claro ↔ oscuro */
.theme-toggle{background:none;border:1px solid var(--border-light);width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:rgba(240,236,226,.55);transition:color .3s,border-color .3s;}
.theme-toggle:hover{color:#f0ece2;border-color:var(--acc-d);}
.theme-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.theme-toggle .ic-sun{display:none;}
html[data-theme="dark"] .theme-toggle .ic-sun{display:block;}
html[data-theme="dark"] .theme-toggle .ic-moon{display:none;}

a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid currentColor;outline-offset:3px;}

/* ============================================================
   SUBPÁGINAS (pbbt · fap · act · formacion · docencia · aviso)
   ============================================================ */
main{max-width:820px;margin:0 auto;padding:calc(70px + var(--md)) clamp(18px,4vw,48px) var(--lg);animation:fadeUp .6s var(--ease) both;}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
@media (max-width:600px){main{padding:calc(60px + var(--sm)) var(--md) var(--lg);}}

.page-intro{margin-bottom:var(--lg);padding-bottom:var(--lg);border-bottom:1px solid var(--border);}
.page-intro .eyebrow{font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-text);display:block;margin:0 0 1.1rem;}
.page-intro h1{font-family:var(--df);font-size:clamp(2.1rem,4.6vw,3.1rem);font-weight:400;line-height:1.12;letter-spacing:-.01em;margin-bottom:1.2rem;color:var(--text);}
.page-intro h1 em{font-style:italic;color:var(--acc);}
.page-intro .intro-lead{font-size:1.12rem;color:var(--text-muted);line-height:1.7;max-width:620px;font-weight:300;}

.prose p{font-size:1.02rem;color:var(--text-muted);margin-bottom:var(--sm);line-height:1.8;}
.prose p strong{color:var(--text);font-weight:500;}
.prose p em{font-style:italic;color:var(--accent-text);}
.lead-p{font-size:1.15rem!important;color:var(--text)!important;line-height:1.7!important;}
h2.sec{font-family:var(--df);font-size:clamp(1.4rem,2.4vw,1.8rem);font-weight:400;margin:var(--lg) 0 var(--md);line-height:1.25;}
h2.sec:first-child{margin-top:0;}
.eyebrow{font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-text);margin:var(--lg) 0 .6rem;display:block;}

.tag-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:var(--md);}
.tag{font-size:.74rem;letter-spacing:.03em;color:var(--text-muted);border:1px solid var(--border);padding:.4rem .9rem;}

.principios{display:grid;grid-template-columns:1fr 1fr;gap:var(--md) var(--lg);margin-top:var(--sm);}
.principio{border-top:1px solid var(--border);padding:1rem 0 .15rem;transition:transform .32s var(--ease);}
@media (hover:hover){.principio:hover{transform:scale(1.02);}}
.principio h4{font-family:var(--df);font-weight:400;font-size:1.12rem;margin-bottom:.4rem;line-height:1.3;}
.principio p{font-size:.94rem;color:var(--text-muted);line-height:1.7;}
.principio p strong{color:var(--text);font-weight:500;}
@media (max-width:680px){.principios{grid-template-columns:1fr;gap:var(--md);}}

.pull{margin:var(--lg) 0;padding:var(--md) 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.pull p{font-family:var(--df);font-size:clamp(1.2rem,2.1vw,1.55rem);font-weight:400;line-height:1.45;color:var(--text);}

.callout{background:transparent;border:1px solid var(--border);border-top:2px solid var(--acc);padding:var(--md);margin:var(--md) 0;}
.callout h3{font-family:var(--df);font-weight:400;font-size:1.15rem;margin-bottom:.5rem;}
.callout p{font-size:.95rem;color:var(--text-muted);line-height:1.75;}

/* Formación */
.formacion .block{margin-bottom:var(--lg);}
.formacion .block:last-child{margin-bottom:0;}
.formacion .lbl{font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-text);display:block;margin-bottom:1.1rem;}
.formacion .acad{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;padding-bottom:var(--md);border-bottom:1px solid var(--border);}
.formacion .deg .t{font-family:var(--df);font-size:1.2rem;line-height:1.25;}
.formacion .deg .d{font-size:.87rem;color:var(--text-muted);margin-top:.25rem;}
.formacion .feat{display:flex;align-items:baseline;gap:1.1rem;padding:1.15rem 0;border-bottom:1px solid var(--border);transition:transform .32s var(--ease);}
@media (hover:hover){.formacion .feat:hover{transform:scale(1.02);}}
.formacion .feat:first-of-type{border-top:1px solid var(--border);}
.formacion .feat .ab{font-family:var(--df);font-size:1.08rem;color:var(--accent-text);min-width:54px;font-weight:500;flex-shrink:0;}
.formacion .feat .body .t{font-family:var(--df);font-size:1.2rem;line-height:1.3;}
.formacion .feat .body .d{font-size:.88rem;color:var(--text-muted);margin-top:.25rem;}
.formacion .curso{font-style:italic;color:var(--accent-text);font-size:.82rem;white-space:nowrap;}
.formacion .more-lbl{font-size:.64rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);display:block;margin:1.9rem 0 .2rem;}
.formacion .otras{margin-top:.5rem;}
.formacion .otras .o{display:flex;align-items:baseline;gap:.7rem;font-size:.9rem;color:var(--text-muted);padding:.5rem 0;line-height:1.55;}
.formacion .otras .o::before{content:'';width:14px;height:2px;background:var(--acc);flex-shrink:0;margin-top:.65em;}
.formacion .otras .o strong{color:var(--text);font-weight:500;}
.formacion .afil{font-size:.95rem;color:var(--text-muted);line-height:1.7;}
.formacion .afil strong{color:var(--text);font-weight:500;}
.formacion .refs{font-size:.95rem;color:var(--text);line-height:1.95;}
.formacion .career{list-style:none;display:flex;flex-direction:column;gap:.9rem;}
.formacion .career li{display:flex;align-items:baseline;gap:.7rem;font-size:.93rem;color:var(--text-muted);line-height:1.55;}
.formacion .career li::before{content:'';width:14px;height:2px;background:var(--acc);flex-shrink:0;margin-top:.7em;}
.formacion .career strong{color:var(--text);font-weight:500;}
.formacion .career em{font-style:italic;color:var(--accent-text);font-size:.8rem;margin-left:.3rem;letter-spacing:.03em;}
.formacion .pagenav-subtle{justify-content:flex-start;}
.formacion .proyectos{display:grid;grid-template-columns:1fr 1fr;margin-top:.4rem;}
.formacion .proj{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;padding:1.55rem 2.4rem 1.65rem;transition:transform .32s var(--ease);}
.formacion .proj:first-child{padding-left:0;}
.formacion .proj + .proj{border-left:1px solid var(--border);}
@media (hover:hover){.formacion .proj:hover{transform:scale(1.025);}}
.formacion .p-rol{font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);}
.formacion .p-name{font-family:var(--df);font-size:1.45rem;line-height:1.2;color:var(--text);}
.formacion .p-btn{margin-top:.95rem;font-size:.72rem;padding:.66rem 1.5rem;}
.pagenav-subtle a.btn-back{font-size:.74rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border);padding:.72rem 1.7rem;transition:color .3s,border-color .3s,transform .15s ease-out;}
.pagenav-subtle a.btn-back:hover{color:var(--acc);border-color:var(--acc);}
@media (max-width:560px){.formacion .acad{grid-template-columns:1fr;gap:1.1rem;}.formacion .feat .ab{min-width:46px;}}
@media (max-width:600px){.formacion .proyectos{grid-template-columns:1fr;}.formacion .proj{padding:1.35rem 0;}.formacion .proj + .proj{border-left:none;border-top:1px solid var(--border);}}
.cred-grid{columns:2;column-gap:var(--xl);}
.cred-block{break-inside:avoid;-webkit-column-break-inside:avoid;margin-bottom:var(--lg);}
.cred-block:last-child{margin-bottom:0;}
.cred-block .label{margin-bottom:1rem;}
.cred-list{list-style:none;display:flex;flex-direction:column;gap:.75rem;}
.cred-list li{display:flex;align-items:baseline;gap:.7rem;font-size:.9rem;color:var(--text-muted);line-height:1.55;}
.cred-list li::before{content:'';width:14px;height:2px;background:var(--acc);flex-shrink:0;margin-top:.6em;}
.cred-list strong{color:var(--text);font-weight:500;}
.cred-list em{font-style:italic;color:var(--accent-text);font-size:.8rem;margin-left:.3rem;letter-spacing:.03em;}
.cred-prose{font-size:.9rem;color:var(--text-muted);line-height:1.7;}
.cred-prose strong{color:var(--text);font-weight:500;}
.referentes{margin-top:var(--lg);padding-top:var(--lg);border-top:1px solid var(--border);text-align:center;}
.referentes .label{margin-bottom:1rem;}
.referentes p{font-family:var(--df);font-size:1.1rem;color:var(--text);line-height:1.95;}
.formacion-links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--md);margin-top:var(--lg);}
.fl-item{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1.2rem 2rem;border:1px solid var(--border);min-width:210px;transition:transform .32s var(--ease),border-color .32s var(--ease);}
@media (hover:hover){.fl-item:hover{transform:scale(1.03);border-color:var(--acc);}}
.fl-label{font-size:.66rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text);}
.fl-name{font-family:var(--df);font-size:1.25rem;color:var(--text);}
@media (max-width:760px){.cred-grid{columns:1;}.cred-block{margin-bottom:var(--md);}}
@media (max-width:600px){.fl-item{width:100%;}}

/* Docencia */
.stats{display:flex;flex-wrap:wrap;gap:var(--lg);margin:var(--md) 0 var(--lg);}
.stat{flex:1;min-width:150px;border-top:2px solid var(--acc);padding-top:.8rem;}
.stat .n{font-family:var(--df);font-size:2.1rem;font-weight:400;line-height:1;}
.stat .t{font-size:.85rem;color:var(--text-muted);margin-top:.4rem;line-height:1.5;}
.teach-list{list-style:none;display:flex;flex-direction:column;gap:1.1rem;margin-top:var(--md);}
.teach-list li{display:flex;align-items:baseline;gap:.8rem;font-size:.96rem;color:var(--text-muted);line-height:1.6;}
.teach-list li::before{content:'';width:16px;height:2px;background:var(--acc);flex-shrink:0;margin-top:.7em;}
.teach-list strong{color:var(--text);font-weight:500;}
.testi-grid{columns:2;column-gap:var(--md);margin-top:var(--md);}
.testi{break-inside:avoid;-webkit-column-break-inside:avoid;margin-bottom:var(--md);padding:1.6rem 1.5rem;background:transparent;border:1px solid var(--border);transition:transform .32s var(--ease);}
@media (hover:hover){.testi:hover{transform:scale(1.02);}}
.testi p{font-size:.94rem;font-style:italic;line-height:1.75;color:var(--text);}
.testi .who{margin-top:1rem;font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);}
@media (max-width:680px){.testi-grid{columns:1;}.stats{gap:var(--md);}}

.pagenav-subtle{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 1.5rem;margin-top:var(--xl);padding-top:var(--md);border-top:1px solid var(--border);}
.pagenav-subtle a{font-size:.82rem;color:var(--text-muted);text-decoration:none;letter-spacing:.02em;transition:color .3s;white-space:nowrap;padding:.5rem .35rem;}
.pagenav-subtle a:hover{color:var(--text);}
@media (max-width:600px){.pagenav-subtle{justify-content:center;gap:.8rem 1.4rem;}}

.cta-final{background:var(--bg);color:var(--text-light);text-align:center;padding:var(--xl) var(--md);border-top:1px solid var(--border-light);}
.cta-final .inner{max-width:600px;margin:0 auto;}
.cta-final h2{font-family:var(--df);font-weight:400;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.25;margin-bottom:var(--lg);color:var(--text-light);}
.cta-final .cta-btn{display:inline-block;padding:.95rem 2.4rem;background:var(--text-light);color:var(--bg);text-decoration:none;font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;transition:background-color .3s,color .3s,border-color .3s,transform .15s ease-out;border:1px solid var(--text-light);}
.cta-final .cta-btn:hover{background:transparent;color:var(--text-light);}
.cta-final .cta-btn:active{transform:scale(.97);}
.cta-final .cta-link{display:block;margin-top:var(--md);color:rgba(240,236,226,.55);font-size:.88rem;text-decoration:none;transition:color .3s;}
.cta-final .cta-link:hover{color:var(--text-light);}

.deriva-cta{display:block;margin-top:var(--xl);padding:var(--md);background:transparent;border:1px solid var(--border);border-top:2px solid var(--acc);text-decoration:none;transition:transform .32s var(--ease),border-color .32s var(--ease);}
@media (hover:hover){.deriva-cta:hover{transform:scale(1.015);border-color:var(--acc);}}
.deriva-cta .dk{font-size:.66rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text);display:block;margin-bottom:.6rem;}
.deriva-cta .dt{font-family:var(--df);font-size:1.2rem;color:var(--text);line-height:1.45;display:block;}
.deriva-cta .dt em{font-style:italic;color:var(--accent-text);}
.deriva-cta .arr{display:inline-block;transition:transform .3s;color:var(--acc);}
@media (hover:hover){.deriva-cta:hover .arr{transform:translateX(4px);}}
.docencia-back{text-align:center;margin-top:var(--xl);padding-top:var(--lg);border-top:1px solid var(--border);}
.docencia-back a{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 2.2rem;border:1px solid var(--text);color:var(--text);text-decoration:none;font-size:.76rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;transition:background-color .3s,color .3s,border-color .3s,transform .15s ease-out;}
.docencia-back a:hover{background:var(--text);color:var(--bg-section);}
.docencia-back a:active{transform:scale(.97);}

/* Aviso de privacidad */
.page-legal .page-header{max-width:720px;margin:0 auto;padding:calc(60px + var(--lg)) var(--md) 0;background:none;color:var(--text);text-align:left;}
.page-legal .plabel{font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-text);margin-bottom:var(--sm);}
.page-legal .page-header h1{font-family:var(--df);font-size:clamp(2rem,4vw,2.7rem);font-weight:400;margin-bottom:.6rem;}
.page-legal .page-header p{color:var(--text-muted);font-size:.95rem;}
.page-legal main{max-width:720px;padding:var(--lg) var(--md) var(--xl);animation:none;}
.page-legal main p{font-size:.96rem;color:var(--text-muted);margin-bottom:var(--sm);text-align:justify;}
.page-legal main p strong{color:var(--text);font-weight:500;}
.page-legal main h2{font-family:var(--df);font-size:1.3rem;font-weight:400;margin:var(--md) 0 var(--sm);}
.info-box{margin:var(--md) 0;padding:var(--md);background:transparent;border:1px solid var(--border);border-top:2px solid var(--acc);font-size:.92rem;}
.back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-muted);text-decoration:none;font-size:.88rem;margin-top:var(--md);transition:color .3s;}
.back-link:hover{color:var(--text);}
@media (max-width:600px){.page-legal main{padding:var(--lg) var(--sm);}}

/* 404 */
.page-404{min-height:100svh;display:flex;flex-direction:column;background:var(--bg);color:var(--text-light);}
.nf-brand{position:fixed;top:0;left:0;right:0;padding:1.1rem var(--md);display:flex;justify-content:center;}
.nf-brand a{font-weight:500;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(240,236,226,.75);text-decoration:none;transition:color .3s;}
.nf-brand a:hover{color:var(--text-light);}
.nf-wrap{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:7rem var(--md) var(--xl);}
.nf-code{font-family:var(--df);font-style:italic;font-size:clamp(4.5rem,12vw,7.5rem);font-weight:400;line-height:1;color:var(--acc-d);margin-bottom:1.2rem;}
.nf-wrap h1{font-family:var(--df);font-weight:400;font-size:clamp(1.6rem,3.4vw,2.3rem);line-height:1.25;margin-bottom:1rem;}
.nf-wrap p{max-width:460px;font-size:.95rem;color:rgba(240,236,226,.62);line-height:1.75;margin-bottom:var(--md);}
.nf-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;}
.nf-btn{display:inline-block;padding:.85rem 2.2rem;background:var(--text-light);color:var(--bg);text-decoration:none;font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--text-light);transition:background-color .3s,color .3s,border-color .3s,transform .15s ease-out;}
.nf-btn:hover{background:transparent;color:var(--text-light);}
.nf-btn:active{transform:scale(.97);}
.nf-btn-ghost{background:transparent;color:rgba(240,236,226,.75);border-color:rgba(240,236,226,.3);}
.nf-btn-ghost:hover{background:var(--text-light);color:var(--bg);border-color:var(--text-light);}
.nf-links{margin-top:var(--lg);display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;justify-content:center;}
.nf-links a{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(240,236,226,.55);text-decoration:none;padding:.4rem 0;border-bottom:1px solid transparent;transition:color .3s,border-color .3s;}
.nf-links a:hover{color:var(--text-light);border-color:var(--acc-d);}

/* MOVIMIENTO REDUCIDO */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
  .hero h1 .line>span{transform:none;}
  .hero-meta,.hero-actions,.hero-more{opacity:1;}
  .lugar path{stroke-dashoffset:0;}
  .lugar circle{opacity:1;transform:none;}
  .rv{opacity:1;transform:none;}
  .cardq:hover,.expect-col:hover,.consulta-mini:hover,.paso:hover,.testi:hover,.principio:hover,.fl-item:hover,.deriva-cta:hover,.formacion .feat:hover,.formacion .proj:hover{transform:none;}
}

/* ===== Prueba tipográfica jul 2026: Newsreader + Instrument Sans ===== */
/* Citas en serif */
.t-card p{font-family:var(--df);font-size:1.06rem;line-height:1.62;}
/* Números en itálica Newsreader */
.paso .p-num{font-style:italic;}
.spec-row .v strong{font-family:var(--df);font-style:italic;font-size:1.14em;line-height:1;}
