/* Casa Deva — website layout (uses design-system tokens from styles.css) */

.site { min-height: 100vh; }

/* ---------- Header ---------- */
.site-head {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between;
  gap: 1.5rem;
  padding: 1rem clamp(1.25rem, 5vw, 4rem);
  transition: background var(--dur-base) var(--ease-soft), box-shadow var(--dur-base) var(--ease-soft), padding var(--dur-base) var(--ease-soft);
}
.site-head.is-scrolled, .site-head.is-solid {
  background: rgba(236, 228, 218, 0.94);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 var(--line);
  padding-top: 0.6rem; padding-bottom: 0.6rem;
}
.brand { display: inline-flex; align-items: center; gap: 0.7rem; cursor: pointer; flex: 0 0 auto; min-width: 0; }
.brand__badge { flex: 0 0 46px; width: 46px; height: 46px; border-radius: 50%; background: var(--cream); display: inline-flex; align-items: center; justify-content: center; box-shadow: var(--shadow-xs); }
.brand__badge img { width: 30px; height: auto; flex: 0 0 auto; object-fit: contain; }
.brand__name { font-family: var(--font-display); font-weight: var(--weight-medium); font-size: 1.3rem; color: var(--paper); letter-spacing: 0.02em; text-shadow: 0 1px 14px rgba(40,30,24,0.5); transition: color var(--dur-base) var(--ease-soft); }
.site-nav { display: flex; gap: 1.35rem; }
.site-nav a { font-family: var(--font-body); font-weight: 600; font-size: 0.84rem; letter-spacing: 0.13em; text-transform: uppercase; color: var(--paper); cursor: pointer; transition: color var(--dur-fast); white-space: nowrap; text-shadow: 0 1px 12px rgba(40,30,24,0.55); }
.site-nav a:hover { color: #fff; }
.head-actions { display: flex; align-items: center; gap: 0.9rem; }
.lang-toggle { font-family: var(--font-body); font-weight: 700; font-size: 0.78rem; letter-spacing: 0.12em; color: var(--paper); background: rgba(40,30,24,0.18); border: 1.5px solid rgba(244,238,227,0.55); border-radius: var(--radius-pill); width: 40px; height: 34px; cursor: pointer; transition: all var(--dur-fast); }
.lang-toggle:hover { border-color: var(--paper); color: #fff; }
.ig-btn { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; color: var(--paper); border: 1.5px solid rgba(244,238,227,0.55); background: rgba(40,30,24,0.18); transition: all var(--dur-fast); }
.ig-btn:hover { border-color: var(--paper); color: #fff; }
.site-head.is-solid .ig-btn { color: var(--espresso); background: transparent; border-color: var(--line-strong); }
.site-head.is-solid .ig-btn:hover { border-color: var(--oxblood); color: var(--oxblood); }

/* Scrolled / interior pages: solid surface, dark ink */
.site-head.is-scrolled .brand__name, .site-head.is-solid .brand__name,
.site-head.is-scrolled .site-nav a, .site-head.is-solid .site-nav a { color: var(--espresso); text-shadow: none; }
.site-head.is-scrolled .site-nav a:hover, .site-head.is-solid .site-nav a:hover { color: var(--oxblood); }
.site-head .site-nav a.is-active { color: var(--oxblood); }
.site-head.is-scrolled .lang-toggle, .site-head.is-solid .lang-toggle { color: var(--espresso); background: transparent; border-color: var(--line-strong); }
.site-head.is-scrolled .lang-toggle:hover, .site-head.is-solid .lang-toggle:hover { border-color: var(--oxblood); color: var(--oxblood); }

/* ---------- Hero ---------- */
.hero { position: relative; min-height: 100vh; display: flex; flex-direction: column; justify-content: center; padding: 7rem clamp(1.25rem, 5vw, 4rem) 4rem; color: var(--cream); overflow: hidden; }
.hero__media { position: absolute; inset: 0; z-index: 0; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.hero__veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(54,48,42,0.42) 0%, rgba(74,23,24,0.30) 45%, rgba(54,48,42,0.62) 100%); }
.hero__inner { position: relative; z-index: 1; max-width: 900px; }
.hero__eyebrow { font-family: var(--font-body); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--sand); }
.hero__title { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.6rem, 6.4vw, 5rem); line-height: 1.02; letter-spacing: 0; white-space: pre-line; margin: 1.1rem 0 1.3rem; color: var(--paper); text-shadow: 0 2px 30px rgba(54,48,42,0.35); }
.hero__sub { font-family: var(--font-body); font-weight: 300; font-size: clamp(1.05rem, 2vw, 1.35rem); line-height: 1.5; max-width: 540px; color: var(--cream); }
.hero__cta { display: flex; gap: 0.9rem; margin-top: 2rem; flex-wrap: wrap; }
.hero .cd-btn--secondary.on-photo { color: var(--paper); border-color: rgba(244,238,227,0.6); }
.hero .cd-btn--secondary.on-photo:hover { background: rgba(244,238,227,0.14); border-color: var(--paper); color: var(--paper); }

/* ---------- Booking bar ---------- */
.book-bar {
  position: absolute; z-index: 2; left: clamp(1.25rem, 5vw, 4rem); right: clamp(1.25rem, 5vw, 4rem); bottom: 2.2rem;
  max-width: 880px;
  display: flex; align-items: center; gap: 0.5rem;
  background: rgba(251, 247, 239, 0.94);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  border-radius: var(--radius-pill);
  padding: 0.7rem 0.7rem 0.7rem 1.6rem;
  box-shadow: var(--shadow-lg);
}
.bb-field { display: flex; flex-direction: column; gap: 0.1rem; flex: 1; min-width: 0; }
.bb-field span { font-family: var(--font-body); font-weight: 700; font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-faint); }
.bb-field input, .bb-field select { font-family: var(--font-body); font-size: 0.95rem; color: var(--espresso); border: none; background: transparent; outline: none; padding: 0.1rem 0; cursor: pointer; }
.bb-div { width: 1px; align-self: stretch; background: var(--line); margin: 0.2rem 0.4rem; }
.book-bar .cd-btn { flex: 0 0 auto; }

/* ---------- Story ---------- */
.story { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; max-width: var(--container-wide); margin: 0 auto; padding: clamp(4rem, 9vw, 8rem) clamp(1.25rem, 5vw, 4rem); }
.story__media { border-radius: var(--radius-2xl); overflow: hidden; aspect-ratio: 4/5; box-shadow: var(--shadow-md); }
.story__media img { width: 100%; height: 100%; object-fit: cover; }
.story__title { font-family: var(--font-display); font-weight: 300; font-size: clamp(2.2rem, 4vw, 3.4rem); line-height: 1.05; white-space: pre-line; color: var(--espresso); margin: 0.7rem 0 1.2rem; }
.story__copy { font-size: 1.1rem; line-height: 1.7; color: var(--text-body); max-width: 480px; }
.story__tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.8rem; }

/* ---------- Origen ---------- */
.origen { background: var(--cream); padding: clamp(3.5rem, 6.5vw, 6rem) 0; }
.origen__inner { display: grid; grid-template-columns: 0.82fr 1fr; gap: clamp(2.5rem, 6vw, 5.5rem); align-items: center; max-width: var(--container); margin: 0 auto; padding: 0 clamp(1.25rem, 5vw, 4rem); }
.origen__media { display: flex; flex-direction: column; align-items: center; }
.origen__media img { width: 100%; max-width: 380px; aspect-ratio: 600 / 679; object-fit: cover; border-radius: 190px 190px var(--radius-lg) var(--radius-lg); box-shadow: var(--shadow-md); display: block; }
.origen__caption { margin-top: 1.1rem; font-family: var(--font-body); font-size: 0.85rem; letter-spacing: 0.08em; color: var(--text-muted); text-align: center; }
.origen__title { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.4rem, 5vw, 4rem); color: var(--oxblood); margin: 0.5rem 0 1.3rem; }
.origen__body p { font-size: 1.06rem; line-height: 1.78; color: var(--text-body); max-width: 560px; margin: 0 0 1.05rem; }
.origen__body p:last-child { margin-bottom: 0; }
.origen__tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.7rem; }

/* ---------- Section head ---------- */
.section-head { text-align: center; max-width: 620px; margin: 0 auto clamp(2rem, 4vw, 3rem); }
.section-head h1, .section-head h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.2rem, 4vw, 3.4rem); color: var(--espresso); margin: 0.6rem 0 0.7rem; }
.section-head p { font-size: 1.1rem; color: var(--text-muted); margin: 0; }

/* ---------- Cabins ---------- */
.cabins { background: var(--paper); padding: clamp(3.5rem, 6.5vw, 6rem) clamp(1.25rem, 5vw, 4rem); }
.cabins__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; max-width: var(--container-wide); margin: 0 auto; }

