/* ════════════════════════════════════════════════════
   REFUGE — Maison d'hôtes Pays Basque · Patrick & Marie
   Design: terre cuite / crème / sage / noyer · maison de campagne, pas luxe
   Inspirations: Lou Castel, Manoir des Saules, Le Quatorze (Bayonne)
   ══════════════════════════════════════════════════ */

:root {
  --ref-cream:    #F5EDE0;
  --ref-paper:    #FAF5EA;
  --ref-stone:    #E8DDC9;
  --ref-stone-warm: #DCCEB4;
  --ref-clay:     #C97A4F;     /* terracotta accent */
  --ref-rouge:    #A8302E;     /* rouge basque */
  --ref-sage:     #7B9A7C;     /* sage green */
  --ref-sage-deep: #5A7A5E;
  --ref-walnut:   #5A3A24;     /* dark wood */
  --ref-slate:    #3A3833;     /* text */
  --ref-soft:     #6A6660;
  --ref-muted:    #968F84;
  --ref-line:     #D9CDB7;
  --ref-line-soft: #E5DCC9;
}

body[data-theme="refuge"] {
  font-family: "Inter", system-ui, sans-serif;
  background: var(--ref-cream);
  color: var(--ref-slate);
  font-size: 16px; line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  margin: 0;
}
[data-theme="refuge"] *, [data-theme="refuge"] *::before, [data-theme="refuge"] *::after { box-sizing: border-box; }
[data-theme="refuge"] h1, [data-theme="refuge"] h2, [data-theme="refuge"] h3, [data-theme="refuge"] h4 {
  font-family: "Lora", serif; font-weight: 400; margin: 0;
}
[data-theme="refuge"] a { color: inherit; text-decoration: none; }
[data-theme="refuge"] em.ref-em { font-family: "Lora", serif; font-style: italic; color: var(--ref-rouge); font-weight: 400; }
[data-theme="refuge"] em.ref-em--sage { color: var(--ref-sage-deep); }
[data-theme="refuge"] em.ref-em--clay { color: var(--ref-clay); }

/* Override generic .sticky-cta + demo-banner buttons */
[data-theme="refuge"] .sticky-cta {
  background: var(--ref-walnut); color: var(--ref-paper); border-color: var(--ref-walnut);
}
[data-theme="refuge"] .sticky-cta:hover { background: var(--ref-rouge); border-color: var(--ref-rouge); }
[data-theme="refuge"] .demo-banner__btn--primary { color: var(--ref-slate) !important; background: var(--ref-paper) !important; }

