@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;src:url('/fonts/jost-latin-300-normal.woff2') format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/jost-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/jost-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Karla';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/karla-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Karla';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/karla-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Karla';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/karla-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2');}

/* Livia by Sandra · hoja de estilo del sitio */

:root{
  --crema:      #FAF6F1;
  --crema-2:    #F0E6DB;
  --papel:      #FEFBF8;
  --verde:      #5E4433;
  --verde-claro:#7A5C44;
  --dorado:     #7E5B40;
  --marron:     #836046;
  --tinta:      #33251E;
  --tinta-suave:#3F3027;
  --gris:       #6F6056;
  --linea:      #DCD2C8;
  --sombra:     0 1px 2px rgba(51,37,30,.05), 0 18px 45px -30px rgba(51,37,30,.45);
  --ancho:      1120px;
  --radio:      14px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--crema);
  color:var(--tinta);
  font-family:"Karla", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size:18px; line-height:1.7;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:var(--verde); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover{ color:var(--dorado); }

.contenedor{ max-width:var(--ancho); margin-inline:auto; padding-inline:22px; }
.seccion{ padding-block:clamp(52px, 8vw, 96px); }
.seccion.claro{ background:var(--papel); }
.seccion.verde{ background:var(--verde); color:#F3EFE6; }
.seccion.verde h2, .seccion.verde h3{ color:#F3EFE6; }
.seccion.verde .eyebrow{ color:#D9C3A8; }

/* ---------- tipografía ---------- */
h1, h2, h3{ font-family:"Jost", ui-sans-serif, sans-serif; font-weight:300; color:var(--verde); }
h1{ font-size:clamp(32px, 5.2vw, 52px); line-height:1.08; letter-spacing:-.015em; margin:0 0 18px; text-wrap:balance; }
h2{ font-size:clamp(25px, 3.4vw, 36px); line-height:1.15; margin:0 0 16px; text-wrap:balance; }
h3{ font-size:20px; line-height:1.25; margin:0 0 8px; font-weight:400; }
h1 em, h2 em{ font-style:normal; color:var(--dorado); }
p{ margin:0 0 16px; max-width:66ch; }
p:last-child{ margin-bottom:0; }
.lead{ font-size:clamp(18.5px, 2.15vw, 21px); color:#3F3027; }
.eyebrow{
  font-family:"Jost", sans-serif; font-size:12px; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--dorado);
  margin:0 0 12px;
}
.small{ font-size:13.5px; color:var(--gris); }

/* ---------- cabecera ---------- */
.cabecera{
  position:sticky; top:0; z-index:40;
  background:rgba(250,246,241,.94);
  backdrop-filter:saturate(1.2) blur(8px);
  border-bottom:1px solid var(--linea);
}
.cabecera .fila{
  display:flex; align-items:center; justify-content:space-between;
  gap:20px; padding-block:14px;
}
.cabecera .logo{ flex-shrink:0; display:block; line-height:0; }
.cabecera .logo img{ height:62.8px; width:auto; max-width:none; object-fit:contain; flex-shrink:0; }
.nav{ display:flex; align-items:center; gap:18px; }
.nav .btn.principal{ white-space:nowrap; letter-spacing:.03em; padding:12px 18px; }
.nav a{
  font-family:"Jost", sans-serif; font-size:13.5px; letter-spacing:.06em;
  color:var(--tinta-suave); text-decoration:none;
}
.nav a:hover, .nav a[aria-current="page"]{ color:var(--dorado); }
.btn{
  display:inline-block; border-radius:999px; padding:12px 22px;
  font-family:"Jost", sans-serif; font-size:14px; letter-spacing:.05em;
  text-decoration:none; transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.btn.principal{ background:var(--verde); color:#F3EFE6; border:1px solid var(--verde); }
.btn.principal:hover{ background:#4A3527; color:#F3EFE6; }
.btn.secundario{ background:transparent; color:var(--verde); border:1px solid var(--linea); }
.btn.secundario:hover{ border-color:var(--dorado); color:var(--dorado); }
.btn.claro{ background:#F3EFE6; color:var(--verde); border:1px solid #F3EFE6; }
.btn.claro:hover{ background:#fff; color:var(--verde); }
.btn.cta{
  background:#F7F4EC; color:#33251E; border:2px solid #F7F4EC; font-weight:500;
  box-shadow:0 10px 28px -12px rgba(0,0,0,.55);
}
.btn.cta:hover{ background:#fff; color:#33251E; }
.btn.contorno{ background:transparent; color:#F7F4EC; border:1.5px solid rgba(247,244,236,.92); }
.btn.contorno:hover{ background:rgba(247,244,236,.14); color:#fff; }
.menu-boton{
  display:none; background:none; border:1px solid var(--linea); border-radius:var(--radio);
  padding:8px 12px; font-family:"Jost",sans-serif; font-size:13px; color:var(--tinta-suave); cursor:pointer;
}
@media (max-width:1000px){
  .menu-boton{ display:block; }
  .nav{
    display:none; position:absolute; left:0; right:0; top:100%;
    flex-direction:column; align-items:flex-start; gap:0;
    background:var(--papel); border-bottom:1px solid var(--linea); padding:8px 22px 18px;
  }
  .nav.abierto{ display:flex; }
  .nav a{ padding:12px 0; width:100%; border-bottom:1px solid var(--linea); font-size:15px; }
  .nav .btn{ margin-top:14px; border-bottom:0; }
}

/* ---------- portada ---------- */
.hero{ background:var(--papel); border-bottom:1px solid var(--linea); }
.hero .grid{
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,5vw,64px); align-items:center;
  padding-block:clamp(44px, 7vw, 84px);
}
.hero-foto{ border-radius:var(--radio); overflow:hidden; box-shadow:var(--sombra); }
.hero-foto img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
@media (max-width:860px){ .hero .grid{ grid-template-columns:1fr; } }

.acciones{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }

/* ---------- rejillas ---------- */
.cols-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(22px,4vw,52px); align-items:center; }
.cols-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:860px){ .cols-2, .cols-3{ grid-template-columns:1fr; } }

.tarjeta{
  background:var(--papel); border:1px solid var(--linea); border-radius:var(--radio);
  padding:26px 26px 28px; box-shadow:var(--sombra);
}
.tarjeta .precio{
  font-family:"Jost",sans-serif; font-size:30px; font-weight:300; color:var(--verde);
  display:block; margin:12px 0 4px;
}
.tarjeta .precio span{ font-size:14px; color:var(--gris); }
.seccion.verde .tarjeta{ background:rgba(255,255,255,.06); border-color:rgba(243,239,230,.22); box-shadow:none; }
.seccion.verde .tarjeta .precio{ color:#F3EFE6; }

ul.ticks{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
ul.ticks li{ display:grid; grid-template-columns:18px 1fr; gap:10px; align-items:start; color:var(--tinta); }
ul.ticks li::before{ content:"✓"; color:var(--dorado); font-family:"Jost",sans-serif; line-height:1.5; }
.seccion.verde ul.ticks li{ color:#EFE6DD; }
.seccion.verde ul.ticks li::before{ color:#D9C3A8; }

ol.pasos{ list-style:none; margin:0; padding:0; display:grid; gap:2px; }
ol.pasos li{
  display:grid; grid-template-columns:36px 1fr; gap:14px;
  background:var(--papel); border:1px solid var(--linea); padding:20px 24px;
}
ol.pasos li:first-child{ border-radius:var(--radio) var(--radio) 0 0; }
ol.pasos li:last-child{ border-radius:0 0 var(--radio) var(--radio); }
ol.pasos li + li{ border-top:0; }
ol.pasos .n{ font-family:"Jost",sans-serif; font-size:21px; color:var(--verde-claro); line-height:1.15; }

.chips{ display:flex; flex-wrap:wrap; gap:9px; list-style:none; margin:0; padding:0; }
.chips li{
  background:var(--crema-2); border:1px solid var(--linea); border-radius:999px;
  padding:8px 16px; font-size:14px; color:var(--tinta-suave);
}

.aviso{
  background:#F7F1E4; border:1px solid #D8C69E; border-radius:var(--radio);
  padding:22px 24px; font-size:14px; color:var(--tinta-suave);
}
.aviso strong{ color:var(--tinta); }

.figura{ border-radius:var(--radio); overflow:hidden; box-shadow:var(--sombra); }
.figura img{ width:100%; aspect-ratio:3/2; object-fit:cover; }
.figura.alta img{ aspect-ratio:3/4; }

/* ---------- tabla de precios (página de programas) ---------- */
.tabla-envoltorio{ overflow-x:auto; background:var(--papel); border:1px solid var(--linea); border-radius:var(--radio); box-shadow:var(--sombra); }
table.tarifas{ border-collapse:collapse; width:100%; min-width:880px; font-variant-numeric:tabular-nums; }
table.tarifas th, table.tarifas td{ text-align:center; vertical-align:middle; padding:12px; }
table.tarifas th[scope="row"]{ text-align:left; font-weight:400; font-size:14px; color:var(--tinta-suave); padding-left:22px; }
table.tarifas thead th{ vertical-align:bottom; padding:24px 12px 16px; border-bottom:1px solid var(--linea); }
table.tarifas tr.grupo th{
  text-align:left; font-family:"Jost",sans-serif; font-size:12px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--dorado); background:var(--crema-2);
  padding:12px 22px; border-top:1px solid var(--linea); border-bottom:1px solid var(--linea);
}
table.tarifas tbody tr:not(.grupo) + tr:not(.grupo) th, table.tarifas tbody tr:not(.grupo) + tr:not(.grupo) td{ border-top:1px solid var(--linea); }
.pfam{ display:block; font-family:"Jost",sans-serif; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--gris); }
.plevel{ display:block; margin-top:4px; font-family:"Jost",sans-serif; font-size:23px; letter-spacing:.06em; color:var(--dorado); }
.ptag{ display:block; margin-top:8px; font-size:12.5px; color:var(--gris); }
.num{ font-family:"Jost",sans-serif; font-size:19px; color:var(--tinta); white-space:nowrap; }
.qual{ display:block; margin-top:3px; font-size:12px; color:var(--gris); line-height:1.3; }
.ok{ color:var(--dorado); font-family:"Jost",sans-serif; font-size:16px; }
.none{ color:#A89A8E; }
.txt{ display:block; font-size:13px; color:var(--tinta-suave); }
td.hi, thead th.hi{ background:#F3EADF; }
.ib{ height:15px; width:15px; vertical-align:-3px; margin-left:4px; color:var(--dorado); }

.pestanas{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.pestana{
  cursor:pointer; background:transparent; border:1px solid var(--linea); border-radius:var(--radio);
  padding:11px 18px; font-family:"Jost",sans-serif; font-size:12.5px; letter-spacing:.11em;
  text-transform:uppercase; color:var(--gris);
}
.pestana[aria-selected="true"]{ background:var(--papel); color:var(--dorado); border-color:var(--dorado); box-shadow:var(--sombra); }
.pestana:focus-visible{ outline:2px solid var(--dorado); outline-offset:2px; }

/* ---------- pie ---------- */
.pie{ background:var(--verde); color:#EFE6DD; padding-block:52px 30px; }
.pie a{ color:#F3EFE6; }
.pie a:hover{ color:#CBB183; }
.pie .grid{ display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:34px; }
@media (max-width:760px){ .pie .grid{ grid-template-columns:1fr; } }
.pie img.logo{ width:150px; height:auto; margin-bottom:16px; }
.pie h3{ font-family:"Jost",sans-serif; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:#D9C3A8; margin:0 0 10px; }
.pie ul{ list-style:none; margin:0; padding:0; display:grid; gap:8px; font-size:14.5px; }
.pie .legal{
  margin-top:34px; padding-top:20px; border-top:1px solid rgba(243,239,230,.2);
  font-size:12.5px; line-height:1.5; color:#D9C3A8;
}
.pie .legal p{ max-width:none; }

/* ---------- barra flotante de WhatsApp ---------- */
.wa{
  position:fixed; z-index:50;
  right:calc(max(22px, (100vw - var(--ancho)) / 2 + 22px) + env(safe-area-inset-right, 0px));
  bottom:calc(20px + env(safe-area-inset-bottom, 0px));
  display:inline-flex; align-items:center; gap:9px;
  background:var(--verde); color:#F3EFE6; text-decoration:none;
  padding:13px 20px; border-radius:999px; box-shadow:0 10px 30px -12px rgba(51,37,30,.6);
  font-family:"Jost",sans-serif; font-size:14px; letter-spacing:.04em;
}
.wa:hover{ background:#4A3527; color:#fff; }
.wa svg{ width:18px; height:18px; fill:currentColor; }
@media (max-width:520px){ .wa span{ display:none; } .wa{ padding:15px; } }

/* ---------- textos legales ---------- */
.texto-legal h2{ font-size:22px; margin-top:38px; }
.texto-legal p, .texto-legal li{ font-size:15px; color:var(--tinta-suave); }
.texto-legal ul{ padding-left:20px; }
mark{ background:#FBEFC6; color:#6B5A28; padding:1px 5px; border-radius:3px; }

@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } *{ transition:none !important; } }

/* ===================================================================
   Rediseño 2026 · portada a sangre, tarjetas de programa y animación
   =================================================================== */

.filete{ width:46px; height:1px; background:var(--dorado); border:0; margin:0 0 26px; }

/* cabecera fija: al bajar solo gana una línea de sombra; el logo no cambia de tamaño */
.cabecera{ transition:padding .25s ease, background .25s ease, box-shadow .25s ease; }
.cabecera.encogida{ box-shadow:0 1px 0 var(--linea); }
.cabecera .logo img, .cabecera.encogida .logo img{ height:62.8px; width:auto; transition:none; transform:none; }
.cabecera.encogida .fila{ padding-block:14px; }

/* ---------- portada a sangre ---------- */
.portada{ position:relative; min-height:clamp(430px, 70vh, 640px); display:flex; align-items:flex-end; overflow:hidden; }
.portada img.fondo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.portada::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(185deg, rgba(39,29,23,.66) 0%, rgba(39,29,23,.78) 46%, rgba(30,22,17,.94) 100%);
}
.portada .contenedor{ position:relative; z-index:2; padding-block:clamp(44px, 7vw, 76px); }
.portada h1{ color:#F7F4EC; max-width:16ch; text-shadow:0 1px 10px rgba(0,0,0,.28); }
.portada h1 em{ color:#E2C79A; }
.portada p{ color:#F4F1E8; max-width:46ch; font-size:clamp(18px, 2.15vw, 20.5px); text-shadow:0 1px 6px rgba(0,0,0,.3); }
.portada .acciones{ margin-top:30px; }

/* ---------- tarjetas de opción (portada) ---------- */
.rejilla{ display:grid; gap:20px; }
.rejilla.dos{ grid-template-columns:repeat(2, minmax(0,1fr)); }
.rejilla.tres{ grid-template-columns:repeat(3, minmax(0,1fr)); }

.opcion{
  background:var(--papel); border:1px solid var(--linea); border-radius:var(--radio);
  padding:28px 26px; min-width:0; display:flex; flex-direction:column;
  transition:border-color .2s ease, box-shadow .25s ease, transform .25s ease;
}
.opcion:hover{ border-color:#C9BFAC; box-shadow:var(--sombra); transform:translateY(-2px); }
.opcion .ico{ font-family:"Jost",sans-serif; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--dorado); margin-bottom:12px; display:block; }
.opcion p{ font-size:18px; color:var(--tinta); }
.opcion .acc{ margin-top:auto; padding-top:20px; }
.opcion .desde{ font-family:"Jost",sans-serif; color:var(--gris); font-size:13px; letter-spacing:.06em; }
.opcion .precio{ font-family:"Jost",sans-serif; font-weight:300; font-size:34px; line-height:1; color:var(--verde); font-variant-numeric:tabular-nums; }
.opcion .mes{ font-family:"Jost",sans-serif; font-size:14px; color:var(--gris); margin-left:4px; }
.enlace{
  font-family:"Jost",sans-serif; font-size:15px; color:var(--dorado); text-decoration:none;
  border-bottom:1px solid rgba(176,141,87,.4); padding-bottom:2px;
}
.enlace:hover{ color:var(--verde); border-color:var(--verde); }

/* ---------- tarjetas con foto ---------- */
.tarjetafoto{
  position:relative; border-radius:var(--radio); overflow:hidden; min-height:clamp(360px, 42vw, 440px);
  display:flex; align-items:flex-end; color:#F6F2E9; isolation:isolate; text-decoration:none;
}
.tarjetafoto > img, .tarjetafoto > picture > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .6s ease; }
.tarjetafoto::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(39,29,23,.05) 0%, rgba(39,29,23,.55) 28%, rgba(39,29,23,.86) 52%, rgba(39,29,23,.95) 100%);
}
.tarjetafoto:hover img{ transform:scale(1.04); }
.tarjetafoto .texto{ padding:26px; }
.tarjetafoto h3{ color:#F7F4EC; font-size:25px; margin-bottom:6px; }
.tarjetafoto p{ color:#F3EFE6; font-size:17px; margin-bottom:14px; max-width:40ch; }
.tarjetafoto .enlace{ color:#E8D3B4; border-color:rgba(205,174,126,.5); }
.tarjetafoto:hover .enlace{ color:#fff; border-color:#fff; }

/* ---------- pasos numerados ---------- */
.pasos{ display:grid; gap:28px; grid-template-columns:repeat(3, minmax(0,1fr)); margin-top:36px; }
.paso{ border-top:1px solid rgba(243,239,230,.22); padding-top:18px; min-width:0; }
.paso .n{ font-family:"Jost",sans-serif; font-size:13px; letter-spacing:.2em; color:#E8D3B4; display:block; margin-bottom:10px; }
.paso h3{ font-size:20px; margin-bottom:6px; }
.paso p{ font-size:17px; margin:0; color:#EDE9DF; }

/* ---------- selector de modalidad ---------- */
.elige{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:34px; }
.elige a{
  display:block; text-decoration:none; background:var(--papel); border:1px solid var(--linea);
  border-radius:var(--radio); padding:22px 24px; transition:border-color .2s ease, box-shadow .25s ease, background .2s ease; min-width:0;
}
.elige a:hover{ border-color:#C9BFAC; }
.elige a[aria-current="true"]{ border-color:var(--dorado); box-shadow:var(--sombra); background:#fff; }
.elige .et{ font-family:"Jost",sans-serif; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--dorado); display:block; margin-bottom:6px; }
.elige .tt{ font-family:"Jost",sans-serif; font-size:23px; color:var(--verde); display:block; line-height:1.2; }
.elige .dd{ font-size:16.5px; color:var(--tinta); margin-top:6px; display:block; }

/* ---------- tarjetas de programa ---------- */
.plan{
  background:var(--papel); border:1px solid var(--linea); border-radius:var(--radio);
  padding:28px 26px 26px; display:flex; flex-direction:column; min-width:0; position:relative;
}
.plan.destacado{ border-color:var(--dorado); box-shadow:var(--sombra); background:#fff; }
.plan.destacado::before{
  content:"El más completo"; position:absolute; top:-11px; left:26px;
  background:var(--dorado); color:#fff; font-family:"Jost",sans-serif; font-size:12px;
  letter-spacing:.14em; text-transform:uppercase; padding:4px 12px; border-radius:2px;
}
.plan .fam{ font-family:"Jost",sans-serif; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--gris); }
.plan h3{ font-size:27px; margin:4px 0 10px; color:var(--verde); font-weight:400; }
.plan .que{ font-size:17.5px; color:var(--tinta); margin-bottom:20px; }
.plan .cifra{ display:flex; align-items:baseline; gap:7px; padding-block:16px; border-top:1px solid var(--linea); border-bottom:1px solid var(--linea); }
.plan .cifra .n{ font-family:"Jost",sans-serif; font-weight:300; font-size:40px; line-height:1; color:var(--verde); font-variant-numeric:tabular-nums; }
.plan .cifra .u{ font-family:"Jost",sans-serif; font-size:14px; color:var(--gris); }
.plan ul.incluye{ list-style:none; margin:20px 0 0; padding:0; display:grid; gap:9px; }
.plan ul.incluye li{ display:grid; grid-template-columns:17px 1fr; gap:9px; font-size:16.5px; line-height:1.5; color:var(--tinta); }
.plan ul.incluye li .t{ color:var(--verde-claro); font-family:"Jost",sans-serif; }
.plan .tarifas{ margin-top:22px; border-top:1px solid var(--linea); padding-top:16px; display:grid; gap:7px; }
.plan .tarifas .tit{ font-family:"Jost",sans-serif; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--dorado); display:block; margin-bottom:3px; }
.plan .tarifas div{ display:flex; justify-content:space-between; gap:14px; font-size:14.5px; color:var(--tinta-suave); }
.plan .tarifas b{ font-family:"Jost",sans-serif; font-weight:400; color:var(--verde); font-variant-numeric:tabular-nums; }
.plan .acc{ margin-top:auto; padding-top:22px; }

.sumar{ margin-top:20px; border:1px solid var(--dorado); border-radius:var(--radio); background:rgba(176,141,87,.07); padding:16px 18px; }
.sumar .et{ font-family:"Jost",sans-serif; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--dorado); display:block; margin-bottom:9px; }
.sumar .desc{ margin:0 0 12px; font-size:15px; line-height:1.45; color:var(--tinta); }
.sumar .fila{ display:flex; align-items:baseline; gap:8px; }
.sumar .fila b{ font-family:"Jost",sans-serif; font-weight:300; font-size:31px; line-height:1; color:var(--verde); font-variant-numeric:tabular-nums; }
.sumar .fila em{ font-style:normal; font-family:"Jost",sans-serif; font-size:13.5px; color:var(--gris); }

/* ---------- lo que no cambia ---------- */
.comun{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:24px; margin-top:30px; }
.comun div{ min-width:0; }
.comun .et{ font-family:"Jost",sans-serif; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--dorado); display:block; margin-bottom:8px; }
.comun .v{ font-family:"Jost",sans-serif; font-size:26px; color:var(--verde); line-height:1.15; font-variant-numeric:tabular-nums; }
.comun p{ font-size:16px; color:var(--tinta); margin:6px 0 0; }

/* ---------- bloque pendiente ---------- */
.pendiente{
  border:1px dashed #C9BFAC; border-radius:var(--radio); padding:22px 24px;
  background:rgba(176,141,87,.05); color:var(--tinta); font-size:16.5px;
}
.pendiente strong{ color:var(--marron); font-weight:500; }

.nota-plazo{ margin-top:36px; max-width:68ch; }
.nota-plazo h3{ font-size:22px; margin-bottom:10px; }
.nota-plazo .pendiente{ margin-top:18px; }

/* ---------- testimonios de ejemplo ---------- */
.testimonios{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; margin-top:32px; }
.testimonio{
  margin:0; background:var(--papel); border:1px dashed #C9BFAC; border-radius:var(--radio);
  padding:22px 22px 20px; display:flex; flex-direction:column; gap:14px; min-width:0;
}
.testimonio p{ margin:0; font-size:17.5px; line-height:1.55; color:var(--tinta); }
.testimonio .ejemplo{
  font-family:"Jost",sans-serif; font-size:12px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--dorado); margin:0;
}
.testimonio footer{
  margin-top:auto; padding-top:8px;
  font-family:"Jost",sans-serif; font-size:14px; color:var(--marron);
}

/* ---------- ficha local y mapa pendiente ---------- */
.local{
  display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(22px, 4vw, 48px); margin-top:32px; align-items:stretch;
}
.datos-local{ margin:0; display:grid; gap:0; align-content:start; }
.datos-local div{ display:grid; gap:3px; padding-block:14px; border-bottom:1px solid var(--linea); }
.datos-local dt{
  font-family:"Jost",sans-serif; font-size:12px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--dorado);
}
.datos-local dd{ margin:0; font-size:18px; color:var(--tinta); }
.datos-local dd.ph{ font-family:"Jost",sans-serif; color:var(--marron); letter-spacing:.04em; }
.mapa-ph{
  min-height:260px; border:1.5px dashed #C4B79A; border-radius:var(--radio);
  background:
    linear-gradient(180deg, rgba(252,250,246,.25), rgba(250,246,241,.62)),
    repeating-linear-gradient(0deg, transparent 0 27px, rgba(94,68,51,.07) 28px),
    repeating-linear-gradient(90deg, transparent 0 27px, rgba(94,68,51,.07) 28px),
    var(--crema-2);
  display:flex; align-items:center; justify-content:center; text-align:center; padding:28px;
  color:var(--marron);
}
.mapa-ph p{ margin:0; max-width:26ch; font-size:16.5px; }
.mapa-ph strong{
  font-family:"Jost",sans-serif; font-weight:500; letter-spacing:.16em;
  text-transform:uppercase; font-size:12px; color:var(--verde); display:block; margin-bottom:8px;
}
.mapa-ph .ph{ display:block; margin-top:8px; font-family:"Jost",sans-serif; }

/* ---------- aparición suave ---------- */
.anim .rev{ opacity:0; transform:translateY(10px); transition:opacity .55s ease, transform .55s ease; }
.anim .rev.vis{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
  .anim .rev{ opacity:1; transform:none; }
}

@media (max-width: 900px){
  .rejilla.tres{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .pasos{ grid-template-columns:1fr; gap:22px; }
  .comun{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .testimonios, .local{ grid-template-columns:1fr; }
}
@media (max-width: 640px){
  .rejilla.tres, .rejilla.dos{ grid-template-columns:1fr; }
  .elige{ grid-template-columns:1fr; }
  .comun{ grid-template-columns:1fr; gap:18px; }
  .portada{ min-height:auto; }
  .portada::after{
    background:linear-gradient(180deg, rgba(30,22,17,.74) 0%, rgba(30,22,17,.84) 48%, rgba(24,17,13,.95) 100%);
  }
  .portada .acciones,
  .seccion.verde .acciones{ flex-direction:column; align-items:stretch; }
  .portada .acciones .btn,
  .seccion.verde .acciones .btn{ text-align:center; }
}

/* ---------- diseño beige (inspirado en la propuesta Lovable) ---------- */
h1, h2{ font-family:"Cormorant Garamond", Georgia, serif; font-weight:400; letter-spacing:-.01em; }
h1{ font-size:clamp(36px, 5.8vw, 60px); line-height:1.05; }
h2{ font-size:clamp(29px, 3.9vw, 42px); line-height:1.12; }
.eyebrow{ letter-spacing:.22em; font-weight:400; }
.btn{ border-radius:999px; }
.tarjeta, .opcion, .plan, .tarjetafoto, .elige a, .sumar, figure img{ border-radius:var(--radio); }
.tarjetafoto{ overflow:hidden; }
.seccion.verde h1 em, .seccion.verde h2 em{ color:#E2C79A; }

/* ---------- portada en dos columnas (estilo Lovable) ---------- */
.portada-dos{ padding-block:clamp(36px, 6vw, 80px) clamp(52px, 7vw, 88px); }
.portada-dos .contenedor{ display:grid; grid-template-columns:5fr 7fr; gap:clamp(28px, 4vw, 56px); align-items:center; }
.portada-dos h1{ font-size:clamp(40px, 5vw, 62px); line-height:1.04; color:var(--tinta); margin-top:6px; }
.portada-dos h1 .destaca{ display:block; font-style:normal; color:var(--dorado); }
.portada-dos .lead{ color:var(--gris); margin-top:20px; }
.portada-dos .acciones{ margin-top:32px; }
.portada-dos .acciones .btn{ white-space:nowrap; padding-inline:20px; }
.btn.contorno-oscuro{ background:transparent; color:var(--tinta); border:1px solid var(--tinta); }
.btn.contorno-oscuro:hover{ background:var(--tinta); color:var(--papel); }
.portada-dos .arco{ width:100%; }
.portada-dos .arco img{ width:100%; aspect-ratio:5/4; object-position:center 55%; object-fit:cover; border-radius:12rem 12rem var(--radio) var(--radio); }
.foto-sandra{ width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:var(--radio); }
@media (max-width:860px){
  .portada-dos .contenedor{ grid-template-columns:1fr; }
  .portada-dos .arco{ justify-self:stretch; max-width:none; }
  .portada-dos .arco img{ aspect-ratio:4/3; border-radius:9rem 9rem var(--radio) var(--radio); }
}
.tarjetafoto > picture{ position:absolute; inset:0; z-index:-2; }
.cols-2.iguales > .tarjeta{ height:100%; }

/* foto de Sandra: discreta */
.foto-sandra{ width:100%; max-width:320px; aspect-ratio:3/4; object-fit:cover; border-radius:var(--radio); margin-inline:auto; }
.figura.alta:has(.foto-sandra), :has(> picture > .foto-sandra){ box-shadow:none; overflow:visible; }
@media (max-width:860px){ .foto-sandra{ max-width:240px; } }

/* botón flotante de WhatsApp: hueco al final para que no tape contenido */
.pie{ padding-bottom:calc(96px + env(safe-area-inset-bottom, 0px)); }

/* foto de Sandra: aún más discreta */
.foto-sandra{ max-width:160px; }
@media (max-width:860px){ .foto-sandra{ max-width:140px; } }

/* Sandra: foto a la altura del texto */
.cols-2.con-sandra{ grid-template-columns:minmax(0,5fr) minmax(0,7fr); align-items:stretch; }
.con-sandra > :not(.col-foto){ align-self:center; max-width:66ch; text-align:left; }
.con-sandra .col-foto{ position:relative; min-height:100%; box-shadow:none; overflow:hidden; border-radius:var(--radio); aspect-ratio:auto; }
.con-sandra .col-foto picture{ position:absolute; inset:0; display:block; }
.con-sandra .col-foto img.foto-sandra{ position:absolute; inset:0; width:100%; height:100%; max-width:none; aspect-ratio:auto; object-fit:cover; object-position:center 25%; border-radius:var(--radio); margin:0; }
.con-sandra:has(> .col-foto:last-child){ grid-template-columns:minmax(0,7fr) minmax(0,5fr); }
@media (max-width:860px){
  .cols-2.con-sandra, .con-sandra:has(> .col-foto:last-child){ grid-template-columns:1fr; }
  .con-sandra .col-foto{ order:-1; min-height:0; aspect-ratio:4/5; }
  .con-sandra > :not(.col-foto){ max-width:none; }
}

/* títulos de tarjeta que son h2 por orden de encabezados, con aspecto de h3 */
h2.como-h3{ font-family:"Jost", ui-sans-serif, sans-serif; font-size:20px; line-height:1.25; margin:0 0 8px; font-weight:400; letter-spacing:0; color:var(--verde); }