/* ---------- Retreats ---------- */
.retreats { max-width: var(--container-wide); margin: 0 auto; padding: clamp(4rem, 9vw, 8rem) clamp(1.25rem, 5vw, 4rem); display: flex; flex-direction: column; gap: clamp(3rem, 6vw, 6rem); }
.retreat-block { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.retreat-block--rev { grid-template-columns: 1fr 1.1fr; }
.retreat-block--rev .retreat-block__media { order: 2; }
.retreat-block__media { border-radius: var(--radius-2xl); overflow: hidden; aspect-ratio: 5/4; box-shadow: var(--shadow-md); }
.retreat-block__media img { width: 100%; height: 100%; object-fit: cover; }
.retreat-block__body h3 { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.9rem, 3.5vw, 2.8rem); color: var(--espresso); margin: 0.7rem 0 1rem; }
.retreat-block__body p { font-size: 1.08rem; line-height: 1.7; color: var(--text-body); max-width: 440px; margin-bottom: 1.6rem; }

/* ---------- Quote ---------- */
.quote { background: var(--oxblood); color: var(--cream); text-align: center; padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 6vw, 6rem); }
.quote__mark { width: 92px; height: auto; opacity: 0.85; margin-bottom: 1.8rem; }
.quote blockquote { font-family: var(--font-body); font-weight: 300; font-style: italic; font-size: clamp(1.6rem, 3.4vw, 2.7rem); line-height: 1.3; max-width: 920px; margin: 0 auto 1.4rem; color: var(--paper); }
.quote cite { font-family: var(--font-body); font-style: normal; font-size: 0.95rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--sand-deep); }

/* ---------- Booking ---------- */
.booking { background: var(--sand); padding: clamp(3rem, 7vw, 6rem) clamp(1.5rem, 5vw, 5rem); display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: start; max-width: var(--container-wide); margin: clamp(2rem, 5vw, 4rem) auto; border-radius: var(--radius-2xl); }
.booking__intro { position: sticky; top: 100px; }
.booking__intro h2 { font-family: var(--font-display); font-weight: 300; font-size: clamp(2.2rem, 4vw, 3.2rem); color: var(--espresso); margin: 0.6rem 0 0.8rem; }
.booking__intro p { font-size: 1.1rem; line-height: 1.6; color: var(--text-body); max-width: 360px; }
.booking__form { background: var(--paper); border-radius: var(--radius-xl); padding: clamp(1.6rem, 3vw, 2.4rem); box-shadow: var(--shadow-sm); }
.bf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem 1.4rem; margin-bottom: 1.6rem; }
.bf-span { grid-column: 1 / -1; }
.booking__success { background: var(--paper); border-radius: var(--radius-xl); padding: 3.5rem 2rem; text-align: center; box-shadow: var(--shadow-sm); }
.booking__success img { width: 110px; height: auto; margin-bottom: 1.2rem; }
.booking__success p { font-family: var(--font-body); font-weight: 500; font-size: 1.4rem; line-height: 1.5; color: var(--oxblood); max-width: 360px; margin: 0 auto; }

/* ---------- Footer ---------- */
.site-foot { background: var(--espresso); color: var(--offwhite); display: flex; flex-wrap: wrap; gap: 2rem; justify-content: space-between; padding: clamp(2.5rem, 5vw, 4rem) clamp(1.25rem, 5vw, 4rem); }
.foot__brand { display: flex; flex-direction: column; gap: 0.5rem; max-width: 300px; }
.foot__brand img { width: 70px; height: auto; }
.foot__name { font-family: var(--font-display); font-weight: 500; font-size: 1.4rem; color: var(--paper); }
.foot__tag { font-size: 0.92rem; color: var(--sand-deep); }
.foot__meta { display: flex; flex-direction: column; gap: 0.45rem; text-align: right; font-size: 0.92rem; color: var(--sand); }
.foot__rights { color: var(--espresso-faint); margin-top: 0.5rem; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .site-nav { display: none; }
  .story, .booking { grid-template-columns: 1fr; }
  .origen__inner { grid-template-columns: 1fr; }
  .origen__media img { max-width: 320px; }
  .booking__intro { position: static; }
  .cabins__grid { grid-template-columns: 1fr; max-width: 420px; }
  .retreat-block, .retreat-block--rev { grid-template-columns: 1fr; }
  .retreat-block--rev .retreat-block__media { order: 0; }
  .bf-grid { grid-template-columns: 1fr; }
  .book-bar { display: none; }
  .foot__meta { text-align: left; }
  .feature__inner, .contacto__inner { grid-template-columns: 1fr; }
  .feature__media { aspect-ratio: 16 / 10; max-height: 360px; }
}

/* ---------- Feature (Retiros) ---------- */
.feature { background: var(--offwhite); padding: clamp(3.5rem, 6.5vw, 6rem) 0; }
.feature__inner { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 6vw, 5rem); align-items: center; max-width: var(--container); margin: 0 auto; padding: 0 clamp(1.25rem, 5vw, 4rem); }
.feature--text-only .feature__inner { grid-template-columns: 1fr; max-width: var(--container-wide); }
.feature--text-only .feature__lede { max-width: 900px; font-size: 1.18rem; }
.feature--text-only .feature__list { grid-template-columns: 1fr; gap: 0.85rem; }
.feature--text-only .feature__list li { align-items: flex-start; line-height: 1.6; }
.feature--text-only .feature__dot { margin-top: 0.55em; }
.feature__media { border-radius: var(--radius-2xl); overflow: hidden; aspect-ratio: 4 / 5; box-shadow: var(--shadow-md); }
.feature__media img { width: 100%; height: 100%; object-fit: cover; }
.feature__body h1 { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.4rem, 5vw, 3.8rem); color: var(--espresso); margin: 0.5rem 0 1.1rem; }
.feature__lede { font-size: 1.12rem; line-height: 1.7; color: var(--text-body); max-width: 520px; margin-bottom: 1.6rem; }
.feature__list { list-style: none; padding: 0; margin: 0 0 2rem; display: grid; gap: 0.7rem; }
.feature__list li { display: flex; align-items: center; gap: 0.7rem; font-family: var(--font-body); font-size: 1rem; color: var(--text-strong); }
.feature__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--terracotta); flex: 0 0 auto; }

/* ---------- Gardens (Retiros) ---------- */
.gardens { max-width: var(--container-wide); margin: clamp(2.5rem, 5vw, 3.5rem) auto 0; padding: 0 clamp(1.25rem, 5vw, 4rem); }
.gardens__head { display: flex; align-items: baseline; gap: 1.4rem; flex-wrap: wrap; margin-bottom: 1.3rem; }
.gardens__head p { font-size: 1rem; line-height: 1.6; color: var(--text-muted); max-width: 560px; margin: 0; }
.gardens__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 0.7rem; height: clamp(220px, 30vw, 320px); }
.gardens__grid img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-md); display: block; }
@media (max-width: 760px) { .gardens__grid { grid-template-columns: 1fr 1fr; height: auto; grid-auto-rows: 170px; } .gardens__grid .g-wide { grid-column: span 2; } }

/* ---------- Garden mosaic (Retiros) ---------- */
.feature__note { font-size: 0.98rem; line-height: 1.55; color: var(--text-muted); max-width: 520px; margin: 0 0 1.7rem; }
.feature__note strong { color: var(--text-strong); font-weight: 700; }
.feature__mosaic { display: grid; grid-template-columns: 1.25fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 10px; aspect-ratio: 1 / 1; }
.feature__mosaic img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-md); display: block; }
.feature__mosaic .m1 { grid-column: 1; grid-row: 1 / 3; }
.feature__mosaic .m2 { grid-column: 2 / 4; grid-row: 1; }
.feature__mosaic .m3 { grid-column: 2; grid-row: 2; }
.feature__mosaic .m4 { grid-column: 3; grid-row: 2; }
@media (max-width: 760px) { .feature__mosaic { aspect-ratio: 4 / 3; } }

/* ---------- Page body (interior pages, below fixed header) ---------- */
.page-body { padding-top: 74px; }

/* ---------- Jardines (home · visual) ---------- */
.jardines { background: var(--espresso); padding: clamp(3.5rem, 6.5vw, 6rem) clamp(1.25rem, 5vw, 4rem); }
.jardines__head { max-width: var(--container); margin: 0 auto clamp(1.8rem, 3.5vw, 2.6rem); text-align: center; }
.jardines__head .cd-eyebrow { color: var(--turquoise-soft); }
.jardines__head h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.2rem, 4vw, 3.4rem); color: var(--paper); margin: 0.6rem 0 0.8rem; white-space: pre-line; }
.jardines__head p { font-size: 1.08rem; line-height: 1.6; color: var(--sand); max-width: 540px; margin: 0 auto; }
.jardines__mosaic { max-width: var(--container-wide); margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(150px, 18vw, 224px); gap: 12px; }
.jardines__mosaic img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-md); display: block; cursor: pointer; transition: filter var(--dur-fast) var(--ease-soft); }
.jardines__mosaic img:hover { filter: brightness(1.08); }
.jardines__mosaic .g1 { grid-column: 1 / 3; grid-row: 1 / 3; }
.jardines__mosaic .g2 { grid-column: 3 / 5; grid-row: 1; }
.jardines__mosaic .g3 { grid-column: 3 / 5; grid-row: 2; }
@media (max-width: 760px) {
  .jardines__mosaic { grid-template-columns: 1fr 1fr; grid-auto-rows: 160px; }
  .jardines__mosaic .g1 { grid-column: 1 / 3; grid-row: 1; }
  .jardines__mosaic .g2 { grid-column: 1; grid-row: 2; }
  .jardines__mosaic .g3 { grid-column: 2; grid-row: 2; }
}

