/* =========================================================
   AUAECOCO — Design system (Navy & Gold — estilo resort elegante)
   Paleta bicolor: navy profundo + dorado cálido + crema, sin tonos fríos.
   ========================================================= */
:root{
  --forest-900:#1B2A4A;   /* navy profundo — nav/footer, botones oscuros */
  --forest-800:#233857;
  --forest-700:#2D4468;
  --cream:#FAF6EF;        /* crema cálido de fondo */
  --cream-card:#FFFFFF;
  --gold:#C39A46;         /* dorado cálido — acento principal, CTA */
  --gold-dark:#A67C33;
  --tan:#E8D4A6;          /* arena dorada clara — acento secundario */
  --tan-dark:#CBA968;
  --blue:#C39A46;         /* alias de dorado — ya no hay azul frío en la paleta */
  --blue-light:#E8D4A6;
  --coral:#1B2A4A;        /* navy — insignias y acentos de urgencia */
  --turquoise:#C39A46;    /* alias de dorado */
  --turquoise-dark:#A67C33;
  --palm:#1B2A4A;         /* navy — acento oscuro alternativo */
  --palm-dark:#12203A;
  --sunset:#E8D4A6;       /* arena dorada — acento cálido */
  --sunset-dark:#CBA968;
  --ink:#1B2A4A;          /* tinta — mismo navy, para texto */
  --ink-soft:rgba(27,42,74,.66);
  --ink-faint:rgba(27,42,74,.46);
  --onDark:rgba(255,255,255,.8);
  --onDark-faint:rgba(255,255,255,.52);
  --line:rgba(27,42,74,.1);
  --line-onDark:rgba(255,255,255,.14);
  --radius-lg:26px;
  --radius-md:16px;
  --maxw:1240px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Plus Jakarta Sans',sans-serif;
  color:var(--ink);
  background:
    radial-gradient(ellipse 700px 420px at 96% 0%, rgba(195,154,70,.14), transparent 60%),
    radial-gradient(ellipse 620px 400px at 2% 22%, rgba(232,212,166,.18), transparent 60%),
    radial-gradient(ellipse 560px 380px at 100% 70%, rgba(27,42,74,.06), transparent 60%),
    var(--cream);
  -webkit-font-smoothing:antialiased;
}
img{display:block; max-width:100%;}
a{color:inherit; text-decoration:none; transition:color .25s var(--ease);}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
h1,h2,h3,.serif{font-family:'Fraunces',serif; margin:0; font-weight:600; letter-spacing:-.01em; line-height:1.1;}
p{margin:0; line-height:1.65;}
ul{margin:0; padding:0;}


