/* =========================================================================
   Taller Ejemplo — demo WhiteMoon
   Tema "taller premium": negro, gris y dorado.

   CONTRASTE (medido sobre los tres fondos de la web: #0a0a0c, #101014 y
   #161619). El dorado --p #d4af37 es lo bastante luminoso para pintar texto
   sobre negro, al revés que el rojo al que sustituye:

     --p   #d4af37 → 9.40:1 sobre #0a0a0c · 8.63:1 sobre #161619
     --p2  #e8c766 → 12.05:1 sobre #0a0a0c
     --text  #eceef3 → 16.6:1 · --soft #c3c8d4 → 11.4:1 · --muted #9aa0ad → 7.5:1

   El botón dorado es la excepción deliberada: --p como FONDO con tinta
   --ink #0a0a0c encima da 9.40:1. Texto blanco sobre ese dorado se queda en
   2.2:1, así que no se usa en ninguna parte.

   El verde --g #00d4aa queda reservado a un único uso: la tarjeta de cita
   confirmada. Una confirmación se lee en verde en todas partes y tiene que
   distinguirse del dorado de la marca.
   ========================================================================= */

/* Sora es una fuente variable: un solo eje 400-800, dos ficheros que son
   subsets por unicode-range (latin y latin-ext), no copias por peso.
   Auto-hospedada: cero peticiones a Google Fonts en la ruta crítica. */
@font-face{font-family:'Sora';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/sora-var-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Sora';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/sora-var-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --bg:#0a0a0c;              /* negro base */
  --bg2:#101014;             /* sección alterna, gris muy oscuro */
  --card:#161619;            /* tarjeta */
  --card2:#1c1c21;           /* tarjeta elevada */

  --text:#eceef3;            /* titulares y texto fuerte — 16.6:1 */
  --soft:#c3c8d4;            /* párrafos largos — 11.4:1 */
  --muted:#9aa0ad;           /* secundario — 7.5:1 */

  --p:#d4af37;               /* dorado: acento, fondo de botón, borde */
  --p2:#e8c766;              /* dorado claro: texto de acento y hover */
  --p-deep:#8a6f1f;          /* dorado profundo: solo bordes y sombras */
  --p-chip:rgba(212,175,55,.09);
  --ink:#0a0a0c;             /* tinta sobre dorado */

  --g:#00d4aa;               /* verde de éxito: SOLO cita confirmada */
  --g-bg:#0c1c19;
  --g-soft:#86d9c6;

  --line:rgba(255,255,255,.07);
  --line2:rgba(255,255,255,.13);
  --border:rgba(212,175,55,.28);

  --display:'Sora',system-ui,-apple-system,'Segoe UI',sans-serif;
  --body:'Sora',system-ui,-apple-system,'Segoe UI',sans-serif;
  --maxw:1240px;
  --nav-h:84px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 14px);-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--soft);font-family:var(--body);font-size:16px;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
::selection{background:var(--p);color:var(--ink)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--display);color:var(--text)}
h1,h2{font-weight:800;line-height:1.03;letter-spacing:-.022em}
h3,h4{font-weight:700;line-height:1.2;letter-spacing:-.014em}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Foco visible y consistente en todo lo interactivo. */
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--p2);outline-offset:3px;border-radius:4px}

.skip{position:absolute;left:14px;top:-60px;z-index:1000;background:var(--p);color:var(--ink);font-weight:700;padding:11px 18px;border-radius:8px;transition:top .2s}
.skip:focus{top:14px}

.eyebrow{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.22em;font-size:.74rem;color:var(--p2);display:inline-flex;align-items:center;gap:.8em}
.eyebrow::before{content:"";width:32px;height:1px;background:var(--p);display:inline-block}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--display);font-weight:700;letter-spacing:.01em;font-size:.95rem;padding:14px 26px;border-radius:9px;border:1.5px solid var(--p);background:var(--p);color:var(--ink);cursor:pointer;transition:transform .2s,box-shadow .3s,background-color .3s}
.btn:hover{transform:translateY(-2px);background:var(--p2);border-color:var(--p2);box-shadow:0 12px 30px -12px rgba(212,175,55,.55)}
.btn svg{width:18px;height:18px}
.btn.ghost{background:transparent;color:var(--p2);border-color:var(--border)}
.btn.ghost:hover{background:var(--p-chip);color:var(--p2);border-color:var(--p);box-shadow:none}
.btn.block{width:100%}

