.offer-page {
  --offer-paper: #f6f4ee;
  --offer-ink: #100e0d;
  --offer-muted: #605c58;
  --offer-line: rgba(16, 14, 13, .18);
  background: var(--offer-paper);
  color: var(--offer-ink);
}

.offer-page * { box-sizing: border-box; }
.offer-page main { overflow: clip; }
.offer-page a { text-underline-offset: .25em; }
.offer-page img { display: block; max-width: 100%; }
.offer-page .header { position: relative; z-index: 5; }
.offer-page .offer-shell { width: min(100% - 80px, 1440px); margin-inline: auto; }

.offer-hero {
  min-height: min(820px, calc(100dvh - 76px));
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
  align-items: stretch;
  border-bottom: 1px solid var(--offer-line);
}
.offer-hero-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(50px, 6vw, 110px) clamp(38px, 6vw, 110px);
}
.offer-kicker {
  margin: 0 0 clamp(22px, 4vw, 44px);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.offer-hero h1,
.offer-section h2,
.offer-close h2 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -.055em;
  text-transform: uppercase;
}
.offer-hero h1 {
  max-width: 10ch;
  font-size: clamp(46px, 5.1vw, 91px);
  line-height: .96;
  text-wrap: balance;
}
.offer-hero h1 .offer-accent { color: #9b706d; }
.offer-hero-lead {
  max-width: 37ch;
  margin: clamp(24px, 3vw, 42px) 0 0;
  font-size: clamp(18px, 1.45vw, 24px);
  line-height: 1.36;
}
.offer-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 26px; margin-top: 34px; }
.offer-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 55px;
  padding: 15px 24px;
  border: 1px solid var(--offer-ink);
  background: var(--offer-ink);
  color: var(--offer-paper);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: .035em;
  text-decoration: none;
  white-space: nowrap;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.offer-button:hover { background: transparent; color: var(--offer-ink); transform: translateY(-2px); }
.offer-button:active { transform: translateY(0); }
.offer-text-link { color: var(--offer-ink); font-size: 14px; font-weight: 700; }
.offer-button:focus-visible,
.offer-text-link:focus-visible,
.offer-page summary:focus-visible { outline: 3px solid #9b706d; outline-offset: 4px; }
.offer-hero-media { position: relative; overflow: hidden; min-height: 660px; background: #d5cec6; }
.offer-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 34%; }
.offer-hero-media::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(16,14,13,.08); pointer-events: none; }

