:root {
  --accom-ink: #061f2a;
  --accom-ink-2: #0c3340;
  --accom-muted: #5f737b;
  --accom-line: #dbe5e8;
  --accom-soft: #f4f8f9;
  --accom-soft-2: #eef4f6;
  --accom-magenta: #910048;
  --accom-teal: #6cc6d0;
  --accom-gold: #d8a52d;
  --accom-radius: 28px;
  --accom-shadow: 0 24px 60px rgba(6,31,42,.12);
}

.accommodation-page {
  color: var(--accom-ink);
  background:
    radial-gradient(circle at 8% 2%, rgba(108,198,208,.14), transparent 28rem),
    radial-gradient(circle at 92% 6%, rgba(145,0,72,.09), transparent 26rem),
    linear-gradient(180deg, #f7fbfc 0%, #fff 42%, #f5f8f9 100%);
  overflow-x: clip;
}

.accommodation-subnav .programme-label strong { color: var(--accom-magenta); }
.accom-shell { width: min(1180px, calc(100% - 36px)); margin-inline: auto; }

.accom-hero {
  padding: clamp(34px, 5vw, 62px) 0 clamp(42px, 6vw, 78px);
  border-bottom: 1px solid rgba(219,229,232,.86);
}
.accom-hero-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(340px, .9fr); gap: clamp(28px, 5vw, 70px); align-items: center; }
.accom-eyebrow, .accom-kicker {
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  border: 1px solid rgba(145,0,72,.16);
  background: rgba(145,0,72,.08);
  color: var(--accom-magenta);
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.accom-eyebrow { padding: 8px 13px; font-size: .78rem; margin-bottom: 22px; }
.accom-kicker { padding: 7px 11px; font-size: .74rem; margin-bottom: 14px; }
.accom-hero h1, .accom-section h2, .accom-final h2 { margin: 0; line-height: .94; letter-spacing: -.06em; font-weight: 950; }
.accom-hero h1 { font-size: clamp(3.6rem, 8vw, 8rem); max-width: 880px; }
.accom-section h2, .accom-final h2 { font-size: clamp(2.5rem, 5vw, 5.2rem); }
.accom-hero h1 span, .accom-section h2 span, .accom-final h2 span { color: var(--accom-magenta); }
.accom-lede, .accom-section-head p, .accom-residence-copy p, .accom-daily-grid p, .accom-final p, .accom-partner-copy p { color: var(--accom-ink-2); font-size: clamp(1.06rem, 1.55vw, 1.28rem); line-height: 1.55; }
.accom-lede { max-width: 800px; margin: 22px 0 0; }
.accom-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.accom-actions.compact { margin-top: 22px; }
.accom-actions a, .accom-final-actions a { text-decoration: none; }

.accom-hero-visual { position: relative; display: grid; grid-template-columns: 1fr .72fr; grid-template-rows: 1fr 1fr; gap: 14px; min-height: 560px; }
.accom-photo { margin: 0; position: relative; overflow: hidden; border-radius: var(--accom-radius); border: 1px solid rgba(219,229,232,.92); background: var(--accom-soft-2); box-shadow: var(--accom-shadow); }
.accom-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.accom-photo-main { grid-row: 1 / span 2; aspect-ratio: 4 / 5; }
.accom-photo-side { aspect-ratio: 4 / 3; }
.accom-photo-side.bottom img { object-position: center 38%; }

.accom-section { padding: clamp(54px, 7vw, 86px) 0; border-top: 1px solid rgba(219,229,232,.76); }
.accom-section-head { display: grid; grid-template-columns: minmax(0, .95fr) minmax(280px, .56fr); gap: 24px; align-items: end; margin-bottom: 26px; }
.accom-section-head p { margin: 0; color: var(--accom-muted); }
.accom-tool-wrap .intl-accommodation-reuse { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.accom-tool-wrap .intl-tool-card { position: relative; overflow: hidden; background: rgba(255,255,255,.92); border: 1px solid var(--accom-line); border-radius: var(--accom-radius); box-shadow: var(--accom-shadow); padding: 22px; min-height: 100%; display: flex; flex-direction: column; }
.accom-tool-wrap .intl-tool-card::after { content: ""; position: absolute; width: 140px; height: 140px; border-radius: 50%; right: -54px; bottom: -66px; background: rgba(145,0,72,.07); pointer-events: none; }
.accom-tool-wrap .intl-tool-logo { min-height: 58px; display: flex; align-items: center; margin-bottom: 16px; position: relative; z-index: 1; }
.accom-tool-wrap .intl-tool-logo img { max-height: 52px; max-width: 180px; object-fit: contain; }
.accom-tool-wrap .intl-tag { display: inline-flex; width: fit-content; padding: 6px 10px; border-radius: 999px; background: rgba(145,0,72,.08); border: 1px solid rgba(145,0,72,.14); color: var(--accom-magenta); font-size: .7rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; position: relative; z-index: 1; }
.accom-tool-wrap .intl-tool-card h3 { margin: 0 0 8px; font-size: 1.45rem; letter-spacing: -.03em; position: relative; z-index: 1; }
.accom-tool-wrap .intl-tool-card p { color: var(--accom-muted); margin: 0 0 18px; line-height: 1.45; position: relative; z-index: 1; }
.accom-tool-wrap .intl-card-link { margin-top: auto; width: fit-content; color: var(--accom-magenta); font-weight: 900; text-decoration: none; position: relative; z-index: 1; }
.accom-tool-wrap .intl-budget-line { position: relative; z-index: 1; border-top: 1px solid var(--accom-line); padding-top: 14px; margin-top: 12px; }
.accom-tool-wrap .intl-budget-line strong { display: block; color: var(--accom-magenta); font-size: 2.3rem; line-height: .95; letter-spacing: -.06em; }
.accom-tool-wrap .intl-budget-line span { display: block; color: var(--accom-muted); font-weight: 700; }

.accom-residence-grid { display: grid; grid-template-columns: minmax(0, .72fr) minmax(430px, 1fr); gap: clamp(22px, 4vw, 46px); align-items: stretch; }
.accom-residence-copy, .accom-rate-card, .accom-partner-panel, .accom-final-grid { background: rgba(255,255,255,.92); border: 1px solid var(--accom-line); border-radius: var(--accom-radius); box-shadow: var(--accom-shadow); }
.accom-residence-copy { padding: clamp(26px, 4vw, 44px); }
.accom-residence-copy p { margin: 20px 0 0; color: var(--accom-muted); }
.accom-contact-card { margin-top: 26px; padding: 20px; border-radius: 22px; background: linear-gradient(135deg, var(--accom-ink), #0d4654); color: white; display: grid; gap: 8px; }
.accom-contact-card span { color: rgba(255,255,255,.72); font-weight: 900; text-transform: uppercase; letter-spacing: .08em; font-size: .76rem; }
.accom-contact-card a { color: white; text-decoration: none; font-weight: 850; }
.accom-rate-card { padding: 0; overflow: hidden; }
.accom-rate-head { padding: 24px 26px; background: linear-gradient(135deg, rgba(145,0,72,.09), rgba(108,198,208,.12)); border-bottom: 1px solid var(--accom-line); }
.accom-rate-head strong { display: block; font-size: 1.35rem; letter-spacing: -.025em; }
.accom-rate-head span { display: block; margin-top: 4px; color: var(--accom-muted); font-weight: 700; }
.accom-rates { width: 100%; border-collapse: collapse; }
.accom-rates th, .accom-rates td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--accom-line); vertical-align: top; }
.accom-rates th { background: var(--accom-soft); color: var(--accom-muted); text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; }
.accom-rates td:last-child { color: var(--accom-magenta); font-weight: 950; white-space: nowrap; }
.accom-rate-note { margin: 0; padding: 18px 24px 24px; color: var(--accom-muted); font-size: .94rem; line-height: 1.45; }

.accom-budget-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.accom-budget-card { overflow: hidden; border-radius: var(--accom-radius); border: 1px solid var(--accom-line); background: white; box-shadow: var(--accom-shadow); }
.accom-budget-photo { aspect-ratio: 16 / 8.5; overflow: hidden; background: var(--accom-soft-2); }
.accom-budget-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.accom-budget-body { padding: 26px; }
.accom-budget-body > span { display: inline-flex; width: fit-content; border-radius: 999px; padding: 6px 10px; background: rgba(145,0,72,.08); color: var(--accom-magenta); font-weight: 900; font-size: .78rem; margin-bottom: 14px; }
.accom-budget-body > strong { display: block; color: var(--accom-magenta); font-size: clamp(3rem, 5vw, 5.1rem); line-height: .9; letter-spacing: -.07em; }
.accom-budget-body p { margin: 10px 0 18px; color: var(--accom-muted); font-weight: 750; }
.accom-budget-body dl { margin: 0; display: grid; gap: 8px; }
.accom-budget-body dl div { display: grid; grid-template-columns: 1fr auto; gap: 16px; padding: 10px 0; border-top: 1px solid var(--accom-line); }
.accom-budget-body dt { color: var(--accom-muted); font-weight: 760; }
.accom-budget-body dd { margin: 0; color: var(--accom-ink); font-weight: 900; text-align: right; }
.accom-budget-body small { display: block; margin-top: 16px; color: var(--accom-muted); line-height: 1.45; }

.accom-daily-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(320px, .62fr); gap: clamp(24px, 4vw, 46px); align-items: center; }
.accom-daily-grid p { color: var(--accom-muted); }
.accom-daily-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 24px; }
.accom-daily-cards div { padding: 20px; border-radius: 22px; border: 1px solid var(--accom-line); background: white; box-shadow: 0 14px 34px rgba(6,31,42,.08); position: relative; overflow: hidden; }
.accom-daily-cards div::after { content: ""; position: absolute; width: 96px; height: 96px; border-radius: 50%; right: -38px; bottom: -46px; background: rgba(108,198,208,.14); }
.accom-daily-cards strong { display: block; font-size: 1.1rem; margin-bottom: 6px; }
.accom-daily-cards span { color: var(--accom-muted); font-weight: 650; }
.accom-daily-photo { margin: 0; overflow: hidden; border-radius: var(--accom-radius); border: 1px solid var(--accom-line); box-shadow: var(--accom-shadow); aspect-ratio: 4 / 5; }
.accom-daily-photo img { width: 100%; height: 100%; object-fit: cover; display: block; object-position: center 42%; }

