/* =====================================================================
   ETERNESIA · estilos de la web
   Identidad del manual de marca: café, moca, rosa empolvado, lino y nata.
   Títulos: Perandory (aquí Oranienbaum) en mayúsculas + Great Vibes.
   Texto: Glacial Indifference (aquí Questrial).
   Tema único a propósito: la marca no cambia con el modo oscuro del sistema.
   ===================================================================== */

@font-face{font-family:"Great Vibes";font-style:normal;font-weight:400;font-display:swap;src:url("../fuentes/great-vibes-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Oranienbaum";font-style:normal;font-weight:400;font-display:swap;src:url("../fuentes/oranienbaum-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Questrial";font-style:normal;font-weight:400;font-display:swap;src:url("../fuentes/questrial-latin-400-normal.woff2") format("woff2")}

:root{
  /* Colores corporativos (manual de identidad) */
  --cafe:#37281E;        /* Pantone 440 C */
  --moca:#A28773;        /* Pantone 7614 C */
  --rosa:#C9AFA8;        /* Pantone 4745 C */
  --lino:#E1DDD4;        /* Pantone 7604 C */
  --nata:#F6F3F0;
  /* Derivados para que el texto pequeño se lea bien */
  --moca-texto:#7A6352;
  --texto-suave:#64554B;
  --cafe-hover:#4D3A2D;
  --blanco:#FFFDFB;
  --sobre-oscuro:#F6F3F0;
  --suave-oscuro:#D3C6BC;
  --linea:#D8CEC5;
  --linea-oscura:rgba(246,243,240,.22);
  --ok-fondo:#EDF1E8; --ok-texto:#33472C; --ok-borde:#AFC1A5;
  --error-fondo:#F6E7E3; --error-texto:#7A2A1F; --error-borde:#D8A79D;
  /* Tipografías */
  --f-script:"Great Vibes","Snell Roundhand","Apple Chancery",cursive;
  --f-titulo:"Perandory","Oranienbaum","Bodoni 72","Didot",Georgia,serif;
  --f-texto:"Glacial Indifference","Questrial","Century Gothic","Avenir Next",Arial,sans-serif;
  /* Medidas */
  --ancho:1200px;
  --gutter:clamp(16px,4vw,40px);
  --alto-cabecera:80px;
  --sombra:0 24px 48px -30px rgba(55,40,30,.45);
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--nata);color:var(--cafe);font-family:var(--f-texto);font-size:1.02rem;line-height:1.72;font-synthesis-weight:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto}
p{margin:0}
a{color:inherit}
ul{margin:0}
:focus-visible{outline:2px solid var(--moca);outline-offset:3px}
[id]{scroll-margin-top:calc(var(--alto-cabecera) + 12px)}
.envoltura{max-width:var(--ancho);margin-inline:auto;padding-inline:var(--gutter)}
.saltar{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--cafe);color:var(--nata);padding:10px 16px}
.saltar:focus{left:16px}

/* ---------- Tipografía ---------- */
.titulo{margin:0;font-family:var(--f-titulo);font-weight:400;text-transform:uppercase;letter-spacing:.03em;line-height:1;color:var(--cafe);text-wrap:balance}
.titulo .linea{display:block}
.titulo .linea+.linea{margin-top:-.02em}
.titulo .script{font-family:var(--f-script);text-transform:none;letter-spacing:0;font-size:1.36em;line-height:.95;color:var(--moca)}
.t-xxl{font-size:clamp(2.8rem,1.5rem + 5.2vw,5.6rem)}
.t-xl{font-size:clamp(2.1rem,1.35rem + 2.7vw,3.4rem)}
.t-l{font-size:clamp(1.7rem,1.25rem + 1.6vw,2.4rem)}
.h-suave{margin:0;font-family:var(--f-titulo);font-weight:400;text-transform:uppercase;letter-spacing:.05em;line-height:1.08}
.antetitulo{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--moca-texto)}
.mini{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--moca-texto);margin-bottom:12px}
.intro{color:var(--texto-suave);max-width:60ch;font-size:1.06rem}
.prosa{display:grid;gap:18px;max-width:64ch}
.prosa h2,.prosa h3{margin:18px 0 0;font-family:var(--f-titulo);font-weight:400;text-transform:uppercase;letter-spacing:.04em;line-height:1.1}
.prosa h2{font-size:1.6rem}
.prosa h3{font-size:1.25rem}
.prosa ul{padding-left:1.2em;display:grid;gap:6px}
.prosa a{color:var(--moca-texto)}
.pendiente{background:var(--lino);padding:0 .3em;border-bottom:1px dashed var(--moca)}

