/*
Theme Name: Uno Pilates
Theme URI: https://mdt.uy
Author: Montevideo Digital Trends
Description: Tema a medida para Estudio Uno Pilates, Pocitos, Montevideo.
Version: 1.1
Text Domain: unopilates
*/


/* ===========================================================
   Estudio Uno Pilates — Home
   Referencia: drpabloifran.com
   Blanco y negro, sin bordes redondeados, títulos centrados
   y compactos, cuerpo liviano. El rojo del logo es el único
   color, y aparece lo mínimo.
   =========================================================== */
:root{
  --paper:#FFFFFF;
  --ink:#000000;
  --soft:#4A4A4A;
  --hair:#E3E3E3;
  --wash:#F6F6F6;
  --ink-soft:#555555;
  --ink-pale:#D1D1D1;
  --ink-deep:#242424;
  --red:#FD0000;
  --red-deep:#C8000A;
  --display:"Jost","Geomanist","Futura",system-ui,sans-serif;
  --body:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --pad:clamp(20px,5vw,60px);
  --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-weight:300;font-size:18px;line-height:1.8;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}

h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.03em;line-height:1.16;margin:0;text-wrap:balance}
h1{font-size:clamp(34px,5.2vw,54px);letter-spacing:-.04em;line-height:1.1}
h2{font-size:clamp(27px,3.4vw,36px)}
h3{font-size:21px;letter-spacing:-.02em}
p{margin:0 0 18px}

.inner{max-width:var(--max);margin:0 auto;padding-inline:var(--pad)}
section{padding-block:clamp(56px,8vw,96px)}
.center{text-align:center}
.center p{margin-inline:auto}
.lead{font-size:18px;color:var(--soft);max-width:60ch}
.rule{width:46px;height:2px;background:var(--red);margin:22px auto 0}
.rule.left{margin-inline:0}

/* enlaces y botones — radio 0, como la referencia */
.more{display:inline-block;font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:2px}
.more:hover{color:var(--red-deep);border-bottom-color:var(--red)}
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--body);font-weight:500;font-size:13px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border:1px solid var(--ink);background:var(--ink);color:#fff;padding:15px 30px;border-radius:18px;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}
.btn:hover{background:var(--red);border-color:var(--red)}
.btn-red{background:var(--red);border-color:var(--red)}
.btn-red:hover{background:var(--ink);border-color:var(--ink)}
.btn-line{background:transparent;color:var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
.btn-light{background:transparent;color:#fff;border-color:#fff}
.btn-light:hover{background:#fff;color:var(--ink);border-color:#fff}

/* barra de mockup, discreta */
.mockbar{background:var(--paper);border-bottom:1px solid var(--hair);font-family:var(--body);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;justify-content:space-between;padding:9px var(--pad)}
.mockbar b{color:var(--red-deep);font-weight:500}
.mockbar button{font:inherit;letter-spacing:inherit;text-transform:inherit;background:none;border:1px solid var(--hair);color:var(--soft);padding:4px 12px;cursor:pointer;border-radius:0}
.mockbar button:hover{border-color:var(--ink);color:var(--ink)}
.ann{display:none;font-family:var(--body);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);border:1px dashed var(--red);padding:2px 8px;margin:0 0 16px;width:fit-content}
.center .ann{margin-inline:auto}
body.annotated .ann{display:block}
.pend{display:inline-block;font-family:var(--body);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--red-deep);border:1px solid var(--red);padding:1px 7px;vertical-align:2px;line-height:1.6}

/* header */
header.site{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--hair)}
.navrow{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;max-width:var(--max);margin:0 auto;padding:16px var(--pad)}
.logo{height:34px;width:auto}
nav.main{margin-left:auto;display:flex;align-items:center;gap:26px;font-size:14px;letter-spacing:.02em}
nav.main a{text-decoration:none;padding:4px 0;border-bottom:1px solid transparent}
nav.main a:hover{border-bottom-color:var(--red)}
nav.main .drop::after{content:"▾";font-size:10px;margin-left:5px;color:var(--soft)}
.burger{display:none;background:none;border:0;cursor:pointer;padding:6px;margin-left:auto}
.burger span{display:block;width:22px;height:1.5px;background:var(--ink);margin:5px 0}
@media (max-width:1060px){nav.main{display:none}.burger{display:block}}
@media (max-width:430px){.navrow .btn{padding:12px 18px;font-size:11.5px}.logo{height:28px}}