.accom-partner-panel { padding: clamp(26px, 4vw, 44px); display: grid; grid-template-columns: minmax(0, .72fr) minmax(280px, .8fr); gap: 28px; align-items: start; background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(244,248,249,.92)); }
.accom-partner-copy p { color: var(--accom-muted); margin: 0 0 14px; }

.accom-final { padding: clamp(54px, 7vw, 86px) 0 clamp(70px, 9vw, 110px); }
.accom-final-grid { padding: clamp(28px, 5vw, 52px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .55fr); gap: 28px; align-items: center; }
.accom-final p { color: var(--accom-muted); max-width: 780px; }
.accom-final-actions { display: grid; gap: 12px; padding: 22px; border-radius: 24px; background: var(--accom-soft); border: 1px solid var(--accom-line); }
.accom-final-actions .btn { justify-content: center; }

@media (max-width: 1100px) {
  .accom-hero-grid, .accom-section-head, .accom-residence-grid, .accom-daily-grid, .accom-partner-panel, .accom-final-grid { grid-template-columns: 1fr; }
  .accom-hero-visual { min-height: 0; grid-template-columns: 1fr 1fr; }
  .accom-photo-main { grid-row: auto; aspect-ratio: 16 / 10; grid-column: span 2; }
  .accom-tool-wrap .intl-accommodation-reuse { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .accom-shell { width: min(100% - 28px, 1180px); }
  .accom-hero { padding-top: 28px; }
  .accom-hero h1 { font-size: clamp(3.1rem, 15vw, 4.8rem); }
  .accom-section { padding: 48px 0; }
  .accom-hero-visual, .accom-tool-wrap .intl-accommodation-reuse, .accom-budget-grid, .accom-daily-cards { grid-template-columns: 1fr; }
  .accom-photo-main { grid-column: span 1; }
  .accom-budget-photo { aspect-ratio: 4 / 3; }
  .accom-rates { font-size: .92rem; }
  .accom-rates th:nth-child(2), .accom-rates td:nth-child(2) { display: none; }
}

/* V101 — tighter page rhythm and accommodation-provider refinements */
.accommodation-page .accom-hero {
  padding-top: clamp(24px, 3.8vw, 46px);
  padding-bottom: clamp(34px, 5vw, 62px);
}

.accommodation-page .accom-section {
  padding-top: clamp(38px, 5vw, 64px);
  padding-bottom: clamp(42px, 5.4vw, 70px);
}

.accommodation-page .accom-section-head {
  margin-bottom: 20px;
}

.accommodation-page .accom-final {
  padding-top: clamp(42px, 5.6vw, 70px);
  padding-bottom: clamp(54px, 7vw, 86px);
}

.accommodation-page .accom-residence-grid {
  align-items: start;
  grid-template-columns: minmax(0, .68fr) minmax(430px, 1fr);
}

.accommodation-page .accom-residence-copy h2 {
  font-size: clamp(2.35rem, 4.15vw, 4.35rem);
}

.accommodation-page .accom-residence-points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 22px;
}

