/* Warm architectural glass. Alpha belongs to surfaces, never their contents. */
:root {
  --adm-ivory: #f7f4ec;
  --adm-paper: #fcfaf5;
  --adm-ink: #302c24;
  --adm-black: #302c24;
  --adm-grey: #eee4d2;
  --adm-green: #384638;
  --adm-gold: #6f631f;
  --adm-gold-bright: #a29233;
  --adm-gold-soft: #e6d6b4;
  --adm-line: rgb(123 105 57 / .22);
  --adm-radius: 1.5rem;
  --adm-card-pad: clamp(1.25rem, 2vw, 2rem);
  --radius: 1.5rem;
  --muted: #655d50;
  --paper: var(--adm-ivory);
  --paper-2: var(--adm-grey);
  --ink: var(--adm-ink);
  --gold: var(--adm-gold-bright);
  --gold-text: var(--adm-gold);
  --sans: 'Jost', 'Avenir Next', Arial, sans-serif;
  --display: 'Cormorant Garamond', 'Baskerville', Georgia, serif;
  --serif: var(--display);
  --wordmark: 'Italiana', 'Cormorant Garamond', Georgia, serif;
  --glass-fill: linear-gradient(135deg, rgb(255 253 248 / .91), rgb(247 241 229 / .85));
  --glass-deep: linear-gradient(135deg, rgb(48 58 45 / .94), rgb(38 46 35 / .9));
  --glass-edge: 1px solid rgb(158 138 82 / .27);
  --glass-shadow: 0 16px 42px rgb(69 55 27 / .07), inset 0 1px 0 rgb(255 255 255 / .75);
  --adm-icon-ink: #81702e;
}
html { background: var(--adm-ivory); }
body, body.inner-page {
  position: relative; isolation: isolate; background: transparent;
  color: var(--adm-ink); font: 400 1rem/1.7 var(--sans);
}
body::before {
  content: ''; position: fixed; inset: 0; z-index: -2; width: auto; height: auto;
  background: linear-gradient(180deg, rgb(247 244 236 / .97) 0%, rgb(247 244 236 / .91) 52%, rgb(244 239 228 / .97) 100%), url('./destination/stellenbosch-vineyards.webp') center 38% / cover;
  border: 0; box-shadow: none; pointer-events: none;
}
body::after {
  content: ''; position: fixed; inset: -8%; z-index: -1; width: auto; height: auto;
  background: radial-gradient(ellipse at 12% 20%, rgb(225 198 131 / .16), transparent 48%), radial-gradient(ellipse at 92% 65%, rgb(118 135 93 / .1), transparent 42%);
  box-shadow: none; pointer-events: none;
}
html::before, html::after { content: none; }
body main { background: transparent; }
body main :is(h1,h2,h3,h4), body .footer-wordmark,
body .origin-weight-title, body .introduction [data-originkit-mount] h2 {
  font-family: var(--display); font-weight: 400 !important; letter-spacing: -.015em !important;
  line-height: 1.12 !important; text-wrap: balance;
}
body :is(.campaign-wordmark,.footer-wordmark,.loader-wordmark) { font-family: var(--wordmark) !important; }
body :is(p,li,address,.page-lead) { font-family: var(--sans); line-height: 1.7; }
body :is(.page-title,.category-intro h1,.contact-heading h1,.offer-intro h1) { font-size: clamp(2.75rem,5.3vw,5.6rem); }
body :is(.eyebrow,.page-kicker,.section-index) { color: var(--adm-gold); font-size: .875rem; }
body :is(.card-body h3,.unit-card-copy h3,.offer-option h2) { font-size: clamp(1.8rem,2.4vw,2.6rem); }
body main h1 em, body main h2 em { font-family: var(--display); font-style: italic; color: var(--adm-gold); }
body :is(.section-pad,.collection) { --adm-section: clamp(3rem,5.5vw,5.5rem); }
body :is(.page-hero,.page-hero-content,.category-intro,.activities-guide,.offer-intro,.location-intro,.contact-intro,.location,.booking-path,.editorial-cta) { background: transparent; }
body :is(.location,.details,.collection,.apartment-collection,.category-collection) { background: transparent; }

/* Floating navigation: clear enough to read over every photograph. */
body .site-header.glass-nav {
  background: var(--glass-fill); border-bottom: var(--glass-edge);
  box-shadow: 0 8px 30px rgb(58 48 28 / .06), inset 0 1px 0 #fff9;
  -webkit-backdrop-filter: blur(22px) saturate(115%); backdrop-filter: blur(22px) saturate(115%);
  border-radius: 0 0 1.25rem 1.25rem;
}
body .nav-shell { min-height: 5.25rem; }
body .nav-primary :is(a,summary), body .menu-toggle { color: var(--adm-ink); font-weight: 400; }
body .nav-primary :is(a,summary):hover, body .nav-primary a[aria-current='page'] { color: var(--adm-gold); }
body .nav-dropdown .dropdown-links {
  padding: .75rem; border: var(--glass-edge); border-radius: 1.25rem;
  background: var(--glass-fill); box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px);
}
body .nav-dropdown .dropdown-links a { border-radius: .7rem; padding: .7rem .85rem; }
body .nav-dropdown .dropdown-links a:hover { background: rgb(162 146 51 / .12); }
body #mobile-menu {
  background: var(--glass-fill); color: var(--adm-ink); border-radius: 0 0 1.5rem 1.5rem;
  -webkit-backdrop-filter: blur(28px); backdrop-filter: blur(28px);
}
body #mobile-menu :is(a,summary) { color: var(--adm-ink); }
body #mobile-menu :is(a,summary):hover { color: var(--adm-gold); }