/* hero a sangre, texto centrado en blanco */
.hero{position:relative;min-height:clamp(460px,72vh,640px);display:flex;align-items:center;justify-content:center;text-align:center;padding:clamp(64px,10vw,110px) var(--pad);background:#111}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.34) 0%,rgba(0,0,0,.52) 55%,rgba(0,0,0,.62) 100%)}
.hero .holder{position:relative;max-width:820px}
.hero .claim{font-family:var(--body);font-weight:400;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:#fff;opacity:.92;margin:0 0 20px}
.hero h1{color:#fff}
.hero .sub{color:rgba(255,255,255,.88);font-size:18px;margin:20px auto 0;max-width:52ch}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:34px}
/* franja de datos bajo el hero */
.napbar{background:var(--ink-soft);color:rgba(255,255,255,.85)}
.napbar .inner{display:flex;flex-wrap:wrap;gap:8px 36px;justify-content:center;padding-block:14px;font-size:13px;letter-spacing:.04em}
.napbar b{color:#fff;font-weight:500}

/* diferenciales */
.four{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair)}
.four > div{background:var(--paper);padding:34px 26px}
.four h3{font-size:17px;margin-bottom:8px}
.four p{font-size:15px;color:var(--soft);margin:0}
@media (max-width:860px){.four{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.four{grid-template-columns:1fr}}

/* tarjetas de clases */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:46px;text-align:left}
.card{display:flex;flex-direction:column;border:1px solid var(--hair);background:var(--paper);text-decoration:none;transition:border-color .18s ease}
.card:hover{border-color:var(--ink)}
.card .shot{aspect-ratio:4/5;background:var(--wash);display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;border-bottom:1px solid var(--hair)}
.card .shot span{font-size:10.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.card .body{padding:24px 22px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.card p{font-size:15px;color:var(--soft);margin:0}
.card .more{margin-top:auto;align-self:flex-start}
@media (max-width:980px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:540px){.cards{grid-template-columns:1fr}.card .shot{aspect-ratio:16/10}}

/* bloque partido */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.split img{width:100%;aspect-ratio:1/1;object-fit:cover}
@media (max-width:860px){.split{grid-template-columns:1fr}}

/* galería 2 fotos, como la referencia */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}
.duo .shot{aspect-ratio:3/2;background:var(--wash);border:1px solid var(--hair);display:flex;align-items:center;justify-content:center}
.duo .shot span{font-size:10.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
@media (max-width:640px){.duo{grid-template-columns:1fr}}

/* horarios */
.sched-wrap{overflow-x:auto;border:1px solid var(--hair);margin-top:40px}
table.sched{border-collapse:collapse;width:100%;min-width:700px;font-size:14px}
table.sched th,table.sched td{border-bottom:1px solid var(--hair);border-right:1px solid var(--hair);padding:13px 14px;text-align:left}
table.sched th{font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);background:var(--wash)}
table.sched td:first-child,table.sched th:first-child{font-variant-numeric:tabular-nums;color:var(--soft);width:88px}
table.sched tr:last-child td{border-bottom:0}
table.sched td:last-child,table.sched th:last-child{border-right:0}
.chip{display:inline-block;font-size:12px;letter-spacing:.03em;padding:3px 10px;border:1px solid var(--hair)}
.chip.on{border-color:var(--red);color:var(--red-deep)}
.legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:18px;font-size:13.5px;color:var(--soft);align-items:center;justify-content:center}

/* planes */
.plans{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:46px;text-align:left}
.plan{display:flex;flex-direction:column;gap:14px;border:1px solid var(--hair);padding:30px 26px;background:var(--paper)}
.plan.best{border-color:var(--ink)}
.plan .best-tag{font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--red);padding:3px 10px;width:fit-content}
/* reserva el alto de la etiqueta en las demás tarjetas para que todo alinee */
.plan:not(.best)::before{content:"";display:block;height:23px}
/* dos líneas de título en todas, así los precios quedan a la misma altura */
.plan h3{min-height:2.32em}
.plan .price{font-family:var(--display);font-weight:600;font-size:38px;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}
.plan .price small{font-family:var(--body);font-weight:300;font-size:14px;color:var(--soft);letter-spacing:0}
.plan ul{list-style:none;margin:4px 0 0;padding:0;font-size:15px;color:var(--soft);display:flex;flex-direction:column;gap:8px}
.plan ul li{padding-left:16px;position:relative}
.plan ul li::before{content:"";position:absolute;left:0;top:12px;width:6px;height:1px;background:var(--red)}
.plan .btn{margin-top:auto;white-space:nowrap;padding:14px 16px;font-size:12px;letter-spacing:.06em}
@media (max-width:1000px){.plans{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.plans{grid-template-columns:1fr}}

/* pasos */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:46px;text-align:left}
.steps > div{background:var(--paper);padding:32px 28px}
.steps .n{font-family:var(--display);font-weight:600;font-size:13px;letter-spacing:.1em;color:var(--red);display:block;margin-bottom:12px}
.steps h3{margin-bottom:8px}
.steps p{font-size:15px;color:var(--soft);margin:0}
@media (max-width:760px){.steps{grid-template-columns:1fr}}

/* equipo */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:46px;text-align:left}
.team .shot{aspect-ratio:1/1;background:var(--wash);border:1px solid var(--hair);display:flex;align-items:center;justify-content:center}
.team .shot span{font-size:10.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.team h3{margin-top:18px;font-size:19px}
.team p{font-size:14.5px;color:var(--soft);margin:4px 0 0}
@media (max-width:760px){.team{grid-template-columns:1fr}}

/* testimonios */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:46px;text-align:left}
.quote{border-top:2px solid var(--ink);padding-top:20px}
.quote p{font-family:var(--display);font-weight:400;font-size:19px;letter-spacing:-.02em;line-height:1.45;color:var(--ink)}
.quote .who{font-size:11.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
@media (max-width:820px){.quotes{grid-template-columns:1fr}}

/* faq con filas enmarcadas, como la referencia */
.faq{max-width:820px;margin:40px auto 0;text-align:left;border:1px solid var(--hair);border-bottom:0}
details{border-bottom:1px solid var(--hair)}
summary{cursor:pointer;list-style:none;display:flex;align-items:flex-start;gap:14px;padding:18px 22px;font-family:var(--display);font-weight:600;font-size:17px;letter-spacing:-.02em}
summary::-webkit-details-marker{display:none}
summary::before{content:"↓";font-family:var(--body);font-weight:400;color:var(--red);flex:none;line-height:1.5}
details[open] summary::before{content:"↑"}
details .a{padding:0 22px 20px 50px;font-size:16px;color:var(--soft)}

/* ubicación */
.loc{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(24px,4vw,56px);align-items:center;text-align:left}
.map{aspect-ratio:16/10;background:var(--wash);border:1px solid var(--hair);display:flex;align-items:center;justify-content:center}
.map span{font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.dl{display:grid;grid-template-columns:auto 1fr;gap:10px 20px;margin:24px 0 28px;font-size:16px}
.dl dt{font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);padding-top:6px}
.dl dd{margin:0}
@media (max-width:860px){.loc{grid-template-columns:1fr}}

/* cierre + footer */
.closing{background:var(--ink-pale);color:var(--ink);text-align:center}
.closing h2{color:var(--ink)}
.closing p{color:var(--soft);max-width:54ch;margin-inline:auto}
footer{background:var(--ink-soft);color:rgba(255,255,255,.82);font-size:15px}
footer .inner{padding-block:clamp(44px,6vw,64px) 26px}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:34px}
footer h4{font-family:var(--body);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.72);margin:0 0 14px}
footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
footer a{text-decoration:none}
footer a:hover{color:var(--red)}
.flogo{height:30px;width:auto;margin-bottom:16px}
.fbottom{margin-top:38px;padding-top:22px;border-top:1px solid rgba(255,255,255,.2);display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;font-size:12px;letter-spacing:.04em;color:rgba(255,255,255,.7)}
@media (max-width:860px){.fgrid{grid-template-columns:1fr 1fr}}