.accommodation-page .accom-residence-points span {
  display: block;
  padding: 12px 13px;
  border-radius: 16px;
  background: var(--accom-soft);
  border: 1px solid rgba(219,229,232,.9);
  color: var(--accom-ink-2);
  font-weight: 780;
  line-height: 1.25;
}

.accommodation-page .accom-rate-card {
  align-self: start;
}

.accom-studapart-panel {
  display: grid;
  grid-template-columns: minmax(0, .78fr) minmax(360px, .92fr);
  gap: clamp(24px, 4vw, 48px);
  align-items: start;
  padding: clamp(26px, 4vw, 46px);
  border: 1px solid var(--accom-line);
  border-radius: var(--accom-radius);
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(244,248,249,.94)),
    radial-gradient(circle at 96% 0%, rgba(108,198,208,.20), transparent 18rem);
  box-shadow: var(--accom-shadow);
}

.accom-studapart-copy p {
  margin: 18px 0 0;
  color: var(--accom-muted);
  font-size: clamp(1.02rem, 1.35vw, 1.18rem);
  line-height: 1.55;
  font-weight: 650;
}

.accom-studapart-copy h2 {
  font-size: clamp(2.35rem, 4.5vw, 4.7rem);
}

.accom-studapart-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.accom-studapart-cards div {
  position: relative;
  overflow: hidden;
  min-height: 150px;
  padding: 20px;
  border-radius: 22px;
  border: 1px solid rgba(219,229,232,.92);
  background: rgba(255,255,255,.92);
  box-shadow: 0 14px 34px rgba(6,31,42,.08);
}