/* ---------- Botones ---------- */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:.9em;padding:1.05em 1.8em;background:var(--cafe);color:var(--nata);border:1px solid var(--cafe);font:400 .74rem/1.2 var(--f-texto);letter-spacing:.24em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .25s,color .25s,border-color .25s}
.boton:hover{background:var(--cafe-hover);border-color:var(--cafe-hover)}
.boton::after{content:"→";transition:transform .25s}
.boton:hover::after{transform:translateX(4px)}
.boton.sin-flecha::after{content:none}
.boton.linea-btn{background:transparent;color:var(--cafe)}
.boton.linea-btn:hover{background:var(--cafe);color:var(--nata)}
.boton.claro{background:var(--nata);color:var(--cafe);border-color:var(--nata)}
.boton.claro:hover{background:var(--blanco);border-color:var(--blanco)}
.boton.fantasma{background:transparent;color:var(--sobre-oscuro);border-color:rgba(246,243,240,.6)}
.boton.fantasma:hover{background:var(--nata);color:var(--cafe);border-color:var(--nata)}
.enlace{display:inline-flex;gap:.6em;align-items:center;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;color:var(--cafe);border-bottom:1px solid var(--moca);padding-bottom:4px}
.enlace::after{content:"→";transition:transform .25s}
.enlace:hover::after{transform:translateX(4px)}
.acciones{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px}

/* ---------- Fotos ---------- */
.foto{margin:0;position:relative;overflow:hidden;max-width:100%;background:var(--lino)}
.foto picture,.foto img{display:block;width:100%;height:100%}
.foto img{object-fit:cover}
.ph{background:var(--lino) url("../img/simbolo-oscuro.png") center/34% auto no-repeat;background-blend-mode:normal}
.ph::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(246,243,240,.78),rgba(225,221,212,.86) 55%,rgba(201,175,168,.75))}
.ph figcaption{position:absolute;left:16px;right:16px;bottom:14px;z-index:1;font-size:.72rem;line-height:1.45;color:var(--texto-suave)}
.ph figcaption b{display:block;font-weight:400;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--moca-texto);margin-bottom:3px}
.marco{position:relative;padding:0 18px 18px 0}
.marco::before{content:"";position:absolute;inset:18px 0 0 18px;border:1px solid var(--rosa)}
.marco .foto{position:relative;aspect-ratio:4/5}

/* ---------- Cabecera ---------- */
.cabecera{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;height:var(--alto-cabecera);color:var(--cafe);background:var(--nata);background:color-mix(in srgb,var(--nata) 95%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--linea);transition:background-color .35s,border-color .35s,color .35s}
.cabecera.sobre-portada{background:transparent;border-bottom-color:transparent;color:var(--sobre-oscuro);-webkit-backdrop-filter:none;backdrop-filter:none}
.barra{height:100%;display:flex;align-items:center;gap:28px}
.logo{display:inline-flex;align-items:center;gap:12px;margin-right:auto;color:inherit;text-decoration:none}
.simbolo{display:block;height:30px;width:auto}
.cabecera.sobre-portada .simbolo-oscuro,.cabecera:not(.sobre-portada) .simbolo-claro{display:none}
.marca-txt{font-family:var(--f-titulo);text-transform:uppercase;letter-spacing:.28em;font-size:1.14rem;line-height:1;white-space:nowrap}
.menu{display:flex;align-items:center;gap:24px}
.menu a:not(.boton){font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding-block:6px;border-bottom:1px solid transparent;white-space:nowrap;transition:border-color .2s}
.menu a:not(.boton):hover,.menu a[aria-current="page"]{border-bottom-color:currentColor}
.boton-menu{display:none}
.boton-cabecera{padding:.95em 1.3em;white-space:nowrap}
.cabecera.sobre-portada .boton-cabecera{background:transparent;border-color:currentColor;color:inherit}
.cabecera.sobre-portada .boton-cabecera:hover{background:var(--nata);color:var(--cafe);border-color:var(--nata)}
.abrir-menu{display:none;padding:.7em 1.05em;background:transparent;border:1px solid currentColor;color:inherit;font:400 .7rem/1 var(--f-texto);letter-spacing:.22em;text-transform:uppercase;cursor:pointer}
@media (max-width:1180px){
  .menu{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;color:var(--cafe);background:var(--nata);border-bottom:1px solid var(--linea);padding:6px var(--gutter) 22px;box-shadow:var(--sombra);max-height:calc(100svh - var(--alto-cabecera));overflow:auto}
  .menu.abierto{display:flex}
  .menu a:not(.boton){padding-block:16px;border-bottom:1px solid var(--linea);font-size:.8rem}
  .menu a[aria-current="page"]{border-bottom-color:var(--linea);color:var(--moca-texto)}
  .boton-menu{display:inline-flex;margin-top:18px}
  .boton-cabecera{display:none}
  .abrir-menu{display:inline-flex}
}

