/* =========================================================
   LA POSADA DEL CASTILLO — motor de reserva paso a paso
   Hoja de estilos autónoma (sin frameworks externos) para
   que la web se vea igual en cualquier entorno.
   Paleta construida sobre la foto real del salón: azulejo
   hexagonal en terracota, cal blanca, forja negra, nogal.
   ========================================================= */

:root{
  --linen:#F5EFDE;        /* crema del sello del logo */
  --linen-dark:#EBE2C8;
  --olive:#15130F;        /* carbón casi negro — superficie "tech" oscura */
  --olive-light:#3A342A;
  --olive-dark:#0A0908;
  --terracotta:#B9893F;   /* dorado antiguo del logo */
  --terracotta-light:#D6B171;
  --terracotta-dark:#8C6528;
  --bark:#2A2118;
  --ink:#1C1710;
  --sage:#57706B;         /* verde-pizarra — acento de mapa/senda */
  --shadow-soft: 0 24px 50px -18px rgba(0,0,0,.45);
  --shadow-card: 0 10px 26px -12px rgba(0,0,0,.3);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; color-scheme:light only; }
body{
  color-scheme:light only;
  font-family:'Manrope', -apple-system, 'Segoe UI', sans-serif;
  background-color:var(--linen);
  color:var(--ink);
  background-image: radial-gradient(rgba(59,42,28,.045) 1px, transparent 1px);
  background-size:16px 16px;
  line-height:1.5;
  overflow-x:hidden;
}
h1,h2,h3,h4,.font-display{ font-family:'Manrope', sans-serif; font-weight:800; line-height:1.05; letter-spacing:-.02em; }
.font-mono{ font-family:'JetBrains Mono', monospace; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
ul{ list-style:none; }
input,select{ font-family:inherit; font-size:inherit; color:inherit; }
::selection{ background:var(--terracotta); color:var(--linen); }
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--linen); }
::-webkit-scrollbar-thumb{ background:var(--sage); border-radius:10px; border:2px solid var(--linen); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible{
  outline:2px solid var(--terracotta); outline-offset:3px; border-radius:4px;
}

.container{ max-width:1200px; margin:0 auto; padding:0 20px; }
.container-narrow{ max-width:820px; margin:0 auto; padding:0 20px; }
.hidden{ display:none !important; }
.visually-hidden{ position:absolute; width:1px;height:1px; overflow:hidden; clip:rect(0 0 0 0); }

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 28px; border-radius:3px; font-weight:600; font-size:.85rem;
  text-transform:uppercase; letter-spacing:.06em;
  transition:transform .2s ease, background-color .2s ease, box-shadow .2s ease, border-color .2s ease, opacity .2s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-1px); }
.btn-terracotta{ background:var(--terracotta); color:var(--olive-dark); box-shadow:var(--shadow-card); font-weight:800; }
.btn-terracotta:hover{ background:var(--terracotta-light); }
.btn-olive{ background:var(--olive); color:var(--linen); }
.btn-olive:hover{ background:var(--olive-dark); }
.btn-outline-dark{ border:1px solid rgba(36,31,26,.18); color:var(--ink); }
.btn-outline-dark:hover{ border-color:var(--olive); }
.btn-ghost{ color:var(--ink); opacity:.6; padding:14px 10px; }
.btn-ghost:hover{ opacity:1; }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.35; cursor:not-allowed; transform:none; }
.btn-sm{ padding:10px 18px; font-size:.75rem; }

/* ---------- Eyebrow ---------- */
.eyebrow{ display:flex; align-items:center; gap:10px; text-transform:uppercase; letter-spacing:.2em; color:var(--ink); opacity:.78; font-size:.72rem; font-weight:700; margin-bottom:14px; }
.eyebrow::before{ content:''; width:22px; height:1px; background:var(--terracotta); flex-shrink:0; }
.eyebrow.center{ justify-content:center; }

/* ---------- Cenefa de forja — firma visual ---------- */
.iron-rule{ display:block; width:100%; height:16px; opacity:.4; }

