:root {
  --bg: #FFF8F6;
  --bg-2: #F8E9EE;
  --ink: #2A1A23;
  --ink-2: #5E4653;
  --rosa: #A8285F;
  --rosa-2: #C9447E;
  --wa: #187A43;
  --wa-dark: #11603A;
  --line: #EBD5DD;
  --radius: 14px;
  --sombra: 0 6px 20px rgba(120, 30, 70, .10);
  --degradado: linear-gradient(to top, rgba(30, 10, 20, .75), transparent 60%);
  --alto-cabecera: 116px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--f-txt);
  font-size: 18px;
  line-height: 1.55;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: var(--rosa); }
h1, h2, h3 { font-family: var(--f-disp); font-weight: 700; line-height: 1.15; margin: 0 0 .4em; color: var(--ink); }
h2 { font-size: 32px; }
h3 { font-size: 24px; font-weight: 600; }
p { margin: 0 0 .8em; }
:focus-visible { outline: 3px solid var(--rosa); outline-offset: 3px; border-radius: 4px; }

.contenedor { max-width: 1180px; margin: 0 auto; padding: 0 16px; }

/* ---------- Botones ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 56px; padding: 12px 26px;
  border-radius: 999px; border: 0;
  font: 700 18px/1.2 var(--f-txt);
  text-decoration: none; cursor: pointer;
  transition: background-color .2s ease, transform .1s ease;
}
.btn-wa { background: var(--wa); color: #fff; box-shadow: var(--sombra); }
.btn-wa:hover { background: var(--wa-dark); }
.btn:active { transform: scale(.98); }
.btn .ph { font-size: 26px; }
.btn-sm { min-height: 44px; padding: 8px 16px; font-size: 16px; box-shadow: none; }
.btn-sm .ph { font-size: 22px; }
.btn-xl { display: flex; width: 100%; margin: 24px 0 0; font-size: 19px; }
.btn-xxl { min-height: 68px; font-size: 20px; margin-top: 8px; }

/* ---------- Cabecera ---------- */
.cabecera {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 248, 246, .95);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.barra { height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.marca { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); min-width: 0; }
.marca img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: none; }
.marca span { font-family: var(--f-disp); font-weight: 700; font-size: 17px; line-height: 1.1; }
.marca small { display: block; font-family: var(--f-txt); font-weight: 600; font-size: 13px; color: var(--ink-2); }

.atajos {
  display: flex; gap: 8px; padding: 0 16px 8px;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  max-width: 1180px; margin: 0 auto;
}
.atajos::-webkit-scrollbar { display: none; }
.atajos a {
  flex: none; scroll-snap-align: start;
  display: inline-flex; align-items: center; height: 44px; padding: 0 18px;
  border-radius: 999px; border: 1px solid var(--line); background: #fff;
  color: var(--ink); font-weight: 700; font-size: 16px; text-decoration: none;
  transition: background-color .2s ease, color .2s ease;
}
.atajos a.activo { background: var(--rosa); border-color: var(--rosa); color: #fff; }

section[id] { scroll-margin-top: calc(var(--alto-cabecera) + 8px); }

/* ---------- Inicio ---------- */
.hero {
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 100%;
  height: clamp(260px, 36svh, 320px);
}
.hero img { width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center 20%; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(30, 10, 20, .78), rgba(30, 10, 20, 0) 65%); pointer-events: none; }
.hero-txt { position: absolute; z-index: 2; left: 16px; right: 16px; bottom: 14px; color: #fff; text-shadow: 0 1px 8px rgba(0, 0, 0, .45); }
.hero-txt h1 { color: #fff; }
.hero-txt .lema { color: #fff; margin: 0; }
.inicio-txt { padding-top: 12px; padding-bottom: 28px; }
h1 { font-size: 30px; margin-bottom: 4px; }
.lema { font-size: 17px; margin-bottom: 2px; }
.estrellas { font-size: 15px; margin-bottom: 10px; }
.estrellas a { color: var(--ink-2); font-weight: 700; }
.pregunta { font-family: var(--f-txt); font-size: 19px; font-weight: 800; margin: 0 0 8px; }
.tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tile, .otro {
  position: relative; display: block; overflow: hidden;
  border-radius: var(--radius); box-shadow: var(--sombra);
  color: #fff; text-decoration: none; background: var(--bg-2);
}
.tile { height: 150px; }
.tile img, .otro img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.tile::after, .otro::after { content: ""; position: absolute; inset: 0; background: var(--degradado); }
.tile:hover img, .otro:hover img { transform: scale(1.04); }
.tile-txt { position: absolute; z-index: 1; left: 12px; right: 10px; bottom: 10px; display: flex; flex-direction: column; line-height: 1.2; }
.tile-txt strong { font-size: 20px; font-weight: 800; }
.tile-txt small { font-size: 15px; font-weight: 600; }
.ver-otros { margin: 14px 0 0; font-size: 17px; }
.ver-otros a { font-weight: 700; }

/* ---------- Secciones ---------- */
.seccion { padding: 48px 0; }
.intro { font-size: 19px; color: var(--ink-2); max-width: 46ch; }

.grupo { margin-top: 28px; }
.grupo h3 { font-size: 22px; }
.mosaico-q { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 150px; gap: 6px; }
.mosaico-q img, .mosaico-l img, .mosaico-c img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius); }
.mosaico-q img:first-child { grid-row: span 2; }
.mosaico-q img:nth-child(4) { grid-column: span 2; }

/* Tarjetas de precio */
.tarjetas { display: grid; gap: 16px; margin-top: 32px; }
.tarjeta {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--sombra); padding: 22px 20px; display: flex; flex-direction: column;
}
.tarjeta h3 { font-size: 26px; color: var(--rosa); }
.precio { display: flex; flex-direction: column; margin-bottom: 12px; }
.precio s { font-size: 15px; color: var(--ink-2); }
.precio-label { font-size: 15px; font-weight: 700; color: var(--ink-2); margin-top: 4px; }
.precio strong { font-family: var(--f-txt); font-weight: 800; font-size: 36px; line-height: 1.1; letter-spacing: -0.5px; color: var(--ink); font-variant-numeric: tabular-nums; }
.precio .consulta { font-family: var(--f-txt); font-size: 22px; font-weight: 800; }
.paq { font-weight: 800; color: var(--rosa); }
.tarjeta ul { margin: 0 0 18px; padding: 0; list-style: none; }
.tarjeta li { padding: 6px 0 6px 28px; position: relative; border-top: 1px solid var(--line); }
.tarjeta li::before { content: "✓"; position: absolute; left: 4px; color: var(--rosa); font-weight: 800; }
.tarjeta .btn { margin-top: auto; }
.tarjeta-nota { font-size: 16px; color: var(--ink-2); }
.nota { font-size: 16px; color: var(--ink-2); margin-top: 18px; }