/* ---------- Portada (inicio) ---------- */
.portada{position:relative;isolation:isolate;display:grid;place-items:center;text-align:center;min-height:clamp(580px,90svh,900px);margin-top:calc(-1 * var(--alto-cabecera));padding:calc(var(--alto-cabecera) + 56px) var(--gutter) 88px;color:var(--sobre-oscuro);overflow:hidden;background:var(--cafe)}
.portada>.foto{position:absolute;inset:0;z-index:-2;background:var(--cafe)}
.portada>.foto.ph{background:var(--cafe) url("../img/simbolo-claro.png") 50% 46%/min(70vw,720px) auto no-repeat}
.portada>.foto.ph::after{background:none}
.portada>.foto.ph{opacity:.16}
.portada::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(55,40,30,.62) 0%,rgba(55,40,30,.3) 42%,rgba(55,40,30,.7) 100%)}
.portada .ph figcaption{top:calc(var(--alto-cabecera) + 12px);bottom:auto;color:var(--nata);opacity:1}
.portada-contenido{display:grid;justify-items:center;gap:26px;max-width:800px}
.portada .antetitulo{color:var(--suave-oscuro)}
.portada .titulo{color:var(--sobre-oscuro)}
.portada .titulo .script{color:var(--rosa)}
.entradilla{font-size:clamp(1.05rem,.95rem + .45vw,1.28rem);max-width:40ch}
.zonas-linea{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:var(--suave-oscuro);padding-top:20px;border-top:1px solid var(--linea-oscura)}

/* ---------- Cabecera de páginas interiores ---------- */
.cabeza-pagina{position:relative;overflow:hidden;background:var(--lino);padding-block:clamp(56px,8vw,104px) clamp(48px,7vw,88px)}
.cabeza-pagina::after{content:"";position:absolute;right:-6%;top:50%;width:min(52vw,560px);aspect-ratio:236/136;transform:translateY(-50%);background:url("../img/simbolo-oscuro.png") center/contain no-repeat;opacity:.06;pointer-events:none}
.cabeza-pagina .envoltura{position:relative;z-index:1;display:grid;gap:20px}
.cabeza-pagina .intro{font-size:1.1rem}
.migas{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--moca-texto);list-style:none;padding:0;margin:0}
.migas li+li::before{content:"/";margin-right:10px;color:var(--rosa)}
.migas a{text-decoration:none}
.migas a:hover{text-decoration:underline;text-underline-offset:4px}
.datos-pagina{display:flex;flex-wrap:wrap;gap:8px 28px;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--moca-texto)}

/* ---------- Secciones ---------- */
.seccion{padding-block:clamp(72px,10vw,136px)}
.seccion.lino{background:var(--lino)}
.seccion.blanca{background:var(--blanco)}
.seccion.corta{padding-block:clamp(56px,7vw,96px)}
.cabeza-seccion{display:grid;gap:18px;max-width:760px;margin-bottom:clamp(40px,5vw,64px)}
.cabeza-seccion.centrada{justify-items:center;text-align:center;margin-inline:auto}
.cabeza-fila{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 40px;margin-bottom:clamp(36px,5vw,56px)}
.cabeza-fila .cabeza-seccion{margin-bottom:0}
.dos-col{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(40px,6vw,96px);align-items:center}
.dos-col>*{min-width:0}
.texto{display:grid;gap:20px}
.texto p{max-width:62ch}
.pie-seccion{margin-top:clamp(36px,5vw,56px)}
@media (max-width:880px){.dos-col{grid-template-columns:minmax(0,1fr)}}