/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:13px 26px; border-radius:100px; font-weight:700; font-size:14px;
  font-family:'Plus Jakarta Sans',sans-serif; border:1px solid transparent; cursor:pointer;
  transition:transform .28s var(--ease), background .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease), color .28s var(--ease);
  white-space:nowrap;
}
.btn:hover{transform:translateY(-3px);}
.btn:active{transform:translateY(-1px);}
.btn-gold{background:var(--gold); color:#fff;}
.btn-gold:hover{background:var(--gold-dark); box-shadow:0 12px 26px rgba(199,154,69,.35);}
.btn-forest{background:var(--forest-900); color:#fff;}
.btn-forest:hover{background:var(--forest-700); box-shadow:0 12px 26px rgba(18,42,32,.3);}
.btn-outline{border-color:var(--line); background:transparent; color:var(--ink);}
.btn-outline:hover{border-color:var(--ink); background:var(--ink); color:#fff;}
.btn-outline-onDark{border-color:var(--line); background:#fff; color:var(--ink);}
.btn-outline-onDark:hover{border-color:var(--forest-900); background:var(--forest-900); color:#fff;}
.btn-sm{padding:9px 18px; font-size:12.5px;}

/* ---------- REVEAL ON SCROLL ---------- */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in{opacity:1; transform:none;}
.reveal-delay-1.in{transition-delay:.08s;}
.reveal-delay-2.in{transition-delay:.16s;}
.reveal-delay-3.in{transition-delay:.24s;}

.eyebrow{color:var(--gold-dark); font-weight:700; font-size:12px; letter-spacing:.14em; text-transform:uppercase; display:block;}
.eyebrow.on-dark{color:var(--gold-dark);}
.section-head{max-width:600px; margin-bottom:40px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head h2{font-size:clamp(26px,3.2vw,36px); margin-top:12px;}
.section-head p{margin-top:14px; color:var(--ink-soft); font-size:15px;}

/* ---------- NAV ---------- */
header{background:rgba(255,255,255,.82); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); position:sticky; top:0; z-index:100; box-shadow:0 2px 20px rgba(27,42,74,.07); transition:box-shadow .3s ease, background .3s ease;}
header.scrolled{box-shadow:0 8px 28px rgba(27,42,74,.12);}

/* Home hero header: starts fully transparent over the photo, then becomes the same white-blur bar on scroll */
header.header-overlay{position:fixed; left:0; right:0; top:0; width:100%; background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:none;}
header.header-overlay.scrolled{background:rgba(255,255,255,.82); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); box-shadow:0 8px 28px rgba(27,42,74,.12);}
.nav{max-width:var(--maxw); margin:0 auto; padding:18px 24px; display:flex; align-items:center; justify-content:space-between;}
.logo{display:flex; align-items:center; gap:10px; transition:opacity .25s var(--ease), transform .25s var(--ease);}
.logo:hover{opacity:.9; transform:translateY(-1px);}
.logo-img{
  height:46px; width:auto; display:block;
}
.nav-links{display:flex; align-items:center; gap:28px;}
.nav-links a{font-size:13.5px; font-weight:600; color:var(--ink-soft); position:relative; padding-bottom:3px; transition:color .25s var(--ease);}
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--gold);
  transition:width .3s var(--ease);
}
.nav-links a:hover{color:var(--forest-900);}
.nav-links a:hover::after{width:100%;}
.nav-links a.active{color:var(--forest-900);}
.nav-links a.active::after{width:100%;}
.burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px;}
.burger span{width:20px; height:2px; background:var(--forest-900); transition:transform .25s var(--ease), opacity .25s var(--ease), background .25s var(--ease);}

/* Home hero header, before scrolling: keep white nav text over the photo */
header.header-overlay:not(.scrolled) .nav-links a{color:rgba(255,255,255,.75);}
header.header-overlay:not(.scrolled) .nav-links a:hover,
header.header-overlay:not(.scrolled) .nav-links a.active{color:#fff;}
header.header-overlay:not(.scrolled) .burger span{background:#fff;}
header.header-overlay:not(.scrolled) .lang-switch{background:rgba(255,255,255,.14);}
header.header-overlay:not(.scrolled) .lang-btn{color:rgba(255,255,255,.65);}
header.header-overlay:not(.scrolled) .lang-btn:hover:not(.active){color:#fff;}
.nav-links.mobile-open{
  display:flex; flex-direction:column; align-items:flex-start; gap:16px;
  position:absolute; top:100%; left:0; right:0; background:var(--forest-900);
  padding:24px 28px 28px; border-top:1px solid var(--line-onDark); z-index:50;
}
.nav-links.mobile-open a{color:rgba(255,255,255,.75);}
.nav-links.mobile-open a:hover, .nav-links.mobile-open a.active{color:#fff;}

/* ---------- PAGE HERO (interior pages) ---------- */
.page-hero{
  position:relative; padding:130px 0 64px;
  background:
    linear-gradient(180deg, rgba(27,42,74,.4) 0%, rgba(27,42,74,.72) 100%),
    var(--hero-img) center/cover no-repeat;
  color:#fff;
}
.page-hero .breadcrumb{font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--onDark-faint); margin-bottom:16px; display:flex; gap:8px; align-items:center;}
.page-hero .breadcrumb a{color:#E8D4A6;}
.page-hero .breadcrumb a:hover{color:#fff;}
.page-hero h1{font-size:clamp(30px,4.6vw,48px); max-width:22ch; color:#fff;}
.page-hero .lede{margin-top:14px; font-size:15px; max-width:52ch; color:var(--onDark-faint);}

/* ---------- FULL-WIDTH HOME HERO ---------- */
.hero-media{
  position:relative; width:100%; height:80vh; min-height:580px; max-height:760px; overflow:hidden;
  background: linear-gradient(100deg, rgba(18,42,32,.78) 0%, rgba(18,42,32,.32) 48%, rgba(18,42,32,.06) 68%), var(--hero-img) center/cover no-repeat;
}

/* ---------- HERO CARD (home) — tarjeta redondeada flotante ---------- */
.hero-card-section{padding:0; max-width:none; width:100%;}
.hero-card{
  position:relative; border-radius:0; overflow:visible; min-height:100vh; width:100%;
  display:flex; flex-direction:column;
  border:none; box-shadow:none;
}
.hero-card-media{position:absolute; inset:0; z-index:0; overflow:hidden;}
.hero-card-media .hero-slide{position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity 1.3s ease;}
.hero-card-media .hero-slide.active{opacity:1;}
.hero-card-media .overlay-gradient{
  position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(180deg, rgba(27,42,74,.42) 0%, rgba(27,42,74,.06) 26%, rgba(27,42,74,.16) 60%, rgba(27,42,74,.72) 100%),
    linear-gradient(100deg, rgba(27,42,74,.42) 0%, transparent 55%);
}
.hero-card-nav{position:relative; z-index:3; max-width:var(--maxw); margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:26px 34px 0;}
.hero-card-copy{position:relative; z-index:3; padding:0 34px 0 200px; max-width:980px; margin-top:44vh; margin-bottom:0;}
.script-heading{font-family:'Alex Brush', cursive; font-weight:400; color:#fff; font-size:clamp(46px,6.4vw,76px); line-height:1.15; margin-bottom:20px; text-shadow:0 4px 20px rgba(0,0,0,.25);}
.hero-price-line{color:rgba(255,255,255,.88); font-size:14.5px; margin-bottom:28px;}
.hero-price-line strong{font-family:'Fraunces',serif; font-size:21px; color:var(--gold); font-weight:700;}
.watch-btn{display:inline-flex; align-items:center; gap:13px; background:transparent; border:none; cursor:pointer; color:#fff; font-weight:700; font-size:13.5px; font-family:'Plus Jakarta Sans',sans-serif; padding:0; transition:gap .25s var(--ease);}
.watch-btn:hover{gap:16px;}
.watch-play{width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.14); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.4); display:flex; align-items:center; justify-content:center; transition:background .25s var(--ease);}
.watch-btn:hover .watch-play{background:var(--gold); border-color:var(--gold);}
.watch-play svg{width:13px; height:13px; fill:#fff; margin-left:2px;}

.hero-side-thumbs{position:absolute; right:34px; top:130px; z-index:3; display:flex; flex-direction:column; gap:14px;}
.hero-side-thumbs button{padding:0; border:none; background:none; cursor:pointer; line-height:0;}
.hero-side-thumbs img{width:64px; height:64px; border-radius:50%; object-fit:cover; border:3px solid rgba(255,255,255,.85); box-shadow:0 10px 24px rgba(0,0,0,.3); transition:transform .3s var(--ease), border-color .3s var(--ease);}
.hero-side-thumbs button.active img, .hero-side-thumbs button:hover img{transform:scale(1.1); border-color:var(--gold);}

.hero-booking-bar{
  position:relative; z-index:3; margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  background:rgba(27,42,74,.48); backdrop-filter:blur(12px); border-top:1px solid rgba(255,255,255,.16);
  padding:26px 34px;
}
.bk-field{display:flex; flex-direction:column; gap:7px;}
.bk-label{font-size:10.5px; font-weight:700; letter-spacing:.06em; color:rgba(255,255,255,.6); text-transform:uppercase;}
.stepper{display:flex; align-items:center; gap:16px;}
.stepper button{width:26px; height:26px; border-radius:50%; border:1px solid rgba(255,255,255,.4); background:transparent; color:#fff; font-size:16px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s var(--ease), border-color .2s var(--ease);}
.stepper button:hover{background:var(--gold); border-color:var(--gold);}
.step-val{color:#fff; font-weight:700; font-size:15px; min-width:12px; text-align:center;}
.bk-price{color:#fff; font-weight:700; font-size:14.5px;}
.hero-booking-bar .btn{flex-shrink:0;}

/* ---------- CUSTOM DATE PICKER (no native HTML5 look) ---------- */
.dp-wrap{position:relative;}
.dp-trigger{
  display:flex; align-items:center; gap:8px; background:transparent; border:none; border-bottom:1px solid rgba(255,255,255,.35);
  color:#fff; font-family:inherit; font-size:14px; font-weight:600; padding:4px 0; cursor:pointer; text-align:left; min-width:130px;
  transition:border-color .2s var(--ease);
}
.dp-trigger:hover{border-color:var(--gold);}
.dp-trigger svg{width:14px; height:14px; stroke:var(--gold); flex-shrink:0;}
.dp-trigger.placeholder{color:rgba(255,255,255,.55); font-weight:500;}
.dp-trigger.light{color:var(--ink); border-bottom-color:var(--line);}
.dp-trigger.light:hover{border-color:var(--gold-dark);}
.dp-trigger.light svg{stroke:var(--gold-dark);}
.dp-trigger.light.placeholder{color:var(--ink-faint); font-weight:500;}

.dp-panel{
  position:absolute; top:calc(100% + 12px); left:0; z-index:60; width:280px;
  background:#fff; border-radius:16px; box-shadow:0 24px 54px rgba(13,59,76,.28); border:1px solid var(--line);
  padding:16px; display:none;
}
.dp-panel.open{display:block;}
.dp-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:12px;}
.dp-head .dp-month{font-family:'Fraunces',serif; font-weight:600; font-size:14.5px; color:var(--ink); text-transform:capitalize;}
.dp-nav{width:26px; height:26px; border-radius:50%; border:1px solid var(--line); background:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .2s var(--ease), border-color .2s var(--ease);}
.dp-nav:hover{background:var(--forest-900); border-color:var(--forest-900);}
.dp-nav svg{width:12px; height:12px; stroke:var(--ink); transition:stroke .2s var(--ease);}
.dp-nav:hover svg{stroke:#fff;}
.dp-weekdays{display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:4px;}
.dp-weekdays span{font-size:10px; font-weight:700; text-align:center; color:var(--ink-faint); text-transform:uppercase;}
.dp-days{display:grid; grid-template-columns:repeat(7,1fr); gap:2px;}
.dp-day{
  aspect-ratio:1; display:flex; align-items:center; justify-content:center; border:none; background:transparent;
  border-radius:50%; font-size:12.5px; font-weight:600; color:var(--ink); cursor:pointer; transition:background .2s var(--ease), color .2s var(--ease);
}
.dp-day:hover:not(:disabled){background:#F6E9D3;}
.dp-day.muted{color:var(--ink-faint); opacity:.35;}
.dp-day:disabled{color:var(--ink-faint); opacity:.28; cursor:not-allowed;}
.dp-day.selected{background:var(--gold); color:#fff;}

@media (max-width:980px){
  .hero-card{min-height:100vh; border-radius:0;}
  .hero-card-nav{padding:20px 20px 0;}
  .hero-card-nav .nav-links{display:none;}
  .hero-card-copy{padding:0 20px; max-width:none; margin-top:auto; margin-bottom:auto;}
  .hero-side-thumbs{display:none;}
  .hero-booking-bar{padding:20px; flex-direction:column; align-items:flex-start;}
  .dp-panel{width:calc(100vw - 40px); max-width:280px;}
  .hero-booking-bar .btn{width:100%; justify-content:center; margin-top:6px;}
}

.hero-arrow{
  position:absolute; top:auto; bottom:130px; z-index:4;
  width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.1); backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.35); display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .25s var(--ease), transform .25s var(--ease), border-color .25s var(--ease);
}
.hero-arrow:hover{background:rgba(255,255,255,.25); border-color:#fff;}
.hero-arrow svg{width:18px; height:18px; stroke:#fff; fill:none; stroke-width:2.2;}
.hero-arrow.prev{left:24px;}
.hero-arrow.next{right:24px;}
.hero-dots{position:absolute; left:34px; bottom:88px; z-index:4; display:flex; justify-content:flex-start; gap:10px;}
.hero-dot{width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.4); border:none; cursor:pointer; padding:0; transition:background .25s var(--ease), width .25s var(--ease);}
.hero-dot.active{background:var(--gold); width:26px; border-radius:100px;}
@media (max-width:980px){
  .hero-arrow{display:none;}
}
.search-bar{position:relative; margin-top:-34px; z-index:3; background:#fff; border-radius:100px; padding:10px 10px 10px 26px; display:flex; align-items:center; box-shadow:0 20px 50px rgba(18,42,32,.2);}
.search-field{flex:1; display:flex; flex-direction:column; gap:2px; padding:6px 24px; border-right:1px solid var(--line);}
.search-field:last-of-type{border-right:none;}
.search-field label{font-size:10.5px; font-weight:700; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.05em;}
.search-field input, .search-field select{border:none; outline:none; font-family:inherit; font-size:13.5px; font-weight:600; color:var(--ink); background:transparent; padding:0; width:100%;}
.search-bar .btn{flex-shrink:0; padding:15px 26px;}

/* ---------- FEATURES ROW ---------- */
.features-row{padding:64px 0 20px;}
.features-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.feature-item{text-align:left; transition:transform .3s var(--ease);}
.feature-item:hover{transform:translateY(-4px);}
.feature-item .icon{width:44px; height:44px; border-radius:12px; background:var(--cream-card); box-shadow:0 4px 14px rgba(13,42,53,.08); display:flex; align-items:center; justify-content:center; margin-bottom:14px; transition:background .3s var(--ease), box-shadow .3s var(--ease);}
.feature-item:nth-child(3) .icon{background:#F6E9D3;}
.feature-item:hover .icon{background:var(--forest-900); box-shadow:0 10px 24px rgba(13,42,53,.25);}
.feature-item .icon svg{width:20px; height:20px; stroke:var(--gold-dark); fill:none; stroke-width:1.7; transition:stroke .3s var(--ease);}
.feature-item:nth-child(2) .icon svg{stroke:var(--turquoise);}
.feature-item:nth-child(3) .icon svg{stroke:var(--sunset-dark);}
.feature-item:nth-child(4) .icon svg{stroke:var(--gold-dark);}
.feature-item:hover .icon svg{stroke:var(--gold);}
.feature-item:nth-child(2):hover .icon svg{stroke:#A67C33;}
.feature-item:nth-child(3):hover .icon svg{stroke:#DDBD84;}
.feature-item h4{font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:14.5px; margin-bottom:4px;}
.feature-item p{font-size:12.5px; color:var(--ink-faint);}

/* ---------- ROOMS ---------- */
.rooms-section{padding:70px 0;}
.rooms-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:32px; flex-wrap:wrap; gap:16px;}
.tabs{display:flex; gap:8px; flex-wrap:wrap;}
.tab{padding:9px 18px; border-radius:100px; font-size:12.5px; font-weight:700; background:var(--cream-card); color:var(--ink-soft); cursor:pointer; border:1px solid var(--line); transition:all .25s var(--ease);}
.tab:hover{border-color:var(--forest-900); color:var(--ink);}
.tab.active{background:var(--forest-900); color:#fff; border-color:var(--forest-900);}
.view-all{font-size:13.5px; font-weight:700; color:var(--ink); display:flex; align-items:center; gap:6px; transition:gap .25s var(--ease);}
.view-all:hover{gap:10px; color:var(--gold-dark);}
.view-all svg{width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2.4;}

.rooms-grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.room-card{background:#fff; border-radius:var(--radius-md); overflow:hidden; box-shadow:0 6px 22px rgba(13,42,53,.06); transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.room-card:hover{transform:translateY(-6px); box-shadow:0 22px 44px rgba(13,42,53,.14);}
.room-card .media{position:relative; height:190px; overflow:hidden;}
.room-card .media img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.room-card:hover .media img{transform:scale(1.08);}
.room-rating{position:absolute; bottom:12px; right:12px; background:rgba(255,255,255,.94); border-radius:100px; padding:5px 11px; font-size:11.5px; font-weight:800; display:flex; align-items:center; gap:4px;}
.room-rating svg{width:12px; height:12px; fill:var(--gold);}
.room-card .body{padding:18px 20px 20px;}
.room-card h3{font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:16px; margin-bottom:6px; transition:color .25s var(--ease);}
.room-card:hover h3{color:var(--gold-dark);}
.room-card .loc{font-size:12px; color:var(--ink-faint); margin-bottom:14px;}
.room-card .row-bottom{display:flex; align-items:center; justify-content:space-between; padding-top:14px; border-top:1px solid var(--line);}
.room-card .price{font-weight:800; font-size:15px; color:var(--blue);}
.room-card .price span{font-weight:600; font-size:11px; color:var(--ink-faint);}

.fullhouse-callout{
  margin-top:30px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  background:var(--cream-card); padding:26px 32px; border:1px dashed var(--line); border-radius:var(--radius-md);
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.fullhouse-callout:hover{border-color:var(--gold); box-shadow:0 10px 30px rgba(13,42,53,.06);}
.fullhouse-callout p{font-size:15px;}
.fullhouse-callout strong{font-family:'Fraunces',serif; font-weight:600; font-size:19px; display:block; margin-bottom:4px;}

/* ---------- DARK SPLIT BANNER ---------- */
.dark-split{background:linear-gradient(135deg, #FFF9F0 0%, #F6E4C4 55%, #F3E7CB 100%); padding:90px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.dark-split .split{display:grid; grid-template-columns:1fr .95fr; gap:64px; align-items:center;}
.dark-split.reverse .split{grid-template-columns:.95fr 1fr;}
.dark-split.reverse .split-media{order:-1;}
.dark-split .split-text h2{color:var(--ink); font-size:clamp(26px,3.2vw,36px); margin:14px 0 18px;}
.dark-split .split-text p.lede{color:var(--ink-soft); font-size:15px; margin-bottom:26px; max-width:44ch;}
.dark-check{display:flex; flex-direction:column; gap:13px; margin-bottom:28px;}
.dark-check li{list-style:none; display:flex; align-items:center; gap:12px; font-size:14px; font-weight:600; color:var(--ink);}
.dark-check .tick{width:20px; height:20px; border-radius:50%; background:#F6E9D3; flex-shrink:0; display:flex; align-items:center; justify-content:center;}
.dark-check .tick svg{width:11px; height:11px; stroke:var(--gold-dark); fill:none; stroke-width:3;}
.dark-split .split-media{border-radius:var(--radius-lg); overflow:hidden; height:420px; box-shadow:0 20px 50px rgba(13,42,53,.12);}
.dark-split .split-media img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease);}
.dark-split .split-media:hover img{transform:scale(1.05);}

/* ---------- LIGHT SPLIT (used on interior pages) ---------- */
.split-section{padding:90px 0;}
.split{display:grid; grid-template-columns:.92fr 1fr; gap:70px; align-items:center;}
.split.reverse{grid-template-columns:1fr .92fr;}
.split.reverse .split-media{order:2;}
.split-media{border-radius:var(--radius-lg); overflow:hidden; height:440px;}
.split-media img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease);}
.split-media:hover img{transform:scale(1.05);}
.split-text .eyebrow{margin-bottom:14px;}
.split-text h2{font-size:clamp(26px,3.4vw,36px); margin-bottom:18px;}
.split-text p.lede{color:var(--ink-soft); font-size:15px; margin-bottom:26px; max-width:46ch;}
.check-list{display:flex; flex-direction:column; gap:14px; margin-bottom:30px;}
.check-list li{list-style:none; display:flex; align-items:center; gap:12px; font-size:14.5px; font-weight:600; color:var(--ink);}
.check-list .tick{width:22px; height:22px; border-radius:50%; background:#F6E9D3; flex-shrink:0; display:flex; align-items:center; justify-content:center;}
.check-list .tick svg{width:12px; height:12px; stroke:var(--gold-dark); fill:none; stroke-width:3;}

/* ---------- STATS ---------- */
.stats-band{padding:80px 0;}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; text-align:center;}
.stat-card{transition:transform .3s var(--ease);}
.stat-card:hover{transform:translateY(-4px);}
.stat-card .num{font-family:'Fraunces',serif; font-size:34px; font-weight:600; color:var(--forest-900);}
.stat-card:nth-child(1) .num{color:var(--gold-dark);}
.stat-card:nth-child(2) .num{color:var(--turquoise-dark);}
.stat-card:nth-child(3) .num{color:var(--sunset-dark);}
.stat-card:nth-child(4) .num{color:var(--forest-900);}
.stat-card .lbl{font-size:12.5px; color:var(--ink-faint); font-weight:600; margin-top:6px;}

/* ---------- PROMO CARD ---------- */
.promo-section{padding:0 0 90px;}
.promo-card{background:linear-gradient(120deg, #EAF6FB 0%, #FDF6E6 100%); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; position:relative; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:52px 56px; flex-wrap:wrap; transition:box-shadow .3s var(--ease);}
.promo-card:hover{box-shadow:0 24px 50px rgba(13,42,53,.1);}
.promo-card::before{content:''; position:absolute; inset:0; background:var(--promo-img) center/cover no-repeat; opacity:.09; transition:opacity .4s var(--ease);}
.promo-card:hover::before{opacity:.14;}
.promo-text{position:relative; z-index:1; max-width:440px;}
.promo-text .eyebrow{color:var(--gold-dark); margin-bottom:12px;}
.promo-text h3{color:var(--ink); font-size:clamp(24px,3vw,32px); margin-bottom:14px;}
.promo-text p{color:var(--ink-soft); font-size:14.5px; margin-bottom:24px;}
.promo-badge{position:relative; z-index:1; flex-shrink:0; width:130px; height:130px; border-radius:50%; background:linear-gradient(135deg, var(--forest-900) 0%, var(--gold) 55%, var(--tan) 100%); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; font-family:'Fraunces',serif; transition:transform .4s var(--ease); box-shadow:0 14px 32px rgba(27,42,74,.3);}
.promo-card:hover .promo-badge{transform:rotate(-8deg) scale(1.05);}
.promo-badge .big{font-size:26px; font-weight:700; line-height:1;}
.promo-badge .small{font-size:11px; font-weight:600; font-family:'Plus Jakarta Sans',sans-serif; margin-top:4px; letter-spacing:.03em;}

/* ---------- EXPLORE / DESTINATIONS ---------- */
.explore-section{padding:20px 0 90px;}
.explore-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.explore-card{border-radius:var(--radius-md); overflow:hidden; position:relative; height:220px;}
.explore-card img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.explore-card:hover img{transform:scale(1.1);}
.explore-card::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(18,42,32,.85) 100%);}
.explore-card .info{position:absolute; left:16px; right:16px; bottom:14px; z-index:2;}
.explore-card h4{color:#fff; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:14.5px;}
.explore-card .time{color:#E8D4A6; font-size:12px; font-weight:700; margin-top:3px;}
.explore-card:nth-child(2) .time{color:#E8D4A6;}
.explore-card:nth-child(3) .time{color:#F1D8A8;}

/* ---------- DISTANCE LIST ---------- */
.distance-mini{display:flex; flex-direction:column; gap:0; margin-bottom:26px;}
.distance-mini .row{display:flex; justify-content:space-between; align-items:center; padding:13px 0; border-bottom:1px solid var(--line); transition:padding-left .25s var(--ease);}
.distance-mini .row:first-child{border-top:1px solid var(--line);}
.distance-mini .row:hover{padding-left:6px;}
.distance-mini .place{font-weight:700; font-size:13.5px;}
.distance-mini .time{font-weight:800; color:var(--gold-dark); font-size:14px;}

/* ---------- OFFERS / PAQUETES BANNER ---------- */
.offers-band{background:var(--cream); padding:90px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.offers-split{display:grid; grid-template-columns:1fr .95fr; gap:60px; align-items:center; margin-bottom:56px;}
.offers-text .eyebrow{color:var(--gold-dark); margin-bottom:14px;}
.offers-text h2{color:var(--ink); font-size:clamp(26px,3.2vw,36px); margin-bottom:16px;}
.offers-text p{color:var(--ink-soft); font-size:15px; margin-bottom:26px; max-width:42ch;}
.offers-media{border-radius:var(--radius-lg); overflow:hidden; height:380px; box-shadow:0 20px 50px rgba(13,42,53,.12);}
.offers-media img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease);}
.offers-media:hover img{transform:scale(1.05);}
.offers-icons{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; border-top:1px solid var(--line); padding-top:36px;}
.offer-icon-item{display:flex; align-items:center; gap:14px; transition:transform .3s var(--ease);}
.offer-icon-item:hover{transform:translateX(4px);}
.offer-icon-item .icn{width:42px; height:42px; border-radius:50%; background:#F6E9D3; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:background .3s var(--ease);}
.offer-icon-item:hover .icn{background:var(--gold);}
.offer-icon-item .icn svg{width:19px; height:19px; stroke:var(--gold-dark); fill:none; stroke-width:1.8; transition:stroke .3s var(--ease);}
.offer-icon-item:hover .icn svg{stroke:var(--forest-900);}
.offer-icon-item h4{color:var(--ink); font-size:13.5px; font-weight:700; margin-bottom:2px;}
.offer-icon-item p{color:var(--ink-faint); font-size:11.5px;}

/* ---------- PACKAGE CARDS (paquetes.php) ---------- */
.packages-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.package-card{background:#fff; border-radius:var(--radius-md); overflow:hidden; box-shadow:0 6px 24px rgba(13,42,53,.06); display:flex; flex-direction:column; position:relative; transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.package-card:hover{transform:translateY(-6px); box-shadow:0 22px 44px rgba(13,42,53,.14);}
.package-card.featured{outline:2px solid var(--gold);}
.package-ribbon{display:none; position:absolute; top:16px; right:16px; background:var(--tan); color:var(--forest-900); font-size:11px; font-weight:800; padding:6px 13px; border-radius:100px; z-index:2;}
.package-card.featured .package-ribbon{display:block;}
.package-media{height:180px; overflow:hidden;}
.package-media img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.package-card:hover .package-media img{transform:scale(1.08);}
.package-body{padding:26px 24px 28px; display:flex; flex-direction:column; flex:1;}
.package-body .eyebrow{margin-bottom:8px;}
.package-body h3{font-size:20px; margin-bottom:10px;}
.package-body .price{font-size:22px; font-weight:800; color:var(--gold-dark); margin-bottom:14px; font-family:'Fraunces',serif;}
.package-body .price span{font-size:12px; font-weight:600; color:var(--ink-faint); font-family:'Plus Jakarta Sans',sans-serif;}
.package-list{display:flex; flex-direction:column; gap:10px; margin-bottom:24px; flex:1;}
.package-list li{list-style:none; display:flex; gap:9px; font-size:13.5px; color:var(--ink-soft); align-items:flex-start;}
.package-list svg{width:15px; height:15px; stroke:var(--gold-dark); flex-shrink:0; margin-top:2px;}
.package-body .btn{width:100%;}
.package-note{margin-top:28px; background:var(--cream-card); padding:18px 24px; font-size:13px; color:var(--ink-soft); border-left:3px solid var(--gold); border-radius:0 var(--radius-md) var(--radius-md) 0;}

/* ---------- TESTIMONIALS ---------- */
.testi-section{padding:90px 0;}
.testi-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:40px; flex-wrap:wrap; gap:16px;}
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.testi-card{background:#fff; border-radius:var(--radius-md); padding:26px 24px; box-shadow:0 6px 20px rgba(13,42,53,.05); transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.testi-card:hover{transform:translateY(-5px); box-shadow:0 16px 34px rgba(13,42,53,.1);}
.testi-stars{color:var(--gold); font-size:13px; letter-spacing:2px; margin-bottom:14px;}
.testi-card p.txt{font-size:13.5px; color:var(--ink-soft); margin-bottom:20px; min-height:80px; font-style:italic;}
.testi-who{display:flex; align-items:center; gap:12px;}
.avatar{width:36px; height:36px; border-radius:50%; background:var(--forest-900); color:var(--gold); display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-weight:700; font-size:14px; flex-shrink:0;}
.testi-who .name{font-weight:700; font-size:13px;}
.testi-who .loc{font-size:11.5px; color:var(--ink-faint);}
.rating-row{display:flex; align-items:center; gap:16px; margin-bottom:40px;}
.rating-badge{background:var(--tan); color:var(--forest-900); font-size:26px; font-weight:800; width:66px; height:66px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif;}
.rating-copy .stars{color:var(--coral); letter-spacing:2px; font-size:14px;}
.rating-copy .lbl{font-size:13px; color:var(--ink-faint); margin-top:2px; font-weight:600;}

/* ---------- SERVICES (servicios.php) ---------- */
.service-detail-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:var(--line);}
.service-detail-card{background:#fff; padding:38px 36px; transition:background .3s var(--ease);}
.service-detail-card:hover{background:#FFFDF8;}
.service-detail-card .icon-badge{width:52px; height:52px; background:#F4E9D5; display:flex; align-items:center; justify-content:center; margin-bottom:20px; border-radius:14px; transition:background .3s var(--ease), transform .3s var(--ease);}
.service-detail-card:nth-child(3n+2) .icon-badge{background:#F3E7CB;}
.service-detail-card:nth-child(3n) .icon-badge{background:#F6E4C4;}
.service-detail-card:hover .icon-badge{background:var(--forest-900); transform:rotate(-6deg);}
.service-detail-card svg{width:24px; height:24px; stroke:var(--gold-dark); fill:none; transition:stroke .3s var(--ease);}
.service-detail-card:nth-child(3n+2) svg{stroke:var(--turquoise-dark);}
.service-detail-card:nth-child(3n) svg{stroke:var(--sunset-dark);}
.service-detail-card:hover svg{stroke:var(--gold);}
.service-detail-card h3{font-size:20px; margin-bottom:10px; font-family:'Fraunces',serif;}
.service-detail-card p{font-size:14.5px; color:var(--ink-soft);}

/* ---------- UBICACION ---------- */
.location-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start;}
.map-frame{width:100%; height:440px; border:0; border-radius:var(--radius-md); filter:sepia(.06) saturate(.9);}
.location-info .addr-card{background:#fff; padding:24px 26px; margin-bottom:20px; border-left:3px solid var(--gold); border-radius:0 var(--radius-md) var(--radius-md) 0; transition:box-shadow .3s var(--ease);}
.location-info .addr-card:hover{box-shadow:0 10px 26px rgba(13,42,53,.08);}
.location-info .addr-card h3{font-size:16px; margin-bottom:6px; font-family:'Fraunces',serif;}
.location-info .addr-card p{font-size:14px; color:var(--ink-soft);}

/* ---------- CONTACT ---------- */
.contact-grid{display:grid; grid-template-columns:.8fr 1fr; gap:60px;}
.contact-cards{display:flex; flex-direction:column; gap:14px;}
.contact-card{background:#fff; padding:22px 24px; display:flex; gap:16px; align-items:flex-start; border-radius:var(--radius-md); transition:transform .25s var(--ease), box-shadow .25s var(--ease);}
.contact-card:hover{transform:translateX(4px); box-shadow:0 10px 26px rgba(13,42,53,.07);}
.contact-card .icon-badge{width:40px; height:40px; background:var(--forest-900); display:flex; align-items:center; justify-content:center; flex-shrink:0; border-radius:11px;}
.contact-card svg{width:18px; height:18px; stroke:var(--gold); fill:none;}
.contact-card h4{font-size:14px; margin-bottom:4px; font-weight:700;}
.contact-card p, .contact-card a{font-size:13.5px; color:var(--ink-soft);}
.contact-card a:hover{color:var(--gold-dark);}
.contact-form-box{background:#fff; color:var(--ink); padding:40px; border-radius:var(--radius-lg); border:1px solid var(--line); box-shadow:0 20px 50px rgba(13,42,53,.07);}
.contact-form-box h3{font-size:22px; margin-bottom:8px; font-family:'Fraunces',serif; color:var(--ink);}
.contact-form-box .sub{font-size:14px; color:var(--ink-soft); margin-bottom:26px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px;}
.contact-form-box label{font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--gold-dark); margin-bottom:6px; display:block; font-weight:700;}
.contact-form-box input, .contact-form-box textarea, .contact-form-box select{
  width:100%; background:var(--cream); border:1px solid var(--line); border-radius:10px;
  padding:12px 14px; color:var(--ink); font-family:inherit; font-size:13.5px; transition:border-color .25s var(--ease), background .25s var(--ease);
}
.contact-form-box input:focus, .contact-form-box textarea:focus, .contact-form-box select:focus{outline:none; border-color:var(--gold); background:#fff;}
.contact-form-box input::placeholder, .contact-form-box textarea::placeholder{color:var(--ink-faint);}
.contact-form-box .field{margin-bottom:14px;}
.contact-form-box textarea{resize:vertical; min-height:100px;}
.contact-form-box .btn{margin-top:8px; width:100%;}

/* ---------- TIPS / BLOG ---------- */
.tips-section{padding:20px 0 90px;}
.tips-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.tip-card{background:#fff; border-radius:var(--radius-md); overflow:hidden; box-shadow:0 6px 20px rgba(13,42,53,.05); transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.tip-card:hover{transform:translateY(-5px); box-shadow:0 18px 36px rgba(13,42,53,.1);}
.tip-card .media{height:170px; overflow:hidden;}
.tip-card .media img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.tip-card:hover .media img{transform:scale(1.08);}
.tip-card .body{padding:20px 22px 24px;}
.tip-card .date{font-size:11px; color:var(--ink-faint); font-weight:700; margin-bottom:8px; letter-spacing:.03em; text-transform:uppercase;}
.tip-card h3{font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:15.5px; line-height:1.35;}

/* ---------- NEWSLETTER ---------- */
.newsletter-band{background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; max-width:var(--maxw); margin:0 auto 90px; position:relative; box-shadow:0 20px 50px rgba(13,42,53,.08);}
.newsletter-inner{display:grid; grid-template-columns:1.1fr .9fr; align-items:stretch;}
.newsletter-text{padding:60px; display:flex; flex-direction:column; justify-content:center;}
.newsletter-text .eyebrow{color:var(--gold-dark); margin-bottom:14px;}
.newsletter-text h2{color:var(--ink); font-size:clamp(24px,2.8vw,32px); margin-bottom:14px;}
.newsletter-text p{color:var(--ink-soft); font-size:14.5px; margin-bottom:26px; max-width:38ch;}
.newsletter-form{display:flex; gap:10px; margin-bottom:32px; flex-wrap:wrap;}
.newsletter-form input{flex:1; min-width:200px; background:var(--cream); border:1px solid var(--line); border-radius:100px; padding:13px 20px; color:var(--ink); font-family:inherit; font-size:13.5px; transition:border-color .25s var(--ease);}
.newsletter-form input:focus{outline:none; border-color:var(--gold);}
.newsletter-form input::placeholder{color:var(--ink-faint);}
.newsletter-icons{display:flex; gap:26px; flex-wrap:wrap;}
.newsletter-icons .item{display:flex; align-items:center; gap:9px;}
.newsletter-icons svg{width:16px; height:16px; stroke:var(--gold-dark); fill:none; stroke-width:1.8;}
.newsletter-icons span{color:var(--ink-faint); font-size:12px; font-weight:600;}
.newsletter-media{position:relative; min-height:340px;}
.newsletter-media img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform .8s var(--ease);}
.newsletter-media:hover img{transform:scale(1.06);}

/* ---------- CTA STRIP ---------- */
.cta-strip{background:linear-gradient(120deg, #FFFDF8 0%, #F6E9D3 100%); border:1px solid var(--line); border-radius:var(--radius-lg); padding:56px 60px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; transition:box-shadow .3s var(--ease);}
.cta-strip:hover{box-shadow:0 24px 50px rgba(13,42,53,.1);}
.cta-strip h3{color:var(--ink); font-size:clamp(22px,2.8vw,30px); max-width:34ch;}
.cta-strip p{color:var(--ink-soft); margin-top:8px; font-size:14px;}
.cta-buttons{display:flex; gap:12px; flex-wrap:wrap;}

/* ---------- ROOM DETAIL PAGE ---------- */
.breadcrumb-bar{background:var(--cream-card); padding:16px 0; border-bottom:1px solid var(--line);}
.breadcrumb-bar .wrap{display:flex; gap:8px; font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-faint);}
.breadcrumb-bar a{color:var(--gold-dark); font-weight:700;}
.breadcrumb-bar a:hover{color:var(--forest-900);}
.room-detail{display:grid; grid-template-columns:1.15fr .85fr; gap:60px;}
.room-gallery{align-content:start; display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.room-gallery img{width:100%; height:230px; object-fit:cover; border-radius:var(--radius-md); transition:transform .5s var(--ease), filter .5s var(--ease);}
.room-gallery img:hover{transform:scale(1.02); filter:brightness(1.03);}
.room-gallery img:first-child{grid-column:1 / -1; height:360px;}
.room-detail-info h1{font-size:clamp(28px,3.6vw,38px); margin-bottom:10px;}
.room-detail-info .price-tag{color:var(--gold-dark); font-weight:700; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; margin-bottom:18px; display:block;}
.room-detail-info .specs-row{display:flex; gap:26px; margin:22px 0 28px; flex-wrap:wrap; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.room-detail-info .specs-row span{display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700; color:var(--forest-900);}
.room-detail-info .specs-row svg{width:18px; height:18px; stroke:var(--gold-dark);}
.room-detail-info p.desc{font-size:15.5px; color:var(--ink-soft); margin-bottom:24px;}
.amenity-list{display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; margin-bottom:32px;}
.amenity-list li{list-style:none; display:flex; align-items:center; gap:10px; font-size:14px; color:var(--ink-soft);}
.amenity-list svg{width:16px; height:16px; stroke:var(--gold-dark); flex-shrink:0;}
.room-cta-box{background:#fff; color:var(--ink); padding:28px; margin-bottom:20px; border-radius:var(--radius-md); border:1px solid var(--line); border-left:4px solid var(--gold); box-shadow:0 14px 34px rgba(13,42,53,.07);}
.room-cta-box .lbl{font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-dark); margin-bottom:8px; display:block; font-weight:700;}
.room-cta-box h3{font-size:22px; margin-bottom:16px; font-family:'Fraunces',serif; color:var(--ink);}
.room-cta-box .btn{width:100%; margin-bottom:10px;}
.other-room-card{display:flex; gap:16px; align-items:center; background:#fff; padding:16px; border-radius:var(--radius-md); transition:transform .25s var(--ease), box-shadow .25s var(--ease);}
.other-room-card:hover{transform:translateX(4px); box-shadow:0 10px 26px rgba(13,42,53,.07);}
.other-room-card img{width:76px; height:76px; object-fit:cover; flex-shrink:0; border-radius:10px;}
.other-room-card .name{font-family:'Fraunces',serif; font-size:16px;}
.other-room-card .meta{font-size:12px; color:var(--ink-faint); margin-top:2px;}

/* ---------- PACKAGE DETAIL: ITINERARY ---------- */
.pkg-detail{display:grid; grid-template-columns:1.15fr .85fr; gap:60px;}
.day-block{display:flex; gap:18px; margin-bottom:30px;}
.day-num{width:40px; height:40px; border-radius:50%; background:var(--forest-900); color:var(--gold); display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-weight:700; font-size:16px; flex-shrink:0;}
.day-content{padding-top:6px;}
.day-content h4{font-size:16px; margin-bottom:10px; font-family:'Fraunces',serif;}
.day-content ul{list-style:none; display:flex; flex-direction:column; gap:7px; padding:0;}
.day-content li{font-size:14px; color:var(--ink-soft); display:flex; gap:9px; align-items:flex-start;}
.day-content li::before{content:'▪'; color:var(--gold-dark); flex-shrink:0;}

/* ---------- PRICE TABLE ---------- */
.price-table{background:#fff; border-radius:var(--radius-md); overflow:hidden; box-shadow:0 6px 20px rgba(13,42,53,.06);}
.price-table .row{display:flex; justify-content:space-between; gap:12px; padding:13px 22px; font-size:13.5px; border-bottom:1px solid var(--line);}
.price-table .row:nth-child(even){background:#FBF3E4;}
.price-table .row .label{color:var(--ink-soft);}
.price-table .row .val{font-weight:700; white-space:nowrap;}
.price-table .total-row{background:linear-gradient(120deg, var(--tan) 0%, #E8C583 100%); color:var(--forest-900); padding:18px 22px; display:flex; justify-content:space-between; align-items:center;}
.price-table .total-row .label{font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--forest-900); font-weight:700; opacity:.75;}
.price-table .total-row .val{font-family:'Fraunces',serif; font-size:22px; color:var(--forest-900); font-weight:700;}

/* ---------- MINI POLICY BOX ---------- */
.policy-mini{background:var(--cream-card); border-radius:var(--radius-md); padding:22px 24px; margin-top:20px;}
.policy-mini h4{font-size:14px; margin-bottom:12px; font-family:'Fraunces',serif;}
.policy-mini ul{list-style:none; display:flex; flex-direction:column; gap:9px; padding:0; margin-bottom:6px;}
.policy-mini li{font-size:12.5px; color:var(--ink-soft); display:flex; gap:8px; align-items:flex-start;}
.policy-mini li svg{width:14px; height:14px; stroke:var(--gold-dark); flex-shrink:0; margin-top:2px;}
.policy-mini a.link-more{display:inline-flex; align-items:center; gap:5px; margin-top:12px; font-size:12.5px; font-weight:700; color:var(--gold-dark); transition:gap .25s var(--ease);}
.policy-mini a.link-more:hover{gap:9px; color:var(--forest-900);}

/* ---------- PRIVACY BANNER (Full House) ---------- */
.privacy-banner{
  background:#F6E9D3; border-left:3px solid var(--gold-dark); padding:16px 20px;
  border-radius:0 var(--radius-md) var(--radius-md) 0; font-size:13.5px; color:var(--ink-soft);
  display:flex; gap:12px; align-items:flex-start; margin-bottom:24px;
}
.privacy-banner svg{width:20px; height:20px; stroke:var(--gold-dark); flex-shrink:0; margin-top:1px;}
.privacy-banner strong{color:var(--ink); font-weight:800;}

/* ---------- TERMS PAGE ---------- */
.terms-section h3{font-size:17px; margin:36px 0 12px; font-family:'Fraunces',serif;}
.terms-section h3.first{margin-top:0;}
.terms-section ul{list-style:none; display:flex; flex-direction:column; gap:8px; margin-bottom:8px; padding:0;}
.terms-section li{font-size:14px; color:var(--ink-soft); display:flex; gap:10px; align-items:flex-start;}
.terms-section li::before{content:'▪'; color:var(--gold-dark); flex-shrink:0;}
.terms-columns{display:grid; grid-template-columns:1fr 1fr; gap:0 60px;}
.terms-intro{background:var(--cream-card); border-radius:var(--radius-md); padding:24px 26px; margin-bottom:20px; font-size:13.5px; color:var(--ink-soft);}

/* ---------- PACKAGE PILL BADGES (list cards) ---------- */
.pkg-profile{display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; color:var(--gold-dark); background:#F6E9D3; padding:5px 12px; border-radius:100px; margin-bottom:10px;}

/* ---------- GALLERY CAROUSEL (experiencias / hotel / vistas) ---------- */
.gallery-section{padding:20px 0 60px;}
.gallery-head{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:20px; flex-wrap:wrap;}
.gallery-head h2{font-size:20px;}
.gallery-nav{display:flex; gap:8px;}
.gallery-nav button{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line); background:#fff;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .25s var(--ease), border-color .25s var(--ease), transform .2s var(--ease);
}
.gallery-nav button:hover{background:var(--forest-900); border-color:var(--forest-900); transform:translateY(-2px);}
.gallery-nav button svg{width:16px; height:16px; stroke:var(--ink); fill:none; stroke-width:2.2; transition:stroke .25s var(--ease);}
.gallery-nav button:hover svg{stroke:var(--gold);}
.gallery-track{
  display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:6px;
  scrollbar-width:none;
}
.gallery-track::-webkit-scrollbar{display:none;}
.gallery-card{
  flex:0 0 auto; width:320px; height:240px; border-radius:var(--radius-md); overflow:hidden;
  position:relative; scroll-snap-align:start; box-shadow:0 6px 20px rgba(13,42,53,.08);
}
.gallery-card img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.gallery-card:hover img{transform:scale(1.08);}
.gallery-card::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(13,42,53,.82) 100%);}
.gallery-caption{position:absolute; left:16px; right:16px; bottom:14px; z-index:2;}
.gallery-caption .tag{font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#F0B93D; display:block; margin-bottom:3px;}
.gallery-card:nth-child(2n) .gallery-caption .tag{color:#A67C33;}
.gallery-card:nth-child(3n) .gallery-caption .tag{color:#DDBD84;}
.gallery-caption .name{color:#fff; font-family:'Fraunces',serif; font-size:15px;}
.gallery-note{margin-top:16px; font-size:12.5px; color:var(--ink-faint);}
@media (max-width:560px){
  .gallery-card{width:78vw; height:210px;}
  .logo-img{height:36px;}
}
/* ---------- ADD-ON CARD (extras opcionales, ej. decoración romántica) ---------- */
.addon-section{padding:20px 0 60px;}
.addon-card{
  display:grid; grid-template-columns:.85fr 1fr; gap:0; background:#fff; border-radius:var(--radius-lg);
  overflow:hidden; box-shadow:0 10px 30px rgba(13,42,53,.08); align-items:stretch;
}
.addon-media{position:relative; min-height:280px;}
.addon-media img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform .6s var(--ease);}
.addon-card:hover .addon-media img{transform:scale(1.05);}
.addon-badge{
  position:absolute; top:16px; left:16px; z-index:2; background:var(--tan); color:var(--forest-900);
  font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; padding:6px 13px; border-radius:100px;
}
.addon-body{padding:40px 44px; display:flex; flex-direction:column; justify-content:center;}
.addon-body .eyebrow{margin-bottom:12px;}
.addon-body h3{font-size:22px; margin-bottom:14px;}
.addon-body p{font-size:14.5px; color:var(--ink-soft); margin-bottom:20px; max-width:42ch;}
.addon-price{display:flex; align-items:baseline; gap:8px; margin-bottom:22px;}
.addon-price .lbl{font-family:'Fraunces',serif; font-size:16px; color:var(--forest-900); font-weight:600;}
.addon-price .sub{font-size:12px; color:var(--ink-faint);}
@media (max-width:980px){
  .addon-card{grid-template-columns:1fr;}
  .addon-media{min-height:220px;}
  .addon-body{padding:30px 26px;}
}

/* ---------- LANGUAGE SWITCH ---------- */
.lang-switch{display:flex; align-items:center; background:rgba(27,42,74,.06); border-radius:100px; padding:3px; gap:2px; flex-shrink:0; transition:background .25s var(--ease);}
.lang-btn{border:none; background:transparent; color:var(--ink-faint); font-size:11.5px; font-weight:800; letter-spacing:.02em; padding:7px 12px; border-radius:100px; cursor:pointer; transition:background .25s var(--ease), color .25s var(--ease); font-family:'Plus Jakarta Sans',sans-serif;}
.lang-btn.active{background:var(--gold); color:#fff;}
.lang-btn:hover:not(.active){color:var(--forest-900);}

/* Dual-language content: Spanish shows by default, English hidden until toggled */
.i18n-en{display:none;}
body.lang-en .i18n-es{display:none;}
body.lang-en .i18n-en{display:inline;}
body.lang-en .i18n-en.block{display:block;}
.i18n-es.block, .i18n-en.block{display:block;}
body.lang-en .i18n-es.block{display:none;}

footer{background:var(--forest-900); color:var(--onDark-faint); padding-top:70px;}
.footer-top{display:grid; grid-template-columns:1.3fr .8fr .8fr .9fr; gap:44px; padding-bottom:50px; border-bottom:1px solid var(--line-onDark);}
.footer-brand .logo-f{display:flex; align-items:center; gap:10px; margin-bottom:18px;}
.footer-brand p{font-size:13.5px; max-width:30ch; margin-bottom:20px;}
.footer-social{display:flex; gap:10px;}
.footer-social a{width:34px; height:34px; border:1px solid rgba(255,255,255,.2); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);}
.footer-social a:hover{background:var(--gold); border-color:var(--gold); transform:translateY(-3px);}
.footer-social a:nth-child(2):hover{background:var(--blue); border-color:var(--blue);}
.footer-social a:nth-child(3):hover{background:var(--tan); border-color:var(--tan);}
.footer-social svg{width:14px; height:14px; fill:#fff;}
.footer-col h4{font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:#fff; margin-bottom:18px; font-weight:700;}
.footer-col a, .footer-col li{display:block; font-size:13.5px; margin-bottom:11px;}
.footer-col a{position:relative;}
.footer-col a:hover{color:#fff;}
.footer-col ul{list-style:none;}
.footer-form{display:flex; flex-direction:column; gap:10px; margin-top:6px;}
.footer-form input{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); padding:12px 14px; color:#fff; font-family:inherit; font-size:13.5px; border-radius:10px; transition:border-color .25s var(--ease);}
.footer-form input:focus{outline:none; border-color:var(--gold);}
.footer-form input::placeholder{color:rgba(255,255,255,.4);}
.footer-form .btn{margin-top:4px;}
.footer-bottom{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:24px 0; font-size:12px; color:rgba(255,255,255,.38);}
.footer-bottom a{margin-left:18px; color:rgba(255,255,255,.38);}
.footer-bottom a:hover{color:#fff;}

/* ---------- RESPONSIVE ---------- */
@media (max-width:980px){
  .nav-links{display:none;}
  .burger{display:flex;}
  .hero-media{height:auto; min-height:520px; padding-bottom:36px; display:flex; align-items:flex-end;}
  .hero-copy{position:static; padding:36px 6% 0; max-width:none;}
  .hero-slider{height:66vh; min-height:480px;}
  .hero-slider .hero-copy{position:absolute; padding:0 24px 96px; max-width:100%;}
  .search-bar{margin-top:20px; flex-wrap:wrap; border-radius:24px;}
  .search-field{border-right:none; border-bottom:1px solid var(--line); width:100%;}
  .search-bar .btn{width:100%; margin-top:10px;}
  .features-grid, .stats-grid, .explore-grid{grid-template-columns:repeat(2,1fr);}
  .rooms-grid3, .testi-grid, .tips-grid, .packages-grid{grid-template-columns:1fr;}
  .dark-split .split, .offers-split, .newsletter-inner, .split, .split.reverse, .room-detail, .location-grid, .contact-grid, .pkg-detail, .terms-columns{grid-template-columns:1fr;}
  .split.reverse .split-media{order:0;}
  .newsletter-media{min-height:220px;}
  .offers-icons{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr 1fr; row-gap:40px;}
  .promo-card{flex-direction:column; text-align:center;}
  .promo-text{max-width:none;}
  .service-detail-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .features-grid, .stats-grid, .explore-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr;}
  .newsletter-text{padding:40px 28px;}
  .room-gallery{grid-template-columns:1fr;}
  .room-gallery img:first-child{height:260px;}
  .amenity-list{grid-template-columns:1fr;}
  .contact-form-box{padding:26px;}
  .page-hero{padding:120px 0 50px;}
}

a:focus-visible, button:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  *{scroll-behavior:auto !important;}
}

/* ===== Sistema de gestión: tarifas por fechas / cotizador ===== */
.season-badge{display:inline-block; margin-left:8px; padding:2px 10px; border-radius:100px; background:rgba(195,154,70,.18); color:var(--gold-dark); font-size:11px; font-weight:700; letter-spacing:.02em; vertical-align:middle;}
.room-cta-box .season-badge{background:rgba(195,154,70,.2);}
.room-quote{background:#fff; border:1px solid var(--line); border-radius:var(--radius-md); padding:20px 22px; margin-bottom:20px;}
.room-quote .lbl{font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-dark); font-weight:700; display:block; margin-bottom:12px;}
.rq-row{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.room-quote .dp-wrap{position:relative;}
.room-quote .dp-trigger{width:100%; border:1px solid var(--line); border-radius:12px; padding:11px 12px; background:#fff;}
.rq-result{margin-top:14px; font-size:14px;}
.rq-line,.rq-total{display:flex; justify-content:space-between; gap:12px; padding:6px 0; border-bottom:1px dashed var(--line);}
.rq-total{border-bottom:0; padding-top:12px; font-size:16px; color:var(--ink);}
.rq-total b{font-family:'Fraunces',serif; font-size:22px; color:var(--gold-dark);}
.pkg-desc{color:var(--ink-soft,#5b6579); font-size:14.5px; margin:0 0 14px;}
.plan-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; padding:64px 0;}
.plan-img{width:100%; border-radius:var(--radius-md); max-height:520px; object-fit:cover;}
.plan-price{font:600 32px 'Fraunces',serif; color:var(--ink); margin:14px 0 20px;}
.plan-price small{font:500 14px 'Plus Jakarta Sans',sans-serif; color:var(--ink-faint,#6b7385);}
.plan-it{line-height:1.8; margin-bottom:20px;} .plan-rules{padding-left:18px;} .plan-tc{margin-top:16px; font-size:13px;}
@media(max-width:900px){.plan-grid{grid-template-columns:1fr; gap:24px; padding:40px 0;}.rq-row{grid-template-columns:1fr;}}
.room-quote .dp-trigger{color:var(--ink); font-weight:600; display:flex; align-items:center; gap:8px;}
.room-quote .dp-trigger svg{stroke:var(--gold-dark); width:18px; height:18px; flex-shrink:0;}
.room-quote .dp-trigger.placeholder{color:var(--ink-faint,#6b7385); font-weight:500;}
.room-quote .dp-panel{z-index:30;}
.dp-trigger.dp-error{outline:2px solid #b3402f; animation:dpshake .3s;} @keyframes dpshake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

/* Cotizador de planes por fecha */
.room-cta-box .pq-wrap{margin:14px 0 16px;}
.room-cta-box .pq-wrap .dp-trigger{width:100%; border:1px solid var(--line); border-radius:12px; padding:11px 12px; background:#fff;}
.pq-out{border:1px solid var(--line); border-radius:12px; padding:7px 12px; background:#faf6ee; display:flex; flex-direction:column; justify-content:center; min-height:46px;}
.pq-out small{font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint);}
.pq-out b{font-size:13px; font-weight:600; color:var(--ink);}
.pq-result:empty{display:none;}

/* Header compacto al hacer scroll: contenido centrado verticalmente, sin espacio sobrante arriba */
.hero-card-nav,.nav{transition:padding .3s var(--ease);}
header.header-overlay.scrolled .hero-card-nav{padding:10px 34px; flex-wrap:nowrap;}
header.scrolled .nav{padding:10px 24px;}
header.scrolled .logo-img{height:38px;}
header.scrolled .btn{padding-top:9px; padding-bottom:9px;}
.logo-img{transition:height .3s var(--ease);}
@media(max-width:900px){header.header-overlay.scrolled .hero-card-nav{padding:8px 16px;}header.scrolled .nav{padding:8px 16px;}}

/* Pop Up promocional */
.pu-overlay{position:fixed; inset:0; z-index:1000; background:rgba(14,22,40,.62); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; transition:opacity .3s ease;}
.pu-overlay.open{opacity:1;}
.pu-box{position:relative; width:min(460px,100%); max-height:100%; background:#fff; border-radius:22px; box-shadow:0 30px 80px rgba(0,0,0,.4); padding:10px 10px 16px; display:flex; flex-direction:column; align-items:center; gap:12px; transform:translateY(18px) scale(.97); transition:transform .35s var(--ease);}
.pu-overlay.open .pu-box{transform:none;}
.pu-stage{position:relative; width:100%; border-radius:16px; overflow:hidden; background:#f4efe6; display:grid; min-height:0;}
.pu-slide{grid-area:1/1; position:relative; overflow:hidden; display:grid; place-items:center; opacity:0; visibility:hidden; transition:opacity .45s ease; line-height:0;}
.pu-slide.on{opacity:1; visibility:visible;}
.pu-slide img{width:100%; height:auto; max-height:min(66vh,620px); object-fit:contain; display:block; margin:0 auto;}
.pu-close{position:absolute; top:-14px; right:-14px; width:38px; height:38px; border-radius:50%; border:0; background:#fff; color:var(--ink); font-size:24px; line-height:1; cursor:pointer; box-shadow:0 6px 18px rgba(0,0,0,.28); z-index:3; transition:transform .25s var(--ease);}
.pu-close:hover{transform:rotate(90deg) scale(1.05);}
.pu-nav{position:absolute; top:50%; transform:translateY(-50%); width:36px; height:36px; border-radius:50%; border:0; background:rgba(255,255,255,.88); color:var(--ink); cursor:pointer; font-size:14px; z-index:2; box-shadow:0 4px 14px rgba(0,0,0,.2);}
.pu-prev{left:8px;} .pu-next{right:8px;}
.pu-dots{display:flex; gap:8px;}
.pu-dot{width:9px; height:9px; border-radius:50%; border:0; padding:0; background:#d6cfc2; cursor:pointer; transition:background .25s, transform .25s;}
.pu-dot.on{background:var(--gold); transform:scale(1.25);}
.pu-btn{display:inline-block; background:var(--gold); color:#fff; font-weight:700; font-size:15px; padding:13px 34px; border-radius:100px; transition:transform .25s var(--ease), box-shadow .25s;}
.pu-btn:hover{transform:translateY(-2px); box-shadow:0 10px 24px rgba(196,154,72,.45);}
@media(max-width:520px){.pu-close{top:-10px; right:-6px;}.pu-box{padding:8px 8px 14px;}}
.pu-slide::before{content:''; position:absolute; inset:-24px; background:var(--bg) center/cover no-repeat; filter:blur(22px) brightness(.92); transform:scale(1.05);}
.pu-slide img{position:relative; z-index:1;}

/* ---------- Animaciones al hacer scroll (assets/js/motion.js) ---------- */
:root{--ease-out:cubic-bezier(.16,1,.3,1);}
html.fx [data-fx]{opacity:0; transition:opacity .9s var(--ease-out), transform 1.1s var(--ease-out), filter .9s var(--ease-out); transition-delay:var(--d,0ms); will-change:opacity,transform;}
html.fx [data-fx="up"]{transform:translateY(48px);}
html.fx [data-fx="left"]{transform:translateX(-64px);}
html.fx [data-fx="right"]{transform:translateX(64px);}
html.fx [data-fx="zoom"]{transform:scale(.86);}
html.fx [data-fx="img"]{transform:scale(1.16); filter:blur(10px); transition-duration:.9s,1.6s,1.1s;}
html.fx [data-fx].fx-in{opacity:1; transform:none; filter:none;}
.page-hero{background-position:center, center calc(50% + var(--py,0px)); background-size:auto, cover;}
.split-media img,.addon-media img{translate:0 var(--ty,0px); scale:1.12;}
.fx-progress{position:fixed; left:0; top:0; height:3px; width:100%; background:linear-gradient(90deg,var(--gold),#e8d4a6); transform-origin:0 50%; transform:scaleX(0); z-index:1200; pointer-events:none;}
/* elevación suave de tarjetas */
.room-card,.package-card,.explore-card,.testi-card,.service-detail-card,.gallery-card{transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out);}
.room-card:hover,.package-card:hover,.explore-card:hover,.service-detail-card:hover,.gallery-card:hover{transform:translateY(-8px); box-shadow:0 22px 48px rgba(27,42,74,.16);}
.btn{transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out), background .3s;}
.btn:hover{transform:translateY(-2px);}
@media(max-width:700px){html.fx [data-fx="left"],html.fx [data-fx="right"]{transform:translateY(36px);}}
@media(prefers-reduced-motion:reduce){html.fx [data-fx]{opacity:1; transform:none; filter:none; transition:none;} .fx-progress{display:none}}

/* ===== SEO/Accesibilidad/Legal (2026-10) ===== */
:root{--gold-dark:#8A6420; --turquoise-dark:#8A6420; --ink-faint:rgba(27,42,74,.7); --sunset-dark:#CBA968;}
.eyebrow.on-dark{color:var(--tan);}
.room-card .price{color:var(--gold-dark);}
.sr-only{position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.skip-link{position:fixed; left:12px; top:-60px; z-index:10000; background:#1B2A4A; color:#fff; padding:12px 18px; border-radius:100px; font-weight:700; font-size:14px; text-decoration:none; transition:top .2s; box-shadow:0 8px 24px rgba(0,0,0,.3);}
.skip-link:focus{top:12px; outline:3px solid #E8D4A6; outline-offset:2px;}
[tabindex="-1"]:focus{outline:none;}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible{outline:3px solid #1B2A4A; outline-offset:2px; box-shadow:0 0 0 6px #fff;}
.contact-form-box input:focus-visible, .contact-form-box textarea:focus-visible, .contact-form-box select:focus-visible{outline:3px solid #1B2A4A; outline-offset:2px;}
footer a:focus-visible, footer button:focus-visible, .page-hero a:focus-visible{outline-color:#E8D4A6; box-shadow:0 0 0 5px #1B2A4A;}
mark.todo{background:#FFE9A8; color:#5b3d00; padding:1px 6px; border-radius:6px; font-weight:600; font-size:.92em;}
.legal-sec{padding:56px 0 90px;}
.legal-doc{max-width:860px; margin:0 auto; background:#fff; border-radius:var(--radius-lg); padding:clamp(24px,4vw,48px); box-shadow:0 10px 36px rgba(13,42,53,.07);}
.legal-doc h2{font-family:'Fraunces',serif; font-size:clamp(20px,2.4vw,26px); margin:34px 0 10px; color:var(--ink);}
.legal-doc h2:first-child{margin-top:0;}
.legal-doc p, .legal-doc li{line-height:1.75; font-size:15.5px; color:var(--ink);}
.legal-doc p{margin:0 0 12px;}
.legal-doc ul{padding-left:22px; margin:8px 0 14px;} .legal-doc li{margin-bottom:8px;}
.legal-doc a{color:var(--gold-dark); text-decoration:underline; text-underline-offset:3px; font-weight:600;}
.tbl-wrap{overflow-x:auto;} .tbl{border-collapse:collapse; width:100%; font-size:14px;}
.tbl th, .tbl td{text-align:left; padding:11px 12px; border-bottom:1px solid var(--line); vertical-align:top;} .tbl th{background:var(--cream); font-size:12px; text-transform:uppercase; letter-spacing:.05em;}
.kv{display:grid; grid-template-columns:minmax(150px,230px) 1fr; gap:0; margin:0;} .kv dt, .kv dd{margin:0; padding:12px 0; border-bottom:1px solid var(--line);} .kv dt{font-weight:700; color:var(--gold-dark);}
@media(max-width:560px){.kv{grid-template-columns:1fr;} .kv dt{border:0; padding-bottom:0;}}
.legal-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px; margin-top:20px;}
.legal-card{display:block; background:var(--cream); border-radius:var(--radius-md); padding:20px 22px; text-decoration:none!important; color:var(--ink)!important; font-weight:700; border:1px solid var(--line); transition:transform .25s var(--ease), box-shadow .25s var(--ease);}
.legal-card:hover{transform:translateY(-3px); box-shadow:0 12px 26px rgba(13,42,53,.1);}
.linklike{background:none; border:0; padding:0; font:inherit; color:inherit; text-decoration:underline; cursor:pointer;}
.footer-bottom{gap:14px 24px;}
.legal-links{display:flex; flex-wrap:wrap; gap:6px 18px; align-items:center;} .legal-links a{margin:0!important;}
.about-seo{padding:70px 0 20px;}
.about-grid{display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(28px,5vw,64px); align-items:start;}
@media(max-width:860px){.about-grid{grid-template-columns:1fr;}}
.about-seo h2{font-family:'Fraunces',serif; font-size:clamp(24px,3vw,34px); margin:8px 0 14px;}
.about-seo p{line-height:1.75; color:var(--ink-soft); font-size:15.5px;} .about-seo p a{color:var(--gold-dark); font-weight:700; text-decoration:underline; text-underline-offset:3px;}
.faq-item{background:#fff; border-radius:var(--radius-md); margin-bottom:10px; box-shadow:0 4px 16px rgba(13,42,53,.05); overflow:hidden;}
.faq-item summary{cursor:pointer; list-style:none; padding:16px 48px 16px 20px; font-weight:700; font-size:15px; position:relative;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+'; position:absolute; right:20px; top:50%; transform:translateY(-50%); font-size:22px; color:var(--gold-dark); transition:transform .25s;}
.faq-item[open] summary::after{transform:translateY(-50%) rotate(45deg);}
.faq-a{padding:0 20px 18px; color:var(--ink-soft); line-height:1.7; font-size:14.5px;}
.consent-row{display:flex; gap:10px; align-items:flex-start; font-size:12.5px; line-height:1.5; margin:12px 0 4px; text-transform:none!important; letter-spacing:0!important; flex-basis:100%; cursor:pointer;}
.consent-row input{width:20px!important; height:20px; min-width:20px; margin-top:1px; accent-color:#8A6420; padding:0!important;}
.consent-row a{text-decoration:underline; font-weight:700;}
.contact-form-box .consent-row{color:var(--ink); font-weight:500;}
.newsletter-band .consent-row{color:#fff;} .newsletter-band .consent-row a{color:#E8D4A6;}
.newsletter-form{flex-wrap:wrap;}
.hp{position:absolute!important; left:-9999px; width:1px; height:1px; opacity:0;}
.form-status{flex-basis:100%; margin:8px 0 0; font-size:13.5px; font-weight:600; min-height:1.2em;} .form-status.ok{color:#1d6b3a;} .form-status.err{color:#b3261e;}
.newsletter-band .form-status.ok{color:#bff0cf;} .newsletter-band .form-status.err{color:#ffd1cc;}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; scroll-behavior:auto!important;}}
.about-seo p{margin:0 0 14px;}

/* ===== Responsive final ===== */
html,body{overflow-x:clip; max-width:100%;}
img,video,iframe,svg{max-width:100%;}
@media(max-width:400px){
  .nav{padding-left:12px; padding-right:12px; gap:8px;}
  .nav > div{gap:6px!important;}
  .nav .btn{padding:9px 12px; font-size:12px;}
  .nav .logo-img{height:34px; width:auto;}
  .lang-btn{padding:6px 9px;}
  .burger{padding:6px;}
  .wrap{padding-left:16px; padding-right:16px;}
}
.legal-doc, .about-grid > *{min-width:0; overflow-wrap:anywhere;}
.page-hero h1{overflow-wrap:break-word;}
@media(max-width:600px){
  .hero-card-nav{flex-wrap:nowrap; gap:8px; padding:14px 14px 0;}
  .hero-card-nav > div{gap:6px!important; flex-shrink:0;}
  .hero-card-nav .btn{padding:9px 14px; font-size:12px;}
  .hero-card-nav .logo-img{height:34px; width:auto;}
  .hero-card-nav .lang-btn{padding:6px 9px;}
  .hero-card-copy{margin-top:max(130px,20vh); margin-bottom:auto; padding:0 16px;}
  .hero-dots{top:72px; bottom:auto; left:16px;}
}
@media(max-width:360px){.hero-card-nav .btn{padding:8px 10px;} .hero-card-nav .logo-img{height:30px;}}
@media(max-width:980px){.hero-dots{top:72px; bottom:auto; left:20px;}}

/* Hero con 9 fotos: miniaturas compactas para que no tapen la barra de reserva */
.hero-side-thumbs{top:104px; gap:8px;}
.hero-side-thumbs img{width:46px; height:46px; border-width:2px;}
@media (max-height:760px){.hero-side-thumbs{top:84px; gap:5px;} .hero-side-thumbs img{width:38px; height:38px;}}

/* Bloque "Qué tienes cerca" (SEO local) */
.kv-list{list-style:none; margin:14px 0; padding:0; display:grid; gap:10px;}
.kv-list li{padding:12px 16px; background:#fff; border-radius:14px; box-shadow:0 6px 18px rgba(27,42,74,.06); line-height:1.5;}
#cerca-de{padding-top:34px; padding-bottom:34px;}

/* Página Sobre nosotros */
.about-story-grid{display:grid; grid-template-columns:1.15fr 1fr; gap:42px; align-items:center;}
.about-story-grid p{line-height:1.7; color:var(--ink-soft,#4a5468); margin:0 0 14px;}
.about-photos{display:grid; gap:14px;}
.about-photos img{width:100%; height:240px; object-fit:cover; border-radius:22px; box-shadow:0 14px 34px rgba(27,42,74,.18);}
.about-cards{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.about-card{background:#fff; border-radius:20px; padding:22px; box-shadow:0 8px 24px rgba(27,42,74,.07);}
.about-card h3{margin:0 0 8px; font-size:1.05rem; color:var(--gold-dark);}
.about-card p{margin:0; line-height:1.55; font-size:.95rem;}
@media(max-width:980px){.about-story-grid{grid-template-columns:1fr;} .about-cards{grid-template-columns:repeat(2,1fr);} .about-photos{grid-template-columns:1fr 1fr;} .about-photos img{height:190px;}}
@media(max-width:560px){.about-cards{grid-template-columns:1fr;} .about-photos{grid-template-columns:1fr;}}

/* Sobre nosotros: gerencia y hoteles aliados */
.leader-grid{display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:center;}
.leader-copy h2{text-transform:uppercase; letter-spacing:.01em; line-height:1.15;}
.leader-copy>p{line-height:1.7; margin:0 0 14px;}
.leader-points{list-style:none; margin:22px 0 0; padding:0;}
.leader-points li{padding:14px 0; border-top:1px solid var(--line,#e6dfd2);}
.leader-points li:last-child{border-bottom:1px solid var(--line,#e6dfd2);}
.leader-points h3{margin:0 0 4px; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; color:var(--navy,#1B2A4A);}
.leader-points p{margin:0; line-height:1.55; font-size:.95rem;}
.leader-photo{margin:0;}
.leader-photo img{width:100%; height:auto; aspect-ratio:5/6; object-fit:cover; object-position:center top; border-radius:22px; box-shadow:0 18px 44px rgba(27,42,74,.2); display:block;}
.leader-photo figcaption{display:flex; flex-direction:column; align-items:flex-end; gap:2px; padding:14px 6px 0; border-bottom:1px solid var(--line,#e6dfd2); padding-bottom:14px;}
.leader-photo figcaption span{font-size:.9rem; opacity:.75;}
.allies-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:26px;}
.ally-card{background:#fff; border-radius:18px; padding:34px 22px; text-align:center; box-shadow:0 10px 28px rgba(27,42,74,.08); display:flex; flex-direction:column; align-items:center; gap:6px; min-height:170px; justify-content:center;}
.ally-card h3{margin:0; font-size:1.15rem; color:var(--navy,#1B2A4A);}
.ally-card p{margin:0; font-size:.9rem; opacity:.7;}
.ally-card.current{background:linear-gradient(160deg,#fff8e8,#f5e6c4); outline:2px solid var(--gold,#C79A3C);}
.ally-tag{margin-top:6px; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-dark,#8A6420); font-weight:700;}
@media(max-width:900px){.leader-grid{grid-template-columns:1fr; gap:28px;} .leader-photo{order:-1; max-width:420px; margin:0 auto;} .allies-grid{grid-template-columns:1fr;}}

/* Servicios: aliados y planes */
.partner-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px; max-width:960px; margin:0 auto;}
.partner-card{background:#fff; border-radius:22px; overflow:hidden; box-shadow:0 12px 32px rgba(27,42,74,.1); display:flex; flex-direction:column;}
.partner-media{position:relative; aspect-ratio:16/10; overflow:hidden;}
.partner-media img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--ease,ease);}
.partner-card:hover .partner-media img{transform:scale(1.05);}
.partner-tag{position:absolute; left:14px; top:14px; background:rgba(27,42,74,.85); color:#fff; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; padding:6px 12px; border-radius:999px;}
.partner-body{padding:22px; display:flex; flex-direction:column; gap:12px; flex:1;}
.partner-body h3{margin:0; font-size:1.2rem; color:var(--navy,#1B2A4A);}
.partner-body p{margin:0; line-height:1.6; font-size:.95rem;}
.partner-body a:not(.btn){color:var(--gold-dark,#8A6420); font-weight:700; text-decoration:underline; text-underline-offset:3px;}
.partner-body ul{margin:0; padding:0; list-style:none; display:grid; gap:6px; font-size:.92rem;}
.partner-body li{padding-left:22px; position:relative;}
.partner-body li::before{content:"✓"; position:absolute; left:0; color:var(--gold-dark,#8A6420); font-weight:700;}
.partner-body .btn{align-self:flex-start; margin-top:auto;}
.partner-body .btn-outline{margin-left:6px;}
@media(max-width:980px){.partner-grid{grid-template-columns:1fr; max-width:560px; margin:0 auto;}}

/* Paquetes: planes románticos */
.romance-card{display:grid; grid-template-columns:1fr 1.1fr; background:#fff; border-radius:26px; overflow:hidden; box-shadow:0 16px 42px rgba(27,42,74,.12);}
.romance-media{position:relative; min-height:340px;}
.romance-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.romance-body{padding:38px 36px; display:flex; flex-direction:column; gap:12px; justify-content:center;}
.romance-body h2{margin:0;}
.romance-body p{margin:0; line-height:1.65;}
.romance-body ul{list-style:none; margin:4px 0 8px; padding:0; display:grid; gap:7px;}
.romance-body li{padding-left:24px; position:relative;}
.romance-body li::before{content:"♥"; position:absolute; left:0; color:#b4505a; font-size:.9rem;}
.romance-actions{display:flex; gap:10px; flex-wrap:wrap;}
@media(max-width:900px){.romance-card{grid-template-columns:1fr;} .romance-media{min-height:240px;} .romance-body{padding:26px 22px;}}

/* Menú móvil de la página de inicio: la regla del hero lo ocultaba aunque se abriera */
@media (max-width:980px){
  .hero-card-nav .nav-links.mobile-open{
    display:flex; flex-direction:column; align-items:flex-start; gap:18px;
    position:absolute; top:calc(100% + 10px); left:12px; right:12px; z-index:60;
    background:rgba(27,42,74,.97); border:1px solid rgba(255,255,255,.12); border-radius:18px;
    padding:22px 24px; box-shadow:0 22px 50px rgba(0,0,0,.35);
  }
  .hero-card-nav .nav-links.mobile-open a{color:#fff; font-size:16px;}
}

/* ---------- Menú móvil: panel lateral ---------- */
html.m-lock{overflow:hidden;}
.m-drawer{position:fixed; inset:0; z-index:2000; visibility:hidden; pointer-events:none; transition:visibility 0s linear .4s;}
.m-drawer.open{visibility:visible; pointer-events:auto; transition-delay:0s;}
.m-backdrop{position:absolute; inset:0; background:rgba(13,22,40,.55); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); opacity:0; transition:opacity .35s ease;}
.m-drawer.open .m-backdrop{opacity:1;}
.m-panel{position:absolute; top:0; right:0; bottom:0; width:min(88vw,400px); background:#fff; color:var(--ink,#1B2A4A); display:flex; flex-direction:column; overflow-y:auto; -webkit-overflow-scrolling:touch; box-shadow:-24px 0 60px rgba(0,0,0,.28); transform:translateX(102%); transition:transform .4s cubic-bezier(.22,.8,.24,1);}
.m-drawer.open .m-panel{transform:none;}
.m-head{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:max(22px,env(safe-area-inset-top)) 24px 18px; border-bottom:1px solid #ece7dd; position:sticky; top:0; background:#fff; z-index:1;}
.m-head h2{margin:0; font-size:24px; line-height:1.1; font-weight:800; color:var(--navy,#1B2A4A);}
.m-head p{margin:4px 0 0; font-size:14px; color:#6b7385;}
.m-close{width:44px; height:44px; border:0; background:none; color:var(--navy,#1B2A4A); display:grid; place-items:center; border-radius:50%; cursor:pointer; margin:-6px -8px 0 0; transition:background .2s;}
.m-close:hover,.m-close:focus-visible{background:#f3efe7;}
.m-links{display:flex; flex-direction:column; padding:10px 24px 6px;}
.m-links a{display:block; padding:19px 0; font-size:18px; font-weight:500; color:#5a6275; border-bottom:1px solid #ece7dd; opacity:0; transform:translateX(16px); transition:color .2s, opacity .4s ease, transform .4s ease; transition-delay:0s,calc(var(--i,0)*45ms + 120ms),calc(var(--i,0)*45ms + 120ms);}
.m-links a::after{display:none;}
.m-drawer.open .m-links a{opacity:1; transform:none;}
.m-links a.active{font-weight:800; color:var(--navy,#1B2A4A);}
.m-links a:hover{color:var(--gold-dark,#8A6420);}
.m-actions{display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:22px 24px 0;}
.m-act{display:flex; align-items:center; justify-content:center; gap:8px; padding:15px 10px; border:1.5px solid var(--navy,#1B2A4A); border-radius:18px; font-weight:700; font-size:15px; color:var(--navy,#1B2A4A); background:#fff; transition:background .2s,color .2s;}
.m-act:hover{background:var(--navy,#1B2A4A); color:#fff;}
.m-cta{margin:16px 24px max(26px,env(safe-area-inset-bottom)); justify-content:center; padding:17px 20px; border-radius:18px; font-size:16px;}
@media (min-width:981px){.m-drawer{display:none;}}
@media (prefers-reduced-motion:reduce){.m-panel,.m-backdrop,.m-links a{transition-duration:.01s; transition-delay:0s;}}