/* ---------- NAV ---------- */
header.nav{position:fixed;top:0;left:0;right:0;z-index:900;transition:background-color .35s,backdrop-filter .35s}
header.nav::after{content:"";position:absolute;inset:0;border-bottom:1px solid transparent;transition:border-color .35s;pointer-events:none}
header.nav.scrolled{background:rgba(10,10,12,.86);backdrop-filter:blur(14px)}
header.nav.scrolled::after{border-bottom-color:var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);gap:20px}
.nav-logo{display:flex;align-items:center;gap:13px}
.nav-logo .mark{width:46px;height:46px;border-radius:11px;background:linear-gradient(135deg,var(--p),#a8842a);display:grid;place-items:center;flex-shrink:0;box-shadow:0 8px 22px -9px rgba(212,175,55,.65)}
.nav-logo .mark svg{width:25px;height:25px;color:var(--ink)}
.nav-logo .txt b{font-family:var(--display);font-weight:800;font-size:1.1rem;letter-spacing:-.01em;line-height:1;display:block;color:var(--text)}
.nav-logo .txt small{font-family:var(--display);font-weight:600;letter-spacing:.16em;font-size:.6rem;color:var(--muted);text-transform:uppercase;line-height:1.3;display:block;margin-top:4px}
.nav-links{display:flex;align-items:center;gap:26px}
.nav-links a{font-size:.85rem;font-weight:500;color:var(--muted);position:relative;transition:color .25s}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1.5px;background:var(--p);transition:width .3s}
.nav-links a:hover,.nav-links a.active{color:var(--text)}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-cta{display:flex;align-items:center;gap:14px}
.burger{display:none;width:44px;height:44px;place-items:center;border:1px solid var(--line2);border-radius:10px;background:transparent;color:var(--text);cursor:pointer}
.burger svg{width:22px;height:22px}
.mobile-menu{position:fixed;inset:0;background:rgba(8,8,10,.98);backdrop-filter:blur(10px);z-index:899;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:22px;opacity:0;pointer-events:none;transition:opacity .3s}
.mobile-menu.open{opacity:1;pointer-events:auto}
.mobile-menu a{font-family:var(--display);font-weight:700;font-size:1.6rem;color:var(--text);letter-spacing:-.01em}
.mobile-menu a:hover{color:var(--p2)}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;padding-bottom:54px;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg .grad{position:absolute;inset:0;background:
  radial-gradient(1100px 600px at 78% 18%,rgba(212,175,55,.20),transparent 60%),
  radial-gradient(900px 700px at 12% 88%,rgba(212,175,55,.07),transparent 62%),
  linear-gradient(180deg,rgba(12,12,15,.25) 0%,rgba(10,10,12,.14) 48%,rgba(6,6,8,.86) 100%)}
.hero-bg .grid{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 30%,transparent 78%);mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 30%,transparent 78%);opacity:.55}
.hero-bg .art{position:absolute;right:-4%;top:16%;width:min(60vw,760px);color:var(--p);opacity:.13;pointer-events:none}
.hero-bg .art svg{width:100%;height:auto;display:block}
/* Capa de vídeo: por encima del fondo (que hace de fallback) y por debajo de
   los overlays y del contenido. */
.hero-bg .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;background:transparent}
.hero-bg .hero-tint{position:absolute;inset:0;z-index:2;pointer-events:none;background:
  linear-gradient(180deg,rgba(8,8,10,.76) 0%,rgba(8,8,10,.6) 42%,rgba(6,6,8,.93) 100%),
  radial-gradient(1100px 600px at 78% 18%,rgba(212,175,55,.26),transparent 60%)}