.duo img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.sched .dia{font-family:var(--display);font-weight:600;font-size:17px;letter-spacing:-.02em;white-space:nowrap}
.sched .horas{display:flex;flex-wrap:wrap;gap:7px}
table.sched td:first-child,table.sched th:first-child{width:auto;color:var(--ink)}
.trial{border:1px solid var(--ink);padding:36px 32px;max-width:560px;margin:40px auto 0;text-align:center}
.trial h3{font-size:24px;margin-bottom:10px}
.trial p{color:var(--soft);font-size:16px;margin-bottom:22px}
.equipo-nota{max-width:60ch;margin:48px auto 0;padding-top:32px;border-top:1px solid var(--hair);text-align:center}
.gcal{display:inline-flex;align-items:baseline;gap:8px;font-size:15px;color:var(--soft);margin-top:12px}
.gcal b{font-family:var(--display);font-size:26px;font-weight:600;color:var(--ink)}
/* whatsapp flotante */
.wa{position:fixed;right:22px;bottom:22px;z-index:55;width:52px;height:52px;border-radius:50%;background:var(--red);display:flex;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 5px 18px rgba(0,0,0,.2)}
.wa svg{width:26px;height:26px;fill:#fff}

/* ---------- mapa embebido ---------- */
.map{padding:0;overflow:hidden;align-items:stretch;justify-content:stretch}
.map iframe{width:100%;height:100%;border:0;display:block}

/* ---------- formulario de consulta ---------- */
.formwrap{max-width:720px;margin:44px auto 0;text-align:left}
.f-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
@media (max-width:600px){.f-grid{grid-template-columns:1fr}}
.f-field{margin:0 0 20px;display:flex;flex-direction:column;gap:7px}
.f-field label{font-size:11px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--soft)}
.f-input{font-family:var(--body);font-weight:300;font-size:16px;line-height:1.5;color:var(--ink);background:var(--paper);border:1px solid var(--hair);border-radius:0;padding:13px 14px;width:100%;transition:border-color .18s ease}
.f-input:focus{outline:none;border-color:var(--ink)}
.f-input::placeholder{color:#9A9A9A}
select.f-input{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 19px) calc(50% + 2px),calc(100% - 14px) calc(50% + 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:40px}
textarea.f-input{resize:vertical;min-height:130px}
.f-submit{margin:8px 0 0}
.f-submit .btn{width:auto;cursor:pointer}
.f-nota{font-size:13.5px;color:var(--soft);margin-top:20px;text-align:center}
.wpcf7 form .wpcf7-response-output{margin:24px 0 0;padding:14px 16px;border:1px solid var(--hair);border-left:3px solid var(--red);font-size:15px;color:var(--ink)}
.wpcf7-not-valid-tip{color:var(--red-deep);font-size:12.5px;font-weight:500;margin-top:2px}
.f-input.wpcf7-not-valid{border-color:var(--red)}
.wpcf7-spinner{display:none}

/* ---------- carrusel del estudio ---------- */
.carrusel{position:relative;margin-top:40px}
.car-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}
.car-track::-webkit-scrollbar{display:none}
.car-item{flex:0 0 calc((100% - 40px) / 3);margin:0;scroll-snap-align:start}
.car-item img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 50%;display:block}
@media (max-width:900px){.car-item{flex-basis:calc((100% - 20px) / 2)}}
@media (max-width:600px){.car-track{gap:14px}.car-item{flex-basis:100%}}
.car-nav{position:absolute;top:calc(50% - 20px);transform:translateY(-50%);z-index:2;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--hair);border-radius:50%;background:var(--paper);color:var(--ink);font-size:24px;line-height:1;padding:0 0 3px;cursor:pointer;transition:border-color .18s ease,color .18s ease}
.car-nav:hover{border-color:var(--red);color:var(--red-deep)}
.car-prev{left:-22px}
.car-next{right:-22px}
@media (max-width:1240px){.car-prev{left:8px}.car-next{right:8px}}
.car-dots{display:flex;gap:9px;justify-content:center;margin-top:24px}
.car-dot{width:8px;height:8px;padding:0;border:1px solid var(--ink);border-radius:50%;background:transparent;cursor:pointer;transition:background .18s ease,border-color .18s ease}
.car-dot[aria-selected="true"]{background:var(--red);border-color:var(--red)}

