@font-face{font-family:'Nunito Sans';font-weight:400;font-display:swap;src:url('../fonts/nunitosans-400.woff') format('woff')}
@font-face{font-family:'Nunito Sans';font-weight:700;font-display:swap;src:url('../fonts/nunitosans-700.woff') format('woff')}
@font-face{font-family:'Nunito Sans';font-weight:800;font-display:swap;src:url('../fonts/nunitosans-800.woff') format('woff')}

:root{
  --paper:#F3EAD9; --cream:#FBF6EC; --ink:#241C14; --ink-soft:#5D5142; --ink-faint:#8B7C68;
  --night:#15100B; --night-2:#211812;
  --brick:#C0502E; --brick-d:#9A3C1F; --gold:#C4863A; --sage:#5E7351; --sage-soft:#E7ECDD;
  --line:#E4D7C0; --line-dk:rgba(255,255,255,.12);
  --wrap:1240px; --radius:20px;
  --fd:'Fraunces',Georgia,serif; --fb:'Nunito Sans',system-ui,sans-serif;
  --shadow:0 40px 90px -50px rgba(40,22,8,.6);
}
@media (prefers-color-scheme:dark){
  :root{--paper:#161009;--cream:#1F160D;--ink:#F2E7D3;--ink-soft:#C6B79E;--ink-faint:#93826B;
    --night:#0C0805;--night-2:#181109;--brick:#DA6E48;--gold:#D89B4F;--sage:#9BB388;--sage-soft:#26301C;--line:#33271A;--line-dk:rgba(255,255,255,.1)}
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--fb);background:var(--paper);color:var(--ink);font-size:clamp(1.02rem,.6rem+.6vw,1.15rem);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
/* height:auto evita que el atributo height="..." del HTML deforme la imagen
   cuando el CSS solo fija el ancho. Las reglas que sí necesitan altura
   (hero, galería, retratos redondos) la declaran y ganan por especificidad. */
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--fd);font-weight:600;line-height:1.02;letter-spacing:-.015em;text-wrap:balance}
em{font-style:italic}
:focus-visible{outline:3px solid var(--brick);outline-offset:3px}
.wrap{width:min(var(--wrap),92vw);margin-inline:auto}
.eyebrow{font-family:var(--fb);font-weight:800;font-size:.76rem;letter-spacing:.26em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.7em;color:var(--brick)}
.eyebrow::before{content:"";width:34px;height:1.5px;background:currentColor}
.btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--fb);font-weight:800;font-size:1rem;padding:1em 1.7em;border-radius:100px;border:2px solid transparent;cursor:pointer;transition:transform .2s,background .2s,box-shadow .2s;white-space:nowrap}
.btn svg{width:1.15em;height:1.15em}
.btn-primary{background:var(--brick);color:#fff;box-shadow:0 18px 40px -18px rgba(192,80,46,.8)}
.btn-primary:hover{transform:translateY(-3px);background:var(--brick-d)}
.btn-light{background:#fff;color:var(--night)}
.btn-light:hover{transform:translateY(-3px)}
.btn-ghost{border-color:currentColor}
.btn-ghost:hover{transform:translateY(-3px)}

/* Header */
header.site{position:fixed;top:0;left:0;right:0;z-index:60;transition:.35s;border-bottom:1px solid transparent}
header.site.solid{background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(16px);border-color:var(--line)}
.nav{display:flex;align-items:center;gap:1.4rem;padding:1rem 0}
.brand{display:flex;align-items:center;gap:.7rem;font-family:var(--fd);font-weight:600;font-size:1.35rem;color:#fff;transition:color .35s}
header.solid .brand{color:var(--ink)}
.brand img{width:48px;height:48px;border-radius:12px;background:#fff;padding:3px}
.brand small{display:block;font-family:var(--fb);font-weight:800;font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;opacity:.75;margin-top:2px}
.brand-txt{display:inline-block;line-height:1}
.wordmark{font-family:'Baloo 2',var(--fb);font-weight:800;font-size:1.55rem;line-height:.9;display:inline-block;text-shadow:0 1px 2px rgba(0,0,0,.22)}
header.solid .wordmark{text-shadow:none}
.wordmark span:nth-child(1){color:#212274}
.wordmark span:nth-child(2){color:#2DA0DB}
.wordmark span:nth-child(3){color:#2E9D2A}
.wordmark span:nth-child(4){color:#97114C}
.wordmark span:nth-child(5){color:#DC2922}
.wordmark span:nth-child(6){color:#F7AA2B}
.nav-links{display:flex;gap:1.7rem;margin-left:auto;font-weight:700;font-size:.96rem;color:rgba(255,255,255,.9)}
header.solid .nav-links{color:var(--ink-soft)}
.nav-links a:hover{color:var(--brick)}
.nav .btn{padding:.65em 1.2em;font-size:.92rem}
.menu-i{display:none}

/* HERO cine */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#fff;isolation:isolate;overflow:hidden}
.hero-video,.hero-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:
  radial-gradient(120% 80% at 70% 20%,transparent 30%,rgba(10,6,3,.5) 100%),
  linear-gradient(180deg,rgba(12,8,4,.55) 0%,rgba(12,8,4,.1) 30%,rgba(12,8,4,.35) 60%,rgba(10,6,3,.92) 100%)}
.hero-inner{width:min(var(--wrap),92vw);margin:0 auto;padding-bottom:clamp(3.5rem,9vh,7rem);padding-top:8rem}
.hero .eyebrow{color:#ffcdb9}
.hero h1{color:#fff;font-size:clamp(2.9rem,1.3rem+6.2vw,7rem);letter-spacing:-.03em;max-width:15ch;margin:.6rem 0 0;text-shadow:0 4px 40px rgba(0,0,0,.35)}
.hero h1 em{color:#ffbfa6}
.hero p{max-width:52ch;font-size:clamp(1.1rem,.9rem+.6vw,1.4rem);color:#f1e6da;margin-top:1.4rem;text-shadow:0 2px 20px rgba(0,0,0,.5)}
.hero-cta{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center;margin-top:2.2rem}
.hero-cta .tel{font-family:var(--fd);font-weight:600;font-size:1.35rem;color:#fff;display:inline-flex;align-items:center;gap:.5em}
.hero-cta .tel svg{width:1em;height:1em;color:#ffbfa6}
.scroll-cue{position:absolute;left:50%;bottom:1.4rem;transform:translateX(-50%);z-index:2;color:rgba(255,255,255,.8);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.scroll-cue span{width:1px;height:38px;background:linear-gradient(rgba(255,255,255,.7),transparent);animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%,100%{transform:scaleY(.4);opacity:.4}50%{transform:scaleY(1);opacity:1}}
.mute-btn{position:absolute;right:1.2rem;bottom:1.4rem;z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(0,0,0,.25);color:#fff;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(6px)}
.mute-btn svg{width:20px;height:20px}

/* Marquee */
.marquee{background:var(--night);color:var(--cream);padding:1.4rem 0;overflow:hidden;white-space:nowrap;border-block:1px solid var(--line-dk)}
.marquee-track{display:inline-flex;gap:2.5rem;animation:scroll 28s linear infinite;will-change:transform}
.marquee span{font-family:var(--fd);font-style:italic;font-size:1.5rem;color:var(--cream);opacity:.9}
.marquee b{color:var(--brick);font-style:normal;font-family:var(--fb);font-weight:800;font-size:1rem;letter-spacing:.05em;align-self:center}
@keyframes scroll{to{transform:translateX(-50%)}}

/* Sections */
section{padding-block:clamp(4.5rem,10vw,8.5rem)}
.head{max-width:64ch}
.head h2{font-size:clamp(2.1rem,1.2rem+3vw,3.6rem);margin-top:.6rem}
.head p{margin-top:1.1rem;color:var(--ink-soft);font-size:clamp(1.1rem,.95rem+.5vw,1.3rem)}
.center{text-align:center;margin-inline:auto}.center .eyebrow{justify-content:center}

/* Manifiesto */
.manifiesto{background:var(--cream)}
.manifiesto .big{font-family:var(--fd);font-weight:500;font-size:clamp(1.5rem,.95rem+1.9vw,2.5rem);line-height:1.22;letter-spacing:-.02em;max-width:26ch}
.manifiesto .big em{color:var(--brick)}
.manifiesto-grid{display:grid;grid-template-columns:.72fr 1.3fr .92fr;gap:clamp(1.8rem,3.4vw,3rem);align-items:center}
.manif-foto{margin:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.manif-foto img{width:100%;height:auto;object-fit:cover;aspect-ratio:3/4}
.manif-sub{margin-top:1.4rem;color:var(--ink-soft);font-size:1rem;max-width:38ch}
.mini{display:flex;flex-direction:column;gap:1.5rem}
.mini-row{display:flex;gap:1.1rem;align-items:flex-start;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}
.mini-row:last-child{border:0;padding:0}
.mini .ic{flex:none;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--sage-soft);color:var(--sage)}
.mini .ic svg{width:24px;height:24px}
.mini h3{font-family:var(--fb);font-weight:800;font-size:1.1rem}
.mini p{color:var(--ink-soft);font-size:.98rem;margin-top:.2rem}

/* Qué tratamos - tarjetas con imagen */
.trat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1rem;margin-top:3rem}
.tcard{position:relative;border-radius:var(--radius);overflow:hidden;min-height:340px;display:flex;align-items:flex-end;color:#fff;isolation:isolate}
.tcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s}
.tcard::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(20,12,6,.05) 30%,rgba(20,12,6,.85) 100%)}
.tcard:hover img{transform:scale(1.06)}
.tcard .tc-in{padding:1.6rem}
.tcard h3{font-family:var(--fb);font-weight:800;font-size:1.22rem;color:#fff}
.tcard p{font-size:.95rem;color:rgba(255,255,255,.85);margin-top:.35rem}
.tcard.solid{background:linear-gradient(150deg,var(--brick),var(--brick-d));min-height:340px}
.tcard.solid::after{display:none}

/* Tarjetas de servicio: 3 columnas y algo más altas, porque el texto es más largo */
.trat-3{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.trat-3 .tcard{min-height:440px}
.tcard .tc-link{display:inline-block;margin-top:.9rem;font-family:var(--fb);font-weight:800;font-size:.92rem;color:#ffcdb9}
.tcard .tc-link:hover{color:#fff}

/* Immersive método band */
.metodo{position:relative;color:#fff;isolation:isolate;padding-block:clamp(6rem,14vw,11rem)}
.metodo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.metodo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(12,8,4,.9) 0%,rgba(12,8,4,.6) 45%,rgba(12,8,4,.25) 100%)}
.metodo .eyebrow{color:#ffcdb9}
.metodo h2{color:#fff;font-size:clamp(2.1rem,1.2rem+3vw,3.6rem);max-width:16ch}
.metodo .b3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.6rem;max-width:820px}
.metodo .b3 h3{font-family:var(--fb);font-weight:800;font-size:1.05rem;color:#fff;display:flex;gap:.5em;align-items:center}
.metodo .b3 h3 svg{width:1.2em;height:1.2em;color:#ffbfa6}
.metodo .b3 p{color:rgba(255,255,255,.82);font-size:.95rem;margin-top:.4rem}

/* Principios básicos de la equinoterapia */
.principios{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:1.1rem;margin-top:3rem}
.prin{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:2rem 1.8rem;transition:transform .25s,border-color .25s,box-shadow .25s}
.prin:hover{transform:translateY(-4px);border-color:var(--brick);box-shadow:0 28px 52px -34px rgba(40,22,8,.55)}
.prin .ic{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:var(--sage-soft);color:var(--sage);margin-bottom:1.1rem}
.prin .ic svg{width:26px;height:26px}
.prin h3{font-family:var(--fb);font-weight:800;font-size:1.14rem;line-height:1.3}
.prin p{color:var(--ink-soft);font-size:.97rem;margin-top:.6rem}
.prin strong{color:var(--ink);font-weight:800}

/* Pasos */
.pasos .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:3rem;counter-reset:s}
.step{padding:2.2rem 1.7rem;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);position:relative}
.step::before{counter-increment:s;content:"0" counter(s);font-family:var(--fd);font-weight:600;font-size:3rem;color:var(--brick);line-height:1}
.step h3{font-family:var(--fb);font-weight:800;font-size:1.2rem;margin:.6rem 0 .5rem}
.step p{color:var(--ink-soft);font-size:.98rem}

/* Quote band cine */
.quote{position:relative;color:#fff;isolation:isolate;text-align:center;padding-block:clamp(5rem,12vw,9rem)}
.quote video,.quote img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.quote::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(12,8,4,.72)}
.quote blockquote{font-family:var(--fd);font-weight:500;font-size:clamp(1.7rem,1rem+3vw,3.2rem);line-height:1.28;max-width:20ch;margin:0 auto;color:#fff}
.quote blockquote em{color:#ffbfa6}
.quote cite{display:block;margin-top:1.6rem;font-family:var(--fb);font-style:normal;font-weight:800;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:#ffcdb9}

/* Cheque */
.cheque{background:var(--cream)}
.cheque-in{background:linear-gradient(135deg,var(--sage),#46583c);color:#fff;border-radius:var(--radius);display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(1.6rem,4vw,3.5rem);align-items:center;padding:clamp(2.2rem,5vw,4rem);overflow:hidden}
@media (prefers-color-scheme:dark){.cheque-in{background:linear-gradient(135deg,#3a4a31,#28331f)}}
.cheque-in .eyebrow{color:#dcecce}
.cheque-in h2{color:#fff;font-size:clamp(1.7rem,1.1rem+2.2vw,2.7rem)}
.cheque-in p{color:#eef4e6;margin-top:1rem;max-width:50ch}
.cheque-list{list-style:none;display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem}
.cheque-list li{display:flex;gap:.6em;align-items:flex-start;font-weight:700;color:#f2f7ec}
.cheque-list li svg{width:1.2em;height:1.2em;flex:none;margin-top:.2em;color:#cfe6bd}
.cheque-list strong{color:#fff}
.voucher{position:relative;background:linear-gradient(180deg,#fff,#fbf3e7);border-radius:18px;padding:2.3rem 1.9rem 1.9rem;box-shadow:0 34px 64px -30px rgba(0,0,0,.5);color:var(--ink);text-align:center;max-width:330px;width:100%;justify-self:center;overflow:hidden}
.voucher::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--brick),var(--gold))}
.voucher-seal{width:72px;height:72px;border-radius:50%;border:2px dashed var(--brick);color:var(--brick);display:grid;place-items:center;margin:.3rem auto 1rem;transform:rotate(-7deg)}
.voucher-seal svg{width:32px;height:32px}
.voucher .kick{font-family:var(--fb);font-weight:800;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brick)}
.voucher .big{font-family:var(--fd);font-weight:600;font-size:1.85rem;line-height:1.06;margin:.5rem 0 .2rem;color:var(--ink)}
.voucher .rule{border:0;border-top:2px dashed var(--line);margin:1.1rem 0}
.voucher .foot{font-size:.75rem;color:var(--ink-faint);font-weight:800;line-height:1.5;letter-spacing:.04em;text-transform:uppercase}

/* Precios */
.precios-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1rem;margin-top:2.8rem}
.precio{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:2rem;text-align:center}
.precio.hl{background:var(--night);color:var(--cream);border-color:var(--night)}
.precio .tag{font-weight:800;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage)}
.precio.hl .tag{color:var(--gold)}
.precio .num{font-family:var(--fd);font-weight:600;font-size:3rem;margin:.4rem 0;line-height:1}
.precio.hl .num{color:#fff}
.precio .num small{font-size:1rem;font-family:var(--fb);font-weight:700;color:var(--ink-faint)}
.precio p{color:var(--ink-soft);font-size:.95rem}.precio.hl p{color:rgba(255,255,255,.8)}
.precio-note{text-align:center;margin-top:1.6rem;color:var(--ink-faint);font-size:.9rem}

.precio-sep{border:0;border-top:1px dashed var(--line);margin:1.1rem 0 .9rem}
.precio.hl .precio-sep{border-color:rgba(255,255,255,.22)}
.precio .num+p{margin-top:-.2rem}

/* Galería */
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:.9rem;margin-top:3rem}
.gal figure{border-radius:16px;overflow:hidden;position:relative}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.gal figure:hover img{transform:scale(1.06)}
.gal .w2{grid-column:span 2}.gal .h2{grid-row:span 2}

/* FAQ */
.faq{max-width:820px;margin:2.6rem auto 0;display:flex;flex-direction:column;gap:.8rem}
.faq details{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:.3rem 1.4rem}
.faq summary{cursor:pointer;list-style:none;font-family:var(--fb);font-weight:800;font-size:1.06rem;padding:1.05rem 0;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--fd);font-size:1.7rem;color:var(--brick);line-height:1;transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{color:var(--ink-soft);padding-bottom:1.1rem}

/* Contacto cine */
.contacto{position:relative;color:#fff;isolation:isolate}
.contacto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.contacto::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,8,4,.8),rgba(12,8,4,.94))}
.contacto .eyebrow{color:#ffcdb9}
.contacto h2{color:#fff;font-size:clamp(2.2rem,1.2rem+3.4vw,4rem)}
.contacto .c-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center;margin-top:2rem}
.info{display:flex;flex-direction:column;gap:1.2rem;margin-top:1.5rem}
.info-item{display:flex;gap:1rem;align-items:center}
.info-item .ic{flex:none;width:46px;height:46px;border-radius:12px;background:rgba(192,80,46,.25);color:#ffcdb9;display:grid;place-items:center}
.info-item .ic svg{width:22px;height:22px}
.info-item .k{font-weight:800;color:#fff}.info-item a,.info-item span{color:#d9cbb8}
.c-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);padding:clamp(2rem,4vw,3rem);text-align:center;backdrop-filter:blur(10px)}
.c-card h3{font-family:var(--fd);font-weight:600;font-size:1.9rem;color:#fff}
.c-card p{color:#e6d9c8;margin:.7rem 0 1.5rem}
.c-card .tel{display:block;font-family:var(--fd);font-weight:600;font-size:2rem;color:#fff;margin-top:1rem}
.c-card .btn{display:flex;width:100%;justify-content:center}

/* Footer */
footer.site{background:var(--night);color:#d9cbb8;padding-block:clamp(3rem,6vw,4.5rem) 2rem}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2.5rem}
.foot .brand{color:#fff}
.foot-brand p{max-width:34ch;margin-top:1rem;font-size:.95rem;color:#b6a894}
.foot h4{font-family:var(--fb);font-weight:800;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:#8b7c68;margin-bottom:1rem}
.foot ul{list-style:none;display:flex;flex-direction:column;gap:.6rem}
.foot a:hover{color:var(--brick)}
.social{display:flex;gap:.7rem;margin-top:1.3rem}
.social a{width:42px;height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;transition:.2s}
.social a:hover{background:var(--brick);border-color:var(--brick);transform:translateY(-2px)}
.social svg{width:20px;height:20px}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);color:#8b7c68;font-size:.86rem}

.floaters{position:fixed;right:1.1rem;bottom:1.1rem;z-index:70;display:flex;flex-direction:column;gap:.7rem;align-items:flex-end}
.float-btn{display:inline-flex;align-items:center;gap:.5em;font-weight:800;font-size:.98rem;padding:.85em 1.3em;border-radius:100px;box-shadow:0 16px 34px -12px rgba(0,0,0,.55);transition:transform .2s}
.float-btn:hover{transform:translateY(-2px)}
.float-btn svg{width:1.35em;height:1.35em}
.wa{background:#25D366;color:#fff}
.fab-call{background:var(--brick);color:#fff;display:none}

/* Equipo */
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.3rem;margin-top:3rem}
.tmember{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:2rem 1.5rem;text-align:center}
.tmember img{width:110px;height:110px;border-radius:50%;object-fit:cover;margin:0 auto 1.1rem}
.tmember h3{font-family:var(--fb);font-weight:800;font-size:1.06rem}
.tmember .rol{color:var(--brick);font-weight:800;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;margin:.35rem 0 .6rem}
.tmember p{color:var(--ink-soft);font-size:.92rem}

/* Testimonios */
.testimonios{background:var(--cream)}
.testi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1.2rem;margin-top:3rem}
.testi{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem;display:flex;flex-direction:column;gap:.9rem}
.testi .stars{color:var(--gold);letter-spacing:.15em;font-size:.95rem}
.testi p{color:var(--ink-soft);font-size:.96rem;font-style:italic;flex:1}
.testi cite{font-style:normal;font-weight:800;font-size:.88rem;color:var(--ink)}
.gbadge{display:inline-flex;align-items:center;gap:.6em;margin-top:2.2rem;padding:.8em 1.4em;border-radius:100px;background:var(--paper);border:1px solid var(--line);font-weight:800;font-size:.95rem;transition:transform .2s}
.gbadge:hover{transform:translateY(-2px)}
.gbadge .stars{color:var(--gold);letter-spacing:.1em}

/* Caballos */
.horses{text-align:center;margin-top:2.8rem}
.horses p{color:var(--ink-soft);font-size:1.02rem}
.horses-chips{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:1rem}
.horses-chips span{display:inline-flex;align-items:center;gap:.45em;background:var(--cream);border:1px solid var(--line);border-radius:100px;padding:.55em 1.2em;font-weight:800;font-size:.95rem}
.horses-chips svg{width:1.1em;height:1.1em;color:var(--brick)}

/* Carrusel horizontal (testimonios)
   Con 6 tarjetas, una rejilla dejaba una fila huérfana. El carrusel las iguala
   en ancho, deja ver un trozo de la siguiente —que es la mejor pista de que hay
   más— y en móvil se desliza con el dedo sin JavaScript. */
.carrusel{position:relative;margin-top:3rem}
.car-pista{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:.4rem .3rem 1rem;margin-inline:-.3rem;scrollbar-width:none;-ms-overflow-style:none}
.car-pista::-webkit-scrollbar{display:none}
.car-pista:focus-visible{outline:3px solid var(--brick);outline-offset:4px;border-radius:var(--radius)}
.car-pista>*{flex:0 0 clamp(266px,29%,350px);scroll-snap-align:start}
.car-nav{position:absolute;top:calc(50% - .5rem);transform:translateY(-50%);z-index:3;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:0 14px 30px -16px rgba(40,22,8,.55);transition:background .2s,color .2s,border-color .2s,opacity .2s}
.car-nav:hover{background:var(--brick);border-color:var(--brick);color:#fff}
.car-nav svg{width:21px;height:21px}
.car-nav[disabled]{opacity:0;pointer-events:none}
.car-nav.prev{left:-24px}
.car-nav.next{right:-24px}
@media (max-width:1180px){.car-nav{display:none}}

/* Caballos co-terapeutas */
.horses-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.3rem;margin-top:1.6rem;max-width:720px;margin-inline:auto}
.horse{margin:0;text-align:center}
.horse img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:16px;box-shadow:0 18px 34px -22px rgba(40,22,8,.6);transition:transform .25s}
.horse:hover img{transform:translateY(-4px) scale(1.03)}
.horse figcaption{margin-top:.8rem;font-family:var(--fd);font-weight:600;font-size:1.2rem;color:var(--ink)}

/* Formulario contacto */
.cform{display:flex;flex-direction:column;gap:.8rem;margin-top:2rem;max-width:480px}
.cform input,.cform textarea{width:100%;padding:.85em 1.1em;border-radius:12px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;font:inherit;font-size:.98rem}
.cform textarea{min-height:110px;resize:vertical}
.cform ::placeholder{color:rgba(255,255,255,.55)}
.cform input:focus,.cform textarea:focus{outline:2px solid var(--brick);border-color:transparent}
.cform .consent{display:flex;gap:.6em;align-items:flex-start;font-size:.8rem;color:#d9cbb8;line-height:1.5}
.cform .consent input{width:auto;margin-top:.25em}
.cform .consent a{text-decoration:underline}
.cform button{align-self:flex-start}
.cform .hpot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-msg{display:none;margin-top:.4rem;font-weight:800;font-size:.95rem;padding:.8em 1.1em;border-radius:12px}
.form-msg.ok{display:block;background:rgba(94,115,81,.35);color:#dcecce}
.form-msg.err{display:block;background:rgba(192,80,46,.3);color:#ffcdb9}
.form-title{font-family:var(--fb);font-weight:800;font-size:1.05rem;color:#fff;margin-top:2.4rem}

/* Menú móvil */
.menu-btn{display:none;width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.45);background:transparent;color:#fff;place-items:center;cursor:pointer}
header.solid .menu-btn,header.menu-open .menu-btn{color:var(--ink);border-color:var(--line)}
.menu-btn svg{width:22px;height:22px}

/* Reveal */
.js .reveal{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .car-pista{scroll-behavior:auto}
  .js .reveal{opacity:1!important;transform:none!important}
  .marquee-track{animation:none}.scroll-cue span{animation:none}
  .hero-video{display:none}
}

@media (max-width:940px){
  .nav-links{display:none}.menu-i{display:inline-flex}.menu-btn{display:grid}
  header.menu-open{background:var(--paper);border-color:var(--line)}
  header.menu-open .brand{color:var(--ink)}
  header.menu-open .wordmark{text-shadow:none}
  header.menu-open .nav-links{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--paper);border-bottom:1px solid var(--line);padding:.4rem 4vw 1rem;color:var(--ink-soft);box-shadow:0 30px 50px -30px rgba(0,0,0,.35)}
  header.menu-open .nav-links a{padding:.95rem 0;border-bottom:1px solid var(--line);font-size:1.05rem}
  header.menu-open .nav-links a:last-child{border-bottom:0}
  .floaters{opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .3s,transform .3s}
  body.scrolled .floaters{opacity:1;pointer-events:auto;transform:none}
  .hero-cta .tel{display:none}
  .c-card .tel{display:none}
  .contacto .info-item:first-child{display:none}
  .manifiesto-grid,.cheque-in,.contacto .c-grid{grid-template-columns:1fr}
  .manif-foto{order:2;max-height:60vh}
  .metodo .b3,.pasos .steps{grid-template-columns:1fr}
  .gal{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}.gal .w2{grid-column:span 2}.gal .h2{grid-row:auto}
  .foot-grid{grid-template-columns:1fr 1fr}
  .fab-call{display:inline-flex}.nav .btn{display:none}
}
@media (max-width:560px){.foot-grid,.gal{grid-template-columns:1fr}.gal .w2{grid-column:auto}.hero-cta{gap:1.1rem}}

/* ══════════════════════════════════════════════════════════════
   PÁGINAS INTERIORES · sistema de contenido (SEO / GEO)
   Componentes pensados para que el contenido sea legible por
   personas Y extraíble en bloques auto-contenidos por los motores
   generativos (ChatGPT, Claude, Perplexity, AI Overviews).
   ══════════════════════════════════════════════════════════════ */

/* Hero compacto de página interior */
.phero{position:relative;color:#fff;isolation:isolate;padding:calc(8rem + 2vw) 0 clamp(3rem,7vw,5rem);overflow:hidden}
.phero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.phero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,8,4,.82) 0%,rgba(12,8,4,.6) 45%,rgba(12,8,4,.9) 100%)}
.phero .eyebrow{color:#ffcdb9}
.phero h1{color:#fff;font-size:clamp(2.2rem,1.2rem+3.4vw,4.1rem);max-width:19ch;margin:.7rem 0 0}
.phero h1 em{color:#ffbfa6}
.phero .lede{color:#f1e6da;font-size:clamp(1.1rem,.95rem+.55vw,1.35rem);max-width:60ch;margin-top:1.2rem}
.phero .hero-cta{margin-top:2rem}

/* Migas de pan */
.crumbs{font-size:.84rem;font-weight:700;color:rgba(255,255,255,.72);margin-bottom:.4rem}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.45em;padding:0;margin:0}
.crumbs li{display:flex;align-items:center;gap:.45em}
.crumbs li+li::before{content:"\203A";opacity:.55}
.crumbs a{color:rgba(255,255,255,.72)}
.crumbs a:hover{color:#ffbfa6}
.crumbs [aria-current]{color:#fff}

/* Bloque de respuesta directa («En breve»).
   Retirado de todas las páginas en agosto de 2026 por decisión editorial.
   El CSS se conserva a propósito: basta con volver a rellenar "respuesta"
   en el JSON de una página para que reaparezca con su estilo. */
.answer{background:var(--cream);border:1px solid var(--line);border-left:5px solid var(--brick);border-radius:16px;padding:clamp(1.4rem,3vw,2rem) clamp(1.4rem,3vw,2.2rem);margin:0 0 2.4rem}
.answer .k{font-family:var(--fb);font-weight:800;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brick);display:block;margin-bottom:.6rem}
.answer p{font-size:clamp(1.08rem,.95rem+.4vw,1.22rem);color:var(--ink);line-height:1.65}
.answer p+p{margin-top:.8rem}

/* Layout de artículo con índice lateral */
/* El ancho total se limita para que la columna de texto coincida con la
   medida legible (.prose, 72ch). Si se deja en 1fr sobre el wrap de 1240px,
   quedan ~260px muertos entre el artículo y el índice. */
.article{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:clamp(2rem,3.4vw,3rem);align-items:start;max-width:960px}
.article>.prose{min-width:0}

/* Índice de contenidos (sticky) */
.toc{position:sticky;top:6.5rem;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:1.4rem 1.5rem;font-size:.93rem}
.toc h2{font-family:var(--fb);font-weight:800;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.9rem}
.toc ol{list-style:none;display:flex;flex-direction:column;gap:.55rem;padding:0;margin:0}
.toc a{color:var(--ink-soft);font-weight:700;display:block;line-height:1.4;border-left:2px solid var(--line);padding-left:.8em;transition:color .2s,border-color .2s}
.toc a:hover{color:var(--brick);border-color:var(--brick)}

/* Tipografía de contenido largo */
.prose{max-width:72ch}
.prose>*+*{margin-top:1.15em}
.prose h2{font-size:clamp(1.65rem,1.15rem+1.6vw,2.4rem);margin-top:2.6em;scroll-margin-top:6rem}
.prose h2:first-child{margin-top:0}
.prose h3{font-family:var(--fb);font-weight:800;font-size:clamp(1.12rem,1rem+.4vw,1.32rem);margin-top:2em;scroll-margin-top:6rem;letter-spacing:0;line-height:1.35}
.prose p{color:var(--ink-soft)}
.prose strong{color:var(--ink);font-weight:800}
.prose a:not(.btn){color:var(--brick);font-weight:700;text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1.5px;text-decoration-color:color-mix(in srgb,var(--brick) 35%,transparent)}
.prose a:not(.btn):hover{text-decoration-color:currentColor}
.prose ul,.prose ol{padding-left:1.35em;color:var(--ink-soft);display:flex;flex-direction:column;gap:.55em}
.prose li::marker{color:var(--brick);font-weight:800}
.prose li>strong:first-child{color:var(--ink)}
.prose figure{margin-block:2.2em}
.prose figure img{border-radius:var(--radius);width:100%}
.prose figcaption{margin-top:.7em;font-size:.88rem;color:var(--ink-faint);text-align:center}
.prose blockquote{border-left:4px solid var(--brick);padding-left:1.3em;font-family:var(--fd);font-size:1.25rem;font-weight:500;line-height:1.45;color:var(--ink)}
.prose blockquote cite{display:block;font-family:var(--fb);font-style:normal;font-weight:800;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-top:.9em}
.prose hr{border:0;border-top:1px solid var(--line);margin-block:2.6em}

/* Entradilla del artículo: los primeros párrafos, un punto mayores y con el
   color del texto principal. Sustituye a la antigua caja «En breve». */
.prose .entradilla{font-size:clamp(1.06rem,.95rem+.35vw,1.2rem);color:var(--ink);line-height:1.62}
.prose .entradilla+.entradilla{margin-top:.9em}
.prose .entradilla:last-of-type{margin-bottom:.4em}

/* Tabla de datos — formato que los motores generativos citan bien */
.dtable{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:16px;background:var(--cream)}
.dtable table{width:100%;border-collapse:collapse;font-size:.96rem;min-width:min(100%,460px)}
/* El título del cuadro va en la tipografía de titulares (serif) y con el
   mismo filete de acento que los antetítulos del sitio. Antes competía con
   la fila de cabecera —ambos sans en negrita— y se leía como una fila más. */
.dtable caption{text-align:left;padding:1.35rem 1.4rem 1.05rem;font-family:var(--fd);font-weight:600;font-size:clamp(1.14rem,1rem+.45vw,1.34rem);line-height:1.22;letter-spacing:-.012em;color:var(--ink);border-bottom:1px solid var(--line)}
.dtable caption::before{content:"";display:block;width:34px;height:2.5px;background:var(--brick);margin-bottom:.75rem}
.dtable th,.dtable td{padding:.9rem 1.3rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.dtable thead th{font-family:var(--fb);font-weight:800;font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);background:color-mix(in srgb,var(--line) 65%,transparent);border-bottom:2px solid var(--ink-faint);padding-block:1rem}
.dtable tbody th{font-weight:800;color:var(--ink);white-space:nowrap}
.dtable td{color:var(--ink-soft)}
.dtable tr:last-child th,.dtable tr:last-child td{border-bottom:0}

/* Ficha de datos clave — hechos atómicos y verificables */
/* Ficha de datos clave.
   Sin líneas de fila costaba emparejar cada etiqueta con su valor, así que
   cada par lleva su propia línea inferior. La columna de etiquetas tiene ancho
   mínimo 8,5rem y tope 14rem: así todas arrancan en la misma vertical y una
   etiqueta larga envuelve en vez de ahogar la columna de valores. dt/dd se estiran
   a la misma altura (align-items:stretch por defecto en grid) para que las dos
   mitades de la línea encajen sin escalones. */
.keyfacts{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:.2rem 1.7rem;display:grid;grid-template-columns:minmax(8.5rem,14rem) 1fr;column-gap:2rem;font-size:.97rem}
.keyfacts dt,.keyfacts dd{padding-block:.95rem;border-bottom:1px solid var(--line)}
.keyfacts dt{font-weight:800;color:var(--ink-soft);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;line-height:1.5;padding-top:1.1rem}
.keyfacts dd{color:var(--ink);margin:0;line-height:1.6}
.keyfacts dt:last-of-type,.keyfacts dd:last-of-type{border-bottom:0}

/* Aviso / nota destacada */
.callout{background:var(--sage-soft);border-radius:16px;padding:1.3rem 1.6rem;display:flex;gap:1rem;align-items:flex-start;font-size:.97rem;color:var(--ink)}
.callout svg{width:1.4em;height:1.4em;flex:none;color:var(--sage);margin-top:.15em}
.callout.warn{background:color-mix(in srgb,var(--brick) 12%,var(--cream))}
.callout.warn svg{color:var(--brick)}
.callout strong{font-weight:800}

/* Autoría y revisión — señal E-E-A-T para contenido de salud (YMYL) */
.authorbox{display:flex;gap:1.2rem;align-items:center;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:1.3rem 1.5rem;font-size:.93rem}
.authorbox img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}
.authorbox .n{font-weight:800;color:var(--ink)}
.authorbox .r{color:var(--ink-soft);margin-top:.15em;line-height:1.5}
.authorbox .r a{color:var(--brick);font-weight:700}
.byline{display:flex;flex-wrap:wrap;gap:.5em 1.4em;font-size:.84rem;color:var(--ink-faint);font-weight:700;margin-top:1.4rem}
.byline time{color:var(--ink-soft)}

/* Fuentes / referencias */
.sources{font-size:.88rem;color:var(--ink-faint)}
.sources ol{padding-left:1.3em;display:flex;flex-direction:column;gap:.5em}
.sources a{color:var(--ink-soft);text-decoration:underline;word-break:break-word}

/* Páginas relacionadas — enlazado interno temático */
.related{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.1rem;margin-top:2.6rem}
.rcard{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;display:flex;flex-direction:column;gap:.5rem;transition:transform .2s,border-color .2s,box-shadow .2s}
.rcard:hover{transform:translateY(-3px);border-color:var(--brick);box-shadow:0 24px 46px -30px rgba(40,22,8,.55)}
.rcard .k{font-weight:800;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brick)}
.rcard h3{font-family:var(--fb);font-weight:800;font-size:1.1rem;line-height:1.35}
.rcard p{color:var(--ink-soft);font-size:.93rem}

/* Banda CTA de cierre de página */
.ctaband{background:var(--night);color:var(--cream);border-radius:var(--radius);padding:clamp(2.2rem,5vw,3.4rem);text-align:center;margin-top:clamp(3rem,7vw,5rem)}
.ctaband h2{color:#fff;font-size:clamp(1.7rem,1.2rem+2vw,2.8rem)}
.ctaband p{color:#c6b79e;max-width:52ch;margin:1rem auto 0}
.ctaband .row{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center;margin-top:2rem}

/* Dentro de un artículo, .prose figure img es más específico que .horse img
   y lo pisaba: hay que repetir aquí el encuadre 4:3. */
.prose .horse img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:16px;margin:0}
.prose .horse figcaption{font-family:var(--fd);font-weight:600;font-size:1.15rem;color:var(--ink);margin-top:.7em}

/* Extras de la página de equipo */
.tmember .colegiada{font-weight:800;font-size:.82rem;letter-spacing:.04em;color:var(--ink-faint);margin-top:.9rem}
.tmember p+p{margin-top:.7rem}
.prose .team-grid,.prose .horses-grid{margin-top:2rem}
.prose .team-grid .tmember p{font-size:.92rem}
.retrato-fundadora{float:right;width:min(240px,42%);margin:0 0 1.4rem 1.8rem}
.retrato-fundadora img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}
.retrato-fundadora figcaption{margin-top:.7rem;font-size:.84rem;color:var(--ink-faint);text-align:center}
.cita-cierre{font-family:var(--fd);font-weight:500;font-size:clamp(1.25rem,1rem+1vw,1.75rem);line-height:1.3;color:var(--ink);border-top:1px solid var(--line);padding-top:1.4rem;clear:both}
.cita-cierre em{color:var(--brick)}
@media (max-width:640px){
  .retrato-fundadora{float:none;width:100%;max-width:280px;margin:0 auto 1.6rem}
}

/* Fondo alterno de sección */
.sec-cream{background:var(--cream)}

@media (max-width:940px){
  .article{grid-template-columns:1fr}
  .toc{position:static;order:-1}
  /* En una sola columna la etiqueta va encima del valor: la línea la marca
     solo el dd, o saldría un filete entre etiqueta y valor. */
  .keyfacts{grid-template-columns:1fr;padding-inline:1.3rem}
  .keyfacts dt{border-bottom:0;padding:1rem 0 0}
  .keyfacts dd{padding:.2rem 0 1rem}
  .authorbox{flex-direction:column;align-items:flex-start;text-align:left}
}