/* ---------- Servicios ---------- */
.especialidad{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--blanco);border:1px solid var(--linea)}
.especialidad>.foto{min-height:100%;aspect-ratio:auto}
.especialidad-texto{display:grid;gap:20px;align-content:center;padding:clamp(28px,4.5vw,64px)}
.especialidad-texto .h-suave{font-size:clamp(1.9rem,1.4rem + 1.6vw,2.6rem)}
.modalidades{display:grid;margin-top:6px;border-top:1px solid var(--linea)}
.modalidad{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding-block:14px;border-bottom:1px solid var(--linea)}
.modalidad span:first-child{font-family:var(--f-titulo);text-transform:uppercase;letter-spacing:.04em;font-size:1.12rem}
.modalidad span:last-child{font-size:.82rem;color:var(--texto-suave);white-space:nowrap}
@media (max-width:860px){.especialidad{grid-template-columns:minmax(0,1fr)}.especialidad>.foto{aspect-ratio:16/10}}

.otros-titulo{display:flex;align-items:center;gap:20px;margin:clamp(48px,6vw,72px) 0 28px}
.otros-titulo::after{content:"";flex:1;height:1px;background:var(--linea)}
.rejilla-servicios{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,40px)}
.servicio-mini{display:grid;gap:10px;align-content:start;padding-top:22px;border-top:1px solid var(--rosa);text-decoration:none;min-width:0}
.servicio-mini .h-suave{font-size:1.35rem}
.servicio-mini p{color:var(--texto-suave);font-size:.94rem}
.servicio-mini .enlace{justify-self:start;margin-top:4px}
.servicio-mini:hover .h-suave{color:var(--moca-texto)}
@media (max-width:900px){.rejilla-servicios{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:540px){.rejilla-servicios{grid-template-columns:minmax(0,1fr)}}

.tarjetas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,32px)}
.tarjeta{display:flex;flex-direction:column;background:var(--blanco);border:1px solid var(--linea);text-decoration:none;min-width:0;transition:box-shadow .3s,transform .3s}
.tarjeta:hover{box-shadow:var(--sombra);transform:translateY(-3px)}
.tarjeta>.foto{aspect-ratio:4/3}
.tarjeta .foto img{transition:transform .8s cubic-bezier(.2,.6,.2,1)}
.tarjeta:hover .foto img{transform:scale(1.04)}
.tarjeta-cuerpo{display:flex;flex-direction:column;gap:12px;padding:clamp(22px,2.4vw,30px);flex:1}
.tarjeta-cuerpo .h-suave{font-size:1.45rem}
.tarjeta-cuerpo p{color:var(--texto-suave);font-size:.94rem}
.tarjeta-pie{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:16px;border-top:1px solid var(--linea);font-size:.78rem;color:var(--moca-texto);letter-spacing:.06em}
.tarjeta-pie .flecha-txt{letter-spacing:.2em;text-transform:uppercase;font-size:.68rem;color:var(--cafe)}
@media (max-width:960px){.tarjetas{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.tarjetas{grid-template-columns:minmax(0,1fr)}}

.etiqueta-ejemplo{display:inline-block;justify-self:start;width:fit-content;background:var(--cafe);color:var(--nata);font-size:.6rem;line-height:1.4;letter-spacing:.2em;text-transform:uppercase;padding:.45em .8em}
.con-etiqueta{position:relative}
.tarjeta>.etiqueta-ejemplo{position:absolute;top:12px;left:12px;z-index:2}

/* Detalle de servicio */
.servicio-detalle{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(36px,5vw,80px);align-items:start}
.servicio-detalle>*{min-width:0}
.servicio-detalle .foto{aspect-ratio:16/10;margin-bottom:clamp(28px,4vw,44px)}
.ficha{position:sticky;top:calc(var(--alto-cabecera) + 24px);display:grid;gap:20px;background:var(--blanco);border:1px solid var(--linea);padding:clamp(24px,3vw,36px)}
.ficha .precio{font-family:var(--f-titulo);font-size:1.9rem;line-height:1.05;text-transform:uppercase;letter-spacing:.02em}
.incluye{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:.94rem}
.incluye li{display:grid;grid-template-columns:14px minmax(0,1fr);gap:10px;align-items:baseline}
.incluye li::before{content:"";width:6px;height:6px;border:1px solid var(--moca);border-radius:50%;transform:translateY(-2px)}
.ficha .boton{width:100%}
.para-quien{margin-top:28px;padding:22px 24px;border-left:2px solid var(--rosa);background:var(--blanco)}
@media (max-width:900px){.servicio-detalle{grid-template-columns:minmax(0,1fr)}.ficha{position:static}}

/* Planes (bodas) */
.planes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
.plan{display:flex;flex-direction:column;gap:22px;min-width:0;background:var(--blanco);border:1px solid var(--linea);padding:clamp(26px,3vw,40px)}
.num{font-family:var(--f-titulo);font-size:1.05rem;letter-spacing:.12em;color:var(--moca)}
.plan .h-suave{font-size:clamp(1.55rem,1.25rem + .9vw,1.95rem);line-height:1.04}
.plan .para{color:var(--texto-suave);margin-top:-10px}
.tarifa dl{margin:0;display:grid;gap:9px}
.fila{display:flex;align-items:baseline;gap:10px;font-size:.93rem}
.fila dt{order:1}
.fila::after{content:"";order:2;flex:1;border-bottom:1px dotted currentColor;opacity:.35;transform:translateY(-4px)}
.fila dd{order:3;margin:0;max-width:60%;text-align:right;font-family:var(--f-titulo);font-size:1.3rem;line-height:1.15;font-variant-numeric:lining-nums tabular-nums}
.plan .boton{margin-top:auto}
.plan.destacado{background:var(--cafe);color:var(--sobre-oscuro);border-color:var(--cafe)}
.plan.destacado .num{color:var(--rosa)}
.plan.destacado .para,.plan.destacado .mini{color:var(--suave-oscuro)}
.plan.destacado .incluye li::before{border-color:var(--rosa)}
@media (max-width:980px){.planes{grid-template-columns:minmax(0,1fr);max-width:600px}}

/* ---------- Cómo trabajamos ---------- */
.pasos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(32px,4vw,56px) clamp(24px,3vw,48px);counter-reset:paso}
.paso{display:grid;gap:12px;align-content:start;counter-increment:paso;min-width:0}
.paso::before{content:counter(paso,decimal-leading-zero);font-family:var(--f-titulo);font-size:2.6rem;line-height:1;color:var(--rosa)}
.paso .h-suave{font-size:1.3rem}
.paso p{color:var(--texto-suave);font-size:.95rem}
@media (max-width:900px){.pasos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:540px){.pasos{grid-template-columns:minmax(0,1fr)}}