/* One rounded glass language across collections, guides and forms. */
body :is(.apartment-card:nth-child(n),.unit-card,.related-apartment,.experience-card,.activity-card,.event-card,.offer-option,.offer-secondary,.connection-grid article,.contact-reservations,.enquiry-form,.comparison-controls,.compare-apartment,.activities-town,.activities-wayfinding,.location-map-copy) {
  background: var(--glass-fill); border: var(--glass-edge); border-radius: var(--adm-radius);
  box-shadow: var(--glass-shadow); color: var(--adm-ink);
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
}
body :is(.apartment-card,.unit-card,.related-apartment,.experience-card,.activity-card,.event-card,.activities-town) { overflow: clip; }
body .comparison .compare-controls { padding: var(--adm-card-pad); border: var(--glass-edge); border-radius: 1.25rem; background: var(--glass-fill); }
body .compare-apartment { overflow: hidden; }
body .compare-apartment .compare-category { padding-inline: 1rem; margin-block: .75rem .5rem; }
body .compare-apartment .compare-name { padding: 0 1rem 1rem; }
body.quadro-home .apartment-card:nth-child(n) { align-items: stretch; gap: 0; background: var(--glass-fill); border: var(--glass-edge); border-radius: var(--adm-radius); box-shadow: var(--glass-shadow); }
body .quadro-home { background: transparent; }
body .card-body, body.quadro-home .card-body { width: 100%; box-sizing: border-box; padding: var(--adm-card-pad); gap: .75rem; background: transparent; border: 0; }
body .card-body > p { color: var(--muted); }
body.category-page .unit-card-copy, body.apartments-page .unit-card-copy,
body.apartments-page .unit-grid > .unit-card:only-child .unit-card-copy,
body .unit-card-copy { padding: var(--adm-card-pad); background: transparent; border: 0; }
body .stay-related .related-apartment { display: flex; flex-direction: column; padding: 0; }
body .stay-related .related-apartment > .apartment-photo-frame { margin: 0; }
body .related-apartment .apartment-photo-frame img { border-radius: 0 !important; }
body .stay-related .related-apartment > .photo-context { margin: 0; padding: .85rem var(--adm-card-pad); }
body .stay-related .related-apartment-copy {
  display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: .5rem;
  min-width: 0; margin: 0; padding: var(--adm-card-pad);
}
body .stay-related .related-apartment-copy > span { margin: 0; }
body .stay-related .related-apartment-name {
  color: var(--adm-ink); font: 400 clamp(1.8rem,2.4vw,2.6rem)/1.15 var(--display);
  letter-spacing: -.015em; overflow-wrap: break-word;
}
body .stay-related .related-apartment-meta { color: var(--muted); font-size: 1rem; line-height: 1.7; }
body .stay-related .related-apartment-copy > .related-apartment-link {
  display: inline-flex; align-items: center; gap: .4rem; margin-top: auto;
  padding-top: .5rem; color: var(--adm-gold); font-size: 1rem; line-height: 1.5;
}
body .stay-related .related-apartment-link > .adm-icon { margin: 0; flex: none; }
body .related-apartment:is(:hover,:focus-visible) .related-apartment-name { color: var(--adm-gold); }
body.quadro-home .card-count.adm-glass { padding: .7rem var(--adm-card-pad) 0; color: var(--muted); background: transparent; border: 0; }
body .apartment-grid { gap: clamp(1.25rem,2.5vw,2.5rem); }
body :is(.card-media,.unit-card-media,.page-hero-media,.details-image,.photo-mosaic a,.offer-intro-photo img,.contact-welcome-photo img,.local-map,.activities-hero,.offer-feature) { border-radius: var(--adm-radius); }
body :is(.page-hero-media,.details-image,.activities-hero,.offer-feature) { overflow: clip; }
body :is(.card-media,.unit-card-media) { border-radius: 1.5rem 1.5rem 0 0; }
body main img:not(.residence-cutout):not(.brand img) { border-radius: 1rem; }
body :is(.card-media,.unit-card-media,.experience-photo) img { border-radius: 0 !important; }
body .photo-context, body .page-hero-media .media-label {
  background: rgb(247 244 236 / .89); color: var(--muted); padding: .85rem 1.25rem;
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
}
body.quadro-home .card-media .photo-context,
body .unit-card-media .media-label.adm-glass,
body.category-page .unit-card-media .media-label.adm-glass { padding: .85rem var(--adm-card-pad); }
body .details-copy { padding: clamp(1.25rem,2.5vw,2.75rem); background: var(--glass-fill); border: var(--glass-edge); border-radius: var(--adm-radius); box-shadow: var(--glass-shadow); }
body .details-image > p, body.quadro-home .details-image > p.adm-glass { margin-top: 1rem; padding: 1rem var(--adm-card-pad); }
body .activities-hero, body .offer-feature { background: var(--glass-deep); }
body .activities-wayfinding {
  margin-top: clamp(1.25rem,2.5vw,2rem); padding: var(--adm-card-pad);
  gap: clamp(1.25rem,3vw,3rem); align-items: stretch;
}
body .activities-wayfinding-copy { align-self: center; min-width: 0; }
body.activities-page main .activities-wayfinding iframe.local-map {
  display: block; width: 100%; height: 100%; min-height: 14rem;
  margin: 0; border-radius: 1rem;
}
body .enquiry-form .form-field > span { font-weight: 400; }
body .enquiry-form .form-note { max-width: 65ch; line-height: 1.6; }
body .enquiry-form .form-note a { overflow-wrap: anywhere; }
body .enquiry-form [data-enquiry-email-option][hidden] { display: none; }
body .activities-hero-copy h1 em { color: #e6d6b4; }
body.location-page .page-hero-bottom { display: grid; grid-template-columns: minmax(0,1fr); gap: 1rem; }
body.location-page .page-hero-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; margin-top: .5rem; }
body.location-page .page-hero-facts > span {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start;
  min-width: 0; gap: .35rem; padding: .85rem 0 .35rem; border: 0;
}
body.location-page .page-hero-facts strong { white-space: nowrap; }