.hero-bg .vignette{position:absolute;inset:0;z-index:3;background:linear-gradient(180deg,rgba(8,8,10,.5) 0%,transparent 32%,transparent 52%,rgba(8,8,10,.96) 100%),linear-gradient(90deg,rgba(8,8,10,.72) 0%,rgba(8,8,10,.22) 42%,transparent 68%)}
.hero-content{position:relative;z-index:4;width:100%;padding-top:150px}
.hero h1{font-size:clamp(2.3rem,5.6vw,4.5rem)}
.hero h1 .accent{display:block;color:var(--p2)}
.hero-rot{font-family:var(--display);font-weight:600;font-size:clamp(1rem,2.6vw,1.6rem);color:var(--muted);margin-top:22px;display:flex;align-items:baseline;gap:.5em;flex-wrap:wrap}
.hero-rot .rot{color:var(--text);min-width:11ch;display:inline-block}
.hero-rot .rot b{font-weight:800;color:var(--p2);display:inline-block;transition:opacity .4s,transform .4s}
.hero-rot .rot b.out{opacity:0;transform:translateY(10px)}
.hero-desc{max-width:580px;color:var(--soft);font-size:1.02rem;margin-top:24px}
.hero-desc strong{color:var(--text);font-weight:700}
.hero-actions{display:flex;align-items:center;gap:14px;margin-top:32px;flex-wrap:wrap}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:58px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line)}
.stat{background:rgba(18,18,22,.72);padding:24px 22px}
.stat .v{font-family:var(--display);font-weight:800;font-size:clamp(1.6rem,3.4vw,2.4rem);line-height:1;color:var(--text);letter-spacing:-.02em}
.stat .v .u{color:var(--p2)}
.stat .l{font-size:.78rem;color:var(--muted);margin-top:9px}
.scroll-cue{position:absolute;left:32px;bottom:30px;z-index:4;display:flex;align-items:center;gap:12px;color:var(--muted);font-family:var(--display);font-weight:600;letter-spacing:.2em;font-size:.66rem;text-transform:uppercase}
.scroll-cue .bar{width:1px;height:40px;background:var(--line2);position:relative;overflow:hidden}
.scroll-cue .bar::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--p);animation:cue 2s ease-in-out infinite}
@keyframes cue{0%{transform:translateY(-100%)}100%{transform:translateY(250%)}}