/* ---------- Availability calendar (retiros) ---------- */
.availability { background: var(--cream); padding: clamp(3.5rem, 6.5vw, 6rem) clamp(1.25rem, 5vw, 4rem); }
.availability__inner { max-width: var(--container); margin: 0 auto; }
.availability__head { text-align: center; max-width: 620px; margin: 0 auto clamp(2rem, 4vw, 3rem); }
.availability__head h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(2rem, 3.6vw, 3rem); color: var(--espresso); margin: 0.5rem 0 0.7rem; }
.availability__head p { font-size: 1.05rem; line-height: 1.6; color: var(--text-muted); margin: 0 0 1.2rem; }
.avcal__legend { display: flex; gap: 1.6rem; justify-content: center; font-family: var(--font-body); font-size: 0.92rem; color: var(--text-body); }
.avcal__legend span { display: inline-flex; align-items: center; gap: 0.5rem; }
.avcal__legend .dot { width: 13px; height: 13px; border-radius: 50%; display: inline-block; }
.dot--free { background: var(--turquoise); }
.dot--res { background: var(--sand-deep); }
.avcal { background: var(--paper); border-radius: var(--radius-xl); padding: clamp(1.4rem, 3vw, 2.2rem); box-shadow: var(--shadow-sm); position: relative; }
.avcal__nav { position: absolute; top: clamp(1.4rem, 3vw, 2.2rem); right: clamp(1.4rem, 3vw, 2.2rem); display: flex; gap: 0.5rem; }
.avcal__nav button { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line-strong); background: transparent; cursor: pointer; color: var(--espresso); font-size: 1.2rem; line-height: 1; transition: all var(--dur-fast); }
.avcal__nav button:hover:not(:disabled) { border-color: var(--oxblood); color: var(--oxblood); }
.avcal__nav button:disabled { opacity: 0.3; cursor: default; }
.avcal__months { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 3rem); }
.avcal__title { font-family: var(--font-display); font-size: 1.3rem; color: var(--espresso); text-transform: capitalize; margin-bottom: 0.8rem; }
.avcal__dow { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 6px; }
.avcal__dow span { text-align: center; font-size: 0.7rem; font-weight: 700; color: var(--text-faint); }
.avcal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.avcal__day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border-radius: 8px; font-family: var(--font-body); font-size: 0.9rem; }
.avcal__day.is-past { color: var(--line-strong); }
.avcal__day.is-free { background: rgba(91,163,156,0.16); color: var(--turquoise-deep); font-weight: 600; }
.avcal__day.is-reserved { background: var(--sand); color: var(--espresso-faint); text-decoration: line-through; }
.avcal__cta { margin-top: 1.6rem; }
button.avcal__day { border: none; background: transparent; cursor: pointer; font: inherit; transition: outline var(--dur-fast); }
button.avcal__day:hover { outline: 2px solid var(--oxblood); outline-offset: -2px; }
.avcal__admin { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; background: rgba(95,31,32,0.07); border: 1px solid rgba(95,31,32,0.18); border-radius: var(--radius-md); padding: 0.85rem 1.1rem; margin-bottom: 1.2rem; font-family: var(--font-body); font-size: 0.92rem; color: var(--text-body); }
.avcal__admin b { color: var(--oxblood); }
.avcal__admin .adm__hint { flex: 1 1 260px; margin: 0; }
.avcal__admin .adm__foot { margin: 0; }
.avcal__admin .adm__ok { flex: 1 1 100%; }
.avcal__admin button { font-family: var(--font-body); font-weight: 600; font-size: 0.82rem; color: var(--oxblood); background: transparent; border: 1.5px solid var(--oxblood); border-radius: var(--radius-pill); padding: 0.4rem 1rem; cursor: pointer; transition: all var(--dur-fast); }
.avcal__admin button:hover { background: var(--oxblood); color: var(--cream); }
@media (max-width: 680px) { .avcal__months { grid-template-columns: 1fr; } .avcal__nav { position: static; justify-content: flex-end; margin-bottom: 1rem; } }

/* ---------- Soon (Residencia) ---------- */
.soon { position: relative; min-height: 60vh; display: flex; align-items: center; justify-content: center; overflow: hidden; text-align: center; padding: clamp(4rem, 8vw, 6rem) 1.5rem; }
.soon__media { position: absolute; inset: 0; }
.soon__media img { width: 100%; height: 100%; object-fit: cover; }
.soon__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(54,48,42,0.58), rgba(74,23,24,0.6)); }
.soon__panel { position: relative; z-index: 1; max-width: 620px; color: var(--paper); }
.soon__panel .cd-eyebrow { color: var(--sand); }
.soon__panel h1 { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.6rem, 6vw, 4.6rem); color: var(--paper); margin: 0.6rem 0 1.1rem; }
.soon__panel p { font-size: 1.15rem; line-height: 1.6; color: var(--cream); max-width: 480px; margin: 0 auto 1.8rem; }
.soon__badge { display: inline-block; font-family: var(--font-body); font-weight: 700; font-size: 0.85rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--paper); border: 1.5px solid rgba(244,238,227,0.6); border-radius: var(--radius-pill); padding: 0.7rem 1.6rem; }

/* ---------- Contacto ---------- */
.contacto { background: var(--cream); padding: clamp(6.5rem, 11vh, 8.5rem) clamp(1.25rem, 5vw, 4rem) clamp(3.5rem, 7vw, 5.5rem); min-height: 88vh; }
.contacto__inner { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(2.5rem, 6vw, 5.5rem); align-items: start; max-width: var(--container); margin: 0 auto; }
.contacto__intro h1 { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.4rem, 5vw, 3.8rem); color: var(--oxblood); margin: 0.5rem 0 1rem; }
.contacto__intro p { font-size: 1.08rem; line-height: 1.7; color: var(--text-body); max-width: 420px; margin-bottom: 2rem; }
.contacto__channels { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.9rem; }
.contacto__channels li { display: flex; align-items: baseline; gap: 1rem; font-family: var(--font-body); font-size: 1.05rem; color: var(--text-strong); }
.ch-label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-faint); width: 54px; flex: 0 0 auto; }
.contacto__channels a { color: var(--oxblood); }
.contacto__channels a:hover { color: var(--oxblood-deep); }

/* ---------- Footer nav ---------- */
.foot__nav { display: flex; flex-direction: column; gap: 0.5rem; }
.foot__nav a { font-family: var(--font-body); font-size: 0.9rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sand); }
.foot__nav a:hover { color: var(--paper); }

/* ---------- Footer contact ---------- */
.foot__contact { display: flex; flex-direction: column; gap: 0.4rem; }
.foot__h { font-family: var(--font-body); font-weight: 700; font-size: 0.74rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--sand-deep); margin-bottom: 0.3rem; }
.foot__contact a { color: var(--sand); font-size: 0.96rem; }
.foot__contact a:hover { color: var(--paper); }
.foot__ig { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 0.4rem; }
.foot__ig svg { flex: 0 0 auto; }

/* ---------- Reserva (booking module) ---------- */
.reserva { background: var(--sand); padding: clamp(3.5rem, 6.5vw, 6rem) clamp(1.25rem, 5vw, 4rem); }
.reserva__inner { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; max-width: var(--container); margin: 0 auto; }
.reserva__intro h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.2rem, 4vw, 3.2rem); color: var(--espresso); margin: 0.5rem 0 0.8rem; }
.reserva__intro p { font-size: 1.06rem; line-height: 1.65; color: var(--text-body); max-width: 360px; }
.reserva__summary { display: flex; align-items: center; gap: 1rem; margin-top: 1.6rem; background: var(--paper); border-radius: var(--radius-lg); padding: 0.9rem 1.2rem; box-shadow: var(--shadow-xs); max-width: 380px; }
.rs-cell { display: flex; flex-direction: column; gap: 0.1rem; }
.rs-label { font-size: 0.66rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-faint); }
.rs-cell b { font-family: var(--font-display); font-weight: 400; font-size: 1.25rem; color: var(--espresso); }
.rs-arrow { color: var(--text-faint); }
.rs-nights { margin-left: auto; font-family: var(--font-body); font-weight: 700; font-size: 0.82rem; color: var(--oxblood); white-space: nowrap; }
.reserva__panel { background: var(--paper); border-radius: var(--radius-xl); padding: clamp(1.3rem, 2.5vw, 1.9rem); box-shadow: var(--shadow-sm); }
.reserva__form { display: flex; flex-direction: column; gap: 1.3rem; }
.reserva__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.2rem; }