/* ───── UTILITY ───── */
.ref-util {
  background: var(--ref-walnut); color: var(--ref-paper);
  padding: 9px 0; font-family: "JetBrains Mono", monospace; font-size: 0.7rem;
  letter-spacing: 0.04em;
}
.ref-util__inner { max-width: 1380px; margin: 0 auto; padding: 0 32px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.ref-util__left { display: inline-flex; align-items: center; gap: 18px; }
.ref-util__pill { padding: 3px 10px; border: 1px solid rgba(245,237,224,0.3); border-radius: 999px; color: var(--ref-stone); }
.ref-util__phone { color: rgba(245,237,224,0.85); }
.ref-util__right { display: inline-flex; align-items: center; gap: 16px; color: rgba(245,237,224,0.7); }
@media (max-width: 880px) { .ref-util__right { display: none; } }

/* ───── NAV (sticky over hero) ───── */
.ref-nav {
  position: fixed; top: calc(var(--demo-banner-h, 32px) + var(--ref-util-h, 36px)); left: 0; right: 0; z-index: 90;
  background: transparent;
  padding: 22px 40px; display: flex; align-items: center; justify-content: space-between;
  transition: background 0.4s, padding 0.3s, backdrop-filter 0.4s;
}
.ref-nav.is-scrolled {
  top: var(--demo-banner-h, 32px);
  background: rgba(245,237,224,0.96);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  padding: 14px 40px;
  border-bottom: 1px solid var(--ref-line-soft);
}
.ref-nav__logo {
  font-family: "Lora", serif; font-weight: 500; font-style: italic;
  font-size: 1.7rem; color: var(--ref-paper);
  display: inline-flex; align-items: baseline; gap: 14px;
  transition: color 0.3s;
}
.ref-nav.is-scrolled .ref-nav__logo { color: var(--ref-walnut); }
.ref-nav__logo small {
  font-family: "JetBrains Mono", monospace; font-style: normal; font-size: 0.6rem;
  letter-spacing: 0.18em; color: rgba(245,237,224,0.7); text-transform: uppercase; font-weight: 400;
  transition: color 0.3s;
}
.ref-nav.is-scrolled .ref-nav__logo small { color: var(--ref-muted); }
.ref-nav__links {
  display: flex; gap: 32px;
  font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.16em;
  text-transform: uppercase; font-weight: 500;
  color: rgba(245,237,224,0.92);
  transition: color 0.3s;
}
.ref-nav.is-scrolled .ref-nav__links { color: var(--ref-soft); }
.ref-nav__links a:hover { color: var(--ref-paper); }
.ref-nav.is-scrolled .ref-nav__links a:hover { color: var(--ref-rouge); }
.ref-nav__cta {
  padding: 12px 24px; background: var(--ref-paper); color: var(--ref-slate) !important;
  font-family: "JetBrains Mono", monospace; font-weight: 600; font-size: 0.74rem;
  letter-spacing: 0.16em; text-transform: uppercase; border-radius: 4px;
  border: 1px solid var(--ref-paper); transition: all 0.2s;
}
.ref-nav__cta:hover { background: var(--ref-walnut); color: var(--ref-paper) !important; border-color: var(--ref-walnut); }
.ref-nav.is-scrolled .ref-nav__cta { background: var(--ref-walnut); color: var(--ref-paper) !important; border-color: var(--ref-walnut); }
.ref-nav.is-scrolled .ref-nav__cta:hover { background: var(--ref-rouge); border-color: var(--ref-rouge); }
@media (max-width: 980px) { .ref-nav__links { display: none; } }

/* ───── HERO ───── */
.ref-hero {
  position: relative; min-height: 100vh;
  background: var(--ref-walnut);
  overflow: hidden; color: var(--ref-paper);
  display: flex; flex-direction: column; justify-content: flex-end;
}
.ref-hero__media { position: absolute; inset: 0; background-size: cover; background-position: center; }
.ref-hero__media.ref-placeholder {
  background: linear-gradient(135deg, #5A3A24 0%, #7B9A7C 40%, #C97A4F 70%, #F5EDE0 100%);
}
.ref-hero__media.ref-placeholder::before {
  content: '◆ HERO PHOTO · drone propriété + piscine · Pays Basque collines';
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-family: "JetBrains Mono", monospace; font-size: 0.74rem; letter-spacing: 0.18em;
  color: rgba(255,255,255,0.55); text-transform: uppercase;
}
.ref-hero__overlay {
  position: absolute; inset: 0; z-index: 2;
  background: linear-gradient(180deg, rgba(58,56,51,0.4) 0%, transparent 28%, transparent 50%, rgba(58,56,51,0.88) 100%);
}
.ref-hero__inner {
  position: relative; z-index: 3;
  max-width: 1380px; margin: 0 auto; width: 100%;
  padding: 0 40px 90px;
}
.ref-hero__greet {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 9px 18px; background: rgba(168,48,46,0.85);
  font-family: "Lora", serif; font-style: italic; font-weight: 500; font-size: 0.92rem;
  color: var(--ref-paper); margin-bottom: 28px; border-radius: 4px;
}
.ref-hero__greet small { font-family: "JetBrains Mono", monospace; font-style: normal; font-size: 0.62rem; letter-spacing: 0.2em; opacity: 0.8; text-transform: uppercase; padding-left: 8px; border-left: 1px solid rgba(245,237,224,0.3); }
.ref-hero h1 {
  font-family: "Lora", serif; font-weight: 400; font-style: italic;
  font-size: clamp(3.5rem, 9vw, 8.5rem); line-height: 0.92; letter-spacing: -0.02em;
  margin: 0 0 20px; color: var(--ref-paper);
}
.ref-hero h1 strong { font-weight: 600; font-style: normal; color: var(--ref-paper); }
.ref-hero__lead {
  font-family: "Lora", serif; font-style: italic; font-weight: 400;
  font-size: clamp(1.05rem, 1.6vw, 1.4rem); line-height: 1.5; max-width: 56ch;
  color: rgba(245,237,224,0.92); margin-bottom: 36px;
}
.ref-hero__meta {
  display: flex; gap: 28px; flex-wrap: wrap;
  font-family: "JetBrains Mono", monospace; font-size: 0.7rem; color: rgba(245,237,224,0.78);
  padding: 22px 0 0; border-top: 1px solid rgba(245,237,224,0.18);
  letter-spacing: 0.04em;
}

/* ───── SECTION (generic) ───── */
.ref-section { padding: 130px 40px; max-width: 1380px; margin: 0 auto; position: relative; }
.ref-section--cream { background: var(--ref-cream); max-width: none; padding-left: 0; padding-right: 0; }
.ref-section--cream .ref-section__inner { max-width: 1380px; margin: 0 auto; padding: 0 40px; }
.ref-section--paper { background: var(--ref-paper); max-width: none; padding-left: 0; padding-right: 0; }
.ref-section--paper .ref-section__inner { max-width: 1380px; margin: 0 auto; padding: 0 40px; }
.ref-section--walnut { background: var(--ref-walnut); color: var(--ref-paper); max-width: none; padding-left: 0; padding-right: 0; }
.ref-section--walnut .ref-section__inner { max-width: 1380px; margin: 0 auto; padding: 0 40px; }

.ref-section__head { margin-bottom: 60px; max-width: 800px; }
.ref-section__head--center { margin-left: auto; margin-right: auto; text-align: center; }
.ref-section__num {
  font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--ref-rouge); margin-bottom: 14px; display: inline-block;
}
.ref-section--walnut .ref-section__num { color: var(--ref-stone); }
.ref-section__title {
  font-family: "Lora", serif; font-weight: 400; font-style: italic;
  font-size: clamp(2.4rem, 5vw, 4.2rem); line-height: 1.04; margin: 0 0 18px;
  color: var(--ref-slate); letter-spacing: -0.01em;
}
.ref-section--walnut .ref-section__title { color: var(--ref-paper); }
.ref-section__title strong { font-style: normal; font-weight: 600; }
.ref-section__deck {
  font-family: "Lora", serif; font-weight: 400; font-style: italic;
  color: var(--ref-soft); font-size: 1.18rem; line-height: 1.55; max-width: 56ch;
}
.ref-section--walnut .ref-section__deck { color: rgba(245,237,224,0.78); }

/* ───── MANIFESTO (Patrick & Marie) ───── */
.ref-manifesto { padding: 140px 40px; background: var(--ref-paper); }
.ref-manifesto__inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.2fr; gap: 80px; align-items: center;
}
.ref-manifesto__photo {
  aspect-ratio: 4 / 5; background: var(--ref-stone);
  background-size: cover; background-position: center;
}
.ref-manifesto__photo.ref-placeholder {
  background: linear-gradient(135deg, #E8DDC9 0%, #C97A4F 50%, #5A3A24 100%);
  display: flex; align-items: center; justify-content: center;
  font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.2em;
  color: rgba(255,255,255,0.7); text-transform: uppercase;
}
.ref-manifesto__text { padding: 12px 0; }
.ref-manifesto__title { font-size: clamp(2.2rem, 4vw, 3.4rem); line-height: 1.05; margin-bottom: 28px; color: var(--ref-slate); }
.ref-manifesto__body p { font-family: "Inter", sans-serif; font-size: 1.04rem; line-height: 1.78; color: var(--ref-soft); margin: 0 0 18px; }
.ref-manifesto__sign {
  font-family: "Lora", serif; font-style: italic; color: var(--ref-rouge);
  margin-top: 28px; font-size: 1.25rem; padding-top: 22px;
  border-top: 1px solid var(--ref-line);
}
@media (max-width: 880px) {
  .ref-manifesto { padding: 80px 24px; }
  .ref-manifesto__inner { grid-template-columns: 1fr; gap: 36px; }
}

/* ───── 4 CHAMBRES — each with 3 photos in a row ───── */
.ref-rooms { padding: 130px 40px; background: var(--ref-cream); }
.ref-rooms__inner { max-width: 1380px; margin: 0 auto; }
.ref-rooms__list { display: flex; flex-direction: column; gap: 100px; margin-top: 70px; }
.ref-room {
  display: grid; grid-template-columns: 1fr; gap: 28px;
}
.ref-room__head {
  display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: end;
  padding-bottom: 18px; border-bottom: 1px solid var(--ref-line);
}
.ref-room__cap { font-family: "JetBrains Mono", monospace; font-size: 0.66rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ref-rouge); margin-bottom: 8px; }
.ref-room__name {
  font-family: "Lora", serif; font-weight: 400; font-style: italic;
  font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.02; color: var(--ref-slate);
}
.ref-room__name strong { font-style: normal; font-weight: 600; }
.ref-room__price {
  font-family: "Lora", serif; font-style: italic; font-weight: 500;
  font-size: 1.5rem; color: var(--ref-walnut); white-space: nowrap; text-align: right;
}
.ref-room__price small {
  display: block; font-family: "JetBrains Mono", monospace; font-style: normal;
  font-size: 0.62rem; color: var(--ref-muted); margin-top: 4px; letter-spacing: 0.06em;
  font-weight: 400; text-transform: uppercase;
}
.ref-room__body {
  display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: start;
  margin-bottom: 18px;
}
.ref-room__desc { font-family: "Inter", sans-serif; font-size: 1.04rem; line-height: 1.75; color: var(--ref-soft); }
.ref-room__feats {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px;
  font-family: "JetBrains Mono", monospace; font-size: 0.72rem;
  letter-spacing: 0.04em; color: var(--ref-soft);
}
.ref-room__feat { display: flex; align-items: center; gap: 8px; }
.ref-room__feat::before { content: '◆'; color: var(--ref-rouge); font-size: 0.6rem; }
.ref-room__photos {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 14px;
}
.ref-room__photo {
  aspect-ratio: 4 / 3; overflow: hidden;
  background: var(--ref-stone); background-size: cover; background-position: center;
  position: relative; transition: transform 0.5s;
}
.ref-room__photo:first-child { aspect-ratio: 4 / 3; }
.ref-room__photo:hover { transform: scale(1.015); }
.ref-room__photo.ref-placeholder {
  background: linear-gradient(135deg, #E8DDC9 0%, #C97A4F 60%, #5A3A24 100%);
}
.ref-room__photo.ref-placeholder::before {
  content: '◆ ' attr(data-tag);
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-family: "JetBrains Mono", monospace; font-size: 0.6rem; letter-spacing: 0.18em;
  color: rgba(255,255,255,0.7); text-transform: uppercase; padding: 12px; text-align: center;
}
@media (max-width: 880px) {
  .ref-rooms { padding: 80px 24px; }
  .ref-rooms__list { gap: 60px; }
  .ref-room__head { grid-template-columns: 1fr; }
  .ref-room__price { text-align: left; }
  .ref-room__body { grid-template-columns: 1fr; }
  .ref-room__photos { grid-template-columns: 1fr; gap: 12px; }
}

/* ───── EXPÉRIENCES (yoga, tai chi, potager, fromage, chèvres) ───── */
.ref-exp { padding: 130px 40px; background: var(--ref-paper); }
.ref-exp__inner { max-width: 1380px; margin: 0 auto; }
.ref-exp__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-auto-rows: 360px;
  gap: 18px; margin-top: 60px;
}
.ref-exp-card {
  position: relative; overflow: hidden;
  background: var(--ref-stone);
  display: flex; flex-direction: column; justify-content: flex-end;
  color: var(--ref-paper);
  transition: transform 0.4s;
}
.ref-exp-card:hover { transform: translateY(-3px); }
.ref-exp-card__media {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  transition: transform 0.6s;
}
.ref-exp-card:hover .ref-exp-card__media { transform: scale(1.04); }
.ref-exp-card__media.ref-placeholder {
  background: linear-gradient(135deg, #7B9A7C 0%, #C97A4F 50%, #5A3A24 100%);
}
.ref-exp-card__media.ref-placeholder::before {
  content: '◆ ' attr(data-tag);
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-family: "JetBrains Mono", monospace; font-size: 0.62rem; letter-spacing: 0.16em;
  color: rgba(255,255,255,0.55); text-transform: uppercase; padding: 14px; text-align: center;
}
.ref-exp-card__overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(58,56,51,0) 40%, rgba(58,56,51,0.85) 100%);
  pointer-events: none;
}
.ref-exp-card__body { position: relative; z-index: 2; padding: 24px 26px 22px; }
.ref-exp-card__cap { font-family: "JetBrains Mono", monospace; font-size: 0.6rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(245,237,224,0.85); margin-bottom: 10px; padding: 3px 10px; background: rgba(168,48,46,0.85); display: inline-block; }
.ref-exp-card__title {
  font-family: "Lora", serif; font-style: italic; font-weight: 500;
  font-size: 1.7rem; line-height: 1.05; color: var(--ref-paper); margin-bottom: 6px;
}
.ref-exp-card__sub { font-family: "Inter", sans-serif; font-size: 0.84rem; color: rgba(245,237,224,0.85); }

