/* One promotion display template. Content comes unchanged from the existing article. */
.promotion-landing { --offer-forest:#302a22; --offer-copy:#746d63; --offer-gold:#9c6829; --offer-line:rgba(113,76,28,.15); --offer-ivory:#fffdf8; --offer-reading-width:1136px; --offer-media-height:clamp(280px,46vw,560px); color:var(--offer-forest); background:var(--offer-ivory); }
.promotion-landing .container { max-width:1200px; padding-inline:32px; }
.promotion-landing > :is(header,section) { position:relative; padding-block:clamp(56px,7vw,100px); scroll-margin-top:100px; }
.promotion-landing :is(h1,h2,h3,h4) { color:inherit; overflow-wrap:anywhere; }
.promotion-landing h1 { max-width:650px; margin:18px 0 24px; font-size:clamp(36px,4.2vw,56px); line-height:1.15; font-weight:600; text-wrap:balance; }
.promotion-landing h2 { margin:0 0 24px; font-size:clamp(28px,3.2vw,42px); line-height:1.25; font-weight:600; text-wrap:balance; }
.promotion-landing p { color:var(--offer-copy); font-size:16px; line-height:1.9; }
.promotion-landing .offer-kicker { display:inline-flex; align-items:center; gap:12px; color:#8c7441; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.promotion-landing .offer-kicker::before { flex:none; width:32px; height:1px; background:currentColor; content:''; }
.promotion-landing .offer-hero { padding-block:clamp(40px,4vw,60px); color:#fff; background:radial-gradient(circle at 88% 12%,rgba(207,148,61,.2),transparent 28%),linear-gradient(132deg,#211f1b,#302b24 58%,#44382a); }
.offer-hero__grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:clamp(36px,5vw,72px); }
.offer-hero__copy { min-width:0; }
.promotion-landing .offer-hero h1 { margin:16px 0 20px; color:#fff; font-family:var(--hm-serif); font-size:clamp(38px,3.6vw,50px); letter-spacing:-.03em; line-height:1.12; }
.promotion-landing .offer-hero .offer-kicker { color:#dfbd73; }
.offer-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:26px; color:#c1b69f; font-size:11px; }
.offer-breadcrumb a { color:inherit; text-decoration:none; }
.offer-breadcrumb a:hover { color:#f0d486; }
.promotion-landing .offer-lead { max-width:540px; margin:0; color:#d9d2c7; font-size:15px; line-height:1.8; }
.offer-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px 28px; margin-top:32px; }
.promotion-landing .offer-hero .offer-actions { margin-top:26px; gap:16px 24px; }
.promotion-landing .offer-hero .offer-button { gap:16px; border-color:#d8b66d; border-radius:999px; background:linear-gradient(135deg,#f0d486,#c18d42); color:#30261c; }
.promotion-landing .offer-hero .offer-button:hover { background:linear-gradient(135deg,#f5dd9a,#cea15c); box-shadow:0 6px 22px #0003; }
.promotion-landing .offer-hero .offer-text-link { color:#ebd397; }
.promotion-landing .offer-hero :is(a,button):focus-visible { outline-color:#f0d486; }
.promotion-landing .offer-button { display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:48px; max-width:100%; padding:13px 24px; border:1px solid #a98b4b; border-radius:9px; background:#b19558; color:#172d23; font-size:14px; font-weight:700; line-height:1.5; text-align:center; transition:background .2s,box-shadow .2s; }
.promotion-landing .offer-button:hover { background:#bfa56c; border-color:#b19558; box-shadow:0 5px 18px #76623920; }
.promotion-landing .offer-text-link { display:inline-flex; align-items:center; gap:12px; color:var(--offer-forest); font-size:13px; line-height:1.6; text-decoration:none; text-underline-offset:5px; }
.promotion-landing .offer-text-link:hover { text-decoration:underline; }
.offer-hero__visual { position:relative; isolation:isolate; min-width:0; margin:0; padding:0 10px 10px 0; }
.offer-hero__visual::after { position:absolute; z-index:-1; inset:12px 0 0 12px; border:1px solid #dfbd7359; border-radius:2px 56px 2px 2px; content:''; }
.offer-hero__visual img { display:block; width:100%; aspect-ratio:6 / 5; max-height:440px; border:1px solid #dfbd733d; border-radius:2px 56px 2px 2px; object-fit:cover; }
.promotion-landing .offer-grid--text { grid-template-columns:minmax(0,1fr); }
.promotion-landing .offer-grid--text .offer-hero__copy { max-width:840px; }
/* One consistent reading rail for all existing rich text; no inferred image/text columns. */
.promotion-landing .offer-content { padding-block:0; background:radial-gradient(circle at 100% 0,rgba(201,147,69,.075),transparent 20%),url('/layouts/spa/bg_body.png'),var(--offer-ivory); }
.promotion-landing .offer-content__heading { max-width:none; padding:32px max(32px,calc((100% - var(--offer-reading-width))/2)) 0; border-top:1px solid var(--offer-line); background:transparent; }
.promotion-landing .offer-body { width:100%; max-width:none; margin:0; overflow-wrap:anywhere; }
.promotion-landing .offer-body .website-content-block:not(:has(> .website-content-block)) { display:block; padding:40px max(32px,calc((100% - var(--offer-reading-width))/2)); margin:0; border:0; border-bottom:1px solid var(--offer-line); border-radius:0; box-shadow:none; }
.promotion-landing .offer-body .website-content-block > * { max-width:100%; margin-inline:0; }
.promotion-landing .offer-body p { margin-block:0 20px; }
.promotion-landing .offer-body :is(h2,h3,h4) { margin-block:0 24px; text-align:start; }
.promotion-landing .offer-body h2 { font-size:clamp(27px,2.7vw,36px); line-height:1.3; }
.promotion-landing .offer-body h3 { font-size:24px; line-height:1.4; }
.promotion-landing .offer-body :is(h2,h3,h4) { font-family:var(--hm-serif); letter-spacing:-.025em; }
.promotion-landing .offer-body :is(ul,ol) { padding-left:24px; color:var(--offer-copy); font-size:16px; line-height:1.9; }
.promotion-landing .offer-body li { margin-block:10px; padding-left:6px; }
.promotion-landing .offer-body li::marker { color:var(--offer-gold); }
.promotion-landing .offer-body a { color:#80551f; text-underline-offset:4px; }
.promotion-landing .offer-body blockquote { margin-block:24px; padding:18px 26px; border-left:2px solid #b19558; background:#f6edda; }
.promotion-landing .offer-body :is(figure,.se-component) { width:auto; max-width:100%; margin:24px 0; }
.promotion-landing .offer-body .se-image-container { width:100%; }
.promotion-landing .offer-body .se-component > figure { margin:0; }
.promotion-landing .offer-body img { display:block; max-width:100%; height:auto; margin-inline:auto; border-radius:14px; }
/* Reserve space before lazy loading; contain keeps portraits and text in artwork fully visible. */
.promotion-landing[data-content-image-layout="framed"] .offer-body figure:has(> img):not(:has(> img ~ img)) { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:var(--offer-media-height) auto; gap:0; padding:12px; background:#f2f3ed; border:1px solid #e2e5d9; border-radius:18px; }
.promotion-landing[data-content-image-layout="framed"] .offer-body figure:has(> img):not(:has(> img ~ img)) > img { grid-column:1; grid-row:1; display:block; width:100%; height:100%; min-height:0; object-fit:contain; object-position:center; }
.promotion-landing[data-content-image-layout="framed"] .offer-body figure:has(> img):not(:has(> img ~ img)) > figcaption { grid-column:1; grid-row:2; width:100%; margin:16px 0 0; }
.promotion-landing .offer-body :is(iframe,video) { max-width:100%; }
.promotion-landing .offer-body figcaption { display:none; }
.promotion-landing .offer-body :is(.website-responsive-table,table) { max-width:100%; }
.promotion-landing .offer-body .website-responsive-table { margin:24px 0; border:1px solid var(--offer-line); border-radius:2px 18px 2px 2px; background:var(--offer-ivory); }
.promotion-landing .offer-body table { width:100%; border-collapse:collapse; background:transparent; }
.promotion-landing .offer-body :is(th,td) { padding:16px 20px; border:0; border-bottom:1px solid var(--offer-line); color:var(--offer-copy); font-size:14px; line-height:1.75; }
.promotion-landing .offer-body th { color:var(--offer-forest); background:#f5eddc; font-weight:700; }
.promotion-landing .offer-body tr:last-child td { border-bottom:0; }
.promotion-landing .offer-body > .website-responsive-expand { margin:28px auto; }
.promotion-landing .offer-empty { padding-block:48px; }
.promotion-landing[data-content-layout="editorial"] { --offer-reading-width:780px; }
.promotion-landing[data-spacing="compact"] .offer-body .website-content-block:not(:has(> .website-content-block)) { padding-block:32px; }
.promotion-landing[data-image-shape="soft"] .offer-body img { border-radius:48px 14px 48px 14px; }
.promotion-landing .offer-booking { background:linear-gradient(135deg,#c99345,#f1d27c 52%,#bd7d2d); color:#302a22; }
.offer-booking__grid { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:34px 80px; }
.promotion-landing .offer-booking .offer-kicker { color:#644016; }
.promotion-landing .offer-booking h2 { margin-top:12px; font-family:var(--hm-serif); letter-spacing:-.025em; }
.promotion-landing .offer-booking p { max-width:700px; margin:16px 0 0; color:#594328; font-size:15px; }
.offer-booking__action { display:flex; flex-direction:column; align-items:center; gap:20px; }
.offer-booking__action a { color:#46331d; font-size:15px; text-decoration:none; }
.promotion-landing .offer-booking .offer-button { border-color:#302a22; border-radius:999px; background:#302a22; color:#fff8e8; }
.promotion-landing .offer-booking .offer-button:hover { background:#45392b; border-color:#45392b; }
.promotion-landing .offer-related { padding-block:64px 70px; background:radial-gradient(circle at 88% 10%,rgba(201,147,69,.16),transparent 24%),linear-gradient(135deg,#211f1b,#302a22 62%,#3c3327); color:#fff; }
.offer-related__heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; margin-bottom:26px; }
.promotion-landing .offer-related .offer-kicker,.promotion-landing .offer-related .offer-text-link { color:#f1d27c; }
.promotion-landing .offer-related h2 { margin:12px 0 0; color:#fff; font-family:var(--hm-serif); font-size:clamp(32px,3.5vw,44px); letter-spacing:-.025em; }
.offer-related__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.offer-related__grid > article { display:flex; overflow:hidden; min-width:0; flex-direction:column; border:1px solid #ffffff1a; border-radius:2px 20px 2px 2px; background:#ffffff0e; }
.offer-related__media { position:relative; display:grid; height:180px; flex:none; place-items:center; overflow:hidden; background:#443c31; color:#f1d27c; }
.offer-related__media img { display:block; width:100%; height:100%; object-fit:cover; }
.offer-related__media span { position:absolute; top:12px; left:12px; display:grid; width:30px; height:30px; place-items:center; border:1px solid #ffffff66; border-radius:50%; background:#231e1699; color:#fff; font-size:11px; }
.offer-related__copy { display:flex; flex:1; flex-direction:column; align-items:start; padding:20px; }
.promotion-landing .offer-related h3 { display:-webkit-box; overflow:hidden; margin:0 0 22px; color:#fff; font-family:var(--hm-serif); font-size:23px; line-height:1.25; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.offer-related h3 a { color:inherit; text-decoration:none; }
.offer-related__grid .offer-text-link { margin-top:auto; font-size:12px; }
.promotion-landing :is(a,button):focus-visible { outline:2px solid #9a7d42; outline-offset:5px; }
.promotion-landing .offer-booking :is(a,button):focus-visible { outline-color:#302a22; }
.promotion-landing .offer-related :is(a,button):focus-visible { outline-color:#f1d27c; }
/* Override the classic shell's generic white-section rule within this template only. */
body.website-classic-body .promotion-landing > section { background-color:var(--offer-ivory); }
body.website-classic-body .promotion-landing .offer-body .website-content-block { background-color:transparent; }
@media(min-width:992px) { .promotion-landing[data-image-position="left"] .offer-hero__visual { grid-column:1; grid-row:1; } .promotion-landing[data-image-position="left"] .offer-hero__copy { grid-column:2; grid-row:1; } }
@media(max-width:991px) { .promotion-landing .container { padding-inline:24px; } .offer-hero__grid { gap:30px; } .promotion-landing h1 { font-size:38px; } .offer-booking__grid { gap:32px; } }
@media(min-width:768px) and (max-width:991px) { .offer-hero__grid { grid-template-columns:minmax(0,1fr); } .offer-hero__visual { width:100%; max-width:680px; } .promotion-landing .offer-lead { max-width:680px; } }
@media(max-width:767px) {
 .promotion-landing .container { padding-inline:22px; }
 .promotion-landing > :is(header,section) { padding-block:44px; }
 .promotion-landing .offer-hero { padding-block:30px 38px; }
 .offer-hero__grid { grid-template-columns:minmax(0,1fr); gap:28px; }
 .promotion-landing .offer-hero h1 { margin:14px 0 18px; font-size:clamp(30px,8vw,38px); letter-spacing:-.025em; }
 .offer-breadcrumb { margin-bottom:22px; }
 .promotion-landing h1 { font-size:clamp(30px,8vw,40px); }
 .promotion-landing h2 { font-size:28px; }
 .promotion-landing .offer-lead { font-size:15px; }
 .offer-hero__visual { max-width:470px; width:100%; margin-inline:auto; }
 .offer-hero__visual::after,.offer-hero__visual img { border-radius:2px 38px 2px 2px; }
 .offer-hero__visual img { aspect-ratio:5 / 4.4; object-fit:var(--website-mobile-image-fit,cover); }
 .offer-actions { gap:20px; }
 .promotion-landing .offer-button { min-height:46px; padding-inline:20px; font-size:13px; }
 .promotion-landing .offer-content { padding-block:0; }
 .promotion-landing .offer-content__heading { padding:28px 22px 0; }
 .promotion-landing .offer-body .website-content-block:not(:has(> .website-content-block)) { padding:32px 22px; }
 .promotion-landing .offer-body :is(p,ul,ol) { font-size:15px; }
 .promotion-landing .offer-body :is(th,td) { padding:12px 14px; font-size:13px; }
 .promotion-landing[data-content-image-layout="framed"] .offer-body figure:has(> img):not(:has(> img ~ img)) { padding:12px; border-radius:14px; }
 .promotion-landing .offer-body figcaption { font-size:11px; }
 .offer-booking__grid { grid-template-columns:minmax(0,1fr); gap:26px; }
 .offer-booking__action { align-items:start; }
 .promotion-landing .offer-related { padding-block:44px 48px; }
 .offer-related__grid { grid-template-columns:minmax(0,1fr); gap:12px; }
 .offer-related__grid > article { display:grid; grid-template-columns:106px minmax(0,1fr); min-height:150px; }
 .offer-related__media { width:106px; height:100%; min-height:150px; }
 .offer-related__copy { padding:16px; }
 .promotion-landing .offer-related h3 { margin-bottom:16px; font-size:20px; }
 .promotion-landing .offer-booking h2 { font-size:32px; }
}
@media(prefers-reduced-motion:reduce) { .promotion-landing * { transition:none !important; } }
@media print { body.website-classic-body .promotion-landing section { background:#fff !important; color:#111; } .promotion-landing .offer-actions,.promotion-landing .offer-booking__action,.promotion-landing .offer-related { display:none; } .promotion-landing .offer-booking p { color:#333; } .promotion-landing .offer-body .website-content-block { break-inside:avoid; } }

/* Explicit shared choices override the existing automatic/mobile fit only when selected. */
.promotion-landing[data-hero-image-fit="contain"] .offer-hero__visual { padding:0; }
.promotion-landing[data-hero-image-fit="contain"] .offer-hero__visual::after { content:none; }
.promotion-landing[data-hero-image-fit="contain"] .offer-hero__visual img { width:100%; height:auto; aspect-ratio:auto; max-height:none; object-fit:contain; background:transparent; }
.promotion-landing[data-hero-image-fit="cover"] .offer-hero__visual { padding:0; }
.promotion-landing[data-hero-image-fit="cover"] .offer-hero__visual::after { content:none; }
.promotion-landing[data-hero-image-fit="cover"] .offer-hero__visual img { object-fit:cover; }
.promotion-landing[data-content-image-layout="framed"][data-content-image-fit="cover"] .offer-body figure:has(> img):not(:has(> img ~ img)) > img { object-fit:cover; }
.promotion-landing[data-content-image-layout="framed"][data-content-image-fit="cover"] .offer-body figure:has(> img):not(:has(> img ~ img)) { padding:0; border:0; overflow:hidden; }
.promotion-landing[data-content-image-layout="framed"][data-content-image-fit="cover"][data-image-shape="soft"] .offer-body figure:has(> img):not(:has(> img ~ img)) { border-radius:48px 14px 48px 14px; }
.promotion-landing[data-content-image-layout="framed"][data-content-image-fit="cover"] .offer-body figure:has(> img):not(:has(> img ~ img)) > img { border-radius:0; }
/* Full-image mode lets the frame follow the image instead of reserving a matte canvas. */
.promotion-landing[data-content-image-layout="framed"][data-content-image-fit="contain"] .offer-body figure:has(> img):not(:has(> img ~ img)) { display:block; width:100%; max-width:100%; margin-inline:auto; padding:0; border:0; background:transparent; box-shadow:none; }
.promotion-landing[data-content-image-layout="framed"][data-content-image-fit="contain"] .offer-body figure:has(> img):not(:has(> img ~ img)) > img { width:100%; max-width:100%; height:auto; max-height:none; object-fit:contain; }
@media (min-width:768px) and (max-width:991px) {
 .promotion-landing .offer-content__heading { padding-inline:24px; }
 .promotion-landing .offer-body .website-content-block:not(:has(> .website-content-block)) { padding-inline:24px; }
}

/* Editorial media follows intrinsic image proportions; source text and order stay intact. */
.promotion-landing .offer-body .offer-editorial-figure { display:block; width:100%; max-width:min(100%,var(--offer-image-width,960px)); margin:24px auto; padding:0; border:0; background:transparent; box-shadow:none; }
.promotion-landing .offer-body .offer-editorial-image { display:block; width:100%; max-width:min(100%,var(--offer-image-width,960px)); height:auto; max-height:640px; object-fit:contain; border:1px solid #dce0d3; border-radius:16px; }
.promotion-landing .offer-body .offer-editorial-figure > figcaption { margin:12px 0 0; width:100%; max-width:none; color:#79816f; font-size:12px; line-height:1.75; }
.promotion-landing .offer-body .offer-media-pair { padding:40px max(32px,calc((100% - var(--offer-reading-width))/2)); border-bottom:1px solid var(--offer-line); }
.promotion-landing .offer-body .offer-media-pair__grid { display:grid; grid-template-columns:minmax(0,var(--offer-pair-left)) minmax(0,var(--offer-pair-right)); grid-template-rows:auto auto; column-gap:32px; row-gap:22px; width:100%; max-width:min(100%,var(--offer-pair-max-width)); margin-inline:auto; align-items:start; }
.promotion-landing .offer-body .offer-media-pair__grid > .offer-media-card { display:contents; }
.promotion-landing .offer-body .offer-media-card > :is(h2,h3) { grid-row:1; margin:0; padding:0; font-size:clamp(24px,2.4vw,32px); line-height:1.3; }
.promotion-landing .offer-body .offer-media-card > .offer-editorial-media { grid-row:2; width:100%; min-width:0; margin:0; }
.promotion-landing .offer-body .offer-media-card:first-child > * { grid-column:1; }
.promotion-landing .offer-body .offer-media-card:last-child > * { grid-column:2; }
.promotion-landing .offer-body .offer-media-card .offer-editorial-figure { width:100%; max-width:100%; margin:0; }
.promotion-landing .offer-body .offer-media-card .offer-editorial-image { width:100%; height:auto; max-height:none; }
.promotion-landing[data-spacing="compact"] .offer-body .offer-media-pair { padding-block:32px; }
@media(max-width:991px) {
 .promotion-landing .offer-body .offer-media-pair { padding:32px 22px; }
 .promotion-landing .offer-body .offer-media-pair__grid { display:block; }
 .promotion-landing .offer-body .offer-media-pair__grid > .offer-media-card { display:block; padding:0; margin:0 0 36px; border:0; }
 .promotion-landing .offer-body .offer-media-pair__grid > .offer-media-card:last-child { margin-bottom:0; }
 .promotion-landing .offer-body .offer-media-card > :is(h2,h3) { margin-bottom:20px; font-size:27px; }
 .promotion-landing .offer-body .offer-media-card .offer-editorial-figure { max-width:min(100%,var(--offer-image-width,960px)); margin-inline:auto; }
 .promotion-landing .offer-body .offer-editorial-figure { margin-block:20px; }
}

.promotion-landing .offer-body .offer-editorial-image--unmeasured { width:auto; max-width:100%; height:auto; max-height:640px; }

@media(min-width:768px) and (max-width:991px) { .promotion-landing .offer-body .offer-media-pair { padding-inline:24px; } }