.offer-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; padding-block: 31px; border-bottom: 1px solid var(--offer-line); }
.offer-facts div { display: grid; gap: 7px; }
.offer-facts span { color: var(--offer-muted); font-size: 12px; line-height: 1.25; }
.offer-facts strong { font-size: clamp(17px, 1.5vw, 23px); font-weight: 600; line-height: 1.15; }
.offer-section { padding-block: clamp(76px, 9vw, 138px); }
.offer-section h2,
.offer-close h2 { max-width: 16ch; font-size: clamp(41px, 5.3vw, 84px); line-height: .97; text-wrap: balance; }
.offer-section p { font-size: clamp(17px, 1.25vw, 20px); line-height: 1.45; }
.offer-intro { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(40px, 8vw, 130px); align-items: end; }
.offer-intro > p { max-width: 34ch; margin: 0 0 .15em; }
.offer-included { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(30px, 8vw, 140px); margin-top: clamp(58px, 8vw, 120px); padding-top: 30px; border-top: 1px solid var(--offer-line); }
.offer-included > p { margin: 0; color: var(--offer-muted); }
.offer-included-list { display: grid; }
.offer-included-list div { display: grid; grid-template-columns: 1fr auto; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--offer-line); font-size: clamp(18px, 1.6vw, 25px); line-height: 1.2; }
.offer-included-list span:last-child { color: #9b706d; font-size: 17px; }
.offer-included-list p { margin: 20px 0 0; color: var(--offer-muted); font-size: 13px; line-height: 1.55; }

.offer-proof { background: #ede8e1; }
.offer-proof-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 36px; }
.offer-proof-head h2 { max-width: 17ch; }
.offer-proof-head p { max-width: 33ch; margin: 0; }
.offer-gallery { display: grid; grid-template-columns: 1.15fr .85fr; align-items: start; gap: clamp(12px, 2vw, 30px); }
.offer-gallery figure { margin: 0; }
.offer-gallery figure:nth-child(2) { margin-top: clamp(40px, 6vw, 90px); }
.offer-gallery img { width: 100%; height: clamp(330px, 43vw, 660px); object-fit: cover; object-position: center 36%; }
.offer-gallery figure:nth-child(2) img { height: clamp(260px, 35vw, 540px); }
.offer-gallery figcaption { margin-top: 13px; color: var(--offer-muted); font-size: 13px; }

.offer-price-section { background: var(--offer-paper); }
.offer-price-header { display: grid; grid-template-columns: .8fr 1.2fr; gap: 32px; align-items: end; margin-bottom: 36px; }
.offer-price-header p { max-width: 36ch; margin: 0 0 5px; }
.offer-price-table { border-top: 1px solid var(--offer-line); }
.offer-price-row { display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: center; padding: 23px 0; border-bottom: 1px solid var(--offer-line); }
.offer-price-row h3 { margin: 0 0 5px; font-size: clamp(20px, 2vw, 31px); font-weight: 600; letter-spacing: -.035em; }
.offer-price-row p { margin: 0; color: var(--offer-muted); font-size: 14px; }
.offer-price-row-price { text-align: right; white-space: nowrap; }
.offer-price-row-price del { display: block; color: var(--offer-muted); font-size: 15px; }
.offer-price-row-price strong { display: block; font-size: clamp(25px, 2.5vw, 39px); font-weight: 600; letter-spacing: -.045em; }
.offer-note { max-width: 75ch; margin: 21px 0 0; color: var(--offer-muted); font-size: 14px !important; line-height: 1.55 !important; }
.offer-code { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 24px; margin-top: 35px; padding: 21px 0; border-block: 1px solid var(--offer-line); }
.offer-code span { color: var(--offer-muted); font-size: 13px; }
.offer-code strong { font-size: clamp(30px, 3vw, 48px); line-height: 1; letter-spacing: -.04em; }
.offer-booking-note { max-width: 60ch; margin: 16px 0 0; color: var(--offer-muted); font-size: 14px !important; }

.offer-faq { background: #e8dfd7; }
.offer-faq-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(40px, 8vw, 120px); }
.offer-faq details { border-bottom: 1px solid var(--offer-line); }
.offer-faq details:first-child { border-top: 1px solid var(--offer-line); }
.offer-faq summary { padding: 20px 30px 20px 0; cursor: pointer; font-size: 18px; font-weight: 600; line-height: 1.25; }
.offer-faq details p { max-width: 50ch; margin: 0 0 24px; color: var(--offer-muted); font-size: 15px; }
.offer-close { display: grid; grid-template-columns: .78fr 1.22fr; min-height: 590px; }
.offer-close-photo { overflow: hidden; }
.offer-close-photo img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; object-position: center 35%; }
.offer-close-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(48px, 7vw, 108px); }
.offer-close-copy > p { max-width: 38ch; margin: 22px 0 0; }
.offer-close .offer-actions { margin-top: 30px; }
.offer-address { margin-top: 38px; color: var(--offer-muted); font-size: 14px; line-height: 1.45; }
.offer-page .footer { border-top: 1px solid var(--offer-line); }

@media (max-width: 900px) {
  .offer-page .offer-shell { width: min(100% - 36px, 720px); }
  .offer-hero { min-height: 0; grid-template-columns: 1fr; }
  .offer-hero-copy { padding: 48px 18px 38px; }
  .offer-hero h1 { max-width: 11ch; font-size: clamp(48px, 10vw, 75px); }
  .offer-hero-media { min-height: 0; height: clamp(330px, 75vw, 570px); }
  .offer-facts { gap: 15px; }
  .offer-intro, .offer-included, .offer-price-header, .offer-faq-layout { grid-template-columns: 1fr; gap: 28px; }
  .offer-included { margin-top: 55px; }
  .offer-proof-head { align-items: start; flex-direction: column; }
  .offer-close { grid-template-columns: 1fr; }
  .offer-close-photo { height: 400px; }
  .offer-close-photo img { min-height: 0; }
}
@media (max-width: 560px) {
  .offer-hero-copy { padding-block: 36px 28px; }
  .offer-kicker { margin-bottom: 22px; }
  .offer-hero h1 { font-size: clamp(42px, 12vw, 62px); }
  .offer-hero-lead { margin-top: 17px; font-size: 17px; }
  .offer-actions { margin-top: 22px; gap: 16px; }
  .offer-button { min-height: 51px; }
  .offer-hero-media { height: 300px; }
  .offer-facts { grid-template-columns: 1fr 1fr; padding-block: 25px; }
  .offer-facts div:last-child { grid-column: 1 / -1; }
  .offer-section { padding-block: 66px; }
  .offer-section h2, .offer-close h2 { font-size: clamp(39px, 10vw, 58px); }
  .offer-gallery { grid-template-columns: 1fr 1fr; gap: 10px; }
  .offer-gallery img { height: 260px; }
  .offer-gallery figure:nth-child(2) { margin-top: 30px; }
  .offer-gallery figure:nth-child(2) img { height: 230px; }
  .offer-price-row { gap: 14px; }
  .offer-price-row h3 { font-size: 19px; }
  .offer-price-row-price strong { font-size: 25px; }
  .offer-close-photo { height: 300px; }
  .offer-close-copy { padding: 55px 18px 70px; }
}
@media (prefers-reduced-motion: reduce) {
  .offer-button { transition: none; }
}