/* asymmetric: 2 large + 3 medium */
.ref-exp-card:nth-child(1) { grid-column: span 3; grid-row: span 2; }   /* fromage workshop big */
.ref-exp-card:nth-child(2) { grid-column: span 3; grid-row: span 1; }   /* yoga top right */
.ref-exp-card:nth-child(3) { grid-column: span 2; grid-row: span 1; }   /* tai chi */
.ref-exp-card:nth-child(4) { grid-column: span 2; grid-row: span 1; }   /* potager */
.ref-exp-card:nth-child(5) { grid-column: span 2; grid-row: span 1; }   /* chèvres */
@media (max-width: 1100px) {
  .ref-exp__grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 320px; }
  .ref-exp-card:nth-child(n) { grid-column: span 1; grid-row: span 1; }
  .ref-exp-card:nth-child(1) { grid-column: span 2; grid-row: span 2; }
}
@media (max-width: 600px) {
  .ref-exp__grid { grid-template-columns: 1fr; }
  .ref-exp-card:nth-child(n) { grid-column: span 1; grid-row: span 1; }
}

/* ───── PETIT-DÉJEUNER BASQUE ───── */
.ref-breakfast { padding: 130px 40px; background: var(--ref-cream); }
.ref-breakfast__inner {
  max-width: 1380px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.1fr; gap: 70px; align-items: center;
}
.ref-breakfast__photo {
  aspect-ratio: 4 / 5;
  background: var(--ref-stone); background-size: cover; background-position: center;
  position: relative; box-shadow: 0 30px 60px -25px rgba(58,56,51,0.3);
}
.ref-breakfast__photo.ref-placeholder {
  background: linear-gradient(135deg, #C97A4F 0%, #A8302E 60%, #5A3A24 100%);
  display: flex; align-items: center; justify-content: center;
  font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.2em;
  color: rgba(255,255,255,0.7); text-transform: uppercase;
}
.ref-breakfast__text { padding: 12px 0; }
.ref-breakfast__menu { display: flex; flex-direction: column; gap: 0; margin-top: 32px; }
.ref-breakfast__item {
  display: grid; grid-template-columns: 1fr; gap: 4px;
  padding: 16px 0; border-bottom: 1px dotted var(--ref-line);
}
.ref-breakfast__item:last-child { border-bottom: 0; }
.ref-breakfast__item-name { font-family: "Lora", serif; font-weight: 500; font-size: 1.18rem; color: var(--ref-walnut); }
.ref-breakfast__item-name em { font-style: italic; color: var(--ref-rouge); }
.ref-breakfast__item-desc { font-family: "Inter", sans-serif; font-size: 0.92rem; color: var(--ref-soft); line-height: 1.5; }
.ref-breakfast__sign {
  margin-top: 24px; padding: 22px 26px;
  background: var(--ref-paper); border-left: 3px solid var(--ref-rouge);
  font-family: "Lora", serif; font-style: italic;
  font-size: 1.15rem; line-height: 1.45; color: var(--ref-slate);
}
@media (max-width: 880px) {
  .ref-breakfast { padding: 80px 24px; }
  .ref-breakfast__inner { grid-template-columns: 1fr; gap: 36px; }
}

/* ───── PISCINE ───── */
.ref-pool { padding: 0; background: var(--ref-walnut); position: relative; }
.ref-pool__media {
  width: 100%; aspect-ratio: 21 / 9;
  background: var(--ref-walnut); background-size: cover; background-position: center;
  position: relative;
}
.ref-pool__media.ref-placeholder {
  background: linear-gradient(135deg, #5A3A24 0%, #7B9A7C 50%, #C97A4F 100%);
  display: flex; align-items: center; justify-content: center;
  font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.2em;
  color: rgba(255,255,255,0.55); text-transform: uppercase;
}
.ref-pool__overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, rgba(58,56,51,0.7) 0%, rgba(58,56,51,0.05) 50%, transparent 100%);
  display: flex; align-items: center; padding: 60px;
}
.ref-pool__text { max-width: 480px; color: var(--ref-paper); }
.ref-pool__title { font-family: "Lora", serif; font-style: italic; font-weight: 400; font-size: clamp(2rem, 4vw, 3.4rem); margin: 0 0 16px; line-height: 1.05; color: var(--ref-paper); }
.ref-pool__title strong { font-style: normal; font-weight: 600; }
.ref-pool__deck { font-family: "Lora", serif; font-style: italic; font-size: 1.15rem; line-height: 1.5; color: rgba(245,237,224,0.92); }
@media (max-width: 880px) {
  .ref-pool__media { aspect-ratio: 16 / 11; }
  .ref-pool__overlay { padding: 32px 24px; background: linear-gradient(180deg, transparent 50%, rgba(58,56,51,0.85) 100%); }
}

