/* Public website refinements — keep after site.min.css. */
:focus-visible { outline: 3px solid #ad482d; outline-offset: 5px; box-shadow: 0 0 0 2px #fff; }
.location-map__external {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 17px 22px; border: 1px solid #173b30; background: #173b30; color: #fff;
  font-size: 13px; font-weight: 650; text-decoration: none;
}
.location-map__external:hover { background: #294c3f; }
.location-map__map-preview .location-map__privacy { max-width: 34ch; margin: 12px 0 0; font-size: 12px; line-height: 1.6; color: #3c5145; }
.review-intro { max-width: 48ch; font-size: 16px; line-height: 1.7; }
.review-card--portal { display: flex; flex-direction: column; min-height: 300px; }
.review-card--portal h3 { margin: 22px 0 12px; font-size: clamp(28px, 3vw, 40px); }
.review-card--portal p { margin: 0 0 26px; line-height: 1.75; }
.review-card--portal > a { margin-top: auto; }
.review-source-note { max-width: 75ch; margin: 24px 0; font-size: 13px; line-height: 1.7; color: #455449; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
/* Contrast and landmarks verified with axe on desktop and mobile. */
.stay-booking__heading > .eyebrow { color: #8e432e !important; }
.review-source-note { color: #d5e0dc; }
.spaces-v6 .spaces-v6__item { opacity: 1 !important; }
.spaces-v6 .spaces-v6__item .spaces__number { color: #8e432e !important; opacity: 1 !important; }
.spaces-v6 .spaces-v6__item .spaces__select { color: #26372e !important; opacity: 1 !important; }
.spaces-v6 .spaces-v6__item p { color: #455449 !important; opacity: 1 !important; }
.spaces-v6.is-vertical-story .spaces-v6__item:not(.is-active) { opacity: 1 !important; }
.spaces-v6.is-vertical-story .spaces-v6__item:not(.is-active) .spaces__select { color: #26372e !important; }
.spaces-v6.is-vertical-story .spaces-v6__item:not(.is-active) p { color: #455449 !important; }
@media (min-width: 801px) {
  .review-grid { grid-auto-columns: calc((100% - 28px) / 3) !important; }
  .review-rail-nav { display: none; }
}

.hero-v6 .eyebrow { color: #ffe3d3 !important; }

/* Ibisco House palette: forest, warm paper and hibiscus terracotta. */
:root { --ibisco-forest: #173b30; --ibisco-forest-dark: #102d25; --ibisco-paper: #f7f5ef; --ibisco-hibiscus: #a84f39; --ibisco-hibiscus-dark: #873c2b; --green: var(--ibisco-forest); --green-deep: var(--ibisco-forest-dark); --green-ink: var(--ibisco-forest); --ink: #26372e; --text: #26372e; --muted: #59685e; --paper: var(--ibisco-paper); --paper-bright: #fffdf9; --surface: #eeede4; --accent: var(--ibisco-hibiscus); --accent-soft: #e8aa93; }
.site-header:not(.is-compact) { background: linear-gradient(180deg, rgba(12, 36, 29, .88), rgba(12, 36, 29, .66)); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: 0 12px 32px rgba(8, 25, 18, .15); }
.site-header:not(.is-compact) .header-inner { border-bottom-color: rgba(255, 255, 255, .26); }
.site-header:not(.is-compact) .main-nav a, .site-header:not(.is-compact) .brand-name, .site-header:not(.is-compact) .brand-place, .site-header:not(.is-compact) .language-menu summary { color: #fff !important; opacity: 1 !important; text-shadow: 0 1px 3px rgba(0, 0, 0, .38); }
.site-header:not(.is-compact) .main-nav a:hover, .site-header:not(.is-compact) .main-nav a[aria-current="location"] { color: #ffe2d1 !important; }
.site-header:not(.is-compact) .booking-link { color: #fff; background: var(--ibisco-hibiscus-dark); border-color: #f0aa8e; }
.site-header:not(.is-compact) .booking-link:hover { background: var(--ibisco-hibiscus); }
.hero-cta { --accent: var(--ibisco-hibiscus); }
.review-collection, .stay-booking { --accent: var(--ibisco-hibiscus); }

/* Ten selected guest experiences, with original-platform links kept separate. */
.review-collection__heading .review-intro { max-width: 53ch; }
.review-grid { gap: 16px !important; background: transparent !important; scroll-padding-inline: 3px; }
.review-card--static { display: flex; flex-direction: column; min-height: 345px; padding: clamp(24px, 2.4vw, 34px); border: 1px solid rgba(224, 234, 227, .23); border-radius: 4px; background: #214b3d; color: #f6f4eb; box-shadow: 0 18px 34px rgba(6, 33, 23, .12); }
.review-card--static:nth-child(3n + 2) { background: #285344; }
.review-card--static:nth-child(4n) { background: #163e32; }
.review-card--static .review-card__top { color: #e7d8c7; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.review-card--static .review-card__number { color: #f4c7b4; font-variant-numeric: tabular-nums; }
.review-card--static h3 { margin: 30px 0 14px; color: #fff; font: 400 clamp(27px, 2.3vw, 36px)/1.15 var(--serif); }
.review-card--static .review-card__summary { flex: 1; margin: 0 0 26px; color: #e7eee7; font-size: 15px; line-height: 1.7; }
.review-card--static .review-card__bottom { display: flex; align-items: end; justify-content: space-between; gap: 16px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.18); }
.review-card--static .review-card__author { display: flex; gap: 10px; align-items: center; min-width: 0; }
.review-card--static .review-card__initial { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; border-radius: 50%; background: #b66047; color: #fff; font: 400 22px var(--serif); }
.review-card--static .review-card__author strong, .review-card--static .review-card__author small { display: block; }
.review-card--static .review-card__author strong { color: #fff; font-size: 13px; }
.review-card--static .review-card__author small { margin-top: 3px; color: #d9e7dd; font-size: 11px; }
.review-card--static .review-card__bottom a { color: #ffe0ce; font-size: 12px; font-weight: 700; text-align: right; text-decoration: underline; text-underline-offset: 4px; }
.review-card--static .review-card__bottom a:hover { color: #fff; }
.review-card--static { opacity: 1 !important; transform: none !important; }
.review-grid { overflow-y: hidden !important; }
.review-collection h2 em { color: #e7d5c6 !important; opacity: 1 !important; }
.review-collection__heading .review-intro { color: #dbe6dd !important; opacity: 1 !important; }
.review-card--static .review-card__top .review-card__number { color: #f0c8b6 !important; opacity: 1 !important; }
.review-source-note { color: #dce8dd; }
.review-portal-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 18px 0 28px; color: #f3f3eb; font-size: 13px; }
.review-portal-links span { margin-right: 8px; }
.review-portal-links a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 14px; border: 1px solid rgba(239,247,239,.45); border-radius: 30px; color: #fff; text-decoration: none; }
.review-portal-links a:hover { background: rgba(255,255,255,.13); }
@media (min-width: 801px) { .review-grid { grid-auto-columns: min(390px, calc((100% - 32px) / 3)) !important; } .review-rail-nav { display: flex; } }
@media (max-width: 800px) { .review-card--static { min-height: 330px; } .review-card--static .review-card__bottom { align-items: start; } }

/* Reading panel: a compact, stable toolbar and a visible reading-progress line. */
/* The story can be browsed by touch and with explicit accessible controls. */
@media (max-width:800px){.time-v7 .ibisco-time-controls{display:flex;right:24px;bottom:24px;gap:8px}}
.review-card--static .review-card__top>span:first-child{color:#e5ccb0!important}

/* Discreet navigation on warm paper. */
.site-header,.site-header:not(.is-compact),.site-header.is-compact{background:rgba(250,248,243,.96)!important;color:#173b30;backdrop-filter:blur(18px);box-shadow:0 1px 0 #173b301f!important}
.site-header .header-inner{min-height:76px!important;height:76px!important;padding-block:10px!important;border:0!important}
.site-header .brand-mark{width:36px!important;height:38px!important;filter:none!important}
.site-header .brand-name{font-size:21px!important}.site-header .brand-place{font-size:8px!important;letter-spacing:.15em!important}
.site-header .main-nav a,.site-header:not(.is-compact) .main-nav a,.site-header .brand-name,.site-header:not(.is-compact) .brand-name,.site-header .brand-place,.site-header:not(.is-compact) .brand-place,.site-header .language-menu summary,.site-header:not(.is-compact) .language-menu summary{color:#173b30!important;text-shadow:none!important;opacity:1!important}
.site-header .main-nav a{font-size:12px!important;font-weight:500!important}
.site-header .main-nav a:hover,.site-header:not(.is-compact) .main-nav a:hover,.site-header .main-nav a[aria-current="location"],.site-header:not(.is-compact) .main-nav a[aria-current="location"]{color:#873c2b!important}
.site-header .booking-link,.site-header:not(.is-compact) .booking-link{min-height:39px!important;padding:10px 17px!important;color:#fff!important;background:#173b30!important;border:1px solid #173b30!important;border-radius:3px!important;font-size:11px!important;box-shadow:none!important}
.site-header .menu-toggle{color:#173b30!important;border-color:#cbd1c9!important;background:transparent!important}.site-header .menu-toggle svg{stroke:currentColor!important}
.site-header .language-menu summary{border-color:#cbd1c9!important;background:transparent!important}.site-header .language-menu summary i{border-color:#173b30!important}
@media(max-width:1100px){.site-header .header-inner{height:68px!important;min-height:68px!important}.site-header .main-nav{background:#faf8f3!important;border-color:#d8dcd4!important;box-shadow:0 18px 30px #173b3019!important}.site-header .main-nav a{font-size:15px!important}}
/* Direct booking links work with or without JavaScript. */
.stay-booking.booking-invitation{padding:clamp(64px,8vw,120px) 0!important;background:#f1eee5!important;overflow:hidden}
.booking-invitation .booking-invitation__layout{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(36px,6vw,96px);align-items:center}
.booking-invitation__photo{position:relative;margin:0;align-self:stretch;min-height:580px;overflow:hidden;border-radius:3px}
.booking-invitation__photo img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:45% center}
.booking-invitation__photo::after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#0c221acc)}
.booking-invitation__photo figcaption{position:absolute;z-index:1;bottom:28px;left:28px;right:20px;color:#fff;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.booking-invitation .stay-booking__heading{display:block!important;margin:0 0 28px!important;max-width:none!important;text-align:left!important}
.booking-invitation .stay-booking__heading .eyebrow{display:block;margin-bottom:20px;color:#873c2b!important;font-size:10px;letter-spacing:.16em;line-height:1.8}
.booking-invitation .stay-booking__heading h2{margin:0 0 24px!important;font:400 clamp(34px,3.5vw,56px)/1.08 var(--serif)!important;letter-spacing:-.035em;color:#173b30!important}
.booking-invitation .stay-booking__heading h2 em{color:#75634e!important;font-weight:400}
.booking-invitation .stay-booking__heading p{max-width:48ch;margin:0!important;color:#47594d!important;font-size:15px!important;line-height:1.8!important}
.booking-portals{display:grid;gap:12px}
.booking-portal{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:21px 24px;background:#fffdf8;color:#173b30;border:1px solid #cbd2c7;border-radius:3px;text-decoration:none;transition:background .2s,border-color .2s}
.booking-portal small{display:block;margin-bottom:6px;font-size:11px;color:#526256}.booking-portal strong{font-size:22px;font-weight:600;letter-spacing:-.02em}
.booking-portal__arrow{width:38px;height:38px;display:grid;place-items:center;font-size:22px;border:1px solid #cbd2c7;border-radius:50%}.booking-portal:hover{background:#e8ecdf;border-color:#173b30}
.booking-invitation__note{margin:17px 0 26px;font-size:11px;line-height:1.7;color:#526256}
.booking-invitation__contact{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding-top:21px;border-top:1px solid #cbd2c7;font-size:12px;color:#47594d}.booking-invitation__contact a{color:#173b30;font-weight:600;text-underline-offset:4px}
@media(max-width:800px){.booking-invitation .booking-invitation__layout{grid-template-columns:1fr;gap:32px}.booking-invitation__photo{min-height:0;height:260px}.booking-invitation__photo img{object-position:center 60%}.booking-invitation__photo figcaption{left:22px;bottom:22px;font-size:9px}.booking-invitation .stay-booking__heading h2{font-size:clamp(32px,8vw,46px)!important}.booking-portal{padding:19px 20px}}
/* Separate platform averages and actual individual scores. */
.review-ratings{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:35px 0 0;border-block:1px solid #5c7b6a}
.review-rating{display:flex;flex-direction:column;align-items:flex-start;padding:26px 30px;color:#fff;text-decoration:none;border-right:1px solid #5c7b6a}.review-rating:first-child{padding-left:0}.review-rating:last-child{border-right:0}
.review-rating__platform{width:100%;display:flex;justify-content:space-between;gap:10px;font-size:13px;font-weight:600}.review-rating__platform>span{color:#f0c8b6}
.review-rating>strong{display:block;margin:14px 0 8px;color:#fff;font:400 clamp(38px,4vw,58px)/1 var(--serif);letter-spacing:-.04em}.review-rating>strong small{font:400 17px var(--sans,sans-serif);letter-spacing:0;color:#d1dfd3}
.review-rating__detail{font-size:11px;color:#d1dfd3}.review-rating:hover{background:#ffffff0d}
.review-ratings-note{max-width:100ch;margin:17px 0 32px;font-size:11px;line-height:1.7;color:#d1dfd3}
.review-card--static .review-card__guest-score{font:600 22px/1.1 var(--sans,sans-serif);color:#ffdfca;letter-spacing:-.02em}.review-card__guest-score small{font-size:12px;font-weight:400;color:#e7d8c7}
@media(max-width:600px){.review-rating{padding:22px 12px}.review-rating__platform{font-size:11px}.review-rating__platform>span{display:none}.review-rating>strong{font-size:35px}.review-rating>strong small{font-size:12px}.review-rating__detail{font-size:10px;line-height:1.5}}
/* Reading panels with a quiet toolbar and useful, scannable chapters. */
.booking-invitation .stay-booking__heading{position:static!important;inset:auto!important;padding:0!important}.booking-invitation .stay-booking__heading br{display:initial!important}
.review-card--static .review-card__top>.review-card__guest-score{position:static!important;opacity:1!important;color:#ffdfca!important;font:600 22px/1.1 var(--sans,sans-serif)!important;letter-spacing:-.02em!important;transform:none!important}
.review-card--static .review-card__guest-score small{font-size:12px!important;color:#e7d8c7!important;opacity:1!important}