/* ---------- MARQUEE ---------- */
.marquee-wrap{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;overflow:hidden;position:relative;z-index:2}
.marquee-track{display:flex;width:max-content;animation:marquee 34s linear infinite}
.marquee-item{display:inline-flex;align-items:center;gap:9px;padding:0 30px;font-family:var(--display);font-weight:600;letter-spacing:.02em;font-size:.86rem;color:var(--muted);white-space:nowrap}
.marquee-item b{color:var(--p2);font-weight:800}
.marquee-item .dot{width:5px;height:5px;border-radius:50%;background:var(--border)}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- SECCIONES ---------- */
section{position:relative}
section[id]{scroll-margin-top:var(--nav-h)}
.sec{padding:120px 0;position:relative}
.sec--alt{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-head{margin-bottom:58px;max-width:760px}
.sec-head h2{font-size:clamp(2.1rem,5.2vw,3.8rem);margin-top:18px}
.sec-head p{color:var(--muted);margin-top:18px;font-size:1.03rem;max-width:640px}
.sec-head--center{margin:0 auto 52px;text-align:center}
.sec-head--center .eyebrow{justify-content:center}
.bignum{position:absolute;font-family:var(--display);font-weight:800;font-size:clamp(7rem,16vw,18rem);color:#fff;opacity:.028;line-height:.8;pointer-events:none;z-index:0;letter-spacing:-.04em}

/* ---------- EL TALLER ---------- */
.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:68px;align-items:center;position:relative;z-index:2}
.about-copy p{color:var(--soft);font-size:1.05rem;margin-top:20px}
.about-copy p strong{color:var(--text);font-weight:700}
.about-media{position:relative}
.framed{position:relative;border:1px solid var(--border);border-radius:14px;padding:14px;background:linear-gradient(180deg,rgba(212,175,55,.05),transparent);overflow:hidden}
.framed::before{content:"";position:absolute;top:-1px;left:-1px;width:46px;height:46px;border-top:2px solid var(--p);border-left:2px solid var(--p);border-top-left-radius:14px}
.framed::after{content:"";position:absolute;bottom:-1px;right:-1px;width:46px;height:46px;border-bottom:2px solid var(--p);border-right:2px solid var(--p);border-bottom-right-radius:14px}
.taller-panel{border-radius:8px;height:420px;background:radial-gradient(700px 400px at 30% 20%,rgba(212,175,55,.15),transparent 60%),linear-gradient(160deg,#17161a,#0c0c10);display:grid;place-items:center;position:relative;overflow:hidden}
.taller-panel .pgrid{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:44px 44px;opacity:.5}
.taller-panel .car{position:relative;width:78%;color:var(--p2);filter:drop-shadow(0 18px 40px rgba(212,175,55,.24))}
.tag-badge{position:absolute;left:-20px;bottom:-20px;background:var(--p);color:var(--ink);font-family:var(--display);font-weight:800;font-size:1.15rem;padding:14px 22px;border-radius:10px;box-shadow:0 18px 40px -18px rgba(212,175,55,.8);letter-spacing:.02em}
.tag-badge span{display:block;font-size:.62rem;font-weight:700;letter-spacing:.18em;opacity:.75;text-transform:uppercase}

/* ---------- SERVICIOS ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.svc-card{position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:border-color .35s,transform .35s,box-shadow .35s}
.svc-card:hover{transform:translateY(-6px);border-color:var(--p);box-shadow:0 24px 50px -28px rgba(212,175,55,.45)}
.svc-media{height:180px;position:relative;background:linear-gradient(160deg,#131317,#0c0c10);overflow:hidden}
.svc-media .svc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s}
.svc-card:hover .svc-media .svc-img{transform:scale(1.06)}
.svc-media .svc-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,12,.34) 0%,rgba(12,12,16,.56) 55%,rgba(22,22,25,.95) 100%),radial-gradient(360px 180px at 80% 8%,rgba(212,175,55,.22),transparent 60%)}
.svc-badge{position:absolute;left:22px;bottom:-26px;z-index:2;width:68px;height:68px;border-radius:16px;background:var(--bg2);border:1.5px solid var(--border);display:grid;place-items:center;color:var(--p2);box-shadow:0 16px 34px -14px rgba(0,0,0,.8)}
.svc-badge svg{width:34px;height:34px;stroke-width:1.9}
.svc-body{padding:38px 24px 24px;display:flex;flex-direction:column;flex:1}
.svc-body h3{font-size:1.3rem}
.svc-body p{color:var(--muted);font-size:.92rem;margin-top:10px}
.svc-desc{flex:1}
.svc-meta{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:.78rem;color:var(--muted)}
.svc-meta svg{width:15px;height:15px;color:var(--p2);flex-shrink:0}
.svc-foot{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding-top:18px}
.svc-price{font-family:var(--display);font-weight:800;font-size:1.4rem;color:var(--text);letter-spacing:-.02em}
.svc-price small{font-size:.7rem;color:var(--muted);font-weight:500;letter-spacing:0}
.svc-cta{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-weight:700;letter-spacing:.02em;font-size:.84rem;color:var(--p2);cursor:pointer;background:none;border:0;padding:4px;transition:gap .3s}
.svc-cta svg{width:15px;height:15px}
.svc-card:hover .svc-cta{gap:12px}

/* ---------- PROCESO ---------- */
.proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.proc-c{position:relative;padding:32px 24px 28px;border:1px solid var(--line);border-radius:14px;background:var(--card);transition:border-color .35s,transform .35s}
.proc-c:hover{border-color:var(--border);transform:translateY(-5px)}
.proc-c .n{position:absolute;top:18px;right:20px;font-family:var(--display);font-weight:800;font-size:2rem;color:#fff;opacity:.07;line-height:1}
.proc-c .ic{width:52px;height:52px;border-radius:14px;background:var(--p-chip);border:1px solid var(--border);display:grid;place-items:center;color:var(--p2);margin-bottom:18px}
.proc-c .ic svg{width:25px;height:25px}
.proc-c h3{font-size:1.16rem}
.proc-c p{color:var(--muted);font-size:.9rem;margin-top:10px}

/* ---------- POR QUÉ ---------- */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:60px}
.why-c{padding:28px 24px;border:1px solid var(--line);border-radius:14px;background:var(--card);transition:border-color .35s,transform .35s}
.why-c:hover{border-color:var(--border);transform:translateY(-5px)}
.why-c .ic{width:50px;height:50px;border-radius:13px;background:var(--p-chip);border:1px solid var(--border);display:grid;place-items:center;color:var(--p2);margin-bottom:16px}
.why-c .ic svg{width:25px;height:25px}
.why-c h3{font-size:1.1rem}
.why-c p{color:var(--muted);font-size:.9rem;margin-top:10px}
.nos-grid{display:grid;grid-template-columns:1fr 1fr;gap:68px;align-items:center}
.nos-copy p{color:var(--soft);font-size:1.05rem;margin-top:18px}
.nos-copy p strong{color:var(--text);font-weight:700}
.check-list{border:1px solid var(--border);border-radius:14px;background:linear-gradient(180deg,rgba(212,175,55,.04),transparent);overflow:hidden}
.check-row{display:flex;align-items:center;gap:18px;padding:20px 22px;border-bottom:1px solid var(--line)}
.check-row:last-child{border-bottom:0}
.check-row .ic{width:44px;height:44px;border-radius:12px;background:var(--p-chip);border:1px solid var(--border);display:grid;place-items:center;color:var(--p2);flex-shrink:0}
.check-row .ic svg{width:21px;height:21px}
.check-row b{font-family:var(--display);font-weight:700;font-size:1rem;color:var(--text);display:block;letter-spacing:-.01em}
.check-row span{color:var(--muted);font-size:.87rem}

/* ---------- ÁREAS ---------- */
.areas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.area-c{padding:36px 28px;border:1px solid var(--line);border-radius:16px;background:var(--card);transition:border-color .35s,transform .35s,box-shadow .35s}
.area-c:hover{border-color:var(--p);transform:translateY(-6px);box-shadow:0 24px 50px -28px rgba(212,175,55,.45)}
.area-c .ic{width:58px;height:58px;border-radius:16px;background:var(--p-chip);border:1px solid var(--border);display:grid;place-items:center;color:var(--p2);margin-bottom:20px}
.area-c .ic svg{width:30px;height:30px}
.area-c h3{font-size:1.35rem}
.area-c p{color:var(--muted);font-size:.93rem;margin-top:12px}
.area-c ul{list-style:none;margin-top:18px;display:grid;gap:9px}
.area-c li{display:flex;align-items:flex-start;gap:11px;font-size:.87rem;color:var(--soft)}
.area-c li svg{width:16px;height:16px;color:var(--p2);flex-shrink:0;margin-top:4px}

/* ---------- PRECIOS ---------- */
.precios-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.precio-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:26px 26px 20px;transition:border-color .3s}
.precio-card:hover{border-color:var(--border)}
.precio-card .ph{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.precio-card .ph .ic{width:38px;height:38px;border-radius:11px;background:var(--p-chip);border:1px solid var(--border);display:grid;place-items:center;color:var(--p2);flex-shrink:0}
.precio-card .ph .ic svg{width:19px;height:19px}
.precio-card .ph h3{font-size:1.14rem}
.precio-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.045)}
.precio-row:last-child{border-bottom:0}
.precio-row .k{color:var(--muted);font-size:.92rem}
.precio-row .v{font-family:var(--display);font-weight:700;font-size:1rem;color:var(--p2);white-space:nowrap;letter-spacing:-.01em}
.precios-note{color:var(--muted);font-size:.87rem;margin-top:24px;text-align:center}

/* ---------- FAQ ---------- */
.faq{max-width:840px;margin:0 auto}
.faq-item{border:1px solid var(--line);border-radius:14px;margin-bottom:12px;background:var(--card);overflow:hidden}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;cursor:pointer;font-family:var(--display);font-weight:700;font-size:1.06rem;color:var(--text);text-align:left;background:none;border:0;letter-spacing:-.01em}
.faq-q .pl{color:var(--p2);font-size:1.45rem;transition:transform .25s;flex-shrink:0;line-height:1}
.faq-item.open .pl{transform:rotate(45deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-a>div{overflow:hidden}
.faq-a p{color:var(--muted);font-size:.97rem;padding:0 24px 22px}

/* ---------- CONTACTO ---------- */
.contacto{background:linear-gradient(180deg,var(--bg) 0%,#060608 100%);border-top:1px solid var(--line)}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:68px;align-items:start}
.contact-info{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px;margin-top:36px}
.cinfo .k{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;color:var(--p2);margin-bottom:8px}
.cinfo .val{color:var(--text);font-size:1rem;line-height:1.5}
.cinfo .val a{border-bottom:1px solid var(--border)}
.cinfo .val a:hover{color:var(--p2)}
.contact-cta{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:38px 34px}
.contact-cta h3{font-size:1.8rem}
.contact-cta p{color:var(--muted);margin:14px 0 26px;font-size:.97rem}
.contact-cta .btn{margin-bottom:12px}
.contact-cta .grua{display:flex;align-items:center;gap:10px;justify-content:center;background:var(--p-chip);border:1px solid var(--border);border-radius:9px;padding:12px;color:var(--p2);font-family:var(--display);font-weight:700;font-size:.85rem;margin-top:4px}
.contact-cta .grua svg{width:20px;height:20px;flex-shrink:0}
footer.foot{border-top:1px solid var(--line);padding:32px 0;margin-top:100px}
.foot-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;color:var(--muted);font-size:.83rem}
.foot-wm a{color:var(--p2);border-bottom:1px solid var(--border)}

/* ---------- REVEAL ---------- */
.reveal{opacity:0;transform:translateY(30px)}
.reveal.is-in{opacity:1;transform:none;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}

/* =========================================================================
   LEO — asistente del taller
   ========================================================================= */
.leo-btn{position:fixed;right:24px;bottom:24px;z-index:950;width:62px;height:62px;border-radius:50%;background:var(--p);border:0;cursor:pointer;display:grid;place-items:center;box-shadow:0 16px 40px -12px rgba(212,175,55,.7);transition:transform .3s,background-color .3s}
.leo-btn:hover{transform:scale(1.07);background:var(--p2)}
.leo-btn svg{width:29px;height:29px;color:var(--ink);position:relative;z-index:1}
.leo-btn .pulse{position:absolute;inset:0;border-radius:50%;border:2px solid var(--p);opacity:0;pointer-events:none;animation:pulse 2.8s ease-out infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.55}70%{opacity:.08}100%{transform:scale(1.9);opacity:0}}

.leo-panel{
  position:fixed;right:24px;bottom:24px;z-index:960;width:390px;max-width:calc(100vw - 28px);
  height:600px;max-height:calc(100vh - 40px);background:var(--bg2);border:1px solid var(--border);
  border-radius:18px;display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 40px 90px -34px rgba(0,0,0,.92);
  opacity:0;transform:translateY(26px) scale(.97);pointer-events:none;
  transition:opacity .3s,transform .3s cubic-bezier(.16,1,.3,1);
}
.leo-panel.open{opacity:1;transform:none;pointer-events:auto}
.leo-head{display:flex;align-items:center;gap:13px;padding:16px 18px;background:var(--card);border-bottom:1px solid var(--line)}
.leo-head__av{width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,var(--p),#a8842a);display:grid;place-items:center;flex-shrink:0}
.leo-head__av svg{width:23px;height:23px;color:var(--ink)}
.leo-head b{font-family:var(--display);font-weight:700;font-size:1.04rem;color:var(--text);display:block;line-height:1.2}
.leo-head small{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.77rem;margin-top:3px}
.leo-head .dot{width:8px;height:8px;border-radius:50%;background:var(--g);display:inline-block;flex-shrink:0}
.leo-head__close{margin-left:auto;width:34px;height:34px;border-radius:10px;border:1px solid var(--line2);background:transparent;color:var(--muted);cursor:pointer;display:grid;place-items:center;transition:color .2s,border-color .2s}
.leo-head__close:hover{color:var(--text);border-color:var(--p)}
.leo-head__close svg{width:16px;height:16px}
.leo-body{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}
.leo-body::-webkit-scrollbar{width:6px}
.leo-body::-webkit-scrollbar-thumb{background:var(--line2);border-radius:3px}
.leo-msg{max-width:85%;padding:12px 15px;border-radius:16px;font-size:.92rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;animation:msgin .32s ease}
@keyframes msgin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.leo-msg.bot{align-self:flex-start;background:var(--card);border:1px solid var(--line);color:var(--soft);border-bottom-left-radius:5px}
.leo-msg.user{align-self:flex-end;background:var(--p);color:var(--ink);font-weight:600;border-bottom-right-radius:5px}
.leo-typing{align-self:flex-start;display:flex;gap:5px;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:16px;border-bottom-left-radius:5px}
.leo-typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:typing 1.2s infinite}
.leo-typing span:nth-child(2){animation-delay:.2s}
.leo-typing span:nth-child(3){animation-delay:.4s}
@keyframes typing{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}
.leo-quick{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 12px}
.leo-quick:empty{padding:0}
.leo-quick button{font-family:var(--body);font-size:.81rem;font-weight:500;border:1px solid var(--border);background:var(--p-chip);color:var(--p2);border-radius:100px;padding:8px 14px;cursor:pointer;transition:background-color .22s,transform .18s,border-color .22s}
.leo-quick button:hover{background:rgba(212,175,55,.18);border-color:var(--p);transform:translateY(-2px)}
.leo-foot{display:flex;gap:9px;padding:13px 16px;border-top:1px solid var(--line);background:var(--card)}
.leo-foot input{flex:1;min-width:0;background:var(--bg);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;font-size:.92rem;color:var(--text);outline:none;transition:border-color .22s}
.leo-foot input::placeholder{color:var(--muted)}
.leo-foot input:focus{border-color:var(--p)}
.leo-foot input:disabled{background:var(--bg2);color:var(--muted)}
.leo-foot button{width:46px;flex-shrink:0;border:0;border-radius:12px;background:var(--p);cursor:pointer;display:grid;place-items:center;transition:background-color .22s,opacity .2s}
.leo-foot button:hover:not(:disabled){background:var(--p2)}
.leo-foot button:disabled{opacity:.4;cursor:default}
.leo-foot button svg{width:19px;height:19px;color:var(--ink)}
.leo-note{text-align:center;padding:8px 14px;font-size:.68rem;color:var(--muted);background:var(--card);border-top:1px solid var(--line)}

/* ---------- Calendario y huecos del chat ---------- */
#leo-widget{align-self:stretch;flex-shrink:0;background:var(--card);border:1px solid var(--line2);border-radius:16px;padding:14px;animation:msgin .32s ease}
.leo-cal__nav{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.leo-cal__mes{flex:1;text-align:center;font-family:var(--body);font-weight:700;font-size:.92rem;color:var(--text)}
.leo-cal__btn{width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;border:1px solid var(--line2);border-radius:10px;background:var(--bg);color:var(--text);font-size:1.15rem;line-height:1;cursor:pointer;transition:border-color .2s,background-color .2s,color .2s}
.leo-cal__btn:hover:not(:disabled){border-color:var(--p);background:var(--p-chip);color:var(--p2)}
.leo-cal__btn:disabled{opacity:.3;cursor:not-allowed}
.leo-cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.leo-cal__wd{text-align:center;font-size:.66rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding-bottom:5px}
.leo-cal__day{aspect-ratio:1;min-width:0;min-height:28px;display:grid;place-items:center;border:1px solid transparent;border-radius:10px;background:var(--bg);font-family:var(--body);font-size:.8rem;color:var(--text);cursor:pointer;transition:border-color .2s,background-color .2s,color .2s}
.leo-cal__day:hover:not(:disabled){background:var(--p-chip);border-color:var(--p);color:var(--p2)}
.leo-cal__day:disabled{background:transparent;color:#6e7481;cursor:not-allowed}
.leo-cal__day.is-empty{background:transparent;border:0;cursor:default}
.leo-cal__day.is-today{border-color:var(--p);font-weight:700}
.leo-cal__nota{margin-top:10px;font-size:.72rem;color:var(--muted)}
.leo-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.leo-slots__sep{grid-column:1/-1;margin:6px 0 0;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.leo-slot{padding:9px 4px;min-width:0;border:1px solid var(--line2);border-radius:10px;background:var(--bg);font-family:var(--body);font-size:.8rem;font-weight:500;color:var(--text);cursor:pointer;transition:border-color .2s,background-color .2s,color .2s}
.leo-slot:hover{border-color:var(--p);background:var(--p-chip);color:var(--p2)}
.leo-back{grid-column:1/-1;margin-top:10px;padding:0;border:0;background:none;font-family:var(--body);font-size:.79rem;color:var(--p2);cursor:pointer;text-decoration:underline;text-underline-offset:3px;justify-self:start;text-align:left}
.leo-back:hover{color:var(--p)}

/* ---------- Aviso simple del chat ---------- */
.leo-ok{align-self:stretch;flex-shrink:0;display:flex;align-items:flex-start;gap:12px;padding:15px 16px;border:1px solid var(--border);border-radius:16px;background:var(--p-chip);animation:msgin .32s ease}
.leo-ok__ic{width:32px;height:32px;flex-shrink:0;border-radius:50%;background:var(--p);color:var(--ink);display:grid;place-items:center}
.leo-ok__ic svg{width:17px;height:17px}
.leo-ok p{margin:2px 0 0;font-weight:600;font-size:.92rem;line-height:1.45;color:var(--p2)}

/* ---------- Tarjeta de cita confirmada ----------
   Aquí el verde manda sobre el dorado de la marca: una confirmación se lee
   en verde en todas partes y tiene que distinguirse de un mensaje más del
   chat. Es el único punto de la web fuera de la paleta negro/gris/dorado.

   Contraste medido sobre el fondo #0c1c19:
     título   #00d4aa → 9.19:1
     datos    #eceef3 → 16.0:1
     etiqueta #86d9c6 → 10.7:1
   El check oscuro sobre el disco #00d4aa es un icono decorativo
   (aria-hidden), no texto: quien transmite el resultado es el título.

   flex-shrink:0 no es decorativo: `.leo-body` es un flex en columna que
   desborda, y con `overflow:hidden` la altura mínima automática de un item
   flex pasa a ser 0. Sin esto la tarjeta se aplasta a la altura del borde. */
.leo-cita{
  align-self:stretch;flex-shrink:0;background:var(--g-bg);border:1px solid var(--g);border-radius:16px;
  overflow:hidden;box-shadow:0 12px 30px -16px rgba(0,212,170,.5);animation:msgin .32s ease;
}
.leo-cita__head{display:flex;align-items:center;gap:12px;padding:15px 17px 13px;border-bottom:1px solid rgba(0,212,170,.24)}
.leo-cita__ic{width:34px;height:34px;flex-shrink:0;border-radius:50%;background:var(--g);color:#06120f;display:grid;place-items:center}
.leo-cita__ic svg{width:18px;height:18px}
.leo-cita__head b{font-family:var(--display);font-weight:700;font-size:1rem;line-height:1.3;color:var(--g);letter-spacing:-.01em}
.leo-cita__rows{margin:0;padding:4px 17px 14px}
/* flex-wrap y no grid: si el valor no cabe al lado de la etiqueta (nombres
   largos, "viernes, 4 de septiembre de 2026" a 360 px), baja a su propia
   línea en vez de apretarse. */
.leo-cita__row{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px;padding:9px 0;border-bottom:1px solid rgba(0,212,170,.14)}
.leo-cita__row:last-child{border-bottom:0}
.leo-cita__row dt{font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--g-soft);flex-shrink:0}
.leo-cita__row dd{margin:0 0 0 auto;font-size:.93rem;font-weight:600;line-height:1.4;color:var(--text);text-align:right;word-break:break-word}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1080px){
  .nav-links{display:none}
  .nav-cta .btn{display:none}
  .burger{display:grid}
  .why-grid{grid-template-columns:1fr 1fr}
  .proc-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .wrap{padding:0 22px}
  .sec{padding:84px 0}
  .sec-head{margin-bottom:40px}
  .about-grid,.nos-grid,.contact-grid{grid-template-columns:1fr;gap:46px}
  .about-media{order:-1}
  .taller-panel{height:320px}
  .svc-grid{grid-template-columns:1fr 1fr}
  .areas-grid{grid-template-columns:1fr}
  .precios-grid{grid-template-columns:1fr}
  .hero-stats{grid-template-columns:1fr 1fr}
  .contact-info{grid-template-columns:1fr 1fr}
  .hero-content{padding-top:118px}
  .scroll-cue{display:none}
  .hero-bg .art{opacity:.08}
  footer.foot{margin-top:70px}
}
@media (max-width:600px){
  .wrap{padding:0 18px}
  .svc-grid,.proc-grid,.why-grid,.contact-info{grid-template-columns:1fr}
  .hero-content{padding-top:96px}
  .tag-badge{left:50%;transform:translateX(-50%);bottom:-18px}
  .leo-panel{right:0;bottom:0;width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0}
  .leo-btn{right:16px;bottom:16px}
  .foot-inner{flex-direction:column;text-align:center;gap:20px}
}
/* Rendimiento y datos móviles: sin vídeo en pantallas pequeñas. Queda el
   fondo con degradado, que es el fallback y no cuesta ninguna petición. */
@media (max-width:768px){
  .hero-bg .hero-video,.hero-bg .hero-tint{display:none!important}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .reveal{opacity:1!important;transform:none!important}
  .leo-btn .pulse{display:none!important}
  .hero-bg .hero-video,.hero-bg .hero-tint{display:none!important}
}