/* ───── BOOKING (simple inquiry form) ───── */
.ref-booking { padding: 140px 40px; background: var(--ref-paper); }
.ref-booking__inner { max-width: 880px; margin: 0 auto; }
.ref-booking__head { text-align: center; margin-bottom: 50px; }
.ref-booking__form { background: var(--ref-cream); padding: 48px 40px; border: 1px solid var(--ref-line); }
.ref-booking__row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
.ref-booking__field { display: flex; flex-direction: column; gap: 6px; }
.ref-booking__field--full { grid-column: span 2; }
.ref-booking__field label { font-family: "JetBrains Mono", monospace; font-size: 0.62rem; letter-spacing: 0.14em; color: var(--ref-muted); text-transform: uppercase; }
.ref-booking__field input,
.ref-booking__field select,
.ref-booking__field textarea {
  font-family: "Inter", sans-serif; font-size: 0.96rem; padding: 11px 14px;
  background: var(--ref-paper); border: 1px solid var(--ref-line); color: var(--ref-slate); outline: none;
  transition: border-color 0.2s;
}
.ref-booking__field input:focus,
.ref-booking__field select:focus,
.ref-booking__field textarea:focus { border-color: var(--ref-rouge); }
.ref-booking__field textarea { resize: vertical; min-height: 110px; font-family: "Inter", sans-serif; }
.ref-booking__btn {
  width: 100%; padding: 16px; background: var(--ref-walnut); color: var(--ref-paper); border: 0;
  font-family: "JetBrains Mono", monospace; font-size: 0.78rem; letter-spacing: 0.16em;
  text-transform: uppercase; font-weight: 600; cursor: pointer; margin-top: 14px;
}
.ref-booking__btn:hover { background: var(--ref-rouge); }
.ref-booking__note {
  text-align: center; margin-top: 22px; font-family: "Lora", serif; font-style: italic;
  color: var(--ref-soft); font-size: 0.96rem;
}
@media (max-width: 600px) { .ref-booking__row { grid-template-columns: 1fr; } .ref-booking__field--full { grid-column: span 1; } }