/* The location page leads with the map, then opens into the local guide. */
body.location-page .location-overview {
  display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr);
  align-items: end; gap: 1rem 3rem; padding-block: clamp(1.75rem,3vw,3rem) 1.5rem;
}
body.location-page .location-overview .page-kicker { margin: 0 0 .5rem; }
body.location-page .location-overview .page-title { max-width: none; margin: 0; font-size: clamp(2.5rem,4.2vw,4.25rem); }
body.location-page .location-overview-lead > p { margin: 0 0 .6rem; }
body.location-page .location-map-showcase { padding-block: 0; }
body.location-page :is(.location-map-feature,.location-guide-card) {
  overflow: hidden; border: var(--glass-edge); border-radius: var(--adm-radius);
  background: var(--glass-fill); box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
}
body.location-page .location-map-heading {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
  gap: 1rem 2rem; padding: 1.25rem var(--adm-card-pad);
}
body.location-page .location-map-heading h2 { margin: 0 0 .4rem; font-size: clamp(1.7rem,2.3vw,2.25rem); }
body.location-page .location-map-heading address { margin: 0; font-style: normal; color: var(--muted); }
body.location-page .location-map-heading .button { flex-shrink: 0; margin: 0; }
body.location-page .location-map-feature iframe.local-map {
  display: block; width: 100%; max-width: none; height: clamp(22rem,38vw,34rem);
  min-height: 0; margin: 0; border: 0; border-block: var(--glass-edge); border-radius: 0; filter: none;
}
body.location-page .location-map-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin: 0; padding: 1.1rem var(--adm-card-pad); }
body.location-page .location-map-facts > div { display: flex; align-items: baseline; gap: .6rem; min-width: 0; }
body.location-page .location-map-facts dt { order: 2; color: var(--muted); font-size: .95rem; }
body.location-page .location-map-facts dd { margin: 0; color: var(--adm-gold); font: 400 1.8rem/1.2 var(--display); white-space: nowrap; }
body.location-page .location-guide { padding-block: clamp(1.75rem,3vw,3rem); }
body.location-page .location-guide-card { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; }
body.location-page .location-guide-photo { min-width: 0; margin: 0; }
body.location-page main .location-guide-photo img[data-compact-image] {
  display: block; width: 100%; height: auto !important; max-height: none;
  aspect-ratio: auto !important; object-fit: contain !important; border-radius: 0; transform: none;
}
body.location-page .location-guide-photo figcaption { padding: .8rem var(--adm-card-pad); color: var(--muted); font-size: .8rem; line-height: 1.5; }
body.location-page .location-guide-copy { min-width: 0; padding: clamp(1.5rem,3.5vw,3.5rem); }
body.location-page .location-guide-copy .page-kicker { margin: 0 0 .6rem; }
body.location-page .location-guide-copy h2 { margin: 0 0 1rem; font-size: clamp(2rem,3.6vw,3.5rem); }
body.location-page .location-guide-copy > p:not(.page-kicker) { max-width: 42ch; margin: 0; color: var(--muted); }
body.location-page .location-guide-topics { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin-block: 1.25rem; }
body.location-page .location-guide-topics a { padding-block: .35rem; color: var(--adm-gold); font-size: .95rem; }
body.location-page .location-guide-topics a:is(:hover,:focus-visible) { color: var(--adm-ink); }
body.location-page .location-guide-copy > .button { margin: 0; }
@media (max-width: 800px) {
  body.location-page .location-overview { grid-template-columns: minmax(0,1fr); gap: .75rem; }
  body.location-page .location-guide-card { grid-template-columns: minmax(0,1fr); }
  body.location-page .location-map-feature iframe.local-map { height: clamp(21rem,60vw,28rem); }
  body.location-page .location-map-facts > div { flex-direction: column; gap: .2rem; }
  body.location-page .location-map-facts dt { font-size: .875rem; }
  body.location-page .location-guide-copy { padding: var(--adm-card-pad); }
}

/* Architectural exterior: large silhouette, natural ground and no enclosing arch. */
body.quadro-home .introduction.residence-exterior {
  display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.35fr);
  align-items: center; gap: 2rem; padding-block: clamp(3rem,5vw,5rem);
  background: transparent; overflow: visible; border-bottom: 0;
}
body.quadro-home .residence-exterior .intro-copy { display: block; min-width: 0; padding: 0; }
body .residence-exterior .intro-notes { display: block; max-width: 35rem; margin-top: 1.4rem; }
body .residence-exterior .intro-notes p + p { margin-top: 1rem; }
body .residence-exterior [data-originkit-mount] { font-size: clamp(2.5rem,3.8vw,4.25rem); }
body .residence-scene { width: 100%; max-width: none; margin: 0; }
body .residence-backdrop {
  inset: 12% -4% 0; border: 0; border-radius: 0; mask-image: none; -webkit-mask-image: none;
  background: radial-gradient(ellipse at 54% 56%, rgb(221 205 162 / .42), rgb(231 224 203 / .22) 42%, transparent 72%);
}
body.quadro-home .residence-scene > img.residence-cutout {
  width: 100% !important; height: auto !important; aspect-ratio: 1446 / 815 !important;
  object-fit: contain !important; border-radius: 0; opacity: 1;
  transform: none; filter: drop-shadow(0 12px 15px rgb(66 51 28 / .08));
}
body .residence-scene figcaption { margin: .75rem 0 0; padding-inline: 1rem; font: italic 400 clamp(1.1rem,1.6vw,1.45rem)/1.4 var(--display); color: var(--muted); }
body.quadro-home .residence-exterior + .collection { padding-top: clamp(1.5rem,3vw,3rem); }
body .residence-exterior .origin-motion-control { display: grid; margin-top: .5rem; color: var(--adm-gold); }
body.quadro-home .collection-heading { margin-bottom: clamp(1.5rem,3vw,2.5rem); }
body.quadro-home .collection { padding-bottom: clamp(2rem,4vw,3.5rem); }
body.quadro-home .details { gap: clamp(1.5rem,3vw,2.5rem); padding-block: clamp(1.5rem,3vw,3rem); }