.linea-tiempo{list-style:none;margin:0;padding:0;display:grid;counter-reset:paso;max-width:880px}
.linea-tiempo li{display:grid;grid-template-columns:clamp(64px,10vw,110px) minmax(0,1fr);gap:clamp(18px,3vw,40px);padding-block:clamp(26px,3.5vw,40px);border-top:1px solid var(--linea);counter-increment:paso}
.linea-tiempo li:last-child{border-bottom:1px solid var(--linea)}
.linea-tiempo li::before{content:counter(paso,decimal-leading-zero);font-family:var(--f-titulo);font-size:clamp(2.4rem,1.8rem + 2vw,3.6rem);line-height:.9;color:var(--moca)}
.linea-tiempo .h-suave{font-size:clamp(1.4rem,1.2rem + .7vw,1.8rem);margin-bottom:8px}
.linea-tiempo p{color:var(--texto-suave);max-width:58ch}

/* ---------- Cita ---------- */
.cita{display:grid;justify-items:center;gap:20px;text-align:center}
.cita img{height:46px;width:auto}
.cita .titulo{font-size:clamp(1.9rem,1.3rem + 2.4vw,3.2rem)}

/* ---------- Opiniones ---------- */
.opiniones{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(20px,2.4vw,32px)}
.opinion{position:relative;display:grid;gap:18px;align-content:start;background:var(--blanco);border:1px solid var(--linea);padding:clamp(26px,3vw,40px)}
.opinion::before{content:"“";font-family:var(--f-titulo);font-size:4.2rem;line-height:.6;color:var(--rosa);height:.42em}
.opinion blockquote{margin:0;font-size:1.02rem}
.opinion figcaption{display:flex;align-items:center;gap:14px;padding-top:16px;border-top:1px solid var(--linea)}
.opinion figcaption .foto{width:52px;height:52px;border-radius:50%;flex:none}
.opinion .quien{font-family:var(--f-script);font-size:1.7rem;line-height:1;color:var(--moca)}
.opinion .que{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--moca-texto)}

