/* ============================================================
   LUCÍA JIMÉNEZ · Sexóloga clínica
   Identidad: verdes (bosque/salvia/agua), crema/arena, terracota,
   líneas orgánicas ondulantes. Editorial premium, contemporáneo.
   ============================================================ */

/* ---------- TOKENS ---------- */
:root{
  --bg:#F4EEE2;            /* crema cálido */
  --bg2:#E9DFC8;           /* arena */
  --card:#FBF7EC;
  --green:#1E3A2F;         /* verde bosque profundo */
  --green2:#2C4E3F;        /* verde bosque medio */
  --sage:#9FB094;          /* verde salvia */
  --water:#8FB3A8;         /* verde agua (ligeramente azulado) */
  --water-soft:#C4D6CE;
  --ink:#22352A;           /* carbón-verde para texto */
  --ink2:#48604F;
  --mut:#7A8B7D;
  --acc:#A8522B;           /* terracota / óxido (AA ≥ 4.5:1 sobre claro) */
  --acc-d:#8C4420;
  --gold:#C6955C;          /* arena dorada */
  --dark:#14261C;          /* carbón-verde profundo */
  --dark2:#1F3A2D;
  --line:rgba(30,58,47,.16);
  --line-c:rgba(244,238,226,.18);
  --shadow:0 26px 60px -26px rgba(20,38,28,.35);
  --f-d:'Fraunces',Georgia,serif;
  --f-b:'Karla',system-ui,sans-serif;
  --r-lg:26px; --r-md:18px; --r-sm:12px;
}
*{margin:0;padding:0;box-sizing:border-box}
@media (prefers-reduced-motion: no-preference){ html{scroll-behavior:smooth} }
html{scroll-padding-top:100px}
body{
  font-family:var(--f-b);color:var(--ink);line-height:1.65;font-size:1.02rem;overflow-x:hidden;
  background:
    radial-gradient(1100px 560px at 90% -10%, rgba(185,94,52,.09), transparent 60%),
    radial-gradient(900px 520px at -12% 40%, rgba(143,179,168,.16), transparent 62%),
    var(--bg);
}
::selection{background:var(--acc);color:#fff}
img{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:0;background:var(--green);color:#fff;padding:.8rem 1.2rem;z-index:999}
.skip:focus{left:1rem;top:1rem}

/* grano sutil */
body::after{content:'';position:fixed;inset:0;z-index:600;pointer-events:none;opacity:.04;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");}

.wrap{width:min(1180px,92%);margin-inline:auto}
.sec{padding:clamp(4.5rem,9vw,8rem) 0;position:relative}
.h2{font-family:var(--f-d);font-weight:500;letter-spacing:-.025em;line-height:1.06;font-size:clamp(2rem,4.6vw,3.4rem)}
.h2 em,.hero em{font-style:italic;color:var(--acc)}
.lead{color:var(--ink2);max-width:56ch}
.kicker{display:inline-flex;align-items:center;gap:.6rem;font:700 .74rem/1 var(--f-b);letter-spacing:.22em;text-transform:uppercase;color:var(--acc)}
.kicker svg{width:14px;height:14px}
.dark .kicker{color:var(--gold)}

/* ---------- PATRÓN DE LÍNEAS ORGÁNICAS ---------- */
/* capa decorativa de ondas: se usa como protagonista en momentos puntuales */
.wave-band{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.wave-band svg{position:absolute;left:50%;top:50%;width:140%;height:auto;transform:translate(-50%,-50%);color:currentColor;opacity:.5}
.pattern-band{position:absolute;inset:0;background-repeat:repeat;background-size:520px 220px;opacity:.16;pointer-events:none}
.pattern-band.soft{opacity:.10}

/* ---------- BOTONES ---------- */
.btn{display:inline-flex;align-items:center;gap:.65rem;padding:1rem 1.7rem;border-radius:999px;font:700 .95rem var(--f-b);
  text-decoration:none;border:1px solid transparent;cursor:pointer;transition:transform .3s cubic-bezier(.2,.7,.2,1),background .3s,color .3s,box-shadow .3s;will-change:transform}
.btn svg{width:16px;height:16px;transition:transform .3s}
.btn:hover svg{transform:translateX(4px)}
.btn-p{background:var(--acc);color:#fff}
.btn-p:hover{background:var(--acc-d);transform:translateY(-2px);box-shadow:var(--shadow)}
.btn-g{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-g:hover{background:var(--ink);color:#fff;transform:translateY(-2px)}
.btn-gi{border-color:#fff;color:#fff}
.btn-gi:hover{background:#fff;color:var(--dark)}
.btn-lg{padding:1.15rem 2.1rem;font-size:1.02rem}

.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .95rem;border:1px solid var(--line);border-radius:999px;
  font:700 .72rem/1 var(--f-b);letter-spacing:.12em;text-transform:uppercase;background:transparent}
.chip svg{width:13px;height:13px;color:var(--acc)}

/* ---------- REVEAL (motion) ---------- */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
[data-reveal].in{opacity:1;transform:none}

/* ---------- IMAGENES (duotono con verdes) ---------- */
.duo{position:relative;overflow:hidden;background:var(--water)}
.duo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05) brightness(.96);mix-blend-mode:multiply}
.duo-sage{background:var(--sage)} .duo-green{background:var(--green)} .duo-water{background:var(--water)}
.kb img{animation:kb 18s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.07)}}

/* ---------- ARTE DE MARCA (SVG) ---------- */
/* piezas decorativas de identidad: dan dinamismo y aire sin fotografía real.
   Se sustituyen por fotos cuando exista la sesión fotográfica. */
.art-fig{position:relative;overflow:hidden;background:var(--bg2);border:1px solid var(--line);
  border-radius:var(--r-lg);aspect-ratio:4/5;box-shadow:var(--shadow)}
.art-fig.arch{border-radius:999px 999px var(--r-lg) var(--r-lg)}
.art-fig.round{border-radius:999px 999px 999px 999px}
.art-fig img{width:100%;height:100%;object-fit:cover;display:block}
.art-cap{position:absolute;left:1rem;bottom:1rem;max-width:calc(100% - 2rem);
  font:700 .64rem/1.3 var(--f-b);letter-spacing:.16em;text-transform:uppercase;color:var(--green);
  background:rgba(244,238,226,.82);border-radius:999px;padding:.45rem .85rem;backdrop-filter:blur(4px)}
.art-fig img:hover{transform:scale(1.03)}
.art-fig img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}

/* ---------- HEADER ---------- */
header{position:fixed;inset:0 0 auto;z-index:500;transition:background .4s,border-color .4s;border-bottom:1px solid transparent}
header.sc{background:rgba(244,238,226,.9);backdrop-filter:blur(12px);border-color:var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;gap:1rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-family:var(--f-d);font-size:1.25rem;font-weight:600;letter-spacing:-.01em}
.brand .mono{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;font-family:var(--f-d);font-weight:700;font-size:1.05rem;color:var(--green);background:rgba(251,247,236,.7);transition:background .4s,color .4s}
.brand:hover .mono{background:var(--acc);border-color:var(--acc);color:#fff}
.nav-links{display:flex;gap:1.6rem;list-style:none}
.nav-links a{text-decoration:none;font:600 .88rem var(--f-b);color:var(--ink2);position:relative;padding:.3rem 0;white-space:nowrap}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--acc);transition:width .3s}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-links a.active{color:var(--ink)}
.nav-cta{display:flex;align-items:center;gap:.8rem}
.burger{display:none;background:none;border:1px solid var(--line);border-radius:999px;width:46px;height:46px;cursor:pointer;position:relative}
.burger span{position:absolute;left:13px;right:13px;height:2px;background:var(--ink);transition:.3s}
.burger span:nth-child(1){top:17px}.burger span:nth-child(2){top:23px}.burger span:nth-child(3){top:29px}
body.nav-open .burger span:nth-child(1){top:23px;transform:rotate(45deg)}
body.nav-open .burger span:nth-child(2){opacity:0}
body.nav-open .burger span:nth-child(3){top:23px;transform:rotate(-45deg)}
.mnav{position:fixed;inset:0;background:var(--dark);color:#fff;z-index:490;display:flex;flex-direction:column;justify-content:center;padding:8rem 8% 3rem;
  transform:translateY(-102%);transition:transform .55s cubic-bezier(.7,0,.2,1)}
body.nav-open .mnav{transform:none}
.mnav a{font-family:var(--f-d);font-size:clamp(1.8rem,6vw,2.6rem);text-decoration:none;padding:.5rem 0;border-bottom:1px solid var(--line-c);display:flex;justify-content:space-between;align-items:center}
.mnav a small{font:700 .7rem var(--f-b);letter-spacing:.2em;color:var(--gold)}
#progress{position:fixed;top:0;left:0;height:3px;background:var(--acc);width:0;z-index:700}

/* ---------- HERO ---------- */
.hero{min-height:96vh;display:flex;align-items:center;padding:8.5rem 0 4rem;position:relative}
.hero::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='240' viewBox='0 0 560 240' fill='none'%3E%3Cg stroke='%231E3A2F' stroke-width='1.4' opacity='.10'%3E%3Cpath d='M0 60 C 90 20, 160 110, 260 70 S 460 20, 560 80'/%3E%3Cpath d='M0 100 C 90 60, 160 150, 260 110 S 460 60, 560 120'/%3E%3Cpath d='M0 140 C 90 100, 160 190, 260 150 S 460 100, 560 160'/%3E%3Cpath d='M0 180 C 90 140, 160 230, 260 190 S 460 140, 560 200'/%3E%3C/g%3E%3C/svg%3E");background-size:560px 240px;opacity:.5;pointer-events:none}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;position:relative}
.hero h1{font-family:var(--f-d);font-weight:480;letter-spacing:-.03em;line-height:1.02;font-size:clamp(2.9rem,6.6vw,5.4rem)}
.line{display:block;overflow:hidden}
.line span{display:block;transform:translateY(115%);transition:transform 1.05s cubic-bezier(.16,.8,.24,1)}
body.loaded .line span{transform:none}
.line:nth-child(2) span{transition-delay:.12s}.line:nth-child(3) span{transition-delay:.24s}
.rotor-line{margin-top:1.4rem;font-family:var(--f-d);font-style:italic;font-size:clamp(1.15rem,2vw,1.5rem);color:var(--ink2);display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.rotor{display:inline-block;color:var(--acc);border-bottom:2px solid var(--acc);padding-bottom:.05em;transition:opacity .26s,transform .26s;min-width:6ch}
.rotor.swap{opacity:0;transform:translateY(.45em)}
.hero .lead{margin-top:1.4rem}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem}
.trust{display:flex;gap:1.4rem;flex-wrap:wrap;margin-top:2.2rem}
.trust li{display:flex;gap:.5rem;align-items:center;list-style:none;font:600 .8rem var(--f-b);color:var(--ink2)}
.trust svg{width:15px;height:15px;color:var(--acc)}
.hero-vis{position:relative}
.arch{width:min(430px,100%);margin-inline:auto;aspect-ratio:3/4;border-radius:999px 999px 24px 24px}
.arch-echo{position:absolute;inset:0;border:1px solid var(--acc);border-radius:999px 999px 24px 24px;transform:translate(16px,16px);z-index:-1;width:min(430px,100%);margin-inline:auto;left:0;right:0}
.stamp{position:absolute;bottom:-28px;left:-14px;width:132px;height:132px;animation:spin 28s linear infinite;filter:drop-shadow(0 10px 20px rgba(20,38,28,.2))}
@keyframes spin{to{transform:rotate(360deg)}}
.stamp text{font:700 10.5px var(--f-b);letter-spacing:2.4px;fill:var(--acc);text-transform:uppercase}
.float-card{position:absolute;top:6%;right:-4%;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1rem 1.2rem;box-shadow:var(--shadow);
  display:flex;gap:.8rem;align-items:center;animation:floaty 6s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.pulse{width:10px;height:10px;border-radius:50%;background:var(--acc);position:relative;flex:none}
.pulse::after{content:'';position:absolute;inset:-6px;border-radius:50%;border:1px solid var(--acc);animation:pulse 2s ease-out infinite}
@keyframes pulse{from{transform:scale(.4);opacity:1}to{transform:scale(1.4);opacity:0}}
.float-card b{display:block;font-size:.85rem}.float-card small{color:var(--mut);font-size:.75rem}

/* ---------- TICKER ---------- */
.ticker{background:var(--green);color:#fff;overflow:hidden;border-block:1px solid var(--green2)}
.t-track{display:flex;width:max-content;animation:tick 34s linear infinite}
.t-group{display:flex;align-items:center}
.t-item{display:flex;align-items:center;gap:2.4rem;padding-right:2.4rem;font:italic 500 1.1rem var(--f-d);white-space:nowrap}
.t-item svg{width:14px;height:14px;color:var(--water)}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- SERVICIOS ---------- */
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2.5rem,6vw,5rem);align-items:start}
.sticky{position:sticky;top:115px}
.split .duo{border-radius:var(--r-lg);aspect-ratio:4/5;box-shadow:var(--shadow);margin-top:2rem}
.price-tag{position:absolute;bottom:1.1rem;left:1.1rem;background:var(--bg);border-radius:14px;padding:.8rem 1.1rem;font:700 .78rem var(--f-b);letter-spacing:.04em;box-shadow:var(--shadow)}
.price-tag b{display:block;font-family:var(--f-d);font-size:1.35rem;letter-spacing:0;color:var(--green)}
.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:3.2rem 1fr 2.4rem;gap:1.2rem;align-items:baseline;padding:1.25rem .6rem;border-bottom:1px solid var(--line);transition:background .35s,padding .35s}
.row:hover{background:rgba(185,94,52,.07);padding-left:1.1rem}
.row .n{font:italic 500 1rem var(--f-d);color:var(--acc)}
.row h3{font-family:var(--f-d);font-weight:560;font-size:1.28rem;letter-spacing:-.01em}
.row p{color:var(--ink2);font-size:.94rem;margin-top:.2rem}
.row svg{width:18px;height:18px;color:var(--acc);opacity:0;transform:translateX(-8px);transition:.35s;align-self:center}
.row:hover svg{opacity:1;transform:none}

/* pareja */
.sec-pareja{background:var(--water-soft)}
.check-list{list-style:none;margin-top:1.8rem;display:grid;gap:.7rem}
.check-list li{display:flex;gap:.9rem;align-items:flex-start;border-left:2px solid rgba(168,82,43,.4);padding:.8rem .4rem .8rem 1.1rem;transition:transform .3s,opacity .3s}
.check-list li:hover{transform:translateX(6px)}
.check-list svg{width:17px;height:17px;color:var(--acc);flex:none;margin-top:.25rem}
.check-list b{font-weight:700}
.work-card{background:var(--green);color:#fff;border-radius:var(--r-lg);padding:1.8rem;margin-top:1.6rem;box-shadow:var(--shadow);position:relative;overflow:hidden}
.work-card h4{font-family:var(--f-d);font-size:1.3rem;font-weight:560;margin-bottom:.9rem}
.work-card li{list-style:none;display:flex;gap:.8rem;padding:.55rem 0;border-bottom:1px solid var(--line-c);font-size:.94rem;color:#E7E2D5}
.work-card li:last-child{border:0}
.work-card li::before{content:'✳';color:var(--water)}
.note-pill{margin-top:1.8rem;color:var(--ink2);font-size:.96rem}

/* ---------- TARIFAS ---------- */
.sec-tarifas{background:var(--bg2)}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2.8rem}
.price-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:2rem;display:flex;flex-direction:column;gap:1rem;position:relative;transition:transform .4s,box-shadow .4s}
.price-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.price-card .tag{position:absolute;top:-12px;left:1.4rem;background:var(--acc);color:#fff;font:700 .68rem var(--f-b);letter-spacing:.14em;text-transform:uppercase;padding:.4rem .9rem;border-radius:999px}
.price-card h3{font-family:var(--f-d);font-weight:560;font-size:1.45rem}
.price-card .dur{font:700 .72rem var(--f-b);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.price-card .price{font-family:var(--f-d);font-size:2.6rem;font-weight:520;letter-spacing:-.02em;color:var(--green)}
.price-card .price small{font-family:var(--f-b);font-size:.9rem;color:var(--mut);font-weight:400;letter-spacing:0}
.price-card .mode{color:var(--acc);font-weight:700;font-size:.9rem}
.price-card ul{list-style:none;display:grid;gap:.55rem;border-top:1px solid var(--line);padding-top:1.1rem;margin-top:auto}
.price-card li{display:flex;gap:.6rem;font-size:.92rem;color:var(--ink2);align-items:flex-start}
.price-card li svg{width:15px;height:15px;color:var(--acc);flex:none;margin-top:.25rem}
.pricing-note{margin-top:1.6rem;font-size:.9rem;color:var(--mut);max-width:60ch}

/* ---------- SOBRE ---------- */
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,6vw,5rem);align-items:center}
/* teaser de la home: mismo comportamiento que la página Sobre (fix: antes no tenía grid y el retrato se estiraba a ancho completo) */
.about-teaser{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,6vw,5rem);align-items:center}
/* cita con pieza visual (Sobre Lucía) */
.about-quote{display:grid;grid-template-columns:1fr .9fr;gap:clamp(2.5rem,6vw,4.5rem);align-items:center}
.about-vis{position:relative}
.about-vis .duo{border-radius:var(--r-lg);aspect-ratio:3/4;box-shadow:var(--shadow)}
.about-badge{position:absolute;bottom:-1.4rem;right:-1rem;background:var(--green);color:#fff;border-radius:16px;padding:1rem 1.3rem;box-shadow:var(--shadow);max-width:250px}
.about-badge b{font-family:var(--f-d);font-size:1.05rem;display:block}
.about-badge small{color:var(--water-soft);font-size:.78rem}
.creds{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1.4rem;margin:1.6rem 0;list-style:none}
.creds li{display:flex;gap:.6rem;font-size:.92rem;color:var(--ink2);align-items:flex-start}
.creds svg{width:15px;height:15px;color:var(--acc);flex:none;margin-top:.28rem}
.approach{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.4rem}
.quote{font-family:var(--f-d);font-style:italic;font-size:clamp(1.3rem,2.4vw,1.7rem);line-height:1.35;color:var(--ink);border-left:3px solid var(--acc);padding-left:1.4rem;margin:2.2rem 0 0}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:3.2rem}
.stat{border-top:2px solid var(--acc);padding-top:.9rem}
.stat b{font-family:var(--f-d);font-size:clamp(1.6rem,3vw,2.3rem);font-weight:540;display:block;letter-spacing:-.02em;color:var(--green)}
.stat span{font-size:.82rem;color:var(--mut);letter-spacing:.06em;text-transform:uppercase;font-weight:700}