/* ---------- esquinas redondeadas en las imagenes ---------- */
:root{--rad:14px}
.split img,
.car-item img,
.map{border-radius:var(--rad)}
.map{overflow:hidden}

/* ---------- clase de prueba ---------- */
.trial{border-radius:var(--rad)}
.trial .trial-precio{font-family:var(--display);font-weight:600;font-size:44px;letter-spacing:-.04em;line-height:1;color:var(--ink);margin:4px 0 10px;font-variant-numeric:tabular-nums}
.trial .trial-nota{font-size:15px;color:var(--soft);max-width:44ch;margin-inline:auto}
.trial p:last-of-type{margin-bottom:24px}
.trial-cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* ---------- dos tarjetas ---------- */
.cards.dos{grid-template-columns:repeat(2,1fr);max-width:880px;margin-inline:auto}
@media (max-width:700px){.cards.dos{grid-template-columns:1fr}}
.card ul{list-style:none;margin:10px 0 0;padding:0;font-size:15px;color:var(--soft);display:flex;flex-direction:column;gap:9px}
.card ul li{padding-left:17px;position:relative}
.card ul li::before{content:"";position:absolute;left:0;top:11px;width:7px;height:1px;background:var(--red)}
.card .body em{color:var(--ink);font-style:italic}
.nota-modalidades{max-width:68ch;margin:30px auto 0;font-size:16px;color:var(--soft)}