.accom-studapart-cards div::after {
  content: "";
  position: absolute;
  width: 108px;
  height: 108px;
  border-radius: 50%;
  right: -42px;
  bottom: -48px;
  background: rgba(145,0,72,.08);
  pointer-events: none;
}

.accom-studapart-cards strong {
  position: relative;
  z-index: 1;
  display: block;
  color: var(--accom-ink);
  font-size: 1.18rem;
  letter-spacing: -.025em;
  margin-bottom: 8px;
}

.accom-studapart-cards span {
  position: relative;
  z-index: 1;
  display: block;
  color: var(--accom-muted);
  line-height: 1.45;
  font-weight: 650;
}

@media (max-width: 1100px) {
  .accommodation-page .accom-residence-grid,
  .accom-studapart-panel {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .accommodation-page .accom-hero { padding-top: 22px; }
  .accommodation-page .accom-section { padding: 38px 0; }
  .accommodation-page .accom-section-head { margin-bottom: 18px; }
  .accommodation-page .accom-residence-points,
  .accom-studapart-cards {
    grid-template-columns: 1fr;
  }
}


/* V167 — translated accommodation page containment, preserving existing layout language */
html[lang="fr"] .accommodation-page .accom-hero h1,
html[lang="es-MX"] .accommodation-page .accom-hero h1 {
  font-size: clamp(3.1rem, 7.2vw, 7.1rem);
  line-height: .98;
  max-width: 820px;
}

html[lang="fr"] .accommodation-page .accom-section h2,
html[lang="fr"] .accommodation-page .accom-final h2,
html[lang="es-MX"] .accommodation-page .accom-section h2,
html[lang="es-MX"] .accommodation-page .accom-final h2 {
  font-size: clamp(2.25rem, 4.35vw, 4.65rem);
  line-height: 1;
  overflow-wrap: anywhere;
}

html[lang="fr"] .accommodation-page .accom-studapart-copy h2,
html[lang="es-MX"] .accommodation-page .accom-studapart-copy h2,
html[lang="fr"] .accommodation-page .accom-residence-copy h2,
html[lang="es-MX"] .accommodation-page .accom-residence-copy h2 {
  font-size: clamp(2.15rem, 3.9vw, 4.05rem);
}

html[lang="fr"] .accommodation-page .intl-tag,
html[lang="es-MX"] .accommodation-page .intl-tag,
html[lang="fr"] .accommodation-page .accom-kicker,
html[lang="es-MX"] .accommodation-page .accom-kicker,
html[lang="fr"] .accommodation-page .accom-eyebrow,
html[lang="es-MX"] .accommodation-page .accom-eyebrow {
  line-height: 1.15;
  align-items: center;
  text-align: left;
}

html[lang="fr"] .accommodation-page .accom-actions .btn,
html[lang="es-MX"] .accommodation-page .accom-actions .btn,
html[lang="fr"] .accommodation-page .accom-final-actions .btn,
html[lang="es-MX"] .accommodation-page .accom-final-actions .btn {
  min-width: 0;
  white-space: normal;
  text-align: center;
}

@media (max-width: 760px) {
  html[lang="fr"] .accommodation-page .accom-hero h1,
  html[lang="es-MX"] .accommodation-page .accom-hero h1 {
    font-size: clamp(2.85rem, 13.4vw, 4.35rem);
    line-height: 1;
  }

  html[lang="fr"] .accommodation-page .accom-section h2,
  html[lang="fr"] .accommodation-page .accom-final h2,
  html[lang="es-MX"] .accommodation-page .accom-section h2,
  html[lang="es-MX"] .accommodation-page .accom-final h2 {
    font-size: clamp(2.05rem, 10.5vw, 3.4rem);
  }
}