/* Calendar */
.cal { background: var(--cream); border-radius: var(--radius-lg); padding: 1rem 1.1rem 1.2rem; }
.cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.8rem; }
.cal__head span { font-family: var(--font-display); font-size: 1.15rem; color: var(--espresso); text-transform: capitalize; }
.cal__head button { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--line-strong); background: transparent; cursor: pointer; color: var(--espresso); font-size: 1.1rem; line-height: 1; display: inline-flex; align-items: center; justify-content: center; transition: all var(--dur-fast); }
.cal__head button:hover:not(:disabled) { border-color: var(--oxblood); color: var(--oxblood); }
.cal__head button:disabled { opacity: 0.3; cursor: default; }
.cal__dow { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; margin-bottom: 4px; }
.cal__dow span { text-align: center; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.04em; color: var(--text-faint); padding: 4px 0; }
.cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px 0; }
.cal__day { aspect-ratio: 1; border: none; background: transparent; border-radius: 8px; font-family: var(--font-body); font-size: 0.9rem; color: var(--text-strong); cursor: pointer; transition: background var(--dur-fast), color var(--dur-fast); }
.cal__day:hover:not(.is-disabled):not(.is-start):not(.is-end):not(.is-solo) { background: var(--sand); }
.cal__day.is-disabled { color: var(--text-faint); opacity: 0.35; cursor: default; }
.cal__day.is-in { background: rgba(181,112,90,0.22); border-radius: 0; }
.cal__day.is-start { background: var(--oxblood); color: var(--cream); border-radius: 8px 0 0 8px; }
.cal__day.is-end { background: var(--oxblood); color: var(--cream); border-radius: 0 8px 8px 0; }
.cal__day.is-solo { background: var(--oxblood); color: var(--cream); border-radius: 8px; }

@media (max-width: 900px) {
  .reserva__inner { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .reserva__fields { grid-template-columns: 1fr; }
}

/* House picker (reserva) */
.house-field > .cd-field__label { margin-bottom: 0.5rem; }
.house-picker { display: grid; gap: 0.5rem; }
.house-opt { display: flex; align-items: center; gap: 0.7rem; padding: 0.6rem 0.85rem; border: 1.5px solid var(--line-strong); border-radius: var(--radius-md); cursor: pointer; background: var(--paper); transition: border-color var(--dur-fast), background var(--dur-fast); }
.house-opt:hover { border-color: var(--espresso-faint); }
.house-opt.is-on { border-color: var(--oxblood); background: rgba(95,31,32,0.05); }
.house-opt input { accent-color: var(--oxblood); width: 17px; height: 17px; flex: 0 0 auto; cursor: pointer; }
.house-opt__name { font-family: var(--font-body); font-weight: 600; font-size: 0.95rem; color: var(--text-strong); }
.house-opt__cap { margin-left: auto; font-size: 0.8rem; color: var(--text-faint); }
.cd-select:disabled { opacity: 0.5; cursor: not-allowed; }

/* Reserva textarea + actions */
.reserva__textarea { min-height: 86px; resize: vertical; font-family: var(--font-body); line-height: 1.5; }
.feature__actions { display: flex; gap: 0.8rem; flex-wrap: wrap; align-items: center; }
/* Distinct tones within the palette for the three retreat actions */
.feature__actions > *:nth-child(2) { background: var(--terracotta); border-color: var(--terracotta); color: var(--cream); }
.feature__actions > *:nth-child(2):hover { background: #a3624e; border-color: #a3624e; color: var(--cream); }
.feature__actions > *:nth-child(3) { background: var(--ochre); border-color: var(--ochre); color: var(--espresso); }
.feature__actions > *:nth-child(3):hover { background: #b57c33; border-color: #b57c33; color: var(--espresso); }

/* ---------- Sala de yoga modal ---------- */
.sala-modal { position: fixed; inset: 0; z-index: 200; background: rgba(30,22,18,0.82); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); display: flex; align-items: center; justify-content: center; padding: clamp(1rem, 4vw, 3rem); animation: salaIn 0.25s var(--ease-out); }
@keyframes salaIn { from { opacity: 0; } to { opacity: 1; } }
.sala-modal__close { position: absolute; top: 18px; right: 22px; width: 44px; height: 44px; border-radius: 50%; border: none; background: rgba(244,238,227,0.14); color: var(--paper); font-size: 1.8rem; line-height: 1; cursor: pointer; z-index: 2; transition: background var(--dur-fast); }
.sala-modal__close:hover { background: rgba(244,238,227,0.28); }
.sala-modal__panel { width: min(960px, 100%); max-height: 100%; display: flex; flex-direction: column; gap: 0.8rem; }
.sala-modal__stage { position: relative; background: var(--espresso); border-radius: var(--radius-lg); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.sala-modal__stage img { width: 100%; max-height: 70vh; object-fit: contain; display: block; }
.sala-modal__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; border: none; background: rgba(30,22,18,0.5); color: var(--paper); font-size: 1.5rem; line-height: 1; cursor: pointer; z-index: 2; transition: background var(--dur-fast); }
.sala-modal__nav:hover { background: rgba(30,22,18,0.78); }
.sala-modal__nav.prev { left: 14px; }
.sala-modal__nav.next { right: 14px; }
.sala-modal__thumbs { display: flex; gap: 0.5rem; justify-content: center; flex-wrap: wrap; }
.sala-modal__thumb { width: 72px; height: 54px; border-radius: var(--radius-sm); overflow: hidden; border: 2px solid transparent; padding: 0; cursor: pointer; background: none; opacity: 0.55; transition: opacity var(--dur-fast), border-color var(--dur-fast); }
.sala-modal__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sala-modal__thumb.is-on { opacity: 1; border-color: var(--terracotta); }
.sala-modal__thumb:hover { opacity: 1; }

/* ---------- Sala de yoga (visible section) ---------- */
.sala { background: var(--offwhite, var(--cream)); padding: clamp(3rem, 6vw, 5.5rem) clamp(1.25rem, 5vw, 4rem); border-top: 1px solid var(--line); }
.sala__inner { max-width: var(--container-wide); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.sala__title { font-family: var(--font-display); font-weight: 400; font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1.02; color: var(--espresso); margin: 0.6rem 0 1rem; }
.sala__body { font-size: 1.02rem; line-height: 1.75; color: var(--text-body); margin: 0 0 1rem; text-wrap: pretty; }
.sala__specs { margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.sala__specs-label { display: block; font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 700; color: var(--terracotta); margin-bottom: 0.7rem; }
.sala__specs ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.55rem; }
.sala__specs li { position: relative; padding-left: 1.1rem; font-size: 1.02rem; color: var(--espresso); }
.sala__specs li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 6px; height: 6px; border-radius: 50%; background: var(--terracotta); }
@media (max-width: 860px) { .sala__inner { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Cabin card → clickable ---------- */
.cd-cabin__media--clickable { position: relative; cursor: pointer; }
.cd-cabin__open { position: absolute; left: 14px; bottom: 14px; z-index: 3; display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.4rem 0.8rem; border-radius: 999px; background: rgba(30,22,18,0.55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); color: var(--paper); font-family: var(--font-body); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.02em; opacity: 0; transform: translateY(6px); transition: opacity var(--dur-fast) var(--ease-soft), transform var(--dur-fast) var(--ease-soft); pointer-events: none; }
.cd-cabin__media--clickable:hover .cd-cabin__open { opacity: 1; transform: translateY(0); }
.cd-cabin__name--link { cursor: pointer; transition: color var(--dur-fast); }
.cd-cabin__name--link:hover { color: var(--oxblood); }

/* ---------- Cabin detail overlay ---------- */
.cabin-modal { position: fixed; inset: 0; z-index: 240; background: rgba(30,22,18,0.78); -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); display: flex; align-items: flex-start; justify-content: center; padding: clamp(0.75rem, 3vw, 2.5rem); overflow-y: auto; animation: salaIn var(--dur-base) var(--ease-out); }
.cabin-modal__panel { position: relative; width: min(1120px, 100%); background: var(--off-white, var(--cream)); border-radius: var(--radius-xl); overflow: hidden; box-shadow: 0 40px 120px rgba(30,22,18,0.4); display: grid; grid-template-columns: 1.15fr 1fr; margin: auto; }
.cabin-modal__close { position: absolute; top: 14px; right: 14px; z-index: 6; width: 42px; height: 42px; border-radius: 50%; border: none; background: rgba(30,22,18,0.5); color: var(--paper); font-size: 1.7rem; line-height: 1; cursor: pointer; transition: background var(--dur-fast); }
.cabin-modal__close:hover { background: rgba(30,22,18,0.8); }
/* media side */
.cabin-modal__media { background: var(--espresso); display: flex; flex-direction: column; }
.cabin-modal__stage { position: relative; flex: 1; min-height: 320px; background: var(--espresso); }
.cabin-modal__stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity var(--dur-base) var(--ease-soft); }
.cabin-modal__stage img.is-active { opacity: 1; }
.cabin-modal__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; border: none; background: rgba(30,22,18,0.5); color: var(--paper); font-size: 1.5rem; cursor: pointer; z-index: 2; transition: background var(--dur-fast); }
.cabin-modal__nav:hover { background: rgba(30,22,18,0.82); }
.cabin-modal__nav.prev { left: 14px; }
.cabin-modal__nav.next { right: 14px; }
.cabin-modal__count { position: absolute; right: 14px; bottom: 14px; z-index: 2; padding: 0.25rem 0.7rem; border-radius: 999px; background: rgba(30,22,18,0.55); color: var(--paper); font-family: var(--font-body); font-size: 0.78rem; font-weight: 600; }
.cabin-modal__thumbs { display: flex; gap: 0.45rem; padding: 0.7rem; background: var(--espresso); overflow-x: auto; }
.cabin-modal__thumb { flex: 0 0 auto; width: 64px; height: 48px; border-radius: var(--radius-sm); overflow: hidden; border: 2px solid transparent; padding: 0; cursor: pointer; background: none; opacity: 0.5; transition: opacity var(--dur-fast), border-color var(--dur-fast); }
.cabin-modal__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cabin-modal__thumb.is-on { opacity: 1; border-color: var(--terracotta); }
.cabin-modal__thumb:hover { opacity: 1; }
/* info side */
.cabin-modal__info { padding: clamp(1.5rem, 3vw, 2.6rem); overflow-y: auto; max-height: min(92vh, 900px); }
.cabin-modal__name { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.9rem, 3.2vw, 2.7rem); color: var(--espresso); margin: 0.35rem 0 0.8rem; line-height: 1; }
.cabin-modal__specs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.3rem; }
.cabin-modal__specs span { padding: 0.35rem 0.85rem; border-radius: 999px; background: var(--sand); color: var(--espresso); font-family: var(--font-body); font-size: 0.82rem; }
.cabin-modal__specs b { font-weight: 700; }
.cabin-modal__p { font-size: 0.98rem; line-height: 1.75; color: var(--text-body); margin: 0 0 0.9rem; }
.cabin-modal__h { font-family: var(--font-body); font-weight: 700; font-size: 0.78rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--terracotta); margin: 1.6rem 0 0.8rem; }
.cabin-modal__features { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem 1.1rem; }
.cabin-modal__features li { position: relative; padding-left: 1.4rem; font-size: 0.9rem; line-height: 1.45; color: var(--espresso); }
.cabin-modal__features li::before { content: ""; position: absolute; left: 0; top: 0.35rem; width: 9px; height: 9px; border-radius: 50%; background: var(--turquoise); }
.cabin-modal__cta { margin-top: 1.8rem; }
.cabin-modal__note { text-align: center; font-size: 0.82rem; color: var(--text-faint); margin: 0.7rem 0 0; }
/* compact per-cabin calendar */
.cmcal { background: var(--paper); border-radius: var(--radius-lg); padding: 1rem 1.1rem 1.2rem; box-shadow: var(--shadow-xs); }
.cmcal .avcal__legend { display: flex; align-items: center; gap: 1rem; font-size: 0.78rem; color: var(--text-muted); margin-bottom: 0.9rem; }
.cmcal .avcal__legend span { display: inline-flex; align-items: center; gap: 0.4rem; }
.cmcal .avcal__legend .dot { width: 11px; height: 11px; border-radius: 50%; display: inline-block; }
.cmcal__nav { margin-left: auto; display: flex; gap: 0.4rem; }
.cmcal__nav button { width: 30px; height: 30px; border-radius: 8px; border: 1px solid var(--line); background: var(--paper); color: var(--espresso); cursor: pointer; font-size: 1.1rem; line-height: 1; transition: background var(--dur-fast); }
.cmcal__nav button:hover:not(:disabled) { background: var(--sand); }
.cmcal__nav button:disabled { opacity: 0.35; cursor: default; }
.cmcal__months { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.cmcal .avcal__title { font-family: var(--font-display); font-size: 1rem; color: var(--espresso); text-align: center; margin-bottom: 0.5rem; text-transform: capitalize; }
.cmcal .avcal__dow { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; margin-bottom: 3px; }
.cmcal .avcal__dow span { text-align: center; font-size: 0.62rem; font-weight: 700; color: var(--text-faint); }
.cmcal .avcal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.cmcal .avcal__day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border-radius: 6px; font-family: var(--font-body); font-size: 0.72rem; }
.cmcal .avcal__day.is-past { color: var(--line-strong); }
.cmcal .avcal__day.is-free { background: rgba(91,163,156,0.16); color: var(--turquoise-deep); font-weight: 600; }
.cmcal .avcal__day.is-reserved { background: var(--sand); color: var(--espresso-faint); text-decoration: line-through; }