/* ---------- PROCESO (dark) ---------- */
.dark{background:var(--dark);color:#fff;position:relative;overflow:hidden}
.dark::after{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='240' viewBox='0 0 560 240' fill='none'%3E%3Cg stroke='%23ffffff' stroke-width='1.3' opacity='.05'%3E%3Cpath d='M0 60 C 90 20, 160 110, 260 70 S 460 20, 560 80'/%3E%3Cpath d='M0 100 C 90 60, 160 150, 260 110 S 460 60, 560 120'/%3E%3Cpath d='M0 140 C 90 100, 160 190, 260 150 S 460 100, 560 160'/%3E%3Cpath d='M0 180 C 90 140, 160 230, 260 190 S 460 140, 560 200'/%3E%3C/g%3E%3C/svg%3E");background-size:560px 240px;pointer-events:none}
.dark .h2{color:#fff} .dark .lead{color:#D8E0D6}
.proc-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2.5rem,6vw,5rem);align-items:start;position:relative}
.proc-left{position:sticky;top:125px}
.step-counter{display:flex;align-items:center;gap:1.6rem;margin-top:2.5rem}
.step-num{font-family:var(--f-d);font-style:italic;font-size:clamp(3.4rem,6vw,5rem);color:var(--gold);line-height:1;min-width:2.4ch}
.rail{width:3px;height:120px;background:var(--line-c);border-radius:3px;overflow:hidden}
.rail i{display:block;width:100%;height:25%;background:var(--gold);transition:height .5s cubic-bezier(.2,.7,.2,1)}
.step{background:var(--dark2);border:1px solid var(--line-c);border-radius:var(--r-lg);padding:1.8rem;margin-bottom:1.2rem;transition:border-color .4s,transform .4s,background .4s}
.step.is-active{border-color:var(--gold);transform:translateX(-6px);background:#26483A}
.step header{position:static;display:flex;justify-content:space-between;align-items:baseline;border:0;padding:0;margin-bottom:.7rem;background:none}
.step .sn{font:italic 500 1rem var(--f-d);color:var(--gold)}
.step .dur{font:700 .68rem var(--f-b);letter-spacing:.14em;text-transform:uppercase;color:var(--water);border:1px solid var(--line-c);border-radius:999px;padding:.3rem .7rem}
.step h3{font-family:var(--f-d);font-weight:560;font-size:1.45rem;letter-spacing:-.01em}
.step p{color:#D8E0D6;font-size:.96rem;margin-top:.5rem}
.proc-chips{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:2rem}
.proc-chips .chip{border-color:var(--line-c);background:transparent;color:#EDE8DC}
.proc-chips svg{color:var(--gold)}

/* ---------- FAQ ---------- */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2.5rem,6vw,5rem);align-items:start}
.faq-side{position:sticky;top:115px}
.faq-mini{margin-top:2rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:1.6rem;box-shadow:var(--shadow)}
.faq-mini p{font-size:.92rem;color:var(--ink2);margin:.5rem 0 1.1rem}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;background:none;border:0;display:flex;justify-content:space-between;align-items:center;gap:1.2rem;padding:1.35rem .2rem;cursor:pointer;text-align:left;
  font-family:var(--f-d);font-size:1.22rem;font-weight:560;letter-spacing:-.01em;color:var(--ink);transition:color .3s}
.faq-q:hover{color:var(--acc)}
.faq-ico{flex:none;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:transform .45s cubic-bezier(.2,.7,.2,1),background .3s}
.faq-ico svg{width:14px;height:14px}
.faq-item.open .faq-ico{transform:rotate(45deg);background:var(--acc);border-color:var(--acc);color:#fff}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.2,.7,.2,1)}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-a>div{overflow:hidden}
.faq-a p{color:var(--ink2);font-size:.96rem;max-width:62ch;padding:0 .2rem 1.4rem}

/* ---------- RECURSOS ---------- */
.sec-rec{background:var(--bg2)}
.res-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:1.4rem;margin-top:2.8rem}
.res-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .4s,box-shadow .4s}
.res-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.res-card .duo{aspect-ratio:16/9;border-radius:0}
.res-body{padding:1.7rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.res-tag{font:700 .68rem var(--f-b);letter-spacing:.16em;text-transform:uppercase;color:var(--acc)}
.res-card h3{font-family:var(--f-d);font-weight:560;font-size:1.45rem;letter-spacing:-.01em;line-height:1.2}
.res-card p{color:var(--ink2);font-size:.94rem}
.res-link{margin-top:auto;display:inline-flex;align-items:center;gap:.5rem;font-weight:700;text-decoration:none;color:var(--acc);padding-top:.8rem}
.res-link svg{width:16px;height:16px;transition:transform .3s}
.res-link:hover svg{transform:translateX(5px)}
.res-col{display:grid;gap:1.4rem}
.eps{list-style:none;display:grid}
.eps li{display:flex;align-items:center;gap:.9rem;padding:.7rem 0;border-bottom:1px dashed var(--line);font-size:.9rem}
.eps li:last-child{border:0}
.eps .play{flex:none;width:30px;height:30px;border-radius:50%;background:var(--water-soft);display:grid;place-items:center;color:var(--acc)}
.eps .play svg{width:11px;height:11px}
.eps small{margin-left:auto;color:var(--mut);font-weight:700}
.news-band{margin-top:1.4rem;background:var(--green);color:#fff;border-radius:var(--r-lg);padding:2rem 2.2rem;display:grid;grid-template-columns:1.1fr auto;gap:2rem;align-items:center;position:relative;overflow:hidden}
.news-band h3{font-family:var(--f-d);font-weight:560;font-size:1.6rem;letter-spacing:-.01em}
.news-band p{color:#D8E0D6;font-size:.92rem;margin-top:.3rem}
.news-form{display:flex;gap:.7rem;flex-wrap:wrap}
.news-form input{background:transparent;border:0;border-bottom:2px solid var(--water);color:#fff;font:500 1rem var(--f-b);padding:.6rem .2rem;min-width:min(300px,60vw)}
.news-form input::placeholder{color:#A9BDB0}
.news-msg{font-size:.85rem;color:var(--water);width:100%}

/* ---------- CONTACTO ---------- */
.con-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2.5rem,6vw,4.5rem);align-items:start;margin-top:2.8rem}
.info-card{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:1.2rem .4rem;display:flex;gap:1.1rem;margin-bottom:.4rem;transition:transform .3s}
.info-card:hover{transform:translateX(6px)}
.ico-c{flex:none;width:44px;height:44px;border-radius:50%;background:var(--water-soft);display:grid;place-items:center;color:var(--green)}
.ico-c svg{width:19px;height:19px}
.info-card b{font-family:var(--f-d);font-size:1.08rem;font-weight:560}
.info-card p{font-size:.92rem;color:var(--ink2)}
.urgent{margin-top:1.4rem;font-size:.82rem;color:var(--mut);border-top:1px dashed var(--line);padding-top:1rem}
.form-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.6rem,3.5vw,2.6rem);box-shadow:var(--shadow);position:relative}
.form-card::before{content:'✳';position:absolute;top:-16px;right:28px;font-size:2rem;color:var(--acc)}
.f-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.field{display:flex;flex-direction:column;gap:.35rem}
.field.full{grid-column:1/-1}
.field label{font:700 .72rem var(--f-b);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2)}
.field input,.field select,.field textarea{border:1px solid var(--line);background:rgba(255,255,255,.6);border-radius:12px;padding:.85rem 1rem;font:500 .98rem var(--f-b);color:var(--ink);transition:border-color .3s,box-shadow .3s}
.field textarea{resize:vertical;min-height:110px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px rgba(185,94,52,.15)}
.field .err{font-size:.78rem;color:var(--acc-d);display:none}
.field.bad input,.field.bad select{border-color:var(--acc-d)}
.field.bad .err{display:block}
.consent{grid-column:1/-1;display:flex;gap:.8rem;align-items:flex-start;font-size:.85rem;color:var(--ink2)}
.consent input{accent-color:var(--acc);width:18px;height:18px;margin-top:.15rem}
.consent a{color:var(--acc)}
.form-note{grid-column:1/-1;font-size:.8rem;color:var(--mut)}
.form-success{display:none;text-align:center;padding:2.5rem 1rem}
.form-success.show{display:block;animation:fadeUp .6s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.ok-ring{width:76px;height:76px;border-radius:50%;background:var(--water-soft);display:grid;place-items:center;margin:0 auto 1.2rem;color:var(--green)}
.ok-ring svg{width:34px;height:34px}
.form-success h3{font-family:var(--f-d);font-size:1.7rem;font-weight:560}
.form-success p{color:var(--ink2);max-width:38ch;margin:.6rem auto 1.4rem}

/* ---------- BANDA DE ONDAS (patrón protagonista) ---------- */
.wave-gap{position:relative;height:clamp(56px,9vw,110px);background:var(--bg2);overflow:hidden}
.wave-gap svg{position:absolute;inset:0;width:100%;height:100%}
.wave-gap path{stroke:var(--acc);stroke-width:2;fill:none;opacity:.85}

/* ---------- MASTHEAD DE MARCA ---------- */
.masthead{background:var(--dark);color:#fff;overflow:hidden;text-align:center;padding:clamp(5rem,10vw,9rem) 0;position:relative}
.masthead .wrap{position:relative;z-index:1}
.masthead .kicker{justify-content:center;color:var(--gold)}
.mast-name{font-family:var(--f-d);font-weight:600;letter-spacing:-.02em;line-height:.98;font-size:clamp(2.6rem,9vw,6.4rem);margin-top:1.1rem;text-transform:uppercase}
.masthead .lead{color:#D8E0D6;margin:1.4rem auto 0;max-width:46ch}
.mast-waves{position:absolute;left:0;right:0;bottom:0;height:64%;opacity:.14;pointer-events:none}
.mast-waves svg{width:100%;height:100%}
.mast-waves path{stroke:#fff;fill:none;stroke-width:1.6}

/* ---------- FOOTER / LEGAL ---------- */
footer{background:var(--dark);color:#fff;padding:4.5rem 0 2rem;position:relative;overflow:hidden}
.foot-grid{display:grid;grid-template-columns:1.3fr .8fr .9fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid var(--line-c)}
.foot-brand p{color:#C9D5CA;font-size:.92rem;max-width:34ch;margin-top:.8rem}
footer h5{font:700 .72rem var(--f-b);letter-spacing:.2em;text-transform:uppercase;color:var(--water);margin-bottom:1.1rem}
footer ul{list-style:none}
footer ul a{display:inline-block;text-decoration:none;color:#E7E2D5;padding:.28rem 0;font-size:.94rem;transition:color .3s,transform .3s}
footer ul a:hover{color:var(--gold);transform:translateX(4px)}
.legal-block{padding:2.5rem 0;border-bottom:1px solid var(--line-c)}
.legal-block h5{margin-bottom:1.4rem}
details.legal{border:1px solid var(--line-c);border-radius:14px;margin-bottom:.8rem;background:rgba(31,58,45,.4)}
details.legal summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:1.1rem 1.4rem;font-family:var(--f-d);font-size:1.1rem;font-weight:560}
details.legal summary::-webkit-details-marker{display:none}
details.legal summary .plus{transition:transform .4s;color:var(--water)}
details.legal[open] summary .plus{transform:rotate(45deg)}
details.legal .body{padding:0 1.4rem 1.3rem;color:#C9D5CA;font-size:.9rem;max-width:80ch}
details.legal .body p+p{margin-top:.7rem}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:2rem;font-size:.82rem;color:#A9BDB0}
.foot-bottom a{color:#E7E2D5;text-decoration:none}

/* ============ MULTIPÁGINA: breadcrumbs, plantillas y páginas ============ */
.crumbs{background:var(--bg2);border-bottom:1px solid var(--line)}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:calc(96px + .6rem) 0 .7rem;margin:0}
.crumbs li{font:600 .78rem var(--f-b);letter-spacing:.06em;color:var(--mut);text-transform:uppercase}
.crumbs a{color:var(--ink2);text-decoration:none}
.crumbs a:hover{color:var(--acc)}
.crumbs li[aria-current="page"]{color:var(--acc)}
/* con breadcrumbs en banda, la página interior respira menos arriba */
body.has-crumbs .page-hero{padding-top:clamp(2.5rem,5vw,3.5rem)}

.page-hero{padding:clamp(5rem,9vw,7.5rem) 0 0}
.h1-page{font-family:var(--f-d);font-weight:500;letter-spacing:-.025em;line-height:1.04;font-size:clamp(2.4rem,5.4vw,4rem)}
.h1-page em{font-style:italic;color:var(--acc)}

/* tarjetas de servicio (home) */
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:2.6rem}
.svc-card{position:relative;display:flex;flex-direction:column;gap:.8rem;padding:2.2rem;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);text-decoration:none;color:inherit;overflow:hidden;transition:transform .4s,box-shadow .4s}
.svc-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.svc-card.svc-alt{background:var(--water-soft)}
.svc-n{font:italic 500 1rem var(--f-d);color:var(--acc)}
.svc-card h3{font-family:var(--f-d);font-weight:560;font-size:1.7rem;letter-spacing:-.01em}
.svc-card p{color:var(--ink2);font-size:.96rem;max-width:38ch}
.svc-link{margin-top:auto;display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:var(--acc);text-decoration:none}
.svc-link svg{width:16px;height:16px;transition:transform .3s}
a:hover .svc-link svg{transform:translateX(5px)}

/* tarjetas de problema */
.prob-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:2.6rem}
.prob-card{display:flex;flex-direction:column;gap:.6rem;padding:1.5rem 1.6rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);text-decoration:none;color:inherit;transition:transform .35s,box-shadow .35s}
.prob-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.prob-card .pt{height:104px;margin:-1.5rem -1.6rem 1rem;background-size:cover;background-position:center;border-radius:var(--r-md) var(--r-md) 0 0;border-bottom:1px solid var(--line)}
.prob-card h3{font-family:var(--f-d);font-weight:560;font-size:1.25rem;letter-spacing:-.01em;color:var(--green)}
.prob-card p{font-size:.9rem;color:var(--ink2);flex:1}

/* pasos en home */
.home-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:2.6rem}
.hstep{border-top:2px solid var(--gold);padding-top:1rem}
.hstep-n{font:italic 500 1.3rem var(--f-d);color:var(--gold)}
.hstep h3{font-family:var(--f-d);font-weight:560;font-size:1.25rem;margin-top:.5rem}
.hstep p{color:#D8E0D6;font-size:.92rem;margin-top:.4rem}

/* columna de pasos (proceso) */
.steps-col{max-width:820px;margin-inline:auto}

/* página FAQ */
.faq-page{max-width:900px;margin-inline:auto}
.faq-cat{margin-bottom:2.4rem}
.cat-title{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:1.2rem}

/* blog */
.blog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.3rem;margin-top:2.4rem}
.blog-card{display:flex;flex-direction:column;gap:.6rem;padding:1.7rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);text-decoration:none;color:inherit;transition:transform .35s,box-shadow .35s}
.blog-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.blog-card h3{font-family:var(--f-d);font-weight:560;font-size:1.4rem;letter-spacing:-.01em;line-height:1.2}
.blog-card p{color:var(--ink2);font-size:.94rem;flex:1}

/* artículo */
.art-wrap{max-width:760px;margin-inline:auto}
.art-wrap .crumbs{background:none;border:0;padding:.4rem 0}
.prose{margin-top:2rem;color:var(--ink2);font-size:1.06rem}
.prose p{margin-bottom:1.2rem;max-width:64ch}
.art-foot{margin-top:2.4rem;padding-top:1.6rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;font-weight:700;color:var(--ink)}

/* CTA band */
.cta-band{padding:clamp(3.5rem,7vw,5.5rem) 0;background:var(--green);color:#fff;border-radius:0;position:relative;overflow:hidden}
.cta-in{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.cta-in h2{font-family:var(--f-d);font-weight:560;font-size:clamp(1.7rem,3.6vw,2.6rem);letter-spacing:-.01em}
.cta-in p{color:#D8E0D6;margin-top:.4rem;max-width:48ch}

/* problema: dos columnas */
.prob-cols{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,5vw,4rem);align-items:start}

/* patrón orgánico en heros interiores (protagonista puntual) */
.page-hero.pattern{position:relative;overflow:hidden}
.page-hero.pattern::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='240' viewBox='0 0 560 240' fill='none'%3E%3Cg stroke='%231E3A2F' stroke-width='1.4' opacity='.10'%3E%3Cpath d='M0 60 C 90 20, 160 110, 260 70 S 460 20, 560 80'/%3E%3Cpath d='M0 100 C 90 60, 160 150, 260 110 S 460 60, 560 120'/%3E%3Cpath d='M0 140 C 90 100, 160 190, 260 150 S 460 100, 560 160'/%3E%3Cpath d='M0 180 C 90 140, 160 230, 260 190 S 460 140, 560 200'/%3E%3C/g%3E%3C/svg%3E");background-size:560px 240px;opacity:.5;pointer-events:none}
.page-hero.pattern .wrap{position:relative}

/* numeración editorial de secciones */
.edu-grid{display:grid;grid-template-columns:260px 1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.edu-side{display:flex;flex-direction:column;gap:.7rem}
.edu-num{font:italic 500 clamp(3.2rem,6vw,5rem) var(--f-d);color:var(--acc);line-height:1}
.edu-num.edu-gold{color:var(--gold)}
.edu-text{margin-top:1.2rem;font-size:1.12rem;color:var(--ink2);max-width:56ch;line-height:1.75}
/* columna de contenido con pieza visual al lado (secciones 01 y 03) */
.edu-cols{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(2rem,4.5vw,3.5rem);align-items:center}
.edu-cols .art-fig{margin-top:.4rem}

/* pasos de trabajo en sección oscura */
.work-steps{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-top:2.2rem}
.work-step{background:var(--dark2);border:1px solid var(--line-c);border-radius:var(--r-md);padding:1.5rem 1.7rem}
.work-step .n{font:italic 500 1.15rem var(--f-d);color:var(--gold)}
.work-step p{color:#D8E0D6;margin-top:.45rem;font-size:.98rem}

/* índice de problemas: layout editorial con columna sticky */
.prob-index{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,6vw,4.5rem);align-items:start}
.prob-idx-side{position:sticky;top:115px}
.prob-idx-side .h2{font-size:clamp(1.8rem,3.6vw,2.6rem)}
.prob-idx-intro{color:var(--ink2);margin-top:1.1rem;max-width:44ch;font-size:1.04rem;line-height:1.7}
.prob-idx-side .note-pill{margin-top:1.4rem;font-size:.9rem}
.prob-idx-list .row h3{font-size:1.55rem}
.prob-idx-list .row p{font-size:.98rem;max-width:60ch}

/* footer legal links */
.legal-links{display:flex;gap:1.6rem;flex-wrap:wrap}
.legal-links a{color:#E7E2D5;text-decoration:none;font-size:.94rem}
.legal-links a:hover{color:var(--gold)}

/* 404 */
.notfound{max-width:680px}

/* ============ RESPONSIVE ============ */
@media(max-width:1020px){
  .hero-grid,.split,.about-grid,.about-teaser,.about-quote,.proc-grid,.faq-grid,.res-grid,.con-grid,.prob-cols,.edu-grid,.prob-index,.edu-cols{grid-template-columns:1fr}
  .edu-side{flex-direction:row;align-items:baseline;gap:1.2rem}
  .sticky,.faq-side,.prob-idx-side{position:static}
  .hero{min-height:auto;padding-top:7.5rem}
  .hero-vis{max-width:440px;margin-inline:auto}
  .float-card{right:0}
  .stats{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr}
  .news-band{grid-template-columns:1fr}
  .price-grid,.prob-grid,.home-steps,.work-steps{grid-template-columns:1fr 1fr}
  .svc-grid,.blog-grid{grid-template-columns:1fr}
  .about-quote .quote{margin-top:0}
  .edu-cols .art-fig{max-width:420px}
}
@media(max-width:860px){
  .nav-links,.nav-cta .btn{display:none}
  .burger{display:block}
}
@media(max-width:600px){
  .f-grid{grid-template-columns:1fr}
  .foot-grid,.price-grid,.prob-grid,.home-steps,.work-steps{grid-template-columns:1fr}
  .edu-side{flex-direction:column;gap:.4rem}
  .creds{grid-template-columns:1fr}
  .stamp{width:100px;height:100px;left:0}
  .edu-cols .art-fig{max-width:340px}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  [data-reveal]{opacity:1;transform:none}
  .line span{transform:none}
}