/* ---------- Galerías ---------- */
.carrusel-cabeza .controles{display:flex;align-items:center;gap:12px}
.contador{font-family:var(--f-titulo);font-size:1.1rem;font-variant-numeric:lining-nums tabular-nums;min-width:4.2ch;text-align:center}
.flecha{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--cafe);border-radius:50%;background:transparent;color:var(--cafe);font-size:1.05rem;cursor:pointer;transition:background-color .2s,color .2s}
.flecha:hover{background:var(--cafe);color:var(--nata)}
.carrusel{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.carrusel::-webkit-scrollbar{display:none}
.carrusel>*{flex:0 0 clamp(250px,30vw,380px);scroll-snap-align:start}
.carrusel .foto{aspect-ratio:4/5}

.mosaico{columns:3 280px;column-gap:16px}
.mosaico>*{break-inside:avoid;margin-bottom:16px}
.mosaico .foto{aspect-ratio:auto}
.mosaico .foto.ph{aspect-ratio:4/5}
.ampliable{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.visor{width:min(96vw,1400px);max-height:94svh;padding:0;border:0;background:transparent}
.visor::backdrop{background:rgba(31,22,16,.9)}
.visor img{display:block;max-width:100%;max-height:86svh;margin-inline:auto;object-fit:contain}
.visor p{color:var(--nata);text-align:center;font-size:.85rem;margin-top:10px}
.visor .cerrar{position:fixed;top:16px;right:16px;width:46px;height:46px;border-radius:50%;border:1px solid rgba(246,243,240,.5);background:transparent;color:var(--nata);font-size:1.3rem;cursor:pointer}

/* Bodas realizadas */
.boda-portada{aspect-ratio:21/9;max-height:620px}
.boda-galeria{columns:2 300px;column-gap:16px}
.boda-galeria>*{break-inside:avoid;margin-bottom:16px}
.vacio{display:grid;justify-items:center;gap:16px;text-align:center;padding:clamp(40px,6vw,72px) 24px;border:1px dashed var(--rosa);background:var(--blanco)}
.vacio img{height:40px;width:auto;opacity:.7}
.vacio p{color:var(--texto-suave);max-width:46ch}

/* ---------- Sobre nosotros ---------- */
.collage{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:12px}
.collage .foto{aspect-ratio:4/5}
.collage .grande{grid-row:span 2;aspect-ratio:auto;min-height:100%}
.rol{font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--moca-texto)}
.puntos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding-block:26px;border-block:1px solid var(--linea)}
.puntos>div{display:grid;gap:6px;align-content:start}
.puntos .h-suave{font-size:1.15rem}
.puntos p{font-size:.93rem;color:var(--texto-suave)}
.mision-vision{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,5vw,80px)}
.mision-vision>div{display:grid;gap:12px;align-content:start}
.mision-vision .h-suave{font-size:1.75rem;color:var(--moca)}
.mision-vision p{color:var(--texto-suave);max-width:54ch}
.valores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(40px,5vw,64px) clamp(28px,4vw,56px)}
.valor{display:grid;gap:12px;align-content:start;min-width:0}
.valor .h-suave{font-size:1.28rem}
.valor .h-suave::before{content:"";display:block;width:36px;height:1px;background:var(--moca);margin-bottom:18px}
.valor p{color:var(--texto-suave);font-size:.93rem}
@media (max-width:900px){.valores{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.valores,.mision-vision,.puntos{grid-template-columns:minmax(0,1fr)}}

/* ---------- Zonas ---------- */
.zonas-lista{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.zonas-lista li{padding:.5em 1em;border:1px solid var(--rosa);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase}

/* ---------- Llamada final ---------- */
.llamada{position:relative;isolation:isolate;display:grid;place-items:center;text-align:center;min-height:clamp(380px,46vw,560px);color:var(--sobre-oscuro);overflow:hidden;background:var(--cafe)}
.llamada>.foto{position:absolute;inset:0;z-index:-2}
.llamada>.foto.ph{background:var(--cafe) url("../img/simbolo-claro.png") center/min(60vw,560px) auto no-repeat;opacity:.12}
.llamada>.foto.ph::after{background:none}
.llamada::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(55,40,30,.6)}
.llamada-contenido{display:grid;justify-items:center;gap:24px;padding:72px var(--gutter);max-width:760px}
.llamada .titulo{color:var(--sobre-oscuro)}
.llamada .titulo .script{color:var(--rosa)}
.llamada p{max-width:52ch}

/* ---------- Contacto y formulario ---------- */
.contacto{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,6vw,88px);align-items:start}
.contacto>*{min-width:0}
.datos{display:grid;margin:0;border-top:1px solid var(--linea)}
.datos>div{display:grid;gap:2px;padding-block:14px;border-bottom:1px solid var(--linea)}
.datos dt{font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;color:var(--moca-texto)}
.datos dd{margin:0;font-family:var(--f-titulo);font-size:1.3rem;overflow-wrap:anywhere}
.datos dd.normal{font-family:var(--f-texto);font-size:.93rem}
.datos a{text-decoration:none}
.datos a:hover{color:var(--moca-texto)}
.tarjeta-form{background:var(--blanco);border:1px solid var(--linea);padding:clamp(24px,3.5vw,44px);min-width:0}
.tarjeta-form .h-suave{font-size:1.7rem;margin-bottom:6px}
.tarjeta-form .sub{font-size:.9rem;color:var(--texto-suave);margin-bottom:24px}
.formulario{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.campo{display:grid;gap:7px;min-width:0;align-content:start}
.campo.ancho{grid-column:1/-1}
.campo>label{font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--moca-texto)}
.opcional{text-transform:none;letter-spacing:.02em}
input,select,textarea{width:100%;font:inherit;font-size:1rem;color:var(--cafe);background:var(--nata);border:1px solid var(--linea);border-radius:0;padding:.8em .9em;transition:border-color .2s}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--moca);outline-offset:0;border-color:var(--moca)}
textarea{resize:vertical;min-height:130px}
.check{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start;font-size:.9rem;line-height:1.5}
.check input{width:18px;height:18px;margin:3px 0 0;accent-color:var(--cafe)}
.check a{color:var(--moca-texto)}
.rgpd{font-size:.74rem;line-height:1.55;color:var(--texto-suave);margin-top:6px}
.trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formulario .boton{width:100%}
.aviso{margin-top:16px;padding:12px 14px;font-size:.9rem;border:1px solid}
.aviso.ok{background:var(--ok-fondo);color:var(--ok-texto);border-color:var(--ok-borde)}
.aviso.error{background:var(--error-fondo);color:var(--error-texto);border-color:var(--error-borde)}
@media (max-width:560px){.formulario{grid-template-columns:minmax(0,1fr)}}
@media (max-width:900px){.contacto{grid-template-columns:minmax(0,1fr)}}