/* ---------- Explore teaser bands (full-width) ---------- */
.bands { display: flex; flex-direction: column; }
.band { display: grid; grid-template-columns: 1fr 1fr; min-height: clamp(380px, 50vh, 560px); background: var(--paper); }
.band:nth-child(even) { background: var(--cream); }
.band__media { position: relative; overflow: hidden; min-height: 320px; }
.band__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; transition: transform var(--dur-slow) var(--ease-soft); }
.band:hover .band__media img { transform: scale(1.03); }
.band--reverse .band__media { order: 2; }
.band__flag { position: absolute; left: 20px; top: 20px; padding: 0.45rem 1rem; border-radius: 999px; background: rgba(95,31,32,0.92); color: var(--cream); font-family: var(--font-body); font-size: 0.76rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.band__body { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 0.7rem; padding: clamp(2rem, 6vw, 5rem); }
.band--reverse .band__body { order: 1; }
.band__title { font-family: var(--font-display); font-weight: 400; font-size: clamp(2rem, 4vw, 3.2rem); color: var(--espresso); margin: 0; line-height: 1; }
.band__text { font-size: 1.05rem; line-height: 1.75; color: var(--text-muted); margin: 0 0 0.6rem; max-width: 40ch; }
@media (max-width: 760px) {
  .band { grid-template-columns: 1fr; }
  .band--reverse .band__media { order: 0; }
  .band--reverse .band__body { order: 0; }
  .band__media { min-height: 260px; }
}

/* ---------- Slideshow (jardines) ---------- */
.jardines__show { max-width: var(--container-wide); margin: 0 auto; padding: 0; }
.jardines__show .slideshow { border-radius: var(--radius-xl); box-shadow: var(--shadow-md); }
.slideshow { position: relative; width: 100%; border-radius: var(--radius-xl); overflow: hidden; background: var(--espresso); box-shadow: var(--shadow-md); }
.slideshow__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 65%; opacity: 0; transition: opacity 700ms var(--ease-soft); }
.slideshow__img.is-active { opacity: 1; }
.slideshow__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; border: none; background: rgba(30,22,18,0.42); color: var(--paper); font-size: 1.6rem; cursor: pointer; z-index: 2; transition: background var(--dur-fast); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.slideshow__nav:hover { background: rgba(30,22,18,0.72); }
.slideshow__nav.prev { left: 16px; }
.slideshow__nav.next { right: 16px; }
.slideshow__dots { position: absolute; bottom: 16px; left: 0; right: 0; display: flex; gap: 8px; justify-content: center; z-index: 2; }
.slideshow__dots button { width: 9px; height: 9px; border-radius: 50%; border: none; background: rgba(244,238,227,0.55); cursor: pointer; padding: 0; transition: background var(--dur-fast), width var(--dur-fast); }
.slideshow__dots button.is-active { background: var(--paper); width: 24px; border-radius: 999px; }

/* ---------- Sub-page hero ---------- */
.pagehero { position: relative; min-height: clamp(340px, 48vh, 520px); display: flex; align-items: flex-end; overflow: hidden; }
.pagehero__media { position: absolute; inset: 0; }
.pagehero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.casas-page .pagehero__media img { object-position: center 42%; }
.pagehero__veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(54,48,42,0.15) 0%, rgba(54,48,42,0.1) 40%, rgba(95,31,32,0.72) 100%); }
.pagehero__inner { position: relative; max-width: var(--container); width: 100%; margin: 0 auto; padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 5vw, 4rem); color: var(--cream); }
.pagehero__eyebrow { font-family: var(--font-body); font-weight: 700; font-size: 0.8rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--cream); opacity: 0.92; }
.pagehero__title { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.6rem, 6vw, 4.6rem); line-height: 0.96; margin: 0.5rem 0 0.6rem; color: var(--cream); }