/* ---------- Prequince ---------- */
.seccion-pre { padding-bottom: 0; }
.enlace-castillo {
  display: grid; grid-template-columns: 40% 1fr; align-items: center; gap: 14px;
  margin-top: 20px; background: #fff; border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--sombra); overflow: hidden;
  color: var(--ink); text-decoration: none; font-weight: 700; font-size: 17px;
}
.enlace-castillo img { width: 100%; height: 140px; object-fit: cover; }
.enlace-castillo span { padding: 10px 12px 10px 0; }
.enlace-castillo u { color: var(--rosa); }

.lugar { padding: 36px 0; }
.lugar-alt { background: var(--bg-2); }
.lugar-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 6px; }
.lugar h3 { font-size: 26px; margin: 0; }
.acceso { display: inline-block; padding: 3px 12px; border: 1px solid var(--rosa); color: var(--rosa); border-radius: 999px; font-size: 14px; font-weight: 700; background: #fff; }
.mosaico-l { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 110px; gap: 6px; margin: 12px 0 18px; }
.mosaico-l img:first-child { grid-column: span 2; grid-row: span 2; }
.otro-lugar { padding-top: 32px; padding-bottom: 48px; }
.otro-lugar p { font-size: 19px; font-weight: 600; }

/* ---------- Castillo ---------- */
.castillo { background: var(--bg-2); padding-top: 0; }
.cast-hero { position: relative; height: 60svh; min-height: 320px; }
.cast-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.cast-hero::after { content: ""; position: absolute; inset: 0; background: var(--degradado); }
.cast-titulo { position: absolute; z-index: 1; left: 16px; right: 16px; bottom: 22px; color: #fff; max-width: 1180px; }
.cast-titulo h2 { color: #fff; font-size: 38px; margin: 0; }
.cast-titulo p { font-size: 19px; font-weight: 700; margin: 4px 0 0; }
.razones { list-style: none; padding: 0; margin: 24px 0; display: grid; gap: 10px; }
.razones li { display: flex; align-items: center; gap: 12px; font-weight: 700; background: #fff; border-radius: var(--radius); padding: 12px 16px; border: 1px solid var(--line); }
.razones .ph { font-size: 30px; color: var(--rosa); flex: none; }
.mosaico-c { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 140px; grid-auto-flow: dense; gap: 6px; }
.mosaico-c .c1, .mosaico-c .c4, .mosaico-c .c8 { grid-row: span 2; }
.info { display: flex; gap: 12px; align-items: flex-start; margin-top: 24px; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; font-size: 17px; }
.info .ph { font-size: 28px; color: var(--rosa); flex: none; }
.info p { margin: 0; }

/* ---------- Bodas ---------- */
.boda { padding: 0; overflow: hidden; }
.boda-foto { width: 100%; height: 180px; object-fit: cover; object-position: center 30%; }
.boda-foto.b-completa { object-position: center 15%; }
.boda-cuerpo { padding: 18px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.cubre { color: var(--ink-2); }
.masonry { columns: 2; column-gap: 6px; margin-top: 32px; }
.masonry img { width: 100%; height: auto; margin-bottom: 6px; border-radius: var(--radius); break-inside: avoid; object-fit: cover; }

/* ---------- Otros ---------- */
.seccion-otros { background: var(--bg-2); }
.otros {
  display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory;
  margin: 16px -16px 0; padding: 0 16px 8px; scrollbar-width: none;
}
.otros::-webkit-scrollbar { display: none; }
.otro { flex: none; width: 150px; height: 200px; scroll-snap-align: start; }

/* ---------- Confianza ---------- */
.conf-bloques { display: grid; gap: 16px; }
.conf { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--sombra); padding: 20px; }
.premio { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.premio-img { width: 150px; height: auto; border-radius: 14px; flex: none; }
.premio-txt { flex: 1 1 200px; min-width: 0; }
.premio-txt > p:first-child { margin: 0; display: flex; flex-direction: column; }
.premio strong { font-size: 19px; }
.premio-txt > p:first-child span { color: var(--ink-2); font-size: 16px; }
.insignias { display: flex; gap: 8px; margin-top: 12px; }
.insignia { width: 72px; height: auto; border-radius: 8px; }
.premio-anios { margin: 6px 0 0; font-size: 14px; color: var(--ink-2); }
.citas { display: grid; gap: 12px; }
.cita { margin: 0; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 20px; }
.stars-s { display: inline-flex; align-items: center; gap: 2px; color: #E0A100; font-size: 16px; }
.stars-s b { color: var(--ink); font-size: 15px; margin-left: 6px; }
.cita blockquote { margin: 8px 0 12px; font-family: var(--f-txt); font-size: 18px; }
.cita figcaption { display: flex; flex-direction: column; line-height: 1.3; }
.cita figcaption span { color: var(--ink-2); font-size: 14px; }
.ver-opiniones { font-size: 15px; margin: 12px 0 0; }
.google { text-align: center; }
.nota-g { display: block; font-family: var(--f-disp); font-size: 56px; font-weight: 700; line-height: 1; }
.stars { display: inline-flex; gap: 2px; color: #E0A100; font-size: 28px; margin: 6px 0; }
.google p { margin: 0 0 4px; font-weight: 700; }
.google a { font-weight: 700; }
.confianza h3 { margin-top: 32px; }
.videos { display: grid; gap: 12px; }
.video { display: block; text-decoration: none; color: var(--ink); font-weight: 700; }
.video-img { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--radius); background: var(--ink); }
.video-img img { width: 100%; height: 100%; object-fit: cover; }
.video-img .ph-fill { position: absolute; inset: 0; margin: auto; width: 64px; height: 64px; font-size: 64px; color: #fff; filter: drop-shadow(0 2px 8px rgba(0, 0, 0, .5)); }
.video-t { display: block; padding-top: 6px; }

/* ---------- Contacto ---------- */
.contacto { background: var(--bg-2); padding-bottom: 32px; }
.tel { text-align: center; font-size: 22px; font-weight: 800; margin-top: 12px; }
.tel a { color: var(--ink); text-decoration: none; }
.cupon { text-align: center; font-weight: 700; color: var(--rosa); }
.datos { list-style: none; padding: 0; margin: 24px 0; display: grid; gap: 14px; }
.datos li { display: flex; gap: 12px; align-items: flex-start; }
.datos .ph { font-size: 28px; color: var(--rosa); flex: none; }
.datos a { font-weight: 700; overflow-wrap: anywhere; }
.redes { display: flex; gap: 12px; justify-content: center; margin: 8px 0 24px; }
.redes a { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 1px solid var(--line); color: var(--rosa); font-size: 26px; text-decoration: none; }
.redes a:hover { background: var(--rosa); color: #fff; }
.pago { text-align: center; font-size: 15px; color: var(--ink-2); }
.pago a { color: var(--ink-2); text-decoration: underline; }

.pie { text-align: center; padding: 24px 16px calc(96px + env(safe-area-inset-bottom)); }
.pie p { margin: 0; font-family: var(--f-disp); font-weight: 700; }
.pie .atelier { font-family: var(--f-txt); font-weight: 400; font-size: 13px; margin-top: 6px; }
.pie .atelier a { color: var(--ink-2); }

/* ---------- WhatsApp flotante ---------- */
.wa-flotante {
  position: fixed; z-index: 60;
  right: 16px; bottom: calc(16px + env(safe-area-inset-bottom));
  width: 64px; height: 64px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--wa); color: #fff; font-size: 34px; text-decoration: none;
  box-shadow: 0 8px 24px rgba(22, 112, 61, .35);
  transition: background-color .2s ease, transform .1s ease;
}
.wa-flotante:hover { background: var(--wa-dark); }
.wa-flotante:active { transform: scale(.96); }

/* ---------- Aparición ---------- */
.js .reveal { opacity: 0; transform: translateY(16px); transition: opacity .5s ease, transform .5s ease; }
.js .reveal.visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .js .reveal { opacity: 1; transform: none; }
}

/* ---------- Escritorio ---------- */
@media (min-width: 900px) {
  body { font-size: 19px; }
  h2 { font-size: 44px; }
  .atajos { justify-content: center; }
  .marca span { font-size: 20px; }
  .marca small { font-size: 14px; }
  .hero { height: min(46vh, 460px); }
  .hero-txt { left: max(16px, calc((100% - 1180px) / 2 + 16px)); right: 16px; bottom: 22px; }
  .inicio-txt { padding-top: 14px; padding-bottom: 48px; }
  h1 { font-size: 52px; }
  .lema { font-size: 21px; }
  .pregunta { font-size: 22px; margin-top: 4px; }
  .tiles { grid-template-columns: repeat(4, 1fr); gap: 12px; }
  .tile { height: 220px; }
  .premio-img { width: 180px; }
  .citas { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .seccion { padding: 72px 0; }
  .seccion-pre { padding-bottom: 0; }
  .mosaico-q { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 280px; }
  .mosaico-q img:first-child { grid-row: auto; }
  .mosaico-q img:nth-child(4) { grid-column: auto; }
  .tarjetas { grid-template-columns: repeat(3, 1fr); }
  .enlace-castillo { grid-template-columns: 1fr 1fr; font-size: 22px; }
  .enlace-castillo img { height: 260px; }
  .lugar { padding: 48px 0; }
  .lugar .btn { min-width: 320px; }
  .m6 { grid-template-columns: repeat(6, 1fr); grid-auto-rows: 160px; }
  .m6 img:nth-child(2) { grid-column: span 2; grid-row: span 2; }
  .m3 { grid-auto-rows: 200px; }
  .cast-hero { height: 80vh; }
  .cast-titulo { left: max(16px, calc((100% - 1180px) / 2 + 16px)); bottom: 40px; }
  .cast-titulo h2 { font-size: 60px; }
  .cast-titulo p { font-size: 23px; }
  .razones { grid-template-columns: repeat(3, 1fr); margin: 32px 0; }
  .mosaico-c { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; }
  .mosaico-c .c1 { grid-column: span 2; }
  .masonry { columns: 4; }
  .otros { display: grid; grid-template-columns: repeat(5, 1fr); overflow: visible; margin: 16px 0 0; padding: 0; }
  .otro { width: auto; height: 300px; }
  .conf-bloques { grid-template-columns: 2fr 1fr; }
  .videos { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .contacto .contenedor { max-width: 720px; }
}

/* Logo oficial de WhatsApp (Simple Icons) */
.ico-wa { width: 24px; height: 24px; flex: none; fill: currentColor; }
.btn-sm .ico-wa { width: 20px; height: 20px; }
.wa-flotante .ico-wa { width: 34px; height: 34px; }

/* =========================================================
   Rediseño v2: base neutra como su web, magenta del logo solo como acento
   ========================================================= */
:root {
  --f-disp: "Bricolage Grotesque", system-ui, sans-serif;
  --f-txt: "Figtree", system-ui, sans-serif;
  --bg: #F6F6F4; --bg-2: #ECEBE8; --ink: #16141A; --ink-2: #57525C;
  --rosa: #B5155F; --rosa-2: #B5155F; --line: #DCDAD6;
  --radius: 6px; --sombra: none;
}
body { background: var(--bg); color: var(--ink); font-family: var(--f-txt); }
h1, h2, h3 { font-family: var(--f-disp); font-weight: 700; letter-spacing: -0.02em; }
h2 { font-size: 36px; line-height: 1.02; font-weight: 800; }
h3 { line-height: 1.1; }
.intro { color: var(--ink-2); max-width: 46ch; }

/* Botones: rectángulo suave, sin sombra */
.btn { border-radius: 8px; box-shadow: none; font-weight: 700; letter-spacing: .1px; }

/* Cabecera blanca y atajos como pestañas */
.cabecera { background: rgba(255,255,255,.96); }
.marca span { font-family: var(--f-disp); font-weight: 800; letter-spacing: -0.02em; }
.marca small { font-family: var(--f-txt); }
.atajos { gap: 4px; padding-bottom: 0; }
.atajos a {
  height: 44px; padding: 0 12px; border: 0; border-radius: 0; background: transparent;
  color: var(--ink-2); font-weight: 600; border-bottom: 3px solid transparent;
}
.atajos a.activo { background: transparent; color: var(--ink); border-bottom-color: var(--rosa); }

/* Inicio */
.hero-txt h1 { font-weight: 800; letter-spacing: -0.03em; line-height: 1; }
.pregunta { font-family: var(--f-disp); font-weight: 700; letter-spacing: -0.01em; }
.tile, .otro { border-radius: var(--radius); box-shadow: none; }
.tile-txt strong { font-family: var(--f-disp); font-weight: 800; letter-spacing: -0.02em; font-size: 22px; line-height: 1; }
.estrellas a, .ver-otros a { color: var(--ink); text-decoration-color: var(--rosa); text-underline-offset: 4px; }

/* Fotos */
.mosaico-q img, .mosaico-l img, .mosaico-c img, .masonry img, .enlace-castillo img, .video-img, .boda-foto { border-radius: var(--radius); }
.grupo h3 { font-size: 22px; }

/* Paquetes: sin caja, regla superior y número grande */
.tarjetas { gap: 28px; }
.tarjeta { background: transparent; border: 0; border-top: 2px solid var(--ink); border-radius: 0; box-shadow: none; padding: 18px 0 0; }
.tarjeta h3 { color: var(--ink); font-size: 26px; }
.precio s { text-decoration: none; font-size: 15px; }
.precio-label { color: var(--rosa); font-weight: 700; }
.precio strong { font-family: var(--f-disp); font-weight: 800; font-size: 44px; letter-spacing: -0.03em; }
.tarjeta ul { border: 0; }
.tarjeta li { border: 0 !important; padding: 5px 0 !important; color: var(--ink-2); }
.tarjeta li::before { content: none !important; }
.tarjeta-nota, .nota { color: var(--ink-2); }

/* Prequince */
.lugar-alt { background: var(--bg-2); }
.lugar h3 { font-size: 28px; font-weight: 800; }
.acceso { border: 0; padding: 0; background: none; color: var(--rosa); font-weight: 700; font-size: 15px; }
.enlace-castillo { background: var(--ink); color: #F4F2F0; border: 0; box-shadow: none; border-radius: var(--radius); overflow: hidden; }
.enlace-castillo u, .enlace-castillo a { color: #fff; text-decoration-color: var(--rosa); }

/* Museo El Castillo: bloque oscuro tipo portada */
.castillo { --ink: #F4F2F0; --ink-2: #BDB7C0; --line: #3A3540; background: #16141A; color: var(--ink); }
.castillo .tarjeta { border-top-color: #F4F2F0; }
.castillo .razones li { background: transparent; border: 0; border-top: 1px solid var(--line); border-radius: 0; box-shadow: none; padding-left: 0; color: var(--ink); }
.castillo .info { background: transparent; border: 1px solid var(--line); color: var(--ink-2); box-shadow: none; }
.castillo .razones .ph, .castillo .info .ph { color: #E46AA0; }
.cast-titulo h2 { font-size: 46px; letter-spacing: -0.03em; }

/* Bodas */
.boda { background: transparent; border: 0; box-shadow: none; border-radius: 0; }
.boda-cuerpo { padding: 16px 0 0; }

/* Otros servicios */
.seccion-otros { background: var(--bg); }

/* Confianza: sin cajas */
.conf, .google { background: transparent !important; border: 0 !important; box-shadow: none !important; }
.citas { gap: 28px; }
.cita { background: transparent; border: 0; border-top: 2px solid var(--ink); border-radius: 0; padding: 18px 0 0; box-shadow: none; }
.cita blockquote { font-family: var(--f-disp); font-weight: 500; font-size: 21px; line-height: 1.35; letter-spacing: -0.01em; color: var(--ink); }
.google p:first-child, .google strong { font-family: var(--f-disp); }

/* Contacto */
.contacto { background: var(--bg-2); }
.cupon { color: var(--rosa); }
.datos .ph, .razones .ph, .info .ph { color: var(--rosa); }
.redes a { border-radius: 50%; box-shadow: none; }

@media (min-width: 900px) {
  h2 { font-size: 56px; }
  .hero-txt h1 { font-size: 64px; }
  .cast-titulo h2 { font-size: 80px; }
  .precio strong { font-size: 48px; }
  .tarjetas { gap: 40px; }
  .citas { gap: 40px; }
}
.castillo .precio-label, .castillo .info a { color: #F29BC2; }

/* =========================================================
   v3: fotos como copias impresas (marco blanco, sombra de papel, leve giro)
   ========================================================= */
.mosaico-q img, .mosaico-l img, .mosaico-c img, .masonry img, .boda-foto, .enlace-castillo img {
  background: #fff; padding: 6px; border-radius: 2px; object-position: center 22%;
  box-shadow: 0 1px 2px rgba(22,20,26,.10), 0 10px 24px -8px rgba(22,20,26,.28);
}
.castillo .mosaico-c img { background: #F4F2F0; box-shadow: 0 12px 28px -10px rgba(0,0,0,.7); }
.mosaico-q, .mosaico-l, .mosaico-c { gap: 12px; }
.masonry { column-gap: 12px; }
.masonry img { margin-bottom: 12px; }
/* leve giro alterno, como fotos sobre la mesa */
.mosaico-q img:nth-child(3n+2), .mosaico-l img:nth-child(3n+2), .mosaico-c img:nth-child(4n+2), .masonry img:nth-child(3n+2) { transform: rotate(-1.2deg); }
.mosaico-q img:nth-child(3n), .mosaico-l img:nth-child(3n), .mosaico-c img:nth-child(4n), .masonry img:nth-child(3n) { transform: rotate(1deg); }
.lugar, #quinces, .castillo, #bodas { overflow-x: clip; }

/* Botones del inicio y de otros servicios: tipo polaroid con la leyenda debajo */
.tile, .otro {
  display: flex; flex-direction: column; background: #fff; padding: 7px 7px 0; border-radius: 2px;
  box-shadow: 0 1px 2px rgba(22,20,26,.10), 0 12px 26px -10px rgba(22,20,26,.32); color: var(--ink);
}
.tile::after, .otro::after { content: none; }
.tile img, .otro img { flex: 1; min-height: 0; height: auto; object-position: center 22%; }
.tile-txt { position: static; padding: 8px 4px 10px; color: var(--ink); }
.tile-txt strong { font-size: 19px; }
.tile-txt small { color: var(--ink-2); font-size: 14px; }
.tile { height: 172px; }
.tiles { gap: 14px 12px; }
.tiles .tile:nth-child(1) { transform: rotate(-1.5deg); }
.tiles .tile:nth-child(2) { transform: rotate(1.2deg); }
.tiles .tile:nth-child(3) { transform: rotate(1deg); }
.tiles .tile:nth-child(4) { transform: rotate(-1.2deg); }
.tile:hover, .tile:focus-visible { transform: rotate(0) translateY(-2px); }
.tile:hover img, .otro:hover img { transform: none; }
.otro { height: 236px; }
.otros { padding-top: 8px; padding-bottom: 18px; }
.otros .otro:nth-child(odd) { transform: rotate(-1deg); }
.otros .otro:nth-child(even) { transform: rotate(1deg); }
#inicio { overflow-x: clip; }
.hero { height: clamp(220px, 30svh, 280px); }

/* Jardín Botánico y La Guayacana (3 fotos): verticales, sin recortar caras */
.m3 { grid-template-columns: 1.3fr 1fr; grid-auto-rows: 150px; }
.m3 img:first-child { grid-column: 1; grid-row: span 2; }

@media (min-width: 900px) {
  .tile { height: 250px; }
  .otro { height: 320px; }
  .hero { height: min(42vh, 420px); }
  .m3 { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 420px; }
  .m3 img:first-child { grid-row: auto; }
  .mosaico-q, .mosaico-l, .mosaico-c { gap: 16px; }
}
@media (prefers-reduced-motion: reduce) { .tile:hover { transform: none; } }

/* =========================================================
   v4: hero de estudio, botones sobrios, paquetes con datos clave
   ========================================================= */
/* Botones: negro con el logo de WhatsApp en verde; verde lleno solo en flotante y contacto */
.btn-wa { background: var(--ink); color: #fff; }
.btn-wa:hover { background: #2E2A33; }
.btn-wa .ico-wa { color: #25D366; }
.castillo .btn-wa { background: #F4F2F0; color: #16141A; }
.castillo .btn-wa:hover { background: #fff; }
.castillo .btn-wa .ico-wa { color: #128C4A; }
.cabecera .btn-wa { background: transparent; color: var(--ink); border: 1.5px solid var(--ink); }
.cabecera .btn-wa .ico-wa { color: #128C4A; }
.contacto .btn-wa { background: var(--wa); }
.contacto .btn-wa .ico-wa { color: #fff; }
.contacto .btn-wa:hover { background: var(--wa-dark); }

/* Hero de estudio: fondo oscuro + abanico de copias impresas */
.hero { display: block; height: auto; background: #16141A; color: #F4F2F0; overflow: hidden; position: relative; }
.hero::after { content: none; }
.hero img { height: 100%; }
.hero-in { display: grid; gap: 6px; padding-top: 18px; padding-bottom: 8px; }
.hero-txt { position: static; padding: 0; }
.hero-kicker { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #F29BC2; margin: 0 0 4px; }
.hero-txt h1 { font-size: 34px; line-height: .98; letter-spacing: -0.035em; margin: 0 0 6px; color: #fff; text-shadow: none; }
.hero-txt .lema { color: #CFC9D2; font-size: 16px; margin: 0 0 2px; text-shadow: none; }
.hero .estrellas { margin: 0; font-size: 14px; }
.hero .estrellas a { color: #fff; text-decoration-color: #F29BC2; }
.collage { position: relative; height: 178px; margin: 0 -4px; }
.collage .p { position: absolute; margin: 0; background: #fff; padding: 5px 5px 16px; box-shadow: 0 14px 30px -10px rgba(0,0,0,.75); }
.collage .p img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; padding: 0; box-shadow: none; }
.collage .p1 { left: 0; top: 18px; width: 30%; height: 150px; transform: rotate(-6deg); z-index: 2; }
.collage .p2 { left: 25%; top: 2px; width: 28%; height: 150px; transform: rotate(3deg); z-index: 3; }
.collage .p3 { left: 50%; top: 22px; width: 27%; height: 140px; transform: rotate(-3deg); z-index: 2; }
.collage .p4 { left: 73%; top: 6px; width: 27%; height: 150px; transform: rotate(5deg); z-index: 1; }
.inicio-txt { padding-top: 16px; }
.estrellas { margin-bottom: 0; }

@media (min-width: 900px) {
  .hero-in { grid-template-columns: 1fr 1.15fr; align-items: center; padding-top: 28px; padding-bottom: 28px; min-height: 0; }
  .hero-kicker { font-size: 14px; }
  .hero-txt h1 { font-size: 66px; }
  .hero-txt .lema { font-size: 21px; margin-bottom: 10px; }
  .collage { height: 330px; }
  .collage .p { padding: 8px 8px 26px; }
  .collage .p1 { left: 0; top: 30px; width: 30%; height: 270px; }
  .collage .p2 { left: 24%; top: 0; width: 30%; height: 290px; }
  .collage .p3 { left: 48%; top: 40px; width: 28%; height: 260px; }
  .collage .p4 { left: 70%; top: 10px; width: 30%; height: 280px; }
  .tile { height: 236px; }
}
@media (prefers-reduced-motion: no-preference) {
  .collage .p { transition: transform .5s cubic-bezier(.16,1,.3,1); }
  .collage:hover .p1 { transform: rotate(-8deg) translateX(-6px); }
  .collage:hover .p4 { transform: rotate(7deg) translateX(6px); }
}

/* Paquetes: datos clave como cifras, precio primero */
.precio { margin-bottom: 14px; }
.precio s { order: 3; text-decoration: none; color: var(--ink-2); font-size: 14px; margin-top: 2px; }
.datos-paq { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 0 14px; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.datos-paq div { padding: 0 10px; border-left: 1px solid var(--line); }
.datos-paq div:first-child { padding-left: 0; border-left: 0; }
.datos-paq dt { font-family: var(--f-disp); font-weight: 800; font-size: 24px; letter-spacing: -0.02em; line-height: 1.05; }
.datos-paq dd { margin: 2px 0 0; font-size: 13px; color: var(--ink-2); line-height: 1.25; }
.tarjeta ul { margin: 0 0 16px; padding: 0; list-style: none; }
.tarjeta li { font-size: 16px; }
.tarjeta { display: flex; flex-direction: column; }
.tarjeta .btn { margin-top: auto; }

/* Móvil: paquetes en carrusel deslizable */
@media (max-width: 899px) {
  .tarjetas { display: grid; grid-auto-flow: column; grid-auto-columns: 84%; grid-template-columns: none; gap: 18px;
    overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -16px; padding: 4px 16px 10px; scrollbar-width: none; }
  .tarjetas::-webkit-scrollbar { display: none; }
  .tarjeta { scroll-snap-align: start; }
}
/* v4 ajustes */
@media (max-width: 899px) {
  .collage { height: 150px; }
  .collage .p1, .collage .p2, .collage .p4 { height: 128px; }
  .collage .p3 { height: 120px; }
  .hero-in { padding-top: 14px; padding-bottom: 4px; gap: 4px; }
  .hero-txt h1 { font-size: 32px; }
  .inicio-txt { padding-top: 12px; }
  .tarjetas { scroll-padding-inline: 16px; margin: 0 -16px; padding-left: 16px; padding-right: 16px; }
}
/* CTA de sección: secundario (contorno), para no competir con "Cotizar este paquete" */
.btn-wa.btn-xl:not(.btn-xxl) { background: transparent; color: var(--ink); border: 2px solid var(--ink); }
.btn-wa.btn-xl:not(.btn-xxl):hover { background: var(--ink); color: #fff; }
.btn-wa.btn-xl:not(.btn-xxl) .ico-wa { color: #128C4A; }
.castillo .btn-wa.btn-xl:not(.btn-xxl) { color: #F4F2F0; border-color: #F4F2F0; background: transparent; }
.castillo .btn-wa.btn-xl:not(.btn-xxl):hover { background: #F4F2F0; color: #16141A; }
.castillo .btn-wa.btn-xl:not(.btn-xxl) .ico-wa { color: #25D366; }

/* =========================================================
   Muro de reseñas 3D (reciclado de realismomagico-preview, adaptado a esta paleta)
   ========================================================= */
.confianza { padding-bottom: 0; }
.conf-bloques { grid-template-columns: 1fr !important; }
.rev { background: #16141A; color: #F4F2F0; padding: 64px 0; overflow: hidden; margin: 40px 0; }
.rev__in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; align-items: center; }
.rev__side { display: grid; gap: 10px; justify-items: start; position: relative; z-index: 2; }
.rev__t { color: #fff; margin: 0; }
.rev__score { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; margin: 4px 0 0; }
.rev__n { font-family: var(--f-disp); font-weight: 800; font-size: clamp(80px, 12vw, 140px); line-height: .8; letter-spacing: -0.05em; }
.rev__stars { font-size: 22px; letter-spacing: .12em; color: #E0A100; }
.rev__of { font-size: 14px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #BDB7C0; margin: 0; }
.rev__sum { max-width: 30ch; font-size: 18px; line-height: 1.5; color: #E6E1E8; margin: 0; }
.rev__links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 4px 0 0; }
.rev__links a { color: #fff; font-weight: 700; text-decoration-color: #F29BC2; text-underline-offset: 4px; }

.wall {
  position: relative; height: 34rem; margin-inline: -16px; overflow: hidden; perspective: 900px;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 14%, #000 86%, transparent 100%), linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(180deg, transparent 0%, #000 14%, #000 86%, transparent 100%), linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
  mask-composite: intersect;
}
.wall__tilt {
  position: absolute; inset: -30% -10%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding-inline: 16px;
  transform: rotateX(16deg) rotateY(-6deg) rotateZ(7deg) translateX(5%); transform-style: preserve-3d;
}
.wall__col { min-width: 0; overflow: hidden; }
.wall__col--3, .wall__col--4 { display: none; }
.wall__track { display: flex; flex-direction: column; gap: 14px; animation: wallUp var(--dur, 60s) linear infinite; will-change: transform; animation-play-state: paused; }
.wall__col.is-rev .wall__track { animation-direction: reverse; --dur: 70s; }
.wall__col--3 .wall__track { --dur: 64s; }
.wall__set { display: flex; flex-direction: column; gap: 14px; }
@keyframes wallUp { from { transform: translateY(0); } to { transform: translateY(calc(-50% - 7px)); } }
.wall.is-on .wall__track { animation-play-state: running; }
.wall.is-on:hover .wall__track, .wall.is-on:focus-within .wall__track { animation-play-state: paused; }

.rcard { margin: 0; background: #fff; color: #16141A; border-radius: 2px; padding: 16px 16px 18px; display: grid; gap: 8px; box-shadow: 0 14px 30px -12px rgba(0,0,0,.7); }
.rcard__who { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rcard__av { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-family: var(--f-disp); font-weight: 800; font-size: 17px; color: #fff; }
.rcard__av.t1 { background: #B5155F; } .rcard__av.t2 { background: #3E3A44; } .rcard__av.t3 { background: #7A5A2E; } .rcard__av.t4 { background: #2D4A39; }
.rcard__id { display: grid; min-width: 0; }
.rcard__id b { font-weight: 700; font-size: 15px; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rcard__id span { font-size: 12px; color: #57525C; }
.rcard__stars { font-size: 14px; letter-spacing: .14em; color: #E0A100; line-height: 1; margin: 0; }
.rcard__q { margin: 0; }
.rcard__q p { font-size: 16px; line-height: 1.45; margin: 0; }

@media (max-width: 959px) {
  .wall { min-width: 0; height: auto; perspective: none; -webkit-mask-image: none; mask-image: none; overflow: visible; }
  .wall__tilt { position: static; transform: none; display: flex; align-items: flex-start; gap: 12px; padding: 4px 16px 20px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 16px; scrollbar-width: none; }
  .wall__tilt::-webkit-scrollbar { display: none; }
  .wall__col, .wall__col--3, .wall__col--4, .wall__track, .wall__set { display: contents; }
  .wall__set[aria-hidden] { display: none; }
  .rcard { flex: 0 0 min(80vw, 22rem); scroll-snap-align: start; align-content: start; }
  .rcard__q p { font-size: 17px; }
}
@media (min-width: 960px) {
  .rev { padding: 96px 0; }
  .rev__in { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 48px; }
  .wall { height: 40rem; }
  .wall__tilt { grid-template-columns: repeat(4, minmax(0, 1fr)); inset: -28% -6% -28% -2%; transform: rotateX(18deg) rotateY(-8deg) rotateZ(12deg); }
  .wall__col--3, .wall__col--4 { display: block; }
}
@media (prefers-reduced-motion: reduce) {
  .wall__track { animation: none; }
  .wall__tilt { transform: none; inset: 0; }
  .wall { height: auto; max-height: 40rem; overflow: auto; -webkit-mask-image: none; mask-image: none; }
  .wall__set[aria-hidden] { display: none; }
}

/* foto ancha del mosaico de quinces en móvil: encuadre más alto para no cortar caras */
.mosaico-q img:nth-child(4) { object-position: center 35%; }


/* =========================================================
   multipágina: componentes de la web completa
   ========================================================= */
/* Hero de páginas interiores (mismo bloque oscuro del inicio) */
.hero-pag .hero-txt h1 { font-size: 32px; }
.cast-titulo h1 { color: #fff; font-size: 46px; letter-spacing: -0.03em; line-height: 1.02; margin: 0; }
.titulo-paq { margin-top: 48px; font-size: 32px; }

/* Enlaces "Ver ..." a otra página */
.ver-mas { margin: 14px 0 0; font-size: 18px; }
.ver-mas a { display: inline-flex; align-items: center; min-height: 48px; font-weight: 700; color: var(--ink);
  text-decoration: underline; text-decoration-color: var(--rosa); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.ver-mas-c { text-align: center; }
.castillo .ver-mas a { color: #F4F2F0; text-decoration-color: #F29BC2; }
.lugar .ver-mas { margin-top: 6px; }

/* Resúmenes del inicio */
.resumen { padding: 44px 0; }
.resumen-alt { background: var(--bg-2); }
.resumen .mosaico-l { margin-bottom: 8px; }

/* Grilla de portafolios (niñas y parejas) */
.seccion-port { background: var(--bg-2); }
.portafolios { margin-top: 18px; }
.tiles.portafolios .tile:nth-child(4n+1) { transform: rotate(-1.5deg); }
.tiles.portafolios .tile:nth-child(4n+2) { transform: rotate(1.2deg); }
.tiles.portafolios .tile:nth-child(4n+3) { transform: rotate(1deg); }
.tiles.portafolios .tile:nth-child(4n) { transform: rotate(-1.2deg); }
.tiles.portafolios .tile:hover, .tiles.portafolios .tile:focus-visible { transform: rotate(0) translateY(-2px); }
.portafolios .tile { height: 230px; }

/* Bloque de confianza corto (todas las páginas interiores) */
.conf-corto { padding: 36px 0; border-top: 1px solid var(--line); }
.conf-corto-in { display: flex; align-items: center; gap: 16px; }
.conf-corto-img { width: 84px; height: auto; flex: none; border-radius: 6px; }
.conf-corto-txt p { margin: 0 0 4px; }
.conf-corto-txt strong { font-size: 17px; line-height: 1.3; display: block; }
.conf-corto-g { font-weight: 700; }
.conf-corto-st { color: #E0A100; letter-spacing: .1em; }
.conf-corto-txt a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; color: var(--ink);
  text-decoration-color: var(--rosa); text-underline-offset: 4px; }

/* Pie con datos y enlaces a todas las páginas */
.pie { text-align: left; background: #16141A; color: #E6E1E8; padding-top: 40px; }
.pie a { color: #fff; }
.pie-in { display: grid; gap: 28px; }
.pie .pie-marca { font-family: var(--f-disp); font-weight: 800; font-size: 22px; color: #fff; margin: 0 0 12px; }
.pie .datos { margin: 0 0 16px; }
.pie .datos .ph { color: #F29BC2; }
.pie .datos span, .pie .datos li { font-family: var(--f-txt); font-size: 16px; }
.pie .redes { justify-content: flex-start; margin: 0; }
.pie .redes a { background: transparent; border-color: #3A3540; color: #fff; }
.pie .redes a:hover { background: #F4F2F0; color: #16141A; }
.pie-nav ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.pie-nav a { display: flex; align-items: center; min-height: 44px; font-weight: 600; font-size: 16px; text-decoration-color: #F29BC2; text-underline-offset: 4px; }
.pie .atelier { text-align: center; margin-top: 28px; }
.pie .atelier a { color: #BDB7C0; }

/* Paquetes: ancla con cabecera fija, tarjeta única (prequince) y mosaico de 8 (preparación de la novia) */
#paquetes { scroll-margin-top: calc(var(--alto-cabecera) + 8px); }
.tarjeta-unica { grid-auto-columns: 100%; }
.seccion-prep { background: var(--bg-2); }
.m8 img:last-child { grid-column: span 2; }
.pie .cupon { text-align: left; margin: 0 0 16px; color: #F29BC2; }

@media (min-width: 900px) {
  .tarjeta-unica { grid-template-columns: minmax(0, 420px); }
  .m8 { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 220px; }
  .hero-pag .hero-txt h1 { font-size: 58px; }
  .cast-titulo h1 { font-size: 80px; }
  .titulo-paq { font-size: 44px; }
  .resumen { padding: 64px 0; }
  .portafolios .tile { height: 320px; }
  .conf-corto-img { width: 110px; }
  .conf-corto-txt strong { font-size: 19px; }
  .pie-in { grid-template-columns: 1.2fr 1fr; gap: 48px; }
  .pie-nav ul { grid-template-columns: 1fr 1fr 1fr; align-content: start; }
}
@media (prefers-reduced-motion: reduce) { .tiles.portafolios .tile:hover { transform: none; } }

/* Plantilla de galería (locaciones, niñas, parejas, pre bodas) */
.seccion-gal { padding-top: 28px; overflow-x: clip; }
.gal-info { max-width: 62ch; margin-bottom: 8px; }
.gal-info .acceso { display: block; font-size: 17px; margin: 0 0 6px; }
.gal-info p { color: var(--ink-2); }
.gal-grupo + .gal-grupo { margin-top: 44px; }
.gal-titulo { font-size: 30px; margin: 0 0 4px; }
.gal-grupo .intro { margin: 0; }
.gal-masonry { margin-top: 16px; }
.seccion-gal .btn-xl { margin-top: 28px; }
.seccion-port .ver-mas { margin-top: 22px; }
@media (min-width: 900px) {
  .seccion-gal { padding-top: 48px; }
  .gal-titulo { font-size: 44px; }
  .seccion-gal .btn-xl { max-width: 520px; margin-left: auto; margin-right: auto; }
}


/* ===== Preguntas frecuentes y contacto (paginas_info.py) ===== */
.faq-lista { max-width: 820px; }
.faq { border-top: 2px solid var(--ink); }
.faq:last-of-type { border-bottom: 2px solid var(--ink); }
.faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 64px; padding: 16px 0; font-family: var(--f-disp); font-weight: 700; font-size: 21px; line-height: 1.2; letter-spacing: -0.01em; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .ph { flex: none; font-size: 26px; color: var(--rosa); transition: transform .25s ease; }
.faq[open] summary .ph { transform: rotate(45deg); }
.faq-r { padding: 0 0 20px; max-width: 65ch; color: var(--ink-2); }
.faq-r p { margin: 0 0 12px; }
.faq-r ul { margin: 0 0 12px; padding-left: 20px; }
.faq-r li { margin-bottom: 6px; }
.faq-enlace a { color: var(--ink); font-weight: 700; text-decoration-color: var(--rosa); text-underline-offset: 4px; }
.faq-cta { margin-top: 40px; display: grid; gap: 12px; justify-items: start; }
.faq-cta p { font-family: var(--f-disp); font-weight: 700; font-size: 22px; margin: 0; }
.contacto-pag .contenedor { max-width: 720px; }
.contacto-museo { margin: 24px 0; }
@media (min-width: 900px) { .faq summary { font-size: 24px; } }
@media (prefers-reduced-motion: reduce) { .faq summary .ph { transition: none; } }

/* Precios: índice y datos clave que se adaptan a 2 o 3 cifras */
.precios-indice { display: flex; flex-wrap: wrap; gap: 8px 18px; padding-top: 24px; padding-bottom: 8px; }
.precios-indice a { color: var(--ink); font-weight: 700; text-decoration-color: var(--rosa); text-underline-offset: 4px; }
.precios-grupo + .precios-grupo { padding-top: 32px; }
.datos-paq { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
.datos-paq dt { font-size: 21px; }
@media (min-width: 900px) { .datos-paq dt { font-size: 24px; } }

/* ===== Otros servicios (pagina_otros.py) ===== */
.otros-sec { padding-top: 40px; }
.otros-alt { background: var(--bg-2); }
.otros-sec .tarjetas { margin-top: 28px; }
.otros-sec .btn-xl { margin-top: 28px; }
.lista-book { margin: 28px 0 0; padding: 0; list-style: none; max-width: 62ch; }
.lista-book li { padding: 14px 0; border-top: 1px solid var(--line); font-size: 18px; }
.lista-book li:last-child { border-bottom: 1px solid var(--line); }
@media (min-width: 900px) {
  .otros-sec { padding-top: 64px; }
  .otros-sec .btn-xl { max-width: 520px; margin-left: auto; margin-right: auto; }
}