/* Film and photo foregrounds remain full-strength; their captions have glass backing. */
body.quadro-home .campaign { border-radius: 0 0 1.75rem 1.75rem; overflow: clip; }
body.quadro-home .campaign .campaign-caption {
  background: linear-gradient(135deg,rgb(38 40 30 / .84),rgb(43 43 33 / .74));
  border: 1px solid rgb(239 226 192 / .3); border-radius: 1.5rem;
  box-shadow: 0 12px 38px #171e1626, inset 0 1px 0 #ffffff1f;
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
  padding: clamp(1.4rem,2.4vw,2.5rem); color: #fcfaf5;
}
body.quadro-home .campaign-caption :is(h1,h2) { color: #fcfaf5; font-size: clamp(2.25rem,3.5vw,3.8rem); }
body.quadro-home .campaign-caption > p { color: #eee4d2; font-size: .875rem; }
body .campaign-caption .campaign-link { color: #fcfaf5; }
body .campaign-caption .campaign-link:hover { color: #e6cf8d; }
body .campaign-pagination button, body .header-film-control { border-radius: 999px; }
body .header-film-control { background: rgb(37 43 32 / .82); border: 1px solid #eee4d266; color: #fff; backdrop-filter: blur(12px); }

/* Booking remains prominent in deep vineyard glass. */
body :is(.booking,.stay-reserve,.booking-calendar-card,.reservation-dialog), body .site-footer > .booking {
  background: var(--glass-deep); border: 1px solid rgb(226 210 165 / .28);
  border-radius: 1.5rem; color: #fbf8ef; box-shadow: 0 16px 42px rgb(32 39 29 / .14);
  -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
}
body :is(.booking,.stay-reserve,.booking-calendar-card,.reservation-dialog) :is(h1,h2,h3,h4) { color: #fbf8ef; }
body :is(.booking,.stay-reserve,.booking-calendar-card,.reservation-dialog) :is(p,label,.page-kicker) { color: #e4dfd0; }
body :is(.booking,.stay-reserve,.booking-calendar-card,.reservation-dialog) .adm-icon { color: #dbc991 !important; }
body.unit-page .stay-essentials {
  padding: var(--adm-card-pad); border: var(--glass-edge); border-radius: var(--adm-radius);
  background: var(--glass-fill); box-shadow: var(--glass-shadow);
}
body.unit-page .stay-reserve { padding: var(--adm-card-pad); }
body .stay-reserve .booking-calendar-card.apartment-booking-content {
  padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none;
  backdrop-filter: none; -webkit-backdrop-filter: none;
}
body .site-footer .booking .booking-dates { padding: var(--adm-card-pad); border-radius: 1rem; }
body :is(input:not([type='checkbox']):not([type='radio']),select,textarea) {
  border-radius: .85rem; background: rgb(255 253 248 / .94); color: #302c24;
  border: 1px solid rgb(132 116 71 / .38); font: 400 1rem/1.45 var(--sans);
  min-height: 2.875rem; box-shadow: inset 0 1px 3px #45371c06;
}
body :is(input,textarea)::placeholder { color: #6b655a; opacity: 1; }
body input[type='checkbox'], body input[type='radio'] { accent-color: #81702e; }
body .stay-date-fields :is(input,.button), body .site-footer .booking .stay-date-fields :is(input,.button) { min-height: 2.875rem; }
body .calendar-days button { border-radius: .65rem; }
body :is(.calendar-toolbar,.calendar-caption) button { border-radius: 999px; }

/* Warm glass footer and assistant. */
body .site-footer { background: var(--glass-fill); color: var(--adm-ink); border-top: var(--glass-edge); border-radius: 2rem 2rem 0 0; backdrop-filter: blur(20px); padding-top: 1.25rem; }
body .site-footer > .booking { width: calc(100% - 2 * var(--adm-pad)); margin: 0 var(--adm-pad); padding-inline: clamp(1.25rem,3vw,3rem); }
body .footer-content { border-top: 0; padding-top: 3.5rem; }
body .site-footer .footer-content :is(p,a,h2,span) { color: var(--adm-ink); }
body .site-footer .footer-content a:hover { color: var(--adm-gold); }
body .footer-content .footer-wordmark { font-size: clamp(2.5rem,3.5vw,4rem); }
body .footer-stay-carousel * { color: var(--adm-gold) !important; }
body .footer-column h2 { color: var(--adm-gold) !important; font: 400 1.25rem/1.4 var(--display); }
body .site-footer .footer-meta {
  display: grid; grid-template-columns: repeat(3,minmax(0,1fr));
  gap: .75rem 1.5rem; padding-top: 1.5rem; border-top: var(--glass-edge);
}
body .footer-meta > * { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
body .footer-meta > span:nth-child(2) { text-align: center; }
body .footer-meta > span:nth-child(3) { text-align: right; }
body .footer-photo-credit { grid-column: 1 / -1; font-size: .75rem; }
body .stay-assistant .assistant-panel { background: var(--glass-fill); border: var(--glass-edge); border-radius: 1.5rem; box-shadow: 0 18px 60px #332d2429; backdrop-filter: blur(26px); }
body .stay-assistant .assistant-panel > header { background: rgb(239 229 207 / .72); }
body .stay-assistant .assistant-message { background: #eee6d7; color: var(--adm-ink); }
body .stay-assistant .assistant-message.is-user { background: #414b36; color: #fff; }
body .stay-assistant :is(.assistant-prompts button,.assistant-message-actions a,.assistant-message-actions button) { background: rgb(250 246 236 / .88); color: #63591f; border-color: #c8b989; font-size: .875rem; }
body .stay-assistant .assistant-disclaimer { font-size: .75rem; color: #655d50; }
body :is(.photo-dialog,.photo-dialog-header,.photo-viewer-controls) { background: var(--glass-fill); border-radius: 1.25rem; backdrop-filter: blur(22px); }
body dialog::backdrop { background: rgb(32 34 25 / .65); backdrop-filter: blur(8px); }

/* Gold on hover and keyboard focus, with no button underlines. */
body :is(.button,.nav-book,.guest-book-now,.assistant-launcher,.card-link,.stay-film,.assistant-whatsapp,.assistant-form button) {
  border-radius: 999px !important; border: 1px solid rgb(142 121 59 / .42);
  background: var(--glass-fill); color: #403923; text-decoration: none !important;
  box-shadow: inset 0 1px 0 #ffffffb3, 0 4px 12px #44391c0d;
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  font-family: var(--sans); font-weight: 400; min-height: 2.875rem;
  --adm-icon-ink: #81702e;
  transition: background .22s, color .22s, border-color .22s, box-shadow .22s, translate .22s;
}
body .card-actions .card-link, body .stay-film { display: inline-flex; align-items: center; justify-content: center; padding: .65rem 1.15rem; line-height: 1.4; text-align: center; }
body .card-actions { gap: .75rem 1rem; }
body .stay-secondary-actions { gap: .75rem 1rem; }
body .button.button-solid:not(.direct-book-control),
body :is(.button.button-gold,.button.button-solid.direct-book-control),
body :is(.booking,.stay-reserve,.booking-calendar-card,.reservation-dialog,.editorial-cta) .button.button-solid.direct-book-control,
body .site-header .nav-book.direct-book-control, body .stay-assistant .guest-book-now {
  background: linear-gradient(140deg,rgb(232 216 166 / .96),rgb(197 176 99 / .94));
  border-color: #a8954d; color: #302c1d; --adm-icon-ink: #665820;
}
body .stay-assistant .assistant-launcher, body .stay-assistant .assistant-launcher[aria-expanded='true'] { background: var(--glass-fill); color: #403923; border-color: #b9a86e; }
body :is(.booking,.stay-reserve,.booking-calendar-card,.reservation-dialog,.campaign-caption,.offer-feature-copy) .button.button-outline { background: rgb(247 244 236 / .12); color: #fcfaf5; border-color: #c9b67d; }
body :is(.button,.nav-book,.guest-book-now,.assistant-launcher,.card-link,.stay-film,.assistant-whatsapp,.assistant-form button):not(:disabled):not([aria-disabled='true']):is(:hover,:focus-visible) {
  background: linear-gradient(130deg,#dfc98b,#bca346) !important; color: #302918 !important;
  border-color: #9d842f !important; box-shadow: inset 0 1px 0 #fff9,0 7px 20px #77602324;
  --adm-icon-ink: #554418;
}
body :is(.calendar-days button,.calendar-toolbar button,.calendar-caption button,.assistant-prompts button,.campaign-pagination button):not(:disabled):is(:hover,:focus-visible) { background: #dfc98b; color: #302918; border-color: #a29233; }
body :is(.text-link,.card-body > a,.compare-link,.related-apartment-link):hover { color: var(--adm-gold); }
body .site-header .nav-primary > a:is(:hover,:focus-visible,[aria-current='page']),
body .site-header .nav-dropdown[open] > summary,
body .site-header .nav-dropdown > summary:is(:hover,:focus-visible) { color: var(--adm-gold); }
body .offer-dates { color: #6b343d; }
body .adm-icon { --adm-icon-ink: #81702e; }
body :focus-visible { outline: 2px solid #81702e !important; outline-offset: 4px; }
body :is(.booking,.stay-reserve,.campaign-caption) :focus-visible { outline-color: #e7cf8c !important; }
body .origin-click-overlay { display: none; }
body .origin-weight-link > div, body .origin-weight-link > div > span { font-family: var(--display) !important; }
body :is(.origin-light-glow,.origin-shiny-ink) { --shine-color: #dfc98b; }

@media (prefers-reduced-motion: no-preference) {
  @keyframes stellenbosch-light { from { transform: translate3d(-1%,0,0); } to { transform: translate3d(1%,1%,0); } }
  body::after { animation: stellenbosch-light 28s ease-in-out infinite alternate; }
  body .nav-dropdown[open] .dropdown-links { animation: stellenbosch-unfold .25s ease-out; transform-origin: top; }
  @keyframes stellenbosch-unfold { from { transform: translateY(-5px); } to { transform: translateY(0); } }
  body :is(.apartment-card,.unit-card,.related-apartment):hover { transform: translateY(-2px); }
}
html[data-site-motion='paused'] body::after { animation: none; }
html[data-site-motion='paused'] .nav-dropdown[open] .dropdown-links { animation: none; }
@media (max-width: 1000px) {
  body.location-page .page-hero-content { grid-template-columns: minmax(0,1fr); gap: 1.25rem; }
  body.quadro-home .introduction.residence-exterior { grid-template-columns: minmax(0,1fr); gap: 1rem; }
  body .residence-exterior .intro-notes { max-width: 48rem; }
  body .residence-scene { max-width: 60rem; margin-inline: auto; }
  body .residence-exterior [data-originkit-mount] { font-size: clamp(2.5rem,6vw,4rem); }
}
@media (max-width: 760px) {
  :root { --adm-pad: clamp(1rem,4.5vw,1.75rem); --adm-card-pad: 1.25rem; --adm-gap: 1.5rem; --adm-radius: 1.25rem; }
  body::before { background: linear-gradient(rgb(247 244 236 / .95),rgb(247 244 236 / .94)),url('./destination/stellenbosch-vineyards.webp') center / cover; }
  body.quadro-home .campaign .campaign-caption { position: relative; inset: auto; width: auto; margin: .75rem; padding: 1.5rem 1.25rem 4.5rem; border-radius: 1.25rem; }
  body.quadro-home .campaign { background: #35402f; }
  body .campaign-caption :is(h1,h2) { font-size: 2.5rem; }
  body.quadro-home .campaign .header-film .header-film-control { bottom: 1rem; }
  body.quadro-home .campaign-pagination { bottom: 1.5rem; left: calc(var(--adm-pad) + .75rem); }
  body.quadro-home .introduction.residence-exterior { padding-block: 2.5rem; }
  body .residence-backdrop { inset: 10% 0 0; }
  body .details-copy { padding: 1.4rem; }
  body.quadro-home .card-body, body.category-page .unit-card-copy,
  body.apartments-page .unit-card-copy,
  body.apartments-page .unit-grid > .unit-card:only-child .unit-card-copy { padding: 1.25rem; }
  body .site-footer > .booking { width: calc(100% - 1.5rem); margin-inline: .75rem; }
  body .footer-content { padding-top: 2.5rem; }
  body .site-footer .footer-meta { grid-template-columns: minmax(0,1fr); gap: .65rem; }
  body .footer-meta > span:nth-child(n) { text-align: left; }
  body .stay-assistant { max-width: calc(100% - 1.5rem); right: max(.75rem,env(safe-area-inset-right)); }
  body :is(input:not([type='checkbox']):not([type='radio']),select,textarea) { min-width: 0; max-width: 100%; }
}
@media (max-width: 380px) {
  body .nav-shell { gap: .45rem; padding-inline: .75rem; }
  body .nav-shell > .brand { width: 7rem; }
  body .site-header .nav-book.direct-book-control { padding-inline: .7rem; }
  body .stay-assistant :is(.guest-book-now,.assistant-launcher) { min-height: 2.875rem; }
}
@media (prefers-reduced-motion: reduce) {
  body::after, body .nav-dropdown[open] .dropdown-links { animation: none; }
  body :is(.apartment-card,.unit-card,.related-apartment,.button,.nav-book,.guest-book-now,.assistant-launcher) { transition: none; transform: none; translate: none; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  :root { --glass-fill: #faf7ef; --glass-deep: #343e2f; }
  body.quadro-home .campaign .campaign-caption { background: #343b2d; }
}
@media (prefers-reduced-transparency: reduce) {
  :root { --glass-fill: #faf7ef; --glass-deep: #343e2f; }
  body::before, body::after { display: none; }
  body { background: #f7f4ec; }
  body.quadro-home .campaign .campaign-caption { background: #343b2d; }
}

/* Keep the same curved silhouette in every interaction state. */
body :is(.adm-glass,.anamorphic-media,.apartment-card,.unit-card,.related-apartment,
  .experience-card,.activity-card,.event-card,.journal-card,.offer-card,.offer-feature,
  .offer-option,.offer-secondary,.connection-grid article,.contact-reservations,
  .enquiry-form,.details-copy,.stay-essentials,.stay-reserve,.booking-calendar-card,
  .reservation-dialog,.assistant-panel,.photo-dialog,.compare-apartment,.compare-controls,
  .compare-table-wrap,.room-finder,.event-tools,.activities-hero,.activities-town,
  .activities-wayfinding,.location-map-feature,.location-guide-card,.contact-map-wide,
  .card-media,.unit-card-media,.page-hero-media,.details-image,.photo-mosaic a,
  .apartment-photo-frame,.gallery-stage,.gallery-slide,.film-frame,.video-launch) {
  border-radius: var(--adm-radius) !important;
}
body :is(.anamorphic-media,.card-media,.unit-card-media,.page-hero-media,.details-image,
  .photo-mosaic a,.apartment-photo-frame,.gallery-stage,.gallery-slide,.film-frame,
  .contact-map-wide) { overflow: hidden; }
body :is(.adm-glass,.anamorphic-media,.card-media,.unit-card-media)::before,
body :is(.adm-glass,.anamorphic-media,.card-media,.unit-card-media)::after { border-radius: inherit; }
body main :is(img,video,iframe):not(.residence-cutout) { border-radius: 1rem !important; }
body .site-header.glass-nav, body #mobile-menu { border-radius: 1.25rem !important; }
body.quadro-home .campaign { border-radius: 1.75rem !important; }
body .site-footer { border-radius: 2rem !important; }

body :is(button,.button,.nav-book,.guest-book-now,.assistant-launcher,.card-link,
  .stay-film,.assistant-whatsapp,.assistant-message-actions a,.activities-jump a) {
  border-radius: 999px !important;
}
body :is(input:not([type='checkbox']):not([type='radio']),select,textarea,
  .event-date,.stay-date-error,.assistant-message,.assistant-message.is-user) { border-radius: 1rem !important; }
body :is(.gallery-thumbs button,.calendar-days button,.calendar-days button.is-in-range) { border-radius: .85rem !important; }
body :is(.button,.nav-book,.guest-book-now,.assistant-launcher,.origin-light-control) {
  isolation: isolate; overflow: hidden; background-clip: padding-box;
}
body .origin-light-control > .origin-light-layer {
  border-radius: inherit !important; overflow: hidden;
  clip-path: inset(0 round 999px);
}

/* Reuse the original brand artwork at its natural proportions. */
body .site-footer .footer-logo {
  display: inline-block; width: clamp(13rem,20vw,20rem); max-width: 100%;
  padding: 0; margin: 0 0 1rem; border: 0; line-height: 0; border-radius: .75rem;
}
body .site-footer .footer-logo img {
  display: block; width: 100%; height: auto; max-width: 100%;
  aspect-ratio: 2059 / 535; object-fit: contain; opacity: 1; filter: none;
}
body .site-footer .footer-logo::after { content: none; }

/* Bright photography with one calm, native horizontal browsing treatment. */
body.quadro-home .campaign-slide::after {
  background: linear-gradient(180deg, transparent 60%, rgb(29 36 25 / .14));
}
body.quadro-home .campaign-slide > img,
body.quadro-home .campaign-slide > .header-film > :is(img,video),
body .activities-hero-photo img {
  filter: brightness(1.055) contrast(1.025) saturate(1.08);
}
body.quadro-home .campaign.is-ready .campaign-stage,
body .activities-hero-photo.is-ready .destination-stage {
  display: flex; gap: 0; width: 100%; min-width: 0; margin: 0; padding: 0;
  overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain; scrollbar-width: none; touch-action: pan-x pan-y pinch-zoom;
  scroll-behavior: auto;
}
body :is(.campaign-stage,.destination-stage,.photo-mosaic)::-webkit-scrollbar { display: none; }
body.quadro-home .campaign.is-ready .campaign-slide,
body .activities-hero-photo.is-ready .destination-slide {
  display: block; flex: 0 0 100%; position: relative; inset: auto;
  width: 100%; min-width: 0; margin: 0; padding: 0;
  opacity: 1; visibility: visible; transform: none; transition: none;
  scroll-snap-align: start; scroll-snap-stop: always;
}
body.quadro-home .campaign.is-ready .campaign-slide { align-self: stretch; }
body.quadro-home .campaign.is-ready .campaign-slide.is-active { pointer-events: auto; }
body.quadro-home .campaign.is-ready .campaign-caption { animation: none; }
/* Apartment previews retain the compact lead-photo and thumbnail composition. */
body .has-photo-viewer [data-photo-home] .photo-mosaic img,
body .has-photo-viewer [data-photo-home] .photo-mosaic a:hover img {
  filter: brightness(1.025) saturate(1.04); transform: none;
}
body .photo-rail-controls, body.quadro-home .campaign-pagination {
  display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
  padding: .35rem; border-radius: 999px; border: var(--glass-edge);
  background: rgb(255 250 239 / .88); color: var(--adm-ink);
  box-shadow: 0 5px 20px #312e201a; backdrop-filter: blur(18px);
}
body .photo-rail-controls p, body .campaign-pagination p {
  min-width: 4rem; margin: 0; padding-inline: .25rem;
  font-size: .85rem; line-height: 1; font-variant-numeric: tabular-nums; color: var(--adm-ink);
}
body .photo-rail-controls button, body.quadro-home .campaign-pagination button {
  display: grid; place-items: center; min-width: 2.75rem; min-height: 2.75rem;
  margin: 0; padding: .4rem; border: 1px solid transparent; border-radius: 999px !important;
  background: transparent; color: #504626; font: 400 1.2rem/1 var(--sans); cursor: pointer;
  transition: background-color .25s ease, color .25s ease;
}
body .photo-rail-controls button:hover:not(:disabled),
body.quadro-home .campaign-pagination button:hover:not(:disabled),
body.quadro-home .campaign-pagination button[aria-pressed='true'] {
  background: #d7c386; color: #332b18;
}
body :is(.photo-rail-controls,.campaign-pagination,.photo-viewer-controls) button:disabled {
  opacity: .38; cursor: default;
}
body .photo-rail-controls :focus-visible, body.quadro-home .campaign-pagination :focus-visible {
  outline: 2px solid #725823; outline-offset: 2px;
}
body.quadro-home .campaign-pagination > div { padding-left: .4rem; border-left: 1px solid #aa94534d; }
body.quadro-home .campaign-pagination [data-gallery-to] { font-size: .8rem; }
body .activities-hero-photo .destination-stage { width: 100%; height: 100%; aspect-ratio: auto; background: transparent; }
body .activities-hero-photo.is-ready .destination-stage { position: absolute; inset: 0; }
body .activities-hero-photo .destination-slide { position: relative; margin: 0; width: 100%; height: 100%; }
body .activities-hero-photo:not(.is-ready) .destination-slide:not(:first-child) { display: none; }
body .activities-hero-photo .photo-rail-controls { position: absolute; z-index: 2; left: 1rem; bottom: 1rem; }
body .activities-hero-photo:not(.is-ready) .photo-rail-controls { display: none; }
body .photo-mosaic:focus-visible, body .gallery-stage:focus-visible { outline: 3px solid #ae9149; outline-offset: -4px; }
@media (max-width: 760px) {
  body.quadro-home .campaign.is-ready .campaign-caption { position: relative; inset: auto; height: auto; padding-bottom: 5.75rem; }
  body.quadro-home .campaign-pagination { bottom: .85rem; gap: .2rem; }
  body.quadro-home .campaign-pagination > div { padding-left: .2rem; }
  body.quadro-home .campaign.is-ready .campaign-slide { background: #35402f; }
  body .apartment-photos .photo-gallery-actions > .button { font-size: .85rem; padding-inline: .8rem; }
}
@media (max-width: 700px) {
  body .activities-hero-photo { width: 100%; aspect-ratio: 3 / 2; }
  body .activities-hero-photo .destination-stage { height: auto; aspect-ratio: 3 / 2; }
  body .activities-hero-photo .destination-slide { height: 100%; }
  body.activities-page main .activities-hero-photo img[data-compact-image] {
    position: absolute; inset: 0; width: 100%; height: 100% !important; aspect-ratio: auto !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  body :is(.photo-rail-controls,.campaign-pagination) button { transition: none; }
}
@supports not (backdrop-filter: blur(1px)) {
  body .photo-rail-controls, body.quadro-home .campaign-pagination { background: #fff8ea; }
}


/* Compact floating navigation, with clear space on every side. */
:root { --nav-inset: 1rem; --nav-font-size: .9375rem; }
body .site-header.glass-nav {
  position: sticky; top: var(--nav-inset); width: min(74rem, calc(100% - 3rem));
  margin: var(--nav-inset) auto 1rem; border: 1px solid rgb(255 255 255 / .78);
  border-radius: 1.75rem !important; background: rgb(252 250 245 / .78);
  box-shadow: 0 10px 30px rgb(48 44 36 / .09);
  -webkit-backdrop-filter: blur(24px) saturate(115%); backdrop-filter: blur(24px) saturate(115%);
  transform: translateY(0); opacity: 1;
  transition: transform .35s ease, opacity .25s ease, background .25s ease;
}
body .site-header.glass-nav.is-scrolled { background: rgb(252 250 245 / .85); }
body .site-header.glass-nav.is-hidden {
  transform: translateY(calc(-100% - var(--nav-inset) - 1rem)); opacity: 0; pointer-events: none;
}
body .site-header .nav-shell {
  min-height: 4.25rem; padding: .5rem 1.1rem;
  grid-template-columns: auto minmax(0,1fr) auto auto; gap: 1rem;
}
body .site-header .brand { width: 10.25rem; }
body .site-header .nav-primary { display: flex; flex-wrap: nowrap; justify-content: flex-end; gap: 1.1rem; }
body .site-header .nav-primary > a, body .site-header .nav-primary > details > summary {
  display: inline-flex; align-items: center; min-height: 2.75rem; padding: .35rem 0;
  white-space: nowrap;
}
body .site-header .nav-right { grid-column: 3; }
body .site-header .menu-toggle { grid-column: 4; min-height: 2.75rem; padding: .35rem .25rem; }
body .site-header .nav-book.direct-book-control { min-height: 2.75rem; padding: .6rem 1rem; }
body .site-header :is(.nav-primary > a,.nav-primary > details > summary,.nav-book,.menu-toggle) {
  translate: var(--nav-magnet-x,0px) var(--nav-magnet-y,0px); transition: translate .2s ease, color .2s ease, background .2s ease;
}
body .site-header .nav-shell.is-compact { grid-template-columns: minmax(0,1fr) auto auto; }
body .site-header .nav-shell.is-compact .nav-primary { display: none; }
body .site-header .nav-shell.is-compact .nav-right { grid-column: 2; }
body .site-header .nav-shell.is-compact .menu-toggle { grid-column: 3; }
body .site-header #mobile-menu {
  top: calc(100% + .65rem); height: auto; max-height: calc(100dvh - var(--nav-height,5rem) - 2rem);
  padding: 1.5rem; gap: 1.5rem; border: 1px solid rgb(255 255 255 / .78);
  background: rgb(252 250 245 / .97); box-shadow: 0 14px 36px rgb(48 44 36 / .13);
}
body .site-header #mobile-menu a { padding-block: .65rem; }
body .site-header #mobile-menu h2 { margin-bottom: .6rem; }
/* One text size for every navigation label, including nested menu links. */
body .site-header .nav-primary :is(a, summary),
body .site-header .nav-book.direct-book-control,
body .site-header .menu-toggle,
body .site-header .menu-toggle > .menu-label,
body .site-header #mobile-menu :is(a, summary, h2),
body .site-header #mobile-menu .dropdown-links a {
  font-size: var(--nav-font-size);
  line-height: 1.5;
}
@media (max-width: 1039px) {
  body .site-header .nav-shell { grid-template-columns: minmax(0,1fr) auto auto; }
  body .site-header .nav-primary { display: none; }
  body .site-header .nav-right { grid-column: 2; }
  body .site-header .menu-toggle { grid-column: 3; }
}
@media (max-width: 600px) {
  :root { --nav-inset: .625rem; }
  body .site-header.glass-nav { width: calc(100% - 1.25rem); margin-bottom: .75rem; border-radius: 1.35rem !important; }
  body .site-header .nav-shell { min-height: 3.75rem; gap: .4rem; padding: .4rem .65rem; }
  body .site-header .brand { width: clamp(6.5rem,27vw,8.5rem); }
  body .site-header .nav-book.direct-book-control { padding-inline: .75rem; }
  body .site-header #mobile-menu { padding: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  body .site-header.glass-nav { transition: none; }
  body .site-header :is(.nav-primary > a,.nav-primary > details > summary,.nav-book,.menu-toggle) { translate: none; transition: none; }
}
html[data-site-motion='paused'] body .site-header.glass-nav { transition: none; }
html[data-site-motion='paused'] body .site-header :is(.nav-primary > a,.nav-primary > details > summary,.nav-book,.menu-toggle) { translate: none; transition: none; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  body .site-header.glass-nav, body .site-header #mobile-menu { background: #faf7ef; }
}
@media (prefers-reduced-transparency: reduce) {
  body .site-header.glass-nav, body .site-header #mobile-menu { background: #faf7ef; }
}

/* Neutral panel outlines replace the old gold top-edge accents on every route. */
body :is(.booking,.stay-reserve,.booking-calendar-card,.reservation-dialog,.booking-dates),
body .site-footer > .booking {
  border-color: rgb(185 192 178 / .34); border-top-width: 1px;
}
body .booking .booking-dates, body .reservation-dialog .booking-dates { border-top-color: var(--reservation-line); }
body :is(.manifesto,.guide-break,.editorial-cta,.site-footer,.footer-content) { border-top: 0; }
body .scroll-progress { display: none; }


/* Clip every photo and caption layer to the same curved silhouette. */
body :is(.card-media,.unit-card-media,.apartment-photo-frame,.compare-photo,
  .page-hero-media,.experience-photo,.location-guide-photo,.journal-card > figure,
  .photo-dialog .photo-mosaic figure) {
  border-radius: var(--adm-radius) !important;
  overflow: hidden; isolation: isolate;
  clip-path: inset(0 round var(--adm-radius));
}
body :is(.card-media,.unit-card-media,.apartment-photo-frame) {
  background: transparent; border: 0; background-clip: padding-box;
}
body :is(.card-media,.unit-card-media,.related-apartment) .apartment-photo-frame {
  display: block; margin: 0; padding: 0;
}
body :is(.photo-context,.media-label,.photo-mosaic figcaption) {
  border-radius: 1rem !important; background-clip: padding-box;
}
body :is(.card-media,.unit-card-media,.related-apartment) > .photo-context {
  margin-top: .5rem; border: 0;
}
body :is(.apartment-card,.unit-card,.related-apartment,.activity-card,.experience-card,
  .journal-card,.event-card,.offer-card,.compare-apartment,.location-guide-card) {
  border-radius: var(--adm-radius) !important;
  overflow: hidden; background-clip: padding-box;
}
body :is(.card-media,.unit-card-media,.related-apartment,.apartment-photo-frame):focus-visible {
  outline-offset: -3px;
}