/* ---------- Full-screen photo viewer ---------- */
.house__zoom { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: transparent; cursor: zoom-in; z-index: 1; }
.slideshow__zoom { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: transparent; cursor: zoom-in; z-index: 1; }
.slideshow .slideshow__nav, .slideshow .slideshow__dots { z-index: 2; }
.house__stage .house__nav, .house__stage .house__count { z-index: 2; }
.lightbox { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: clamp(1rem, 4vw, 3rem); background: rgba(54,48,42,0.92); backdrop-filter: blur(6px); cursor: zoom-out; animation: lb-in var(--dur-base, 240ms) var(--ease-soft, ease); }
@keyframes lb-in { from { opacity: 0; } to { opacity: 1; } }
.lightbox__img { max-width: min(1400px, 92vw); max-height: 88vh; width: auto; height: auto; object-fit: contain; border-radius: var(--radius-lg, 18px); box-shadow: 0 30px 80px rgba(0,0,0,0.45); cursor: default; }
.lightbox__close { position: absolute; top: clamp(0.75rem, 2vw, 1.5rem); right: clamp(0.75rem, 2vw, 1.5rem); width: 48px; height: 48px; border-radius: 999px; border: 1px solid rgba(236,228,218,0.28); background: rgba(236,228,218,0.10); color: var(--cream); font-size: 1.6rem; line-height: 1; cursor: pointer; transition: background var(--dur-fast, 160ms) var(--ease-soft, ease); }
.lightbox__close:hover { background: rgba(236,228,218,0.22); }
.lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border-radius: 999px; border: 1px solid rgba(236,228,218,0.28); background: rgba(236,228,218,0.10); color: var(--cream); font-size: 1.9rem; line-height: 1; cursor: pointer; transition: background var(--dur-fast, 160ms) var(--ease-soft, ease); }
.lightbox__nav:hover { background: rgba(236,228,218,0.22); }
.lightbox__nav.prev { left: clamp(0.5rem, 2vw, 1.75rem); }
.lightbox__nav.next { right: clamp(0.5rem, 2vw, 1.75rem); }
.lightbox__meta { position: absolute; bottom: clamp(0.75rem, 3vw, 1.75rem); left: 50%; transform: translateX(-50%); color: rgba(236,228,218,0.82); font-size: 0.85rem; letter-spacing: 0.18em; text-transform: uppercase; }
@media (max-width: 700px) { .lightbox__nav { width: 44px; height: 44px; } .lightbox__img { max-width: 94vw; max-height: 78vh; } }
.pagehero__sub { max-width: 620px; font-size: 1.05rem; line-height: 1.7; color: rgba(244,238,227,0.92); margin: 0; }

/* ---------- Full house sections (casas page) ---------- */
.houses { display: flex; flex-direction: column; }
.house { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; max-width: var(--container-wide); margin: 0 auto; padding: clamp(2.5rem, 6vw, 5.5rem) clamp(1.25rem, 5vw, 4rem); }
.house + .house { border-top: 1px solid var(--line); }
.house--reverse { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); }
.house--reverse .house__gallery { order: 2; }
.house__stage { position: relative; aspect-ratio: 4 / 3; border-radius: var(--radius-xl); overflow: hidden; background: var(--sand, #d8cbb8); box-shadow: var(--shadow-md); }
.house__stage img.house__stage-bg { object-fit: cover; filter: blur(26px) saturate(1.1) brightness(0.82); transform: scale(1.14); }
.house__stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: 0; transition: opacity var(--dur-base) var(--ease-soft); }
.house__stage img.is-active { opacity: 1; }
.house__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; border: none; background: rgba(30,22,18,0.45); color: var(--paper); font-size: 1.5rem; cursor: pointer; z-index: 2; -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); transition: background var(--dur-fast); }
.house__nav:hover { background: rgba(30,22,18,0.75); }
.house__nav.prev { left: 12px; }
.house__nav.next { right: 12px; }
.house__count { position: absolute; right: 12px; bottom: 12px; z-index: 2; padding: 0.25rem 0.7rem; border-radius: 999px; background: rgba(30,22,18,0.55); color: var(--paper); font-family: var(--font-body); font-size: 0.78rem; font-weight: 600; }
.house__thumbs { display: flex; gap: 0.5rem; margin-top: 0.7rem; overflow-x: auto; }
.house__thumb { flex: 0 0 auto; width: 84px; height: 60px; border-radius: var(--radius-sm); overflow: hidden; border: 2px solid transparent; padding: 0; cursor: pointer; background: none; opacity: 0.55; transition: opacity var(--dur-fast), border-color var(--dur-fast); }
.house__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.house__thumb.is-on { opacity: 1; border-color: var(--terracotta); }
.house__thumb:hover { opacity: 1; }
.house__name { font-family: var(--font-display); font-weight: 400; font-size: clamp(2rem, 3.6vw, 3rem); color: var(--espresso); margin: 0.35rem 0 0.8rem; line-height: 1; }
.house__specs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.3rem; }
.house__specs span { padding: 0.35rem 0.9rem; border-radius: 999px; background: var(--sand); color: var(--espresso); font-family: var(--font-body); font-size: 0.85rem; }
.house__specs b { font-weight: 700; }
.house__p { font-size: 1rem; line-height: 1.75; color: var(--text-body); margin: 0 0 0.9rem; }
.house__h { font-family: var(--font-body); font-weight: 700; font-size: 0.78rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--terracotta); margin: 1.6rem 0 0.8rem; }
.house__features { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem 1.2rem; }
.house__features li { position: relative; padding-left: 1.4rem; font-size: 0.92rem; line-height: 1.45; color: var(--espresso); }
.house__features li::before { content: ""; position: absolute; left: 0; top: 0.35rem; width: 9px; height: 9px; border-radius: 50%; background: var(--turquoise); }
.house__cta { margin-top: 1.8rem; }
@media (max-width: 860px) {
  .house { grid-template-columns: minmax(0, 1fr); }
  .house--reverse .house__gallery { order: 0; }
}
@media (max-width: 520px) {
  .house__features { grid-template-columns: 1fr; }
}

/* ---------- Tours (paseos page) ---------- */
.tours { max-width: var(--container); margin: 0 auto; padding: clamp(2.5rem, 6vw, 5rem) clamp(1.25rem, 5vw, 4rem); }
.tours__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: clamp(1.25rem, 3vw, 2rem); }
.tour { background: var(--paper); border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; transition: transform var(--dur-base) var(--ease-soft), box-shadow var(--dur-base) var(--ease-soft); }
.tour:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.tour__media { aspect-ratio: 4 / 3; overflow: hidden; }
.tour__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-slow) var(--ease-soft); }
.tour:hover .tour__media img { transform: scale(1.05); }
.tour__body { padding: 1.3rem 1.4rem 1.5rem; display: flex; flex-direction: column; gap: 0.5rem; }
.tour__name { font-family: var(--font-display); font-weight: 400; font-size: 1.5rem; color: var(--espresso); margin: 0; line-height: 1.05; }
.tour__blurb { font-size: 0.94rem; line-height: 1.65; color: var(--text-muted); margin: 0; }
.tours__cta { display: flex; justify-content: center; margin-top: clamp(2rem, 4vw, 3rem); }
@media (max-width: 860px) {
  .cabin-modal__panel { grid-template-columns: 1fr; }
  .cabin-modal__stage { min-height: 240px; aspect-ratio: 4 / 3; flex: none; }
  .cabin-modal__info { max-height: none; }
}
@media (max-width: 520px) {
  .cmcal__months { grid-template-columns: 1fr; }
  .cabin-modal__features { grid-template-columns: 1fr; }
}


/* ---------- Encuentros (upcoming retreats) ---------- */
.events { background: var(--offwhite); padding: clamp(3rem, 7vw, 5.5rem) clamp(1.25rem, 5vw, 2.5rem) clamp(4rem, 9vw, 7rem); }
.events__inner { max-width: var(--container-wide, 1320px); margin: 0 auto; }
.events__empty { text-align: center; color: var(--text-muted); font-size: 1.05rem; padding: 3rem 0; }
.events__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: clamp(1.25rem, 2.5vw, 2rem); }
.event { display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-xl, 26px); overflow: hidden; box-shadow: var(--shadow-sm); transition: transform var(--dur-base) var(--ease-soft), box-shadow var(--dur-base) var(--ease-soft); }
.event:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.event__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--sand, #d8cbb8); }
.event__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-slow) var(--ease-soft); }
.event:hover .event__media img { transform: scale(1.04); }
.event__body { display: flex; flex-direction: column; gap: 0.55rem; padding: clamp(1.25rem, 2vw, 1.6rem); flex: 1; }
.event__dates { font-size: 0.75rem; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 700; color: var(--terracotta); }
.event__title { font-family: var(--font-display); font-weight: 400; font-size: 1.5rem; line-height: 1.1; margin: 0; color: var(--espresso); }
.event__host { margin: 0; font-size: 0.95rem; color: var(--text-muted); font-style: italic; }
.event__text { margin: 0.2rem 0 0; font-size: 0.98rem; line-height: 1.6; color: var(--text-body); text-wrap: pretty; }
.event__foot { margin-top: auto; padding-top: 1.1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.event__price { font-size: 0.95rem; font-weight: 600; color: var(--espresso); }
.event__actions { display: flex; align-items: center; gap: 0.75rem; }
.event__ig { font-size: 0.85rem; color: var(--text-muted); text-decoration: none; border-bottom: 1px solid transparent; transition: color var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft); }
.event__ig:hover { color: var(--oxblood); border-bottom-color: currentColor; }