/* ---------- planes ---------- */
.plan-sub{font-size:15px;color:var(--soft);margin:0 0 4px}
.precios{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:0}
.precios li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--hair);font-size:16px}
.precios li:last-child{border-bottom:0}
.precios li span{color:var(--soft)}
.precios li b{font-family:var(--display);font-weight:600;font-size:26px;letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap}
.plan-badge{display:inline-block;margin:16px 0 0;padding:4px 12px;border-radius:100px;background:var(--red);color:#fff;font-size:11px;font-weight:500;letter-spacing:.09em;text-transform:uppercase}
.matricula{margin:30px 0 0;font-size:15px;color:var(--soft)}
.matricula::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--red);margin-right:9px;vertical-align:2px}

/* la vineta roja es solo para las listas de texto, no para los precios */
.card ul.precios li{padding-left:0}
.card ul.precios li::before{content:none;display:none}
.plan-badge{align-self:flex-start}

/* boton dentro de las tarjetas de plan */
.plan-btn{align-self:flex-start;margin-top:18px}

/* frase de cierre del bloque del estudio */
.frase-final{font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:-.03em;line-height:1.3;color:var(--ink);margin:26px 0 0;padding-top:22px;border-top:2px solid var(--red);display:inline-block}

nav.main{gap:22px}

/* ---------- menu movil ---------- */
.burger span{transition:transform .22s ease,opacity .18s ease}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
@media (max-width:1060px){
  nav.main.abierto{
    display:flex;flex-direction:column;align-items:stretch;gap:0;
    position:absolute;left:0;right:0;top:100%;
    margin:0;padding:4px var(--pad) 16px;
    background:var(--paper);border-bottom:1px solid var(--hair);
    box-shadow:0 12px 26px rgba(0,0,0,.07);
  }
  nav.main.abierto a{
    padding:15px 2px;font-size:16px;border-bottom:1px solid var(--hair);border-top:0;
  }
  nav.main.abierto a:last-child{border-bottom:0}
  nav.main.abierto a:hover{color:var(--red-deep);border-bottom-color:var(--hair)}
  nav.main.abierto .drop::after{float:right}
}

/* ---------- hero: bajada de marca y pilares ---------- */
.hero .claim-hero{font-family:var(--display);font-weight:400;font-size:clamp(19px,2.4vw,27px);letter-spacing:-.02em;line-height:1.25;color:#fff;margin:16px 0 0}
.hero .sub{margin-top:16px}
.hero .pilares{font-family:var(--body);font-weight:400;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.82);margin:18px auto 0}

/* ---------- 5 diferenciales: 3 arriba, 2 abajo ---------- */
.four{grid-template-columns:repeat(6,1fr)}
.four > div{grid-column:span 2}
.four > div:nth-child(4),.four > div:nth-child(5){grid-column:span 3}
@media (max-width:860px){
  .four{grid-template-columns:repeat(2,1fr)}
  .four > div,.four > div:nth-child(4),.four > div:nth-child(5){grid-column:auto}
}
@media (max-width:480px){.four{grid-template-columns:1fr}}

/* ---------- recuadro de reserva online ---------- */
.reserva{border:1px solid var(--ink);border-radius:var(--rad);padding:40px 34px;max-width:620px;margin:0 auto;text-align:center}
.reserva h2{margin-bottom:6px}
.reserva .reserva-lead{font-family:var(--display);font-weight:400;font-size:20px;letter-spacing:-.02em;color:var(--ink);margin:0 0 14px}
.reserva p{color:var(--soft);font-size:16px;margin-inline:auto;max-width:46ch}
.reserva .btn{margin-top:12px}

/* ---------- en mobile el CTA vive adentro del menu ---------- */
.btn-menu{display:none}
@media (max-width:1060px){
  .navrow > .btn-red{display:none}
  .burger{margin-left:auto}
  nav.main.abierto .btn-menu{display:inline-flex;justify-content:center;align-self:stretch;margin-top:18px;padding:16px 24px;border-bottom:0;font-size:13px}
  nav.main.abierto .btn-menu:hover{border-bottom:0}
}