/* ───── CONTACT + FOOTER ───── */
.ref-contact { padding: 140px 40px; background: var(--ref-cream); }
.ref-contact__inner { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: start; }
.ref-contact__info h3 { font-family: "Lora", serif; font-style: italic; font-size: 1.5rem; margin: 0 0 12px; color: var(--ref-walnut); }
.ref-contact__info p { font-family: "Inter", sans-serif; color: var(--ref-soft); line-height: 1.7; margin: 0 0 18px; }
.ref-contact__info strong { color: var(--ref-slate); }
.ref-contact__map { aspect-ratio: 4 / 3; background: var(--ref-stone); border: 1px solid var(--ref-line); }
.ref-contact__map iframe { width: 100%; height: 100%; border: 0; filter: sepia(0.1) contrast(0.95); }
@media (max-width: 880px) { .ref-contact { padding: 80px 24px; } .ref-contact__inner { grid-template-columns: 1fr; gap: 36px; } }

.ref-foot { background: var(--ref-walnut); color: rgba(245,237,224,0.7); padding: 70px 40px 36px; }
.ref-foot__inner { max-width: 1380px; margin: 0 auto; }
.ref-foot__top { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 60px; padding-bottom: 50px; border-bottom: 1px solid rgba(245,237,224,0.1); }
@media (max-width: 880px) { .ref-foot__top { grid-template-columns: 1fr; gap: 30px; } }
.ref-foot__brand { font-family: "Lora", serif; font-style: italic; font-weight: 500; font-size: 2rem; color: var(--ref-paper); margin-bottom: 12px; }
.ref-foot p { font-size: 0.92rem; line-height: 1.6; margin: 0 0 18px; }
.ref-foot h4 { font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ref-stone); margin-bottom: 16px; font-weight: 600; }
.ref-foot ul { list-style: none; padding: 0; margin: 0; }
.ref-foot li { padding: 5px 0; font-size: 0.9rem; }
.ref-foot li a:hover { color: var(--ref-paper); }
.ref-foot__bottom { padding-top: 28px; display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.06em; color: rgba(245,237,224,0.5); }

/* ───── WhatsApp floating + stack with cust + tour-fab ───── */
.ref-wa {
  position: fixed; bottom: 28px; left: 28px; z-index: 60;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 20px; background: #25D366; color: #FFF !important;
  font-family: "Inter", sans-serif; font-weight: 600; font-size: 0.78rem;
  letter-spacing: 0.04em; border-radius: 999px;
  box-shadow: 0 8px 24px rgba(37,211,102,0.3); transition: transform 0.2s;
}
.ref-wa:hover { transform: translateY(-2px); }
.ref-wa::before { content: '💬'; font-size: 1.1rem; }
@media (max-width: 720px) { .ref-wa { padding: 12px 16px; font-size: 0.72rem; bottom: 20px; left: 20px; } .ref-wa span.long { display: none; } }
body:has(.ref-wa) .dtm-cust-btn { bottom: 96px; }
body:has(.ref-wa) .tour-fab     { bottom: 164px; }
@media (max-width: 720px) {
  body:has(.ref-wa) .dtm-cust-btn { bottom: 78px; }
  body:has(.ref-wa) .tour-fab     { bottom: 138px; }
}