/* ---------- Visitar (cómo llegar + FAQ) ---------- */
.visit { background: var(--offwhite); padding: clamp(3rem, 7vw, 5.5rem) clamp(1.25rem, 5vw, 2.5rem) clamp(4rem, 9vw, 7rem); }
.visit__inner { max-width: var(--container, 1080px); margin: 0 auto; display: flex; flex-direction: column; gap: clamp(3rem, 7vw, 5rem); }
.visit__routes { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(1.25rem, 2.5vw, 2rem); }
.route { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg, 22px); padding: clamp(1.5rem, 3vw, 2rem); display: flex; flex-direction: column; gap: 0.65rem; }
.route__title { font-family: var(--font-display); font-weight: 400; font-size: 1.3rem; margin: 0; color: var(--espresso); padding-bottom: 0.15rem; border-bottom: 2px solid var(--terracotta); align-self: flex-start; }
.route__text { margin: 0; font-size: 0.98rem; line-height: 1.65; color: var(--text-body); text-wrap: pretty; }
.faq__head { margin-bottom: 1.75rem; }
.faq__title { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.8rem, 4vw, 2.6rem); margin: 0 0 0.4rem; color: var(--espresso); }
.faq__sub { margin: 0; color: var(--text-muted); font-size: 1rem; }
.faq__list { border-top: 1px solid var(--line); }
.faq__item { border-bottom: 1px solid var(--line); }
.faq__q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; text-align: left; background: none; border: 0; cursor: pointer; padding: 1.15rem 0; font-family: inherit; font-size: 1.05rem; font-weight: 600; color: var(--espresso); transition: color var(--dur-fast) var(--ease-soft); }
.faq__q:hover { color: var(--oxblood); }
.faq__mark { font-size: 1.35rem; color: var(--terracotta); line-height: 1; flex: 0 0 auto; }
.faq__a { padding: 0 0 1.25rem; max-width: 62ch; }
.faq__a p:last-of-type { margin-bottom: 0; }
.faq__a p { margin: 0 0 0.85rem; font-size: 1rem; line-height: 1.7; color: var(--text-body); text-wrap: pretty; }

.encuentros-page .pagehero__veil { background: linear-gradient(180deg, rgba(54,48,42,0.52) 0%, rgba(58,36,51,0.58) 45%, rgba(54,48,42,0.72) 100%); }
.encuentros-page .pagehero__media img { object-position: center 45%; }

/* Stage follows the photo's own orientation — no letterbox, no blurred fill */
.house__stage--fit { background: transparent; box-shadow: none; transition: aspect-ratio var(--dur-base) var(--ease-soft); }
.house__stage--fit.is-measuring img { object-fit: contain; }
.house__stage--fit img { object-fit: cover; border-radius: var(--radius-xl); box-shadow: var(--shadow-md); }

/* ---------- Collapsed nav (≤1100px) ---------- */
.nav-burger { display: none; position: relative; z-index: 160; width: 38px; height: 38px; padding: 0; border-radius: 50%; cursor: pointer; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: var(--paper); background: rgba(40,30,24,0.18); border: 1.5px solid rgba(244,238,227,0.55); transition: border-color var(--dur-fast) var(--ease-soft), color var(--dur-fast) var(--ease-soft); }
.nav-burger:hover { border-color: var(--paper); color: #fff; }
.site-head.is-scrolled .nav-burger, .site-head.is-solid .nav-burger { color: var(--espresso); background: transparent; border-color: var(--line-strong); }
.site-head.is-scrolled .nav-burger:hover, .site-head.is-solid .nav-burger:hover { border-color: var(--oxblood); color: var(--oxblood); }
.nav-burger.is-open { color: var(--espresso); background: transparent; border-color: var(--line-strong); }
.nav-burger span { display: block; width: 18px; height: 1.5px; background: currentColor; border-radius: 2px; transition: transform var(--dur-fast) var(--ease-soft), opacity var(--dur-fast) var(--ease-soft); }
.nav-burger.is-open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-burger.is-open span:nth-child(2) { opacity: 0; }
.nav-burger.is-open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
.nav-drawer { position: fixed; inset: 0; z-index: 150; background: rgba(54,48,42,0.55); backdrop-filter: blur(3px); animation: lb-in var(--dur-fast) var(--ease-soft); }
.nav-drawer__panel { position: absolute; top: 0; right: 0; width: min(320px, 82vw); height: 100%; background: var(--offwhite); box-shadow: -12px 0 40px rgba(54,48,42,0.22); display: flex; flex-direction: column; gap: 0.25rem; padding: 6rem 2rem 2rem; }
.nav-drawer__panel a { font-family: var(--font-display); font-size: 1.5rem; color: var(--espresso); text-decoration: none; padding: 0.7rem 0; border-bottom: 1px solid var(--line); cursor: pointer; transition: color var(--dur-fast) var(--ease-soft); }
.nav-drawer__panel a:hover, .nav-drawer__panel a.is-active { color: var(--oxblood); }
@media (max-width: 1100px) { .nav-burger { display: flex; } }
@media (max-width: 560px) {
  .head-actions { gap: 0.55rem; }
  .head-actions .ig-btn { width: 34px; height: 34px; }
  .brand__badge { flex: 0 0 40px; width: 40px; height: 40px; }
  .brand__badge img { width: 26px; }
  .brand__name { font-size: 1.1rem; }
}

/* ---------- Nav dropdown ---------- */
.nav-group { position: relative; display: inline-flex; align-items: center; }
.nav-group > a { display: inline-flex; align-items: center; gap: 0.32rem; cursor: pointer; }
.nav-group__caret { font-size: 0.62em; opacity: 0.75; }
.nav-group__menu { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); margin-top: 0; min-width: 168px; display: flex; flex-direction: column; padding: 0.85rem 0.5rem 0.5rem; background: var(--offwhite); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 18px 40px rgba(54,48,42,0.18); opacity: 0; visibility: hidden; transition: opacity var(--dur-fast) var(--ease-soft), transform var(--dur-fast) var(--ease-soft); }
.nav-group:hover .nav-group__menu, .nav-group:focus-within .nav-group__menu { opacity: 1; visibility: visible; }
.nav-group > a { padding-bottom: 0.5rem; margin-bottom: -0.5rem; }
.site-head .nav-group__menu a { color: var(--espresso); padding: 0.5rem 0.75rem; border-radius: 10px; white-space: nowrap; }
.site-head .nav-group__menu a:hover { background: rgba(54,48,42,0.06); color: var(--oxblood); }
.nav-drawer__group { display: flex; flex-direction: column; }
.nav-drawer__label { font-family: var(--font-body); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--terracotta); padding: 1.1rem 0 0.35rem; }
.nav-drawer__panel .nav-drawer__group a { padding-left: 0.85rem; font-size: 1.3rem; }