/* ---------- Header ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:50;
  background:#15130F;
  transition:box-shadow .3s ease;
}
.site-header.scrolled{ box-shadow:0 8px 30px -12px rgba(0,0,0,.4); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; height:116px; gap:16px; }
.logo{ display:flex; align-items:center; min-width:0; flex:0 0 auto; }
.logo-mark{ height:80px; width:auto; display:block; filter:drop-shadow(0 1px 3px rgba(0,0,0,.4)); transition:transform .3s ease; }
.logo:hover .logo-mark{ transform:scale(1.03); }
@media(min-width:480px){ .logo-mark{ height:96px; } }

.nav-desktop{ display:none; align-items:center; gap:28px; font-size:.8rem; font-weight:700; color:rgba(245,239,222,.7); text-transform:uppercase; letter-spacing:.05em; }
.nav-desktop a{ position:relative; padding:4px 0; }
.nav-desktop a::after{ content:''; position:absolute; left:0; bottom:-4px; width:0; height:1.5px; background:var(--terracotta); transition:width .3s ease; }
.nav-desktop a:hover{ color:var(--linen); }
.nav-desktop a:hover::after{ width:100%; }

.header-actions{ display:flex; align-items:center; gap:10px; flex-shrink:0; }
.header-cta{ display:none; }
.menu-btn{ width:40px; height:40px; border-radius:999px; display:flex; align-items:center; justify-content:center; transition:background .2s ease; flex-shrink:0; color:var(--linen); }
.menu-btn:hover{ background:rgba(245,239,222,.1); }

.mobile-menu{ border-top:1px solid rgba(245,239,222,.12); background:rgba(21,19,15,.98); backdrop-filter:blur(10px); }
.mobile-menu nav{ display:flex; flex-direction:column; padding:18px 24px; gap:2px; font-weight:600; color:rgba(245,239,222,.85); }
.mobile-menu a{ padding:13px 0; border-bottom:1px solid rgba(245,239,222,.08); }
.mobile-menu a.cta-link{ margin-top:12px; text-align:center; background:var(--terracotta); color:var(--olive); font-weight:800; border-radius:3px; border-bottom:none; }

@media(min-width:900px){
  .nav-desktop{ display:flex; }
  .header-cta{ display:inline-flex; }
  .menu-btn{ display:none; }
  .mobile-menu{ display:none !important; }
}

/* ---------- Animaciones ---------- */
@keyframes fadeUp{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:translateY(0); } }
.fade-up{ animation:fadeUp .8s cubic-bezier(.2,.8,.2,1) both; }
.d1{ animation-delay:.1s; } .d2{ animation-delay:.2s; } .d3{ animation-delay:.3s; }
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in-view{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* =========================================================
   HERO + WIZARD
   ========================================================= */
.hero{
  position:relative; padding:152px 0 64px; text-align:center; overflow:hidden;
  background:#15130F;
}
/* ---- Vídeo de fondo del hero (dron, vistas al castillo) ---- */
.hero-video-wrap{ position:absolute; inset:0; z-index:0; overflow:hidden; background:#15130F; }
.hero-video-fallback{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 60%; opacity:.32; }
.hero-video-wrap video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 60%; opacity:.55; }
.hero-video-overlay{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(180deg, rgba(21,19,15,.82) 0%, rgba(21,19,15,.88) 45%, rgba(21,19,15,.96) 100%),
    radial-gradient(ellipse at 50% 0%, rgba(21,19,15,.3), transparent 60%);
}
@media (prefers-reduced-motion: reduce){
  .hero-video-wrap video{ display:none; }
}
.hero::before{
  content:''; position:absolute; inset:0; z-index:1; opacity:.08; pointer-events:none;
  background-image:
    repeating-linear-gradient(0deg, transparent 0 38px, rgba(214,177,113,.5) 38px 39px),
    repeating-linear-gradient(90deg, transparent 0 38px, rgba(214,177,113,.5) 38px 39px);
}
.hero > .container-narrow, .hero > .wizard-shell{ position:relative; z-index:2; }
.hero-stats{ position:relative; display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:22px; }
.hero-stat{
  display:flex; align-items:stretch; gap:0; background:linear-gradient(180deg,#3A342A,#241D15);
  border-top:2px solid var(--terracotta); border-bottom:2px solid var(--terracotta);
  padding:0; font-size:.62rem; color:var(--linen); font-weight:700; text-transform:uppercase; letter-spacing:.02em;
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%);
  box-shadow:0 6px 16px -8px rgba(0,0,0,.5);
}
.hs-blaze{ width:4px; display:flex; flex-direction:column; flex-shrink:0; }
.hs-blaze span{ flex:1; }
.hs-blaze span:first-child{ background:#F5EFDE; }
.hs-blaze span:last-child{ background:var(--terracotta); }
.hero-stat svg{ width:12px; height:12px; flex-shrink:0; margin:0 5px 0 7px; align-self:center; color:var(--linen); }
.hero-stat .hs-text{ display:flex; align-items:center; gap:4px; padding:6px 14px 6px 0; white-space:nowrap; }
.hero-stat .val{ font-family:'JetBrains Mono', monospace; color:var(--terracotta-light); font-weight:700; text-transform:none; }
@media(min-width:640px){
  .hero-stats{ gap:12px; margin-top:26px; }
  .hero-stat{ font-size:.7rem; letter-spacing:.03em; clip-path: polygon(0 0, calc(100% - 13px) 0, 100% 50%, calc(100% - 13px) 100%, 0 100%); }
  .hero-stat svg{ width:15px; height:15px; margin:0 8px 0 10px; }
  .hero-stat .hs-text{ padding:8px 20px 8px 0; gap:5px; }
}
.hero h1{ position:relative; color:var(--linen); font-size:1.7rem; max-width:760px; margin:0 auto; text-shadow:0 2px 18px rgba(0,0,0,.55); }
.hero h1 em{ font-style:normal; color:var(--terracotta-light); }
.hero p.lede{ position:relative; color:rgba(245,239,222,.75); font-size:1.02rem; max-width:480px; margin:16px auto 0; text-shadow:0 2px 12px rgba(0,0,0,.5); }
@media(min-width:640px){ .hero h1{ font-size:2.2rem; } }
@media(min-width:1024px){ .hero h1{ font-size:2.6rem; } }

.wizard-shell{
  position:relative; max-width:760px; margin:36px auto 0; background:var(--linen); border-radius:10px;
  box-shadow:var(--shadow-soft); border:1px solid rgba(0,0,0,.05);
  overflow:hidden; text-align:left;
}

/* Barra de progreso */
.wizard-progress{ display:flex; align-items:center; padding:22px 26px 0; gap:6px; }
.wp-step{ flex:1; display:flex; flex-direction:column; align-items:center; gap:8px; position:relative; }
.wp-dot{
  width:28px; height:28px; border-radius:999px; background:var(--linen-dark); color:rgba(36,31,26,.45);
  display:flex; align-items:center; justify-content:center; font-size:.75rem; font-weight:700;
  transition:background .3s ease, color .3s ease; z-index:2; flex-shrink:0;
}
.wp-label{ font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:rgba(36,31,26,.4); text-align:center; display:none; }
@media(min-width:640px){ .wp-label{ display:block; } }
.wp-line{ position:absolute; top:14px; left:-50%; width:100%; height:2px; background:var(--linen-dark); z-index:1; }
.wp-step:first-child .wp-line{ display:none; }
.wp-step.done .wp-dot{ background:var(--sage); color:#fff; }
.wp-step.done .wp-line{ background:var(--sage); }
.wp-step.active .wp-dot{ background:var(--terracotta); color:var(--olive-dark); }
.wp-step.active .wp-label{ color:var(--ink); }

/* Pasos */
.wizard-body{ padding:32px 26px 26px; min-height:340px; }
@media(min-width:640px){ .wizard-body{ padding:40px 40px 32px; } }
.wizard-step{ display:none; animation:fadeUp .45s ease both; }
.wizard-step.active{ display:block; }
.step-title{ font-size:1.5rem; margin-bottom:6px; }
@media(min-width:640px){ .step-title{ font-size:1.8rem; } }
.step-sub{ color:rgba(36,31,26,.6); font-size:.92rem; margin-bottom:26px; }

/* Paso 1 — fechas */
.wiz-cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.wiz-cal-nav{ width:34px; height:34px; border-radius:999px; border:1px solid rgba(36,31,26,.12); display:flex; align-items:center; justify-content:center; transition:background .2s ease; }
.wiz-cal-nav:hover{ background:var(--linen); }
.wiz-cal-month{ font-size:1.05rem; text-transform:capitalize; }
.wiz-cal-weekdays{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center; font-size:.68rem; font-weight:700; color:rgba(36,31,26,.4); margin-bottom:6px; }
.wiz-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center; font-size:.85rem; }
.wiz-day{ padding:9px 0; border-radius:6px; transition:background-color .2s ease, color .2s ease; width:100%; }
.wiz-day:not(.disabled):not(.empty):hover{ background:var(--linen); }
.wiz-day.in-range{ background:rgba(185,104,58,.16); }
.wiz-day.range-start,.wiz-day.range-end{ background:var(--terracotta); color:var(--olive-dark); font-weight:700; }
.wiz-day.disabled{ color:#CBBFA8; text-decoration:line-through; cursor:not-allowed; }
.wiz-summary-dates{ margin-top:18px; display:flex; gap:10px; flex-wrap:wrap; }
.date-chip{ flex:1; min-width:130px; background:var(--linen); border-radius:6px; padding:12px 14px; }
.date-chip span{ display:block; }
.date-chip .lbl{ font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:rgba(36,31,26,.5); margin-bottom:3px; }
.date-chip .val{ font-weight:600; font-size:.95rem; }

/* Paso 2 — huéspedes */
.option-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:26px; }
@media(min-width:640px){ .option-grid{ grid-template-columns:repeat(3,1fr); } }
.option-card{
  border:1.5px solid rgba(36,31,26,.12); border-radius:8px; padding:18px 14px; text-align:center;
  transition:border-color .2s ease, background .2s ease, transform .15s ease;
}
.option-card:hover{ border-color:rgba(185,104,58,.5); transform:translateY(-2px); }
.option-card.selected{ border-color:var(--terracotta); background:rgba(185,104,58,.06); }
.option-card .oc-icon{ width:30px; height:30px; margin:0 auto 10px; color:var(--olive); }
.option-card .oc-title{ font-weight:700; font-size:.92rem; margin-bottom:3px; }
.option-card .oc-sub{ font-size:.74rem; color:rgba(36,31,26,.55); }

.guest-counters{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:6px; }
.counter-box{ border:1px solid rgba(36,31,26,.12); border-radius:8px; padding:16px; display:flex; align-items:center; justify-content:space-between; }
.counter-box .cb-label{ font-weight:600; font-size:.88rem; }
.counter-box .cb-sub{ font-size:.7rem; color:rgba(36,31,26,.5); }
.counter-controls{ display:flex; align-items:center; gap:12px; }
.counter-btn{ width:30px; height:30px; border-radius:999px; border:1px solid rgba(36,31,26,.18); display:flex; align-items:center; justify-content:center; font-size:1.1rem; transition:background .2s ease; }
.counter-btn:hover{ background:var(--linen); }
.counter-val{ min-width:18px; text-align:center; font-weight:700; }

/* Paso 3 — motivo */
.motive-grid{ display:grid; grid-template-columns:1fr; gap:14px; }
@media(min-width:560px){ .motive-grid{ grid-template-columns:1fr 1fr; } }
@media(min-width:860px){ .motive-grid{ grid-template-columns:repeat(3,1fr); } }
.motive-card{
  border:1.5px solid rgba(36,31,26,.12); border-radius:8px; padding:22px; text-align:left;
  transition:border-color .2s ease, background .2s ease, transform .15s ease;
}
.motive-card:hover{ border-color:rgba(185,104,58,.5); transform:translateY(-2px); }
.motive-card.selected{ border-color:var(--terracotta); background:rgba(185,104,58,.06); }
.motive-card .mc-icon{ width:30px; height:30px; color:var(--olive); margin-bottom:12px; }
.motive-card .mc-title{ font-weight:700; font-size:1rem; margin-bottom:5px; }
.motive-card .mc-sub{ font-size:.82rem; color:rgba(36,31,26,.6); line-height:1.5; }

/* Paso 4 — resultados */
.results-list{ display:flex; flex-direction:column; gap:16px; }
.result-card{
  display:grid; grid-template-columns:1fr; border:1.5px solid rgba(36,31,26,.1); border-radius:10px; overflow:hidden;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.result-card.recommended{ border-color:var(--terracotta); box-shadow:0 0 0 1px var(--terracotta); }
@media(min-width:640px){ .result-card{ grid-template-columns:180px 1fr; } }
.result-photo{ position:relative; height:140px; }
@media(min-width:640px){ .result-photo{ height:auto; } }
.result-photo .art-panel{ height:100%; border-radius:0; }
.result-ribbon{
  position:absolute; top:10px; left:10px; z-index:2; background:var(--terracotta); color:var(--olive-dark);
  font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; padding:5px 10px; border-radius:3px;
}
.result-body{ padding:18px 20px; }
.result-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:6px; }
.result-head h3{ font-size:1.25rem; }
.result-price{ text-align:right; flex-shrink:0; }
.result-price .amt{ font-family:'JetBrains Mono', monospace; font-weight:700; font-size:1.25rem; color:var(--terracotta-dark); line-height:1; }
.result-price .per{ font-size:.66rem; color:rgba(36,31,26,.5); }
.result-desc{ font-size:.85rem; color:rgba(36,31,26,.75); margin-bottom:10px; }
.result-meta{ display:flex; flex-wrap:wrap; gap:5px 14px; font-size:.76rem; color:rgba(36,31,26,.65); margin-bottom:14px; }
.result-actions{ display:flex; gap:10px; flex-wrap:wrap; }

.wizard-nav{ display:flex; align-items:center; justify-content:space-between; padding:18px 26px 26px; border-top:1px solid rgba(36,31,26,.07); }
@media(min-width:640px){ .wizard-nav{ padding:20px 40px 32px; } }
.wizard-step-count{ font-size:.72rem; color:rgba(36,31,26,.45); font-weight:600; text-transform:uppercase; letter-spacing:.05em; }

/* ---------- Paneles ilustrados (mientras no hay fotos reales) ---------- */
.art-panel{ position:relative; overflow:hidden; border-radius:6px; display:flex; align-items:flex-end; color:var(--linen); }
.art-panel svg.art-icon{ position:absolute; opacity:.16; }
.art-caption{ position:relative; z-index:2; padding:14px; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; opacity:.85; }
.grad-1{ background:linear-gradient(150deg,#2A2118,#3A342A 60%,#15130F); }
.grad-2{ background:linear-gradient(150deg,#4A3F2E,#2A2118 55%,#B9893F); }
.grad-3{ background:linear-gradient(150deg,#8C6528,#2A2118 60%,#15130F); }
.grad-4{ background:linear-gradient(150deg,#3A342A,#4A3F2E 50%,#57706B); }
.grad-5{ background:linear-gradient(150deg,#15130F,#2A2118 55%,#8C6528); }
.grad-6{ background:linear-gradient(150deg,#B9893F,#8C6528 60%,#0A0908); }
.grad-7{ background:linear-gradient(150deg,#0A0908,#2A2118 55%,#8A7358); }
.grad-8{ background:linear-gradient(150deg,#3A342A,#0A0908 60%,#2A2118); }

/* ---------- Foto real (salón / castillo) ---------- */
.real-photo-frame{ position:relative; border:8px solid #fff; outline:1px solid rgba(36,31,26,.12); box-shadow:var(--shadow-soft); }
.real-photo-frame img{ width:100%; height:100%; object-fit:cover; display:block; }
.real-photo-caption{
  position:absolute; left:16px; bottom:-14px; z-index:3; background:var(--ink); color:var(--linen);
  font-size:.68rem; font-weight:600; letter-spacing:.03em; padding:8px 14px; box-shadow:var(--shadow-card);
}

/* ---------- Explorar la posada ---------- */
.section{ padding:80px 0; background-color:var(--linen); }
.section-head{ max-width:640px; margin-bottom:44px; }
.section-head h2{ font-size:2rem; }
@media(min-width:768px){ .section-head h2{ font-size:2.5rem; } }
.section-head p{ color:rgba(36,31,26,.78); margin-top:14px; }
.bg-olive-section{ background:var(--olive); color:var(--linen); }
.bg-olive-section .eyebrow{ color:rgba(245,239,222,.65); }
.bg-olive-section .section-head p{ color:rgba(244,238,225,.65); }
.bg-linen-dark{ background:var(--linen-dark); }

.grid{ display:grid; gap:22px; }
.grid-2{ grid-template-columns:1fr; }
.grid-4{ grid-template-columns:repeat(2,1fr); }
@media(min-width:768px){ .grid-2{ grid-template-columns:1fr 1fr; gap:50px; align-items:center; } }
@media(min-width:1024px){ .grid-4{ grid-template-columns:repeat(4,1fr); } }

.gal-card{ display:block; border-radius:6px; overflow:hidden; background:rgba(0,0,0,.02); transition:transform .3s ease; }
.gal-card:hover{ transform:translateY(-4px); }
.gal-card .art-panel{ height:180px; border-radius:0; }
.gal-card .gal-photo{ height:180px; width:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.gal-card:hover .gal-photo{ transform:scale(1.04); }
.gal-card-body{ padding:16px 4px 4px; }
.gal-card-body h3{ font-size:1.02rem; margin-bottom:4px; }
.gal-card-body p{ font-size:.82rem; color:rgba(36,31,26,.72); }
.gal-meta{ display:block; font-family:'JetBrains Mono', monospace; font-size:.66rem; font-weight:700; letter-spacing:.03em; color:var(--terracotta-dark); margin-top:8px; text-transform:uppercase; }
.bg-olive-section .gal-meta{ color:var(--terracotta-light); }
.bg-olive-section .gal-card-body p{ color:rgba(244,238,225,.6); }

/* ---------- Reseñas (breves) ---------- */
.review-strip{ display:flex; flex-direction:column; gap:16px; }
@media(min-width:768px){ .review-strip{ flex-direction:row; } }
.review-mini{ flex:1; background:#fff; border-radius:8px; box-shadow:var(--shadow-card); padding:22px; }
.review-mini .stars{ color:var(--terracotta); margin-bottom:10px; letter-spacing:2px; font-size:.85rem; }
.review-mini p{ font-size:.85rem; color:rgba(36,31,26,.75); line-height:1.55; margin-bottom:14px; }
.review-mini .who{ font-size:.78rem; font-weight:700; }
.review-mini .who span{ font-weight:400; color:rgba(36,31,26,.5); display:block; font-size:.72rem; }

/* ---------- Modales (checkout / confirmación) ---------- */
.modal-overlay{
  position:fixed; inset:0; z-index:70; background:rgba(24,20,16,.6); backdrop-filter:blur(3px);
  display:none; align-items:center; justify-content:center; padding:16px; overflow-y:auto;
}
.modal-overlay.open{ display:flex; }
.modal-panel{ background:var(--linen); border-radius:10px; box-shadow:var(--shadow-soft); max-width:640px; width:100%; max-height:90vh; overflow-y:auto; animation:modalIn .3s cubic-bezier(.2,.8,.2,1) both; }
.modal-panel.narrow{ max-width:480px; }
@keyframes modalIn{ from{ opacity:0; transform:translateY(16px) scale(.98); } to{ opacity:1; transform:translateY(0) scale(1); } }
.modal-close{ width:34px; height:34px; border-radius:999px; display:flex; align-items:center; justify-content:center; transition:background .2s ease; flex-shrink:0; }
.modal-close:hover{ background:rgba(36,31,26,.06); }
.modal-body{ padding:26px; }
@media(min-width:640px){ .modal-body{ padding:32px; } }

.pay-tabs{ display:grid; grid-template-columns:repeat(3,1fr); gap:6px; background:#fff; border-radius:6px; padding:6px; margin-bottom:22px; }
.pay-tab{ border-radius:3px; padding:11px 4px; font-size:.74rem; font-weight:700; transition:all .2s ease; }
.pay-tab.active{ background:var(--olive); color:var(--linen); }
.pay-panel{ display:flex; flex-direction:column; gap:16px; }
.pay-card-box{ background:#fff; border-radius:8px; padding:20px; border:1px solid rgba(36,31,26,.1); }
.pay-secure{ display:flex; align-items:center; gap:8px; font-size:.74rem; color:rgba(36,31,26,.5); font-weight:600; margin-bottom:16px; }
.field{ margin-bottom:12px; }
.field label{ display:block; font-size:.7rem; font-weight:700; color:rgba(36,31,26,.6); margin-bottom:6px; }
.field input{ width:100%; background:var(--linen); border:1px solid rgba(36,31,26,.12); border-radius:6px; padding:11px 12px; font-size:.9rem; }

/* ---------- Formulario de contacto ---------- */
.contact-form-wrap{ background:#fff; border-radius:10px; padding:26px; box-shadow:var(--shadow-card); }
.contact-form .field{ margin-bottom:14px; }
.contact-form textarea{
  width:100%; background:var(--linen); border:1px solid rgba(36,31,26,.12); border-radius:6px;
  padding:11px 12px; font-size:.9rem; font-family:inherit; resize:vertical;
}
.contact-form textarea:focus, .contact-form input:focus{ outline:none; border-color:var(--terracotta); }
.contact-form .field-row{ display:grid; grid-template-columns:1fr; gap:14px; }
@media(min-width:480px){ .contact-form .field-row{ grid-template-columns:1fr 1fr; } }
.field input:focus{ outline:none; border-color:var(--terracotta); }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.field-wrap{ position:relative; }
.field-tag{ position:absolute; right:12px; top:50%; transform:translateY(-50%); font-size:.6rem; font-weight:700; color:rgba(36,31,26,.3); }
.bizum-steps{ display:flex; flex-direction:column; gap:12px; margin:16px 0; }
.bizum-step{ display:flex; gap:12px; font-size:.86rem; color:rgba(36,31,26,.75); }
.bizum-num{ width:24px; height:24px; border-radius:999px; background:var(--terracotta); color:var(--olive-dark); font-size:.7rem; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.qr-box{ display:flex; justify-content:center; background:var(--linen); border-radius:6px; padding:22px; }
.qr{ width:104px; height:104px; background:#fff; border:1px solid rgba(36,31,26,.1); border-radius:6px; display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(4,1fr); gap:2px; padding:8px; }
.qr div{ border-radius:2px; background:rgba(36,31,26,.08); }
.qr div.on{ background:var(--ink); }
.cash-option{ display:flex; gap:12px; border:1px solid rgba(36,31,26,.1); border-radius:6px; padding:14px; cursor:pointer; transition:border-color .2s ease; margin-bottom:10px; }
.cash-option:hover{ border-color:var(--terracotta); }
.cash-option input{ margin-top:3px; accent-color:var(--terracotta); }
.cash-option strong{ display:block; font-size:.86rem; }
.cash-option span.desc{ font-size:.8rem; color:rgba(36,31,26,.6); }
.disclaimer{ font-size:.66rem; color:rgba(36,31,26,.4); text-align:center; margin-top:16px; }
.success-icon{ width:60px; height:60px; border-radius:999px; background:rgba(107,118,84,.2); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; }
.success-icon svg{ width:30px; height:30px; color:var(--sage); }

/* ---------- Toast ---------- */
#toast{
  position:fixed; top:92px; left:50%; transform:translate(-50%,-140%); opacity:0; z-index:100;
  background:var(--ink); color:var(--linen); font-size:.85rem; font-weight:600; padding:12px 20px; border-radius:6px;
  box-shadow:var(--shadow-soft); transition:transform .4s cubic-bezier(.2,.8,.2,1), opacity .4s ease; max-width:90vw; text-align:center;
}

/* ---------- WhatsApp flotante ---------- */
.wa-float{
  position:fixed; bottom:22px; right:22px; z-index:40; width:56px; height:56px; border-radius:999px; background:#25D366;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-soft); transition:transform .2s ease;
}
.wa-float:hover{ transform:scale(1.06); }
@media(min-width:768px){ .wa-float{ width:60px; height:60px; } }

/* ---------- Contacto / mapa ---------- */
.contact-list{ display:flex; flex-direction:column; gap:13px; margin:22px 0 26px; }
.contact-item{ display:flex; align-items:center; gap:12px; font-size:.88rem; }
.contact-icon{ width:38px; height:38px; border-radius:999px; background:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-icon svg{ width:16px; height:16px; color:var(--olive); }
.map-box{ position:relative; height:320px; border-radius:8px; overflow:hidden; box-shadow:var(--shadow-card); background:var(--olive); }
.map-box iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; filter:grayscale(.15) contrast(1.05); }
.map-directions{
  position:absolute; right:14px; bottom:14px; z-index:2;
  background:var(--linen); color:var(--ink); font-size:.78rem; font-weight:700; padding:10px 16px;
  border-radius:6px; box-shadow:var(--shadow-soft); transition:background .2s ease, transform .2s ease;
}
.map-directions:hover{ background:#fff; transform:translateY(-1px); }
@media(min-width:768px){ .map-box{ height:360px; } }

/* ---------- Footer ---------- */
.footer{ background:var(--ink); color:rgba(244,238,225,.8); }
.footer-grid{ display:grid; grid-template-columns:1fr; gap:36px; padding-top:56px; padding-bottom:40px; }
@media(min-width:640px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media(min-width:1024px){ .footer-grid{ grid-template-columns:repeat(4,1fr); } }
.footer-logo{ margin-bottom:16px; }
.footer-logo .logo-mark{ height:64px; filter:none; }
.footer p.tagline{ font-size:.85rem; color:rgba(244,238,225,.55); line-height:1.6; }
.footer h4{ font-family:'Manrope',sans-serif; color:var(--linen); font-weight:700; font-size:.85rem; margin-bottom:14px; text-transform:uppercase; letter-spacing:.05em; }
.footer ul{ display:flex; flex-direction:column; gap:9px; font-size:.85rem; color:rgba(244,238,225,.55); }
.footer ul a:hover{ color:var(--linen); }
.social-row{ display:flex; gap:10px; }
.social-btn{ width:38px; height:38px; border-radius:999px; border:1px solid rgba(244,238,225,.2); display:flex; align-items:center; justify-content:center; transition:background .2s ease; }
.social-btn:hover{ background:rgba(244,238,225,.1); }
.footer-bottom{ border-top:1px solid rgba(244,238,225,.1); padding-top:24px; padding-bottom:24px; display:flex; flex-direction:column; gap:8px; align-items:center; justify-content:space-between; font-size:.7rem; color:rgba(244,238,225,.4); text-align:center; }
@media(min-width:640px){ .footer-bottom{ flex-direction:row; text-align:left; } }

/* =========================================================
   PÁGINAS INTERIORES (legal + actividades)
   ========================================================= */
.breadcrumb{ font-size:.72rem; color:rgba(245,239,222,.5); margin-bottom:14px; }
.breadcrumb a{ color:rgba(245,239,222,.7); }
.breadcrumb a:hover{ color:var(--linen); }

.page-banner{
  position:relative; padding:140px 0 56px; text-align:left; overflow:hidden;
  background:linear-gradient(180deg,#15130F 0%,#1C1710 100%);
}
.page-banner .eyebrow{ color:rgba(245,239,222,.6); }
.page-banner .eyebrow::before{ background:var(--terracotta); }
.page-banner h1{ color:var(--linen); font-size:1.7rem; max-width:760px; }
@media(min-width:640px){ .page-banner h1{ font-size:2.3rem; } }
.page-banner p.lede{ color:rgba(245,239,222,.62); font-size:1rem; max-width:620px; margin-top:14px; }

.info-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.info-chip{
  display:flex; align-items:center; gap:6px; background:rgba(245,239,222,.07); border:1px solid rgba(245,239,222,.14);
  border-radius:4px; padding:7px 12px; font-size:.7rem; color:rgba(245,239,222,.8); font-weight:600;
}
.info-chip .val{ font-family:'JetBrains Mono', monospace; color:var(--terracotta-light); font-weight:700; }

.prose-section{ padding:56px 0 72px; background-color:var(--linen); }
.prose{ max-width:740px; }
.prose h2{ font-size:1.4rem; margin:36px 0 14px; color:var(--ink); }
.prose h2:first-child{ margin-top:0; }
.prose h3{ font-size:1.1rem; margin:24px 0 10px; color:var(--ink); font-weight:800; }
.prose p{ font-size:.95rem; line-height:1.75; color:rgba(36,31,26,.75); margin-bottom:16px; }
.prose ul{ margin:0 0 16px; display:flex; flex-direction:column; gap:8px; }
.prose ul li{ font-size:.95rem; line-height:1.6; color:rgba(36,31,26,.75); padding-left:20px; position:relative; }
.prose ul li::before{ content:''; position:absolute; left:0; top:9px; width:8px; height:8px; background:var(--sage); border-radius:0 60% 0 60%; }
.prose a{ color:var(--terracotta-dark); font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.prose strong{ color:var(--ink); }
.prose .note{ background:var(--linen-dark); border-left:3px solid var(--terracotta); padding:14px 18px; font-size:.85rem; color:rgba(36,31,26,.7); border-radius:0 6px 6px 0; margin:20px 0; }

.cta-block{
  background:var(--olive); color:var(--linen); border-radius:10px; padding:32px; text-align:center; margin-top:48px;
}
.cta-block h3{ font-size:1.3rem; margin-bottom:8px; }
.cta-block p{ color:rgba(245,239,222,.65); font-size:.9rem; margin-bottom:20px; }

.related-grid{ display:grid; grid-template-columns:1fr; gap:16px; margin-top:16px; }
@media(min-width:640px){ .related-grid{ grid-template-columns:repeat(3,1fr); } }
.related-card{ background:#fff; border-radius:8px; box-shadow:var(--shadow-card); padding:18px; transition:transform .25s ease; }
.related-card:hover{ transform:translateY(-3px); }
.related-card .rc-eyebrow{ font-family:'JetBrains Mono',monospace; font-size:.62rem; color:var(--terracotta-dark); text-transform:uppercase; letter-spacing:.05em; margin-bottom:6px; }
.related-card h4{ font-size:.92rem; margin-bottom:6px; line-height:1.3; }
.related-card p{ font-size:.78rem; color:rgba(36,31,26,.6); }

.legal-updated{ font-size:.78rem; color:rgba(36,31,26,.5); margin-bottom:28px; font-style:italic; }
.pending-flag{ display:inline-block; background:rgba(185,137,63,.15); color:var(--terracotta-dark); font-family:'JetBrains Mono',monospace; font-size:.72rem; font-weight:700; padding:2px 8px; border-radius:3px; }

/* =========================================================
   GALERÍA REAL DE LA CASA + LIGHTBOX
   ========================================================= */
.gallery-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:10px;
}
@media(min-width:640px){ .gallery-grid{ grid-template-columns:repeat(3,1fr); gap:14px; } }
@media(min-width:1024px){ .gallery-grid{ grid-template-columns:repeat(4,1fr); } }

.gallery-thumb-btn{
  position:relative; display:block; width:100%; aspect-ratio:4/3; border-radius:6px; overflow:hidden;
  background:var(--linen-dark); box-shadow:var(--shadow-card);
}
.gallery-thumb-btn img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.gallery-thumb-btn:hover img{ transform:scale(1.06); }
.gallery-thumb-btn::after{
  content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 60%, rgba(21,19,15,.45) 100%);
  opacity:0; transition:opacity .25s ease;
}
.gallery-thumb-btn:hover::after{ opacity:1; }

#galleryLightbox{ background:rgba(10,9,8,.94); backdrop-filter:blur(6px); z-index:90; }
#galleryLightbox.open{ display:flex; }
.gallery-lb-figure{ max-width:min(92vw, 1000px); max-height:86vh; display:flex; flex-direction:column; align-items:center; gap:14px; }
.gallery-lb-figure img{ max-width:100%; max-height:76vh; border-radius:6px; box-shadow:0 20px 60px rgba(0,0,0,.5); object-fit:contain; }
.gallery-lb-figure figcaption{ color:var(--linen); font-size:.85rem; font-weight:600; text-align:center; }
.gallery-lb-close{
  position:absolute; top:18px; right:18px; z-index:2; width:42px; height:42px; border-radius:999px;
  background:rgba(245,239,222,.1); color:var(--linen); display:flex; align-items:center; justify-content:center;
  transition:background .2s ease;
}
.gallery-lb-close:hover{ background:rgba(245,239,222,.2); }
.gallery-lb-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:48px; height:48px; border-radius:999px;
  background:rgba(245,239,222,.1); color:var(--linen); display:flex; align-items:center; justify-content:center;
  transition:background .2s ease;
}
.gallery-lb-nav:hover{ background:rgba(245,239,222,.2); }
.gallery-lb-prev{ left:14px; }
.gallery-lb-next{ right:14px; }
@media(min-width:768px){ .gallery-lb-prev{ left:28px; } .gallery-lb-next{ right:28px; } }