/* ---------- hero: la frase chica es el H1, el titulo grande es la modalidad ---------- */
.hero h1.claim{font-family:var(--body);font-weight:400;font-size:13px;letter-spacing:.22em;text-transform:uppercase;line-height:1.7;color:#fff;opacity:.92;margin:0 0 12px;text-wrap:wrap}
.hero .hero-titulo{font-family:var(--display);font-weight:600;font-size:clamp(34px,5.2vw,54px);letter-spacing:-.04em;line-height:1.1;color:#fff;margin:0;text-wrap:balance}

/* ---------- banner de corte ---------- */
.banner{padding:0;line-height:0}
.banner img{width:100%;height:clamp(230px,32vw,430px);object-fit:cover;object-position:50% 46%;display:block}

/* ---------- foto arriba de las tarjetas de modalidad ---------- */
.card-foto{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:50% 42%;display:block;border-bottom:1px solid var(--hair)}

/* ---------- promo (ventana emergente) ---------- */
.promo{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.55)}
.promo[hidden]{display:none}
.promo-caja{position:relative;background:var(--paper);border-radius:var(--rad);max-width:460px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 20px 50px rgba(0,0,0,.25);text-align:center}
.promo-cerrar{position:absolute;top:10px;right:10px;z-index:2;width:36px;height:36px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--ink);font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.promo-cerrar:hover{background:var(--red);color:#fff}
.promo-img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block;border-radius:var(--rad) var(--rad) 0 0}
.promo-cuerpo{padding:34px 30px 32px}
.promo-cuerpo h2{font-size:30px;margin-bottom:12px}
.promo-cuerpo p{color:var(--soft);font-size:16px;margin:0 auto 22px;max-width:36ch}
@media (prefers-reduced-motion:no-preference){
  .promo-caja{animation:promo-entra .28s ease}
  @keyframes promo-entra{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
}
@media (max-width:480px){.promo-cuerpo{padding:28px 22px 26px}.promo-cuerpo h2{font-size:25px}}

/* el logo lleva al inicio */
.logo-link{display:inline-flex;align-items:center;line-height:0}
.navrow .logo-link{margin-right:auto}

/* ==================================================================
 * PAGINAS INTERNAS (encabezado)
 * ================================================================== */
.pagehead{padding-block:clamp(46px,6vw,74px) clamp(30px,4vw,44px);border-bottom:1px solid var(--hair);text-align:center}
.pagehead .ante{font-family:var(--body);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--red-deep);margin:0 0 14px}
.pagehead h1{margin:0}
.pagehead .lead{margin:18px auto 0;text-align:center}

/* ==================================================================
 * GALERIA
 * ================================================================== */
.gal-sec{padding-block:clamp(40px,6vw,66px)}
.galeria{columns:3;column-gap:16px}
.gal-item{display:block;width:100%;margin:0 0 16px;padding:0;border:0;background:none;cursor:zoom-in;break-inside:avoid;border-radius:var(--rad,14px);overflow:hidden;line-height:0}
.gal-item img{width:100%;height:auto;transition:transform .45s ease,opacity .25s ease}
.gal-item:hover img{transform:scale(1.035);opacity:.92}
@media (max-width:860px){.galeria{columns:2}}
@media (max-width:520px){.galeria{columns:1;column-gap:0}}

/* visor */
body.visor-abierto{overflow:hidden}
.visor{position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.93);display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,54px)}
.visor[hidden]{display:none}
.visor-caja{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:14px}
.visor-caja img{max-width:100%;max-height:78vh;width:auto;height:auto;object-fit:contain;border-radius:var(--rad,14px)}
.visor-caja figcaption{color:rgba(255,255,255,.72);font-size:14px;line-height:1.5;text-align:center;max-width:62ch}
.visor-nav,.visor-cerrar{position:absolute;z-index:2;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(0,0,0,.35);color:#fff;cursor:pointer;padding:0;transition:border-color .18s ease,background .18s ease}
.visor-nav:hover,.visor-cerrar:hover{border-color:#fff;background:rgba(0,0,0,.6)}
.visor-nav{top:50%;transform:translateY(-50%);width:50px;height:50px;font-size:28px;line-height:1;padding-bottom:4px}
.visor-prev{left:clamp(10px,2.5vw,28px)}
.visor-next{right:clamp(10px,2.5vw,28px)}
.visor-cerrar{top:clamp(12px,2.5vw,26px);right:clamp(12px,2.5vw,26px);width:44px;height:44px;font-size:26px;line-height:1;padding-bottom:3px}
@media (max-width:560px){.visor-nav{width:42px;height:42px;font-size:24px}.visor-caja img{max-height:70vh}}