/* ---------- Contacto page ---------- */
.contacto { padding: clamp(5rem, 10vw, 8rem) clamp(1.25rem, 5vw, 3.5rem) clamp(3rem, 6vw, 5rem); background: var(--offwhite); }
.contacto__inner { max-width: var(--container-wide, 1320px); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: clamp(2.5rem, 6vw, 5rem); align-items: start; }
.contacto__col { display: flex; flex-direction: column; gap: 1.75rem; }
.contacto__title { font-family: var(--font-display); font-weight: 400; font-size: clamp(3rem, 7vw, 5rem); line-height: 0.98; margin: 0; color: var(--espresso); }
.contacto__intro { margin: 0; font-size: 1.12rem; line-height: 1.7; color: var(--text-body); max-width: 42ch; text-wrap: pretty; }
.contacto__block { display: flex; flex-direction: column; gap: 0.4rem; }
.contacto__block--rutas { gap: 1.15rem; }
.contacto__label { font-family: var(--font-body); font-size: 1rem; font-weight: 700; margin: 0 0 0.2rem; color: var(--espresso); }
.contacto__text { margin: 0; font-size: 1.02rem; line-height: 1.65; color: var(--text-body); max-width: 46ch; text-wrap: pretty; }
.contacto__text a { color: var(--text-body); text-decoration: none; border-bottom: 1px solid var(--line-strong); transition: color var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft); }
.contacto__text a:hover { color: var(--oxblood); border-bottom-color: currentColor; }
.contacto__map { position: relative; aspect-ratio: 4 / 3; border-radius: var(--radius-lg, 20px); overflow: hidden; box-shadow: var(--shadow-md); background: var(--sand, #d8cbb8); }
.contacto__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.contacto__faq { max-width: var(--container, 1080px); margin: 0 auto; padding: clamp(3rem, 7vw, 5.5rem) clamp(1.25rem, 5vw, 3.5rem) clamp(4rem, 9vw, 7rem); }
@media (max-width: 900px) { .contacto__inner { grid-template-columns: 1fr; } }

.nav-drawer__close { position: absolute; top: 1.15rem; right: 1.35rem; width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; padding: 0; border-radius: 50%; border: 1.5px solid var(--line-strong); background: transparent; color: var(--espresso); font-size: 1.5rem; line-height: 1; cursor: pointer; transition: color var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft); }
.nav-drawer__close:hover { color: var(--oxblood); border-color: var(--oxblood); }

.contacto__maplink { position: absolute; z-index: 2; left: 1rem; bottom: 1rem; font-size: 0.85rem; font-weight: 600; color: var(--espresso); background: var(--offwhite); border: 1px solid var(--line); border-radius: 999px; padding: 0.5rem 1rem; text-decoration: none; box-shadow: var(--shadow-sm); transition: color var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft); }
.contacto__maplink:hover { color: var(--oxblood); border-color: var(--oxblood); }

.contacto__aside { display: flex; flex-direction: column; gap: clamp(2rem, 4vw, 3rem); }
.contacto__coords { margin: 0.35rem 0 0; font-size: 0.92rem; line-height: 1.6; color: var(--text-muted); }
.contacto__coords span { display: block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--terracotta); margin-bottom: 0.2rem; }
.pasos { display: flex; flex-direction: column; gap: 1.1rem; }
.pasos__list { list-style: none; margin: 0.4rem 0 0; padding: 0; display: flex; flex-direction: column; }
.paso { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 1.15rem; align-items: center; padding: 1rem 0; border-top: 1px solid var(--line); }
.paso:first-child { border-top: 0; padding-top: 0.2rem; }
.paso__media { display: block; width: 100%; padding: 0; border: 0; cursor: zoom-in; aspect-ratio: 3 / 2; border-radius: 12px; overflow: hidden; background: var(--sand, #d8cbb8); }
.paso__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-base) var(--ease-soft); }
.paso__media:hover img { transform: scale(1.05); }
.paso__body { display: flex; align-items: baseline; gap: 0.75rem; }
.paso__n { font-family: var(--font-display); font-size: 1.05rem; color: var(--terracotta); flex: 0 0 auto; }
.paso__text { margin: 0; font-size: 0.98rem; line-height: 1.6; color: var(--text-body); text-wrap: pretty; }


.faq__links { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1rem; }
.faq__links a { font-size: 0.88rem; font-weight: 600; color: var(--espresso); background: var(--paper); border: 1px solid var(--line); border-radius: 999px; padding: 0.45rem 0.95rem; text-decoration: none; transition: color var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft); }
.faq__links a:hover { color: var(--oxblood); border-color: var(--oxblood); }


.retiro-toggle { margin-top: 0.85rem; display: flex; align-items: center; gap: 0.6rem; cursor: pointer; font-size: 0.95rem; color: var(--espresso); padding: 0.35rem 0; }
.retiro-toggle input { width: 18px; height: 18px; accent-color: var(--oxblood); cursor: pointer; }

.encuentros-page .pagehero__media img { object-position: center 78%; }

/* ---------- Residencias page ---------- */
.resid { background: var(--offwhite); padding: clamp(3.5rem, 8vw, 7rem) clamp(1.25rem, 5vw, 3rem); }
.resid__inner { max-width: var(--container); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.resid__launch { display: inline-block; font-family: var(--font-display); font-size: clamp(2rem, 4.4vw, 3.4rem); line-height: 1.05; color: var(--oxblood); margin-bottom: 1.4rem; }
.resid__intro { font-size: 1.12rem; line-height: 1.75; color: var(--text-body); max-width: 46ch; text-wrap: pretty; margin: 0 0 1.15rem; }
.resid__intro:last-child { margin-bottom: 0; }
.resid__panel { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-xl); padding: clamp(1.6rem, 3.5vw, 2.6rem); box-shadow: var(--shadow-sm); }
.resid__h { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.4rem, 2.4vw, 1.9rem); margin: 0 0 0.6rem; color: var(--espresso); }
.resid__note { font-size: 0.98rem; line-height: 1.65; color: var(--text-muted); margin: 0 0 1.5rem; }
.resid__form { display: flex; flex-direction: column; gap: 1rem; }
.resid__field { display: flex; flex-direction: column; gap: 0.4rem; }
@media (max-width: 860px) { .resid__inner { grid-template-columns: 1fr; } }

/* ---------- Agenda admin editor (?admin) ---------- */
.adm { max-width: var(--container); margin: 0 auto clamp(3rem, 7vw, 6rem); padding: 0 clamp(1.25rem, 5vw, 3rem); }
.adm__tab { font-family: var(--font-body); font-size: 0.9rem; letter-spacing: 0.08em; text-transform: uppercase; background: var(--espresso); color: var(--cream); border: 0; border-radius: 999px; padding: 0.7rem 1.4rem; cursor: pointer; }
.adm__tab:hover { background: var(--oxblood); }
.adm__body { margin-top: 1.5rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-xl); padding: clamp(1.2rem, 3vw, 2rem); }
.adm__hint { font-size: 0.9rem; line-height: 1.6; color: var(--text-muted); margin: 0 0 1.5rem; }
.adm__hint code { background: var(--sand); padding: 0.1em 0.4em; border-radius: 4px; font-size: 0.85em; }
.adm__card { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 1.2rem; margin-bottom: 1.2rem; background: var(--offwhite); display: grid; gap: 0.7rem; }
.adm__cardhead { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-bottom: 0.6rem; border-bottom: 1px solid var(--line); }
.adm__cardhead b { font-family: var(--font-display); font-size: 1.05rem; color: var(--espresso); }
.adm__ctrls { display: flex; gap: 0.35rem; }
.adm__ctrls button { width: 30px; height: 30px; border: 1px solid var(--line); background: var(--paper); border-radius: 8px; cursor: pointer; color: var(--espresso); font-size: 0.9rem; }
.adm__ctrls button:hover { background: var(--sand); }
.adm__f { display: flex; flex-direction: column; gap: 0.3rem; }
.adm__f > span { font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted); }
.adm__f input, .adm__f textarea { font-family: var(--font-body); font-size: 0.95rem; padding: 0.6rem 0.8rem; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); color: var(--espresso); resize: vertical; }
.adm__f input:focus, .adm__f textarea:focus { outline: 2px solid var(--turquoise); outline-offset: 1px; }
.adm__img { display: flex; align-items: center; gap: 0.9rem; }
.adm__img img { width: 84px; height: 64px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); }
.adm__img input { font-size: 0.82rem; }
.adm__foot { display: flex; gap: 0.7rem; flex-wrap: wrap; }
.adm__btn { font-family: var(--font-body); font-size: 0.9rem; padding: 0.7rem 1.3rem; border-radius: 999px; border: 1px solid var(--espresso); background: transparent; color: var(--espresso); cursor: pointer; }
.adm__btn:hover { background: var(--sand); }
.adm__btn--main { background: var(--oxblood); border-color: var(--oxblood); color: var(--cream); }
.adm__btn--main:hover { background: #4A1718; }
.adm__btn--ghost { border-color: var(--line); color: var(--text-muted); }
.adm__ok { margin: 1rem 0 0; font-size: 0.9rem; color: var(--oxblood); }


/* ---------- Mobile: keep galleries inside the viewport ---------- */
html, body { max-width: 100%; overflow-x: hidden; }
.house__gallery, .house__info, .sala__gallery, .sala__body { min-width: 0; }
.house__thumbs { max-width: 100%; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
@media (max-width: 860px) {
  /* a wide photo must never make the page taller than the screen */
  .house__stage--fit, .sala__gallery .house__stage--fit { max-height: 62vh; }
  .house__thumb { width: 68px; height: 50px; }
}

/* Pick a free day to enquire about it */
button.avcal__day { font: inherit; border: 0; background: transparent; color: inherit; cursor: pointer; padding: 0; }
button.avcal__day:hover { background: var(--sand); border-radius: 50%; }
button.avcal__day.is-picked { background: var(--oxblood); color: var(--cream); border-radius: 50%; }
.avcal__pick { margin: 0 0 0.7rem; font-size: 0.94rem; color: var(--oxblood); }

/* Encuadre de la foto de Ashtanga: la cara y las piernas dentro del recorte */
.event__media img[src*="agenda/ashtanga"] { object-position: center 42%; }
