/* VILLAVILLE 2.3.1 — coherent quiet-luxury typography */
@font-face{
  font-family:"Cormorant Garamond";
  src:url('/assets/cormorant-garamond-cyrillic-400-normal-DD2KOZkl.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
  unicode-range:U+0400-052F,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}
@font-face{
  font-family:"Cormorant Garamond";
  src:url('/assets/cormorant-garamond-latin-400-normal-B-1hWBU7.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
  unicode-range:U+0000-024F;
}
@font-face{
  font-family:"Cormorant Garamond";
  src:url('/assets/cormorant-garamond-cyrillic-500-normal-CyAY5ZLS.woff2') format('woff2');
  font-weight:500;font-style:normal;font-display:swap;
  unicode-range:U+0400-052F,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}
@font-face{
  font-family:"Cormorant Garamond";
  src:url('/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2') format('woff2');
  font-weight:500;font-style:normal;font-display:swap;
  unicode-range:U+0000-024F;
}

:root{
  --font-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --font-ui:Manrope,Arial,sans-serif;
  --type-body:#4f4b48;
  --type-muted:#5f5b57;
}
html{font-size:16px}
body{
  font-family:var(--font-ui);
  font-kerning:normal;
  font-variant-ligatures:common-ligatures contextual;
  font-feature-settings:"kern" 1,"liga" 1,"calt" 1;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-synthesis:none;
}
main h1,main h2,.house-dialog h2{
  font-family:var(--font-display);
  font-weight:500;
  font-kerning:normal;
  letter-spacing:-.018em;
  text-wrap:balance;
}
main h1{line-height:.96}
main h2{line-height:1.02}
main p,main li,main dd{font-kerning:normal;text-wrap:pretty}

.desktop-nav{
  font-family:var(--font-ui);
  font-size:12px;
  font-weight:600;
  letter-spacing:.095em;
}
.nav-book{font-size:12px;letter-spacing:.065em}
.breadcrumbs,.breadcrumbs a,.breadcrumbs span{
  font-family:var(--font-ui);
  font-size:12px;
  line-height:1.45;
  letter-spacing:.105em;
}
.page-kicker,.split-title>p,.hero-overline,
.v230-house-card__label,.house-card-address{
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:600;
  line-height:1.45;
  letter-spacing:.13em;
}
button,input,select,textarea,.flow-primary,.flow-secondary{
  font-family:var(--font-ui);
}
.flow-primary,.flow-secondary,.home-primary-link,
.v227-cta-actions a,.v230-house-card__actions a{
  letter-spacing:.005em;
}

/* Display hierarchy: elegant, but still architectural. */
.hero-message-premium h1{
  font-size:clamp(72px,6vw,84px);
  line-height:.96!important;
  letter-spacing:-.022em!important;
}
.v227-hero-copy h1{
  max-width:800px;
  font-size:clamp(58px,5vw,72px);
  line-height:.96!important;
}
.v227-house-hero-copy h1{
  font-size:clamp(58px,5vw,72px);
  line-height:.96!important;
}
.v227-account-hero h1,.v227-success h1{
  font-size:clamp(52px,4.7vw,68px);
}
.v227-flow-page .flow-head h1,.v227-payment .flow-head h1{
  font-size:clamp(48px,4.4vw,62px);
}
.page-hero-copy h1,.booking-page-head h1,.flow-head h1,.account-head h1{
  letter-spacing:-.02em!important;
}

.home-intro-premium h2,.home-section-heading h2,
.home-ritual-editorial h2,.home-location-showcase h2,
.home-final-booking h2,.v230-choice-heading h2,
.v230-selection-guide h2,.v230-house-identity h2{
  letter-spacing:-.021em!important;
}
.v227-split h2,.v227-heading h2,.v227-spec-layout h2,
.v227-map-copy h2,.v227-dark-feature h2,.v227-note h2,
.v227-cta h2,.v227-booking-path h2{
  font-size:clamp(44px,4vw,58px);
  letter-spacing:-.018em!important;
}
.v230-house-card__heading h3,.v230-comparison-card__body h3{
  font-size:clamp(39px,3.6vw,58px);
  letter-spacing:-.015em!important;
}
.home-house-select-grid h3,.v227-house-pair h3,
.home-season-cards h3,.home-city-guide-card h3,
.home-rules-card-v228 h3{
  font-size:clamp(28px,2.4vw,38px);
  letter-spacing:-.012em!important;
}

/* Reading rhythm for a real guest, not a poster. */
.v227-copy p,.v227-heading>p,.v227-heading>div:last-child p,
.home-intro-premium-copy p,.home-section-heading>div:last-child p,
.v230-choice-heading>p,.v230-house-identity .lead{
  line-height:1.64;
}
.v227-copy .lead,.home-intro-premium-copy .lead,
.home-ritual-editorial-copy>.lead{
  line-height:1.48;
}
.v227-hero-copy>p:not(.page-kicker),
.v227-house-hero-copy>p:not(.page-kicker),
.v227-account-hero p:last-child{
  line-height:1.55;
}
.v230-house-card__heading>p:last-child,
.v230-comparison-card__body>p,
.v230-house-card__fit p,.v230-comparison-card__fit p,
.house-feature-list li{
  line-height:1.58;
}
.v227-value-row p,.v227-rules-grid p,.v227-spa-story p,
.flow-trust p,.payment-roadmap p{
  line-height:1.58;
}

/* Booking and service typography stays direct and highly legible. */
.booking-intro h2,.global-quick-booking__intro h2,
.flow-card-head h2,.flow-summary h2,.payment-demo-copy h2,
.account-gate h2,.account-profile-card h2,
.account-draft h2,.account-section-head h2{
  font-family:var(--font-display);
  font-weight:500;
  letter-spacing:-.012em!important;
}
.booking-intro h2{font-size:29px;line-height:1}
.global-quick-booking__intro h2{font-size:29px;line-height:1}
.global-quick-booking__intro p{font-size:10px;letter-spacing:.12em}
.global-quick-booking__intro span{font-size:11px;line-height:1.45}
.global-quick-booking__form label span{font-size:10px;line-height:1.3}
.global-quick-booking__form input,.global-quick-booking__form select{font-size:14px}
.global-quick-booking__submit{font-size:13px}
.booking-form label span,.flow-field>span{
  font-size:11px;
  line-height:1.35;
  letter-spacing:.07em;
}
.booking-form input,.booking-form select,.flow-field input,
.flow-field select,.flow-field textarea{font-size:15px}

input[type="date"],.flow-summary dd,.checkout-list dd,
.payment-order-summary dd,.success-summary dd,
.v227-hero-facts,.v227-house-hero-copy>div,
.home-value-strip,.v230-house-card__facts{
  font-variant-numeric:tabular-nums;
}
.flow-steps span,.v227-flow-page .flow-steps span{
  font-size:13px;
  line-height:1.35;
}
.flow-card-head h2{font-size:36px!important;line-height:1.02!important}
.flow-summary h2{font-size:34px!important;line-height:1.02!important}
.house-choice h2,.v230-booking-house-card h2{
  font-family:var(--font-display);
  font-weight:500;
  letter-spacing:-.014em!important;
}
.v230-booking-house-card h2{font-size:clamp(34px,3vw,46px)}
.v230-booking-choice__card>strong{font-size:15px;line-height:1.4}
.v230-booking-choice__card>p{font-size:13px;line-height:1.52}
.v230-booking-house-card>div>p{line-height:1.58}

/* Utility text must remain quiet, never microscopic. */
.v230-same-different span,.v230-comparison-card__section>span,
.v230-comparison-card__fit>span,.v230-house-card__fit>span,
.v230-house-identity__palette>span,
.v230-house-identity__details>div>span,
.v230-house-identity__details aside>span,
.v230-house-identity__address>span,
.v230-booking-house-card__section>strong,
.v230-booking-house-card__fit>strong{
  font-size:11px;
  line-height:1.4;
  letter-spacing:.105em;
}
.house-palette li,.house-palette--compact li{
  font-size:12px;
  line-height:1.35;
}
.v230-house-card__facts span,
.v230-house-card__actions a,.v230-comparison-card__actions a{
  font-size:13px;
}
figcaption,.v227-hero::after{
  font-family:var(--font-ui);
  letter-spacing:.085em!important;
}

@media(max-width:900px){
  .mobile-menu>nav>a{
    font-family:var(--font-display);
    font-weight:500;
    letter-spacing:-.01em;
    line-height:.96;
  }
}
@media(max-width:760px){
  body{font-size:16px}
  .desktop-nav{font-size:12px}
  .breadcrumbs,.breadcrumbs a,.breadcrumbs span{font-size:11px}
  .page-kicker,.split-title>p,.hero-overline,
  .v230-house-card__label,.house-card-address{font-size:11px}
  .hero-message-premium h1{font-size:46px;line-height:.98!important}
  .v227-hero-copy h1{max-width:350px;font-size:44px;line-height:.98!important}
  .v227-house-hero-copy h1{font-size:44px;line-height:.98!important}
  .v227-account-hero h1,.v227-success h1{font-size:42px}
  .v227-flow-page .flow-head h1,.v227-payment .flow-head h1{font-size:40px}
  .v227-split h2,.v227-heading h2,.v227-spec-layout h2,
  .v227-map-copy h2,.v227-dark-feature h2,.v227-note h2,
  .v227-cta h2,.v227-booking-path h2{font-size:38px}
}

@media(max-width:760px){
  .home-intro-premium h2,.home-section-heading h2,
  .home-ritual-editorial h2,.home-location-showcase h2,
  .home-final-booking h2{font-size:38px!important;line-height:1!important}
  .v230-choice-heading h2,.v230-selection-guide h2,
  .v230-house-identity h2{font-size:40px;line-height:.98!important}
  .v230-house-card__heading h3,.v230-comparison-card__body h3{
    font-size:36px;line-height:.98
  }
  .home-house-select-grid h3,.v227-house-pair h3,
  .home-season-cards h3,.home-city-guide-card h3,
  .home-rules-card-v228 h3{font-size:31px}
  .v227-hero-copy>p:not(.page-kicker),
  .v227-house-hero-copy>p:not(.page-kicker),
  .v227-copy p,.v227-heading>p,.v227-heading>div:last-child p{font-size:16px}
  .v227-copy .lead,.home-intro-premium-copy .lead{font-size:18px}
  .global-quick-booking__intro h2,.booking-intro h2{font-size:31px}
  .global-quick-booking__intro span{font-size:12px}
  .global-quick-booking__form label span{font-size:11px}
  .global-quick-booking__form input,.global-quick-booking__form select{font-size:16px}
}

@media(max-width:760px){
  .flow-card-head h2{font-size:34px!important}
  .flow-summary h2{font-size:32px!important}
  .flow-field>span,.booking-form label span{font-size:11px}
  .flow-field input,.flow-field select,.flow-field textarea,
  .booking-form input,.booking-form select{font-size:16px}
  .flow-primary,.flow-secondary,.booking-submit,
  .global-quick-booking__submit{font-size:14px}
  .v230-booking-house-card h2{font-size:38px}
  .v230-same-different span,.v230-comparison-card__section>span,
  .v230-comparison-card__fit>span,.v230-house-card__fit>span,
  .v230-house-identity__palette>span,
  .v230-house-identity__details>div>span,
  .v230-house-identity__details aside>span,
  .v230-house-identity__address>span{font-size:11px}
  .house-palette li,.house-palette--compact li{font-size:11px}
  .mobile-menu>nav>a{font-size:39px}
  .mobile-menu-meta a{font-family:var(--font-ui);font-size:14px}
}
@media(max-width:430px){
  .hero-message-premium h1{font-size:44px}
  .v227-hero-copy h1,.v227-house-hero-copy h1{font-size:42px}
  .v227-split h2,.v227-heading h2,.v227-spec-layout h2,
  .v227-map-copy h2,.v227-dark-feature h2,.v227-note h2,.v227-cta h2{font-size:36px}
}

/* V2.3.1 refinement — serif is reserved for editorial statements. */
main h3{
  font-family:var(--font-ui);
  font-weight:500;
  line-height:1.2;
  letter-spacing:-.012em!important;
}
.home-house-select-grid h3,.v227-house-pair h3,
.home-season-cards h3,.home-city-guide-card h3,
.home-rules-card-v228 h3,.v230-house-card__heading h3,
.v230-comparison-card__body h3{
  font-family:var(--font-display);
  font-weight:500;
  line-height:1.02;
  letter-spacing:-.012em!important;
}
.home-value-strip h3,.v227-value-row h3,
.v227-rules-grid h3,.v227-spa-story h3,
.flow-trust h3,.payment-roadmap h3{
  font-family:var(--font-ui);
  font-weight:500;
}

/* Transactional surfaces stay modern and instantly readable. */
.booking-intro h2,.global-quick-booking__intro h2,
.flow-card-head h2,.flow-summary h2,
.payment-demo-copy h2,.account-gate h2,.account-profile-card h2,
.account-draft h2,.account-section-head h2{
  font-family:var(--font-ui);
  font-weight:500;
  letter-spacing:-.025em!important;
}
.booking-intro h2{font-size:24px;line-height:1.12}
.global-quick-booking__intro h2{
  max-width:190px;
  font-size:23px;
  line-height:1.12;
}
.flow-card-head h2{font-size:31px!important;line-height:1.12!important}
.flow-summary h2{font-size:29px!important;line-height:1.13!important}
.payment-demo-copy h2{font-size:40px;line-height:1.05!important}
.account-gate h2,.account-profile-card h2,.account-draft h2,
.account-section-head h2{line-height:1.1!important}
.v230-house-identity__details h3,
.v230-house-card__fit strong,.v230-comparison-card__fit strong{
  font-family:var(--font-ui);
  font-weight:600;
}

@media(max-width:760px){
  .booking-intro h2{font-size:24px}
  .global-quick-booking__intro h2{
    max-width:none;
    font-size:25px;
    line-height:1.12;
  }
  .flow-card-head h2{font-size:29px!important}
  .flow-summary h2{font-size:27px!important}
  .payment-demo-copy h2{font-size:35px}
  .home-value-strip h3,.v227-value-row h3,
  .v227-rules-grid h3,.v227-spa-story h3,
  .flow-trust h3,.payment-roadmap h3{
    font-size:19px;
    line-height:1.22;
  }
  .v230-house-identity__details h3{font-size:20px}
  .home-house-select-grid h3,.v227-house-pair h3,
  .home-season-cards h3,.home-city-guide-card h3,
  .home-rules-card-v228 h3{font-size:31px}
}

/* V2.3.2 — accessible hierarchy and dependable controls. */
.v228-season-card h3{
  font-family:var(--font-ui);
  font-size:13px;
  font-weight:600;
  line-height:1.4;
  letter-spacing:.08em!important;
  text-transform:uppercase;
}
.flow-primary,.flow-secondary,.booking-submit,
.global-quick-booking__submit,.v227-primary,.v227-secondary{
  font-size:14px;
}
.menu-toggle,.booking-sheet-close,.dialog-close,.v228-map-point{
  min-width:44px;
  min-height:44px;
}
.account-clear{
  min-height:44px;
  padding-block:12px;
}
.home-season-cards:focus-visible,.v227-editorial-gallery:focus-visible{
  outline:2px solid #4d746c;
  outline-offset:6px;
}
.flow-summary--notice p{
  margin:18px 0 0;
  color:var(--type-body);
  font-size:15px;
  line-height:1.65;
}
[aria-invalid="true"]{
  border-color:#8a382f!important;
  box-shadow:0 0 0 2px rgba(138,56,47,.15);
}
@media(max-width:760px){
  .v228-season-card h3{font-size:12px}
  .site-footer a{min-height:32px;display:inline-flex;align-items:center}
  .booking-sheet{padding-bottom:max(18px,env(safe-area-inset-bottom))}
}

/* V2.3.3 — visual-only premium polish. No content or flow changes. */

/* Fix the stretched caption that covered half of both house heroes. */
.v227-house-hero figcaption{
  top:20px;
  bottom:auto!important;
  height:auto;
}

/* Restore designed presentation for the house identity content already in markup. */
.house-identity-section{
  padding:92px 0;
  background:#f1ede6;
  color:#262524;
}
.house-identity-section.is-light{background:#eee9df}
.house-identity-section.is-shadow{
  background:#242827;
  color:#f7f4ee;
}
.house-identity-grid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(54px,8vw,118px);
  align-items:start;
}
.house-identity-intro h2{
  max-width:590px;
  margin:0 0 24px;
  font-family:var(--font-display);
  font-size:clamp(44px,4vw,58px);
  font-weight:500;
  line-height:1;
  letter-spacing:-.018em;
  text-wrap:balance;
}
.house-identity-intro>p:not(.page-kicker){
  max-width:590px;
  margin:0;
  font-size:16px;
  line-height:1.66;
  color:#57524f;
}
.house-identity-section.is-shadow .house-identity-intro>p:not(.page-kicker){
  color:rgba(255,255,255,.76);
}
.house-detail-note{
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  gap:20px;
  margin-top:30px;
  padding:20px 0;
  border-top:1px solid rgba(38,37,36,.2);
  border-bottom:1px solid rgba(38,37,36,.2);
}
.house-detail-note strong{
  font-size:11px;
  font-weight:600;
  line-height:1.45;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.house-detail-note span{
  font-size:13px;
  line-height:1.58;
  color:#625d59;
}
.house-identity-section.is-shadow .house-detail-note{
  border-color:rgba(255,255,255,.2);
}
.house-identity-section.is-shadow .house-detail-note span{
  color:rgba(255,255,255,.7);
}
.house-identity-content{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid rgba(38,37,36,.18);
}
.house-identity-content>div{
  min-width:0;
  padding:27px 0;
  border-bottom:1px solid rgba(38,37,36,.18);
}
.house-identity-content>div:nth-child(even){padding-left:28px}
.house-identity-content>div:nth-child(odd){padding-right:28px}
.house-identity-content>div:last-child{grid-column:1/-1;padding-right:0}
.house-identity-content h3{
  margin:0 0 16px;
  font-family:var(--font-ui);
  font-size:20px;
  font-weight:600;
  line-height:1.25;
  letter-spacing:-.015em!important;
}
.house-identity-content p{margin:0;line-height:1.65}
.house-identity-section.is-shadow .house-identity-content{
  border-color:rgba(255,255,255,.2);
}
.house-identity-section.is-shadow .house-identity-content>div{
  border-color:rgba(255,255,255,.2);
}
.house-identity-section.is-shadow .house-feature-list,
.house-identity-section.is-shadow .house-fit{
  color:rgba(255,255,255,.8);
}
.house-identity-section .house-palette{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.house-identity-section .house-palette i{
  display:block;
  width:100%;
  height:18px;
  border:1px solid rgba(22,25,23,.14);
}
.house-identity-section.is-shadow .house-palette i{
  border-color:rgba(255,255,255,.18);
}
.swatch-milk{background:#f1ece3}
.swatch-oak{background:#c3a779}
.swatch-olive{background:#7a8262}
.swatch-soft-graphite{background:#5a5b58}
.swatch-graphite{background:#343739}
.swatch-stone{background:#57514d}
.swatch-caramel{background:#b7835d}
.swatch-warm-wood{background:#8a6548}

/* Give the existing quick-choice copy a real editorial layout. */
.house-choice-guide{
  padding:88px 0;
  background:#f4f1ec;
}
.house-choice-guide-head{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(54px,8vw,118px);
  align-items:end;
  margin-bottom:34px;
}
.house-choice-guide-head h2{
  max-width:610px;
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(42px,3.8vw,54px);
  font-weight:500;
  line-height:1.02;
  letter-spacing:-.018em;
}
.house-choice-guide-head>p{
  max-width:620px;
  margin:0 0 4px;
  font-size:16px;
  line-height:1.66;
  color:#57524f;
}
.house-choice-guide-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.house-choice-guide-grid article{
  min-width:0;
  padding:30px 32px;
  border:1px solid rgba(38,37,36,.13);
  background:#faf8f4;
}
.house-choice-guide-grid article.is-shadow{
  border-color:#203d36;
  background:#203d36;
  color:#fff;
}
.house-choice-guide-grid h3{
  margin:0 0 13px;
  font-family:var(--font-display);
  font-size:32px;
  font-weight:500;
  line-height:1.04;
  letter-spacing:-.014em!important;
}
.house-choice-guide-grid article>p:last-child{
  margin:0;
  font-size:15px;
  line-height:1.64;
  color:#5a5551;
}
.house-choice-guide-grid article.is-shadow>p:last-child{
  color:rgba(255,255,255,.76);
}
.house-choice-guide-grid article.is-shadow .page-kicker{
  color:#bfd0cc;
}
.house-common-strip{
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  gap:28px;
  align-items:start;
  margin-top:20px;
  padding:22px 0;
  border-top:1px solid rgba(38,37,36,.17);
  border-bottom:1px solid rgba(38,37,36,.17);
}
.house-common-strip strong{
  font-size:11px;
  font-weight:600;
  line-height:1.5;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.house-common-strip span{
  font-size:15px;
  line-height:1.62;
  color:#57524f;
}
.house-fit strong{
  display:block;
  margin-bottom:7px;
  color:inherit;
}

/* Bridge the restored comparison markup to the finished card system. */
.v230-house-choice-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:22px!important;
  width:auto!important;
  padding-left:0!important;
  overflow:visible!important;
  scroll-snap-type:none!important;
  align-items:stretch!important;
}
.v230-house-choice-grid .house-choice{
  display:flex!important;
  flex-direction:column;
  width:auto!important;
  min-width:0!important;
  height:100%;
  overflow:hidden!important;
  scroll-snap-align:none!important;
}
.v230-house-choice-grid .house-choice>div{
  display:flex;
  flex:1;
  flex-direction:column;
}
.v230-house-choice-grid .house-choice .flow-primary{
  margin-top:auto;
}
.v230-house-choice-grid .house-any{
  order:3!important;
  grid-column:1/-1;
  width:auto!important;
  min-width:0!important;
  scroll-snap-align:none!important;
}
.house-choice-more{
  align-self:flex-start;
  min-height:44px;
  margin-top:10px;
  padding:8px 0 4px;
  display:inline-flex;
  align-items:center;
  border-bottom:1px solid currentColor;
  font-size:13px;
  font-weight:600;
  line-height:1.35;
}

/* Make the two old house-card variants visually distinct. */
.home-house-select-grid article.is-shadow,
.v227-house-pair article.is-shadow{
  background:#2d302f;
  color:#f7f3ec;
  border-color:rgba(255,255,255,.16);
}
.home-house-select-grid article.is-shadow p,
.home-house-select-grid article.is-shadow dt,
.v227-house-pair article.is-shadow p,
.v227-house-pair article.is-shadow dt{
  color:rgba(255,255,255,.74);
}
.home-house-select-grid article.is-shadow dl,
.home-house-select-grid article.is-shadow dl div,
.v227-house-pair article.is-shadow dl,
.v227-house-pair article.is-shadow dl div{
  border-color:rgba(255,255,255,.18);
}
.home-house-select-grid article.is-shadow a,
.v227-house-pair article.is-shadow a{
  color:#fff;
  border-color:rgba(255,255,255,.7);
}

/* Dates stay complete; the form simply uses space more deliberately. */
@media(min-width:901px){
  .home-page .booking-form{
    grid-template-columns:minmax(142px,.92fr) minmax(142px,.92fr) minmax(112px,.7fr) minmax(190px,1.25fr) 118px;
  }
  .global-quick-booking__form{
    grid-template-columns:minmax(142px,1fr) minmax(142px,1fr) minmax(108px,.74fr) minmax(190px,1.22fr) 122px;
  }
}
.global-quick-booking__card{
  border-color:rgba(38,37,36,.14);
  box-shadow:0 16px 38px rgba(25,29,27,.08);
}
.global-quick-booking__intro span{
  color:#66615d;
}
.global-quick-booking__form label,
.home-page .booking-form label{
  border-color:rgba(38,37,36,.16);
}
.global-quick-booking__form label:focus-within,
.home-page .booking-form label:focus-within,
.flow-field:focus-within{
  border-color:#4d746c;
  box-shadow:0 0 0 2px rgba(77,116,108,.12);
}
.flow-field{
  transition:border-color .18s ease,box-shadow .18s ease;
}
.flow-check{
  min-height:44px;
  padding-block:8px;
}
.flow-check input{
  width:20px;
  height:20px;
}

@media(max-width:760px){
  .v230-house-choice-grid{
    grid-template-columns:1fr!important;
    gap:16px!important;
    width:100%!important;
  }
  .v230-house-choice-grid .house-any{grid-column:1}
  .v230-house-choice-grid .house-choice,
  .v230-house-choice-grid .house-any{
    flex:none!important;
    width:100%!important;
    min-width:0!important;
  }

  .v228-three-steps,
  .v227-flow-page .flow-steps.v228-three-steps{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .v228-three-steps span,
  .v227-flow-page .flow-steps.v228-three-steps span{
    min-width:0;
    min-height:62px;
    padding:10px 8px!important;
    gap:6px;
    justify-content:center;
    border-right:1px solid var(--line)!important;
    border-bottom:0!important;
    line-height:1.2;
  }
  .v228-three-steps span:last-child,
  .v227-flow-page .flow-steps.v228-three-steps span:last-child{
    border-right:0!important;
  }

  .v228-booking-form-actions{
    width:100%;
    grid-template-columns:1fr;
    justify-content:stretch;
  }
  .v228-booking-form-actions .flow-primary,
  .v227-flow-page .flow-card>.flow-primary{
    width:100%;
  }

  .global-quick-booking__form,
  .home-page .booking-form{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:11px;
  }
  .global-quick-booking__form label,
  .home-page .booking-form label{
    min-width:0;
    min-height:58px;
    margin:0;
    border-radius:2px;
  }
  .global-quick-booking__submit,
  .global-quick-booking__status,
  .home-page .booking-submit,
  .home-page .booking-status{
    grid-column:1/-1;
  }
  .global-quick-booking__submit,
  .home-page .booking-submit{
    width:100%;
    min-height:54px;
    margin-top:0;
  }
}
@media(max-width:340px){
  .v228-three-steps,
  .v227-flow-page .flow-steps.v228-three-steps{
    grid-template-columns:1fr!important;
  }
  .v228-three-steps span,
  .v227-flow-page .flow-steps.v228-three-steps span{
    min-height:52px;
    border-right:0!important;
    border-bottom:1px solid var(--line)!important;
  }
  .v228-three-steps span:last-child,
  .v227-flow-page .flow-steps.v228-three-steps span:last-child{
    border-bottom:0!important;
  }
  .global-quick-booking__form,
  .home-page .booking-form{
    grid-template-columns:1fr;
  }
}

/* Stronger action hierarchy and quieter service labels. */
@media(min-width:1121px){
  .desktop-nav .nav-book{
    min-width:132px;
    min-height:44px;
    padding:0 14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#203d36;
    border-color:#203d36;
    color:#fff;
  }
}
@media(min-width:901px) and (max-width:1120px){
  .desktop-nav .nav-book{
    min-width:112px;
    min-height:42px;
    padding:0 10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#203d36;
    border-color:#203d36;
    color:#fff;
  }
}
.v227-hero-media img,
.v227-house-hero figure img{
  filter:saturate(.84) brightness(.75);
}
.v227-hero::after,
.v227-house-hero figcaption{
  border-color:rgba(255,255,255,.14);
  background:rgba(8,14,12,.6);
  color:rgba(255,255,255,.84);
  box-shadow:none;
  backdrop-filter:blur(8px);
  font-size:10px;
  letter-spacing:.08em!important;
}
.v227-flow-page .flow-summary dt{
  color:rgba(255,255,255,.7);
}
.v227-flow-page .flow-summary dl div{
  grid-template-columns:84px minmax(0,1fr);
  gap:8px;
}
.v227-flow-page .flow-summary dd{
  overflow-wrap:anywhere;
}
@media(min-width:901px){
  .v227-flow-page .flow-head{
    padding:48px 0 34px;
  }
  .v227-account .global-quick-booking{
    padding-bottom:30px;
  }
  .v227-account .account-shell{
    padding-top:24px;
  }
}

/* A tighter, intentional footer close. */
.site-footer{
  padding:56px 0 26px;
}
.footer-grid{
  column-gap:70px;
  row-gap:28px;
}
.copyright{
  margin-top:14px;
}

/* Mobile editorial and conversion polish. */
@media(max-width:760px){
  .hero-mobile-actions button{
    border-color:#f5f2ec;
    background:#f5f2ec;
    color:#17312b;
    box-shadow:0 10px 28px rgba(0,0,0,.18);
    backdrop-filter:none;
  }
  .hero-mobile-actions a{
    background:rgba(10,15,13,.14);
    backdrop-filter:blur(8px);
  }

  .v227-hero::after,
  .v227-house-hero figcaption{
    left:20px;
    right:auto;
    top:14px;
    bottom:auto!important;
    width:max-content;
    max-width:calc(100% - 40px);
    padding:6px 8px;
    background:rgba(8,14,12,.56);
  }

  .home-house-select-grid,
  .v227-house-pair{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    padding:0 20px 8px;
    overflow:visible;
    scroll-snap-type:none;
  }
  .home-house-select-grid{margin:-28px 0 0}
  .v227-house-pair{margin:-30px 0 0}
  .home-house-select-grid article,
  .v227-house-pair article{
    width:auto;
    min-width:0;
    flex:none;
    scroll-snap-align:none;
  }

  .house-identity-section{
    padding:66px 0;
  }
  .house-identity-grid{
    grid-template-columns:1fr;
    gap:34px;
  }
  .house-identity-intro h2{
    font-size:38px;
    line-height:1;
  }
  .house-identity-intro>p:not(.page-kicker){
    font-size:15px;
    line-height:1.64;
  }
  .house-detail-note{
    grid-template-columns:1fr;
    gap:7px;
    margin-top:24px;
    padding:18px 0;
  }
  .house-identity-content{
    grid-template-columns:1fr;
  }
  .house-identity-content>div,
  .house-identity-content>div:nth-child(even),
  .house-identity-content>div:nth-child(odd),
  .house-identity-content>div:last-child{
    grid-column:1;
    padding:23px 0;
  }
  .house-identity-section .house-palette{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .house-choice-guide{
    padding:64px 0;
  }
  .house-choice-guide-head,
  .house-choice-guide-grid{
    grid-template-columns:1fr;
    gap:18px;
  }
  .house-choice-guide-head{
    margin-bottom:24px;
  }
  .house-choice-guide-head h2{
    font-size:36px;
  }
  .house-choice-guide-head>p{
    font-size:15px;
    line-height:1.62;
  }
  .house-choice-guide-grid article{
    padding:25px 22px;
  }
  .house-choice-guide-grid h3{
    font-size:29px;
  }
  .house-common-strip{
    grid-template-columns:1fr;
    gap:7px;
    margin-top:16px;
    padding:19px 0;
  }

  .account-booking-top{
    display:grid;
    gap:12px;
  }
  .account-status{
    justify-self:start;
    max-width:none;
  }

  .site-footer{
    padding:42px 0 22px;
  }
  .footer-grid{
    gap:22px;
  }
  .copyright{
    margin-top:8px;
    padding-top:18px;
  }
}

/* Comparison bridge: keep House Shadow visually distinct in restored booking markup. */
.v230-house-choice-grid .house-choice.is-shadow{
  background:#2d302f;
  color:#f7f3ec;
  border-color:rgba(255,255,255,.16);
}
.v230-house-choice-grid .house-choice.is-shadow :is(.page-kicker,.house-card-address,p,.house-feature-list,.house-fit){
  color:rgba(247,243,236,.78);
}
.v230-house-choice-grid .house-choice.is-shadow .flow-primary{
  background:#d7b18f;
  color:#222626;
}
.v230-house-choice-grid .house-choice.is-shadow .house-choice-more{
  color:#fff;
  border-color:rgba(255,255,255,.66);
}

/* iPhone/embedded portrait fallback: some webviews expose a wide layout viewport. */
@media (orientation:portrait) and (max-width:1100px){
  .booking-sheet-overlay{display:block!important;position:fixed;inset:0;z-index:120;background:rgba(10,14,12,.62);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility .25s ease}
  body.booking-open .booking-sheet-overlay{opacity:1;visibility:visible;pointer-events:auto}
  .home-page .booking-section{position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:130!important;max-height:88vh!important;margin:0!important;padding:0!important;background:#f3f1ee!important;overflow-y:auto!important;transform:translateY(105%)!important;visibility:hidden!important}
  body.booking-open .booking-section{transform:translateY(0)!important;visibility:visible!important} body.booking-open{overflow:hidden!important}
  .home-page .booking-card{width:100%!important;display:block!important;padding:28px 20px calc(24px + env(safe-area-inset-bottom))!important;background:#f3f1ee!important;box-shadow:0 -20px 60px rgba(12,18,15,.2)!important}
  .booking-sheet-close{display:grid!important;position:absolute;right:18px;top:14px;width:38px;height:38px;place-items:center;font-size:30px;line-height:1}
  .home-page .booking-intro{padding-right:50px}.home-page .booking-form{display:block!important;grid-template-columns:1fr!important;margin-top:25px!important}.home-page .booking-form label{display:block!important;margin-bottom:10px!important}.home-page .booking-submit{width:100%!important;min-height:52px!important;margin-top:8px!important}
}