/* ---------- Pie ---------- */
.pie{background:var(--cafe);color:var(--sobre-oscuro);padding-block:clamp(60px,7vw,96px) 28px}
.pie-rejilla{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:40px;padding-bottom:44px;border-bottom:1px solid var(--linea-oscura)}
.pie-rejilla>div{display:grid;gap:14px;align-content:start;min-width:0}
.pie .logo{margin-right:0;justify-self:start}
.pie .simbolo{height:40px}
.pie .lema{font-family:var(--f-script);font-size:2.1rem;line-height:1.1;color:var(--rosa)}
.pie .mini{color:var(--suave-oscuro)}
.pie p,.pie a{font-size:.92rem;color:var(--sobre-oscuro);overflow-wrap:anywhere}
.pie ul{list-style:none;padding:0;display:grid;gap:8px}
.pie a{text-decoration:none}
.pie a:hover{text-decoration:underline;text-underline-offset:4px}
.pie-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:24px;font-size:.74rem;letter-spacing:.06em;color:var(--suave-oscuro)}
.pie-base nav{display:flex;flex-wrap:wrap;gap:6px 18px}
.pie-base a{font-size:.74rem;color:var(--suave-oscuro)}
@media (max-width:960px){.pie-rejilla{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.pie-rejilla{grid-template-columns:minmax(0,1fr)}}


/* ---------- Cifras (opcional) ---------- */
.cifras{background:var(--blanco);border-bottom:1px solid var(--linea)}
.cifras-fila{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:24px;padding-block:clamp(32px,4vw,48px);text-align:center}
.cifra{font-family:var(--f-titulo);font-size:clamp(2.2rem,1.6rem + 2vw,3.2rem);line-height:1;color:var(--moca)}
.cifras-fila p:last-child{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--moca-texto);margin-top:8px}

/* ---------- Preguntas frecuentes ---------- */
.faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px);align-items:start}
.faq .cabeza-seccion{margin-bottom:0;position:sticky;top:calc(var(--alto-cabecera) + 24px)}
.faq .intro a{color:var(--moca-texto)}
.faq-lista{border-top:1px solid var(--linea)}
.pregunta{border-bottom:1px solid var(--linea)}
.pregunta summary{list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:baseline;padding-block:22px;cursor:pointer;font-family:var(--f-titulo);text-transform:uppercase;letter-spacing:.03em;font-size:clamp(1.1rem,1rem + .4vw,1.3rem);line-height:1.2}
.pregunta summary::-webkit-details-marker{display:none}
.pregunta summary::after{content:"+";font-family:var(--f-texto);font-size:1.4rem;line-height:1;color:var(--moca);transition:transform .25s}
.pregunta[open] summary::after{transform:rotate(45deg)}
.pregunta p{padding-bottom:24px;color:var(--texto-suave);max-width:62ch}
@media (max-width:860px){.faq{grid-template-columns:minmax(0,1fr)}.faq .cabeza-seccion{position:static}}

/* ---------- Opinión suelta junto a un botón ---------- */
.opinion-suelta{display:grid;gap:14px;margin:0;max-width:720px;padding-left:24px;border-left:2px solid var(--rosa)}
.opinion-suelta blockquote{margin:0;font-family:var(--f-titulo);font-size:clamp(1.15rem,1rem + .6vw,1.45rem);line-height:1.4}
.opinion-suelta figcaption{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}
.opinion-suelta .quien{font-family:var(--f-script);font-size:1.7rem;line-height:1;color:var(--moca)}
.opinion-suelta .que{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--moca-texto)}

/* ---------- Qué pasa después (contacto) ---------- */
.despues{margin-top:12px}
.despues ol{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:d}
.despues li{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:14px;padding-block:14px;border-bottom:1px solid var(--linea);counter-increment:d}
.despues li::before{content:counter(d);grid-row:span 2;width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--rosa);border-radius:50%;font-family:var(--f-titulo);color:var(--moca)}
.despues .h-suave{font-size:1.05rem}
.despues p{font-size:.9rem;color:var(--texto-suave)}

/* ---------- Boda realizada: texto y proveedores ---------- */
.boda-texto{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);gap:clamp(32px,5vw,80px);align-items:start;margin-top:clamp(40px,6vw,72px)}
.proveedores{background:var(--blanco);border:1px solid var(--linea);padding:24px 26px}
.proveedores dl{margin:0;display:grid}
.proveedores dl>div{display:grid;gap:2px;padding-block:10px;border-bottom:1px solid var(--linea)}
.proveedores dl>div:last-child{border-bottom:0}
.proveedores dt{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--moca-texto)}
.proveedores dd{margin:0;font-size:.95rem}
.proveedores a{color:var(--cafe)}
@media (max-width:860px){.boda-texto{grid-template-columns:minmax(0,1fr)}}

/* ---------- Botón flotante de WhatsApp ---------- */
.whatsapp{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60;display:inline-flex;align-items:center;gap:8px;padding:12px 16px;background:var(--cafe);color:var(--nata);border:1px solid var(--rosa);border-radius:999px;box-shadow:var(--sombra);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none}
.whatsapp:hover{background:var(--cafe-hover)}
@media (max-width:560px){.whatsapp span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.whatsapp{padding:14px}}

/* ---------- Aviso de vista previa ---------- */
.aviso-preview{background:var(--rosa);color:var(--cafe);font-size:.78rem;text-align:center;padding:8px var(--gutter)}

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