.room-grid{display:grid;grid-template-columns:1fr;gap:var(--space-8)}.room-card{display:flex;flex-direction:column;background-color:var(--color-surface-container-lowest);border-radius:var(--radius-lg);overflow:hidden;border:2px solid var(--color-border);transition:box-shadow .2s ease}.room-card:hover{box-shadow:0 12px 32px rgba(0,0,0,.08);border-color:var(--color-brand)}.room-card--terrace{background-color:var(--color-surface-container-lowest);box-shadow:0 4px 16px rgba(0,0,0,.06);border:2px solid var(--color-border)}.room-card--selected,.room-card--terrace:hover{border-color:var(--color-brand)}.room-card--selected{border-width:2px}.room-card__photo{aspect-ratio:4/5;overflow:hidden;position:relative;background-color:var(--color-border)}@media (max-width:767px){.room-card__photo{display:none}}.room-card__photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.room-card:hover .room-card__photo img{transform:scale(1.05)}.room-card__badge{position:absolute;top:var(--space-4);right:var(--space-4);display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background-color:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-radius:var(--radius-full);font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-muted)}.room-card__badge-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.room-card__popular{position:absolute;top:var(--space-4);left:var(--space-4);padding:var(--space-2) var(--space-3);background-color:var(--color-brand);color:#fff;border-radius:var(--radius-full);font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.room-card__body{padding:var(--space-8);display:flex;flex-direction:column;flex-grow:1;gap:var(--space-4);min-width:0}.room-card__header{display:flex;justify-content:space-between;align-items:flex-start}.room-card__name{font-family:var(--font-serif);font-size:var(--font-size-xl);font-weight:700;color:var(--color-text);line-height:var(--line-height-tight);margin:0}.room-card__price{text-align:right;flex-shrink:0;margin-left:var(--space-4)}.room-card__price-amount{font-family:var(--font-sans);font-size:var(--font-size-xl);font-weight:700;color:var(--success);line-height:var(--line-height-tight)}.room-card__price-unit{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted)}.room-card__meta-group{display:flex;flex-direction:column;gap:var(--space-1)}.room-card__meta{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-tight);margin:0}.room-card__description{font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);line-height:var(--line-height-base);margin:0}.room-card__section{display:flex;flex-direction:column;gap:var(--space-2)}.room-card__section-label{font-family:var(--font-sans);font-size:var(--font-size-xs);font-weight:600;color:var(--success);text-transform:uppercase;letter-spacing:.14em;display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-3)}.room-card__section-icon{font-size:17px;color:var(--success);flex-shrink:0}.room-card__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.room-card__list li{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted);padding-left:var(--space-4);position:relative;line-height:var(--line-height-base)}.room-card__list li:before{content:"";position:absolute;left:3px;top:9px;width:4px;height:4px;border-radius:50%;background:var(--wh-taupe)}.room-card__stepper-area{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-4);border-top:1px solid var(--color-border);margin-top:auto}.room-card__available,.room-card__unavailable{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted)}.room-card__unavailable{font-style:italic}.room-card__stepper{display:flex;align-items:center;gap:var(--space-3)}.room-card__stepper-btn{width:var(--tap-target);height:var(--tap-target);border-radius:var(--radius-full);background-color:var(--color-surface);border:1px solid var(--color-border);font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:700;color:var(--color-text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .15s ease,opacity .15s ease;flex-shrink:0}.room-card__stepper-btn:hover:not(:disabled){background-color:var(--color-border)}.room-card__stepper-btn:disabled{opacity:.4;cursor:not-allowed}.room-card__stepper-count{font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:700;color:var(--color-text);min-width:24px;text-align:center}@media (min-width:768px){.room-card{flex-direction:row}.room-card__photo{flex:0 0 36%;aspect-ratio:auto;align-self:stretch;min-height:100%}.room-card__list{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--space-7);row-gap:var(--space-2);align-content:start}}.confirm-page{padding:var(--space-8) var(--page-padding) var(--space-16);max-width:var(--max-width-wide);margin:0 auto}.booking-two-col--summary{display:grid;grid-template-columns:1fr;gap:var(--space-6)}@media (min-width:1024px){.booking-two-col--summary{grid-template-columns:7fr 5fr;align-items:start;gap:var(--space-8);padding-left:0;padding-right:0}}.confirm-page__left{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-6)}@media (min-width:768px){.confirm-page__left{padding:var(--space-12)}}@media (min-width:1024px){.confirm-page__left{background:transparent;border-radius:0;padding:0;box-shadow:none}}.confirm-page__info-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:0 2px 12px rgba(45,44,40,.08),0 1px 3px rgba(45,44,40,.06)}@media (max-width:767px){.confirm-page__info-card{background:transparent;box-shadow:none;padding:0;border-radius:0}}.contact-details__title{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-serif);font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-4);margin-top:0}.contact-details__icon{font-size:1.25rem;color:var(--color-brand)}.contact-details__form{display:flex;flex-direction:column;gap:var(--space-4)}.cat-particulars__title{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-serif);font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-3);margin-top:0}.cat-particulars__icon{font-size:1.25rem;color:var(--color-brand)}.cat-particulars__chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.cat-particulars__chip{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text)}.booking-notice--inline{padding:0;background:transparent;border:none;box-shadow:none;border-radius:0;margin-bottom:var(--space-3)}.confirm-page__care-notes{display:flex;flex-direction:column;gap:var(--space-2)}.confirm-page__care-label{font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.confirm-page__care-text{font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);line-height:var(--line-height-base);margin:0}.pdpa-row{display:flex;align-items:flex-start;gap:var(--space-3);cursor:pointer}.pdpa-row__checkbox{flex-shrink:0;margin-top:3px;width:18px;height:18px;accent-color:var(--color-brand);cursor:pointer}.pdpa-row__label{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text);line-height:var(--line-height-base)}.pdpa-row__link{color:var(--color-brand);text-decoration:underline}.pdpa-row__link:hover{color:var(--color-brand-dark)}.summary-panel{position:sticky;top:calc(64px + var(--space-4))}@media (max-width:1023px){.summary-panel{position:static}}@media (min-width:768px) and (max-width:1023px){.booking-two-col--summary{margin-left:calc(-1 * var(--page-padding));margin-right:calc(-1 * var(--page-padding))}}.summary-panel__card{background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 2px 12px rgba(45,44,40,.08),0 1px 3px rgba(45,44,40,.06)}.summary-panel__body{padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-5)}.summary-panel__title{font-family:var(--font-serif);font-size:var(--font-size-xl);font-weight:700;color:var(--color-text);line-height:var(--line-height-tight);margin:0}.summary-panel__dates{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.summary-panel__date-block{display:flex;flex-direction:column;gap:var(--space-1)}.summary-panel__date-label{font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.summary-panel__date-value{font-family:var(--font-serif);font-size:var(--font-size-lg);color:var(--color-text)}.summary-panel__dates-divider{width:1px;height:36px;background:var(--color-border);flex-shrink:0}.summary-panel__duration{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.summary-panel__breakdown{display:flex;flex-direction:column;gap:var(--space-3)}.summary-panel__breakdown--loading{opacity:.4}.summary-panel__skeleton{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted)}.summary-panel__line{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.summary-panel__line-label{color:var(--color-text-muted);flex:1}.summary-panel__line-label,.summary-panel__line-value{font-family:var(--font-sans);font-size:var(--font-size-sm)}.summary-panel__line-value{font-weight:700;color:var(--color-text);white-space:nowrap}.summary-panel__line--discount .summary-panel__line-label,.summary-panel__line--discount .summary-panel__line-value,.summary-panel__line--peak .summary-panel__line-label,.summary-panel__line--peak .summary-panel__line-value{color:var(--color-brand-dark)}.summary-panel__divider{border:none;border-top:1px solid var(--color-border);margin:0}.summary-panel__total-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.summary-panel__total-label{font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.summary-panel__total-value{font-family:var(--font-serif);font-size:var(--font-size-xl);font-weight:700;color:var(--color-text)}.summary-panel__confirm-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:var(--tap-target);padding:0 var(--space-8);background:linear-gradient(135deg,var(--color-brand) 0,var(--color-primary-container) 100%);border:none;border-radius:var(--radius-full);color:#ffffff;font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:700;cursor:pointer;transition:opacity .2s ease,transform .1s ease}.summary-panel__confirm-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.summary-panel__confirm-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}@media (min-width:768px){.confirm-page__mobile-sections{display:none}}.stay-summary-card{background:var(--color-surface-container-lowest);border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 -4px 24px rgba(103,93,78,.06);margin-bottom:var(--space-8);padding:var(--space-6)}.stay-summary-card__dates{display:flex;justify-content:space-between;align-items:center}.stay-summary-card__date-block{display:flex;flex-direction:column}.stay-summary-card__date-label{font-family:var(--font-sans);font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--color-on-surface-variant);margin:0 0 var(--space-1)}.stay-summary-card__date-value{font-family:var(--font-serif);font-size:var(--font-size-lg);color:var(--color-primary);margin:0}.stay-summary-card__divider{height:2rem;width:1px;background:rgba(207,197,187,.3);flex-shrink:0}.stay-summary-card__detail-row{padding-top:var(--space-4);border-top:1px solid rgba(207,197,187,.1);display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-4)}.stay-summary-card__detail-left{display:flex;align-items:center;gap:var(--space-2);color:var(--color-on-surface)}.stay-summary-card__detail-left .material-symbols-rounded{color:var(--color-secondary);font-size:var(--font-size-lg)}.stay-summary-card__detail-left span:last-child{font-family:var(--font-sans);color:var(--color-on-surface)}.stay-summary-card__detail-price{font-family:var(--font-sans);font-weight:700;color:var(--color-primary)}.booking-summary{background:var(--color-surface-container-low);border-radius:1rem;padding:var(--space-6);margin-bottom:var(--space-8)}.booking-summary__title{font-family:var(--font-serif);font-size:var(--font-size-lg);color:var(--color-primary);margin:0 0 var(--space-4);font-weight:700}.booking-summary__stay-dates{margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid rgba(207,197,187,.3)}.booking-summary__date-row{display:flex;align-items:center;justify-content:space-between}.booking-summary__date-col{display:flex;flex-direction:column;gap:var(--space-1)}.booking-summary__date-label{font-family:var(--font-sans);font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--color-on-surface-variant)}.booking-summary__date-value{font-family:var(--font-serif);font-size:var(--font-size-lg);color:var(--color-primary)}.booking-summary__date-divider{height:2rem;width:1px;background:rgba(207,197,187,.3);flex-shrink:0}.booking-summary__nights{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-on-surface-variant);margin:var(--space-2) 0 0}.booking-summary__lines{display:flex;flex-direction:column;gap:var(--space-3)}.booking-summary__line{display:flex;justify-content:space-between;font-size:var(--font-size-sm)}.booking-summary__line-label{color:var(--color-on-surface-variant)}.booking-summary__line-value{color:var(--color-on-surface);font-weight:500}.booking-summary__total{border-top:1px solid rgba(207,197,187,.3);padding-top:var(--space-4);margin-top:var(--space-2)}.booking-summary__total-label{font-family:var(--font-sans);font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--color-secondary);margin:0 0 var(--space-1)}.booking-summary__total-value{font-family:var(--font-serif);font-size:1.875rem;font-weight:700;color:var(--color-primary);margin:0 0 var(--space-1)}.booking-summary__tax-note{font-size:10px;color:var(--color-on-surface-variant);font-style:italic}.confirm-page__cta{width:100%;min-height:var(--tap-target);background:linear-gradient(135deg,var(--color-brand) 0,var(--color-primary-container) 100%);padding:0 var(--space-8);border-radius:var(--radius-full);border:none;box-shadow:0 4px 16px rgba(103,93,78,.2);display:flex;align-items:center;justify-content:center;gap:var(--space-3);color:#ffffff;font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:700;cursor:pointer;transition:opacity .2s ease,transform .1s ease}.confirm-page__cta:hover:not(:disabled){opacity:.9}.confirm-page__cta:active:not(:disabled){transform:scale(.98)}.confirm-page__cta:disabled{opacity:.5;cursor:not-allowed}.deposit-card{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);gap:var(--space-1)}.deposit-card__label{font-family:var(--font-sans);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}.deposit-card__amount{font-family:var(--font-serif);font-size:var(--font-size-2xl);font-weight:700;color:var(--color-brand-dark);line-height:var(--line-height-tight)}.deposit-card__subtitle{font-family:var(--font-sans);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}@media (max-width:767px){.confirm-page{background:var(--color-auth-surface);padding:var(--space-6) var(--space-5) var(--space-16);margin:0 auto}.booking-two-col--summary{display:block;padding-left:0;padding-right:0;padding-bottom:var(--space-8)}.summary-panel{display:none}.confirm-page__left{background:transparent;padding:0;gap:var(--space-4)}.cat-particulars__title,.contact-details__title{font-size:var(--font-size-lg);color:var(--color-primary)}.pdpa-row{padding:0 var(--space-2);margin-bottom:var(--space-10)}.pdpa-row__checkbox{width:20px;height:20px;border-radius:var(--radius-sm);accent-color:var(--color-primary)}.pdpa-row__label{font-size:var(--font-size-xs);color:var(--color-on-surface-variant);line-height:1.65}}.turnstile-row{display:flex;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4)}@media (max-width:767px){.turnstile-row{margin-bottom:var(--space-4)}}.turnstile-widget{width:100%}.bform__group{display:flex;flex-direction:column;gap:var(--space-2)}.bform__label{font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-muted)}.bform__required:after{content:" *"}.bform__required-mark,.bform__required:after{color:var(--color-error);font-weight:700}.bform__input{width:100%;padding:var(--space-4);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);box-sizing:border-box;transition:box-shadow .15s ease,border-color .15s ease;-webkit-appearance:none;appearance:none}.bform__input:focus{outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--color-brand) 30%,transparent);border-color:var(--color-brand)}.bform__input--error,.bform__input--error:focus{border-color:var(--color-error)}.bform__input--error:focus{box-shadow:0 0 0 2px color-mix(in srgb,var(--color-error) 30%,transparent)}.bform__error{color:var(--color-error)}.bform__error,.bform__helper{font-family:var(--font-sans);font-size:var(--font-size-sm)}.bform__helper{color:var(--color-text-muted)}.bform__textarea{width:100%;padding:var(--space-4);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);box-sizing:border-box;min-height:80px;resize:vertical;transition:box-shadow .15s ease,border-color .15s ease}.bform__textarea:focus{outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--color-brand) 30%,transparent);border-color:var(--color-brand)}.bform__file-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);min-height:80px;padding:var(--space-5);border:1.5px dashed var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:center;transition:border-color .15s ease,background-color .15s ease}.bform__file-zone:hover{border-color:var(--color-brand);background-color:color-mix(in srgb,var(--color-brand) 5%,transparent)}.bform__file-zone--dragover{border-color:var(--color-brand);border-style:dashed;background-color:color-mix(in srgb,var(--color-brand) 8%,transparent)}.bform__file-zone--uploaded{border-style:solid;border-color:var(--color-brand);background-color:color-mix(in srgb,var(--color-brand) 5%,transparent);flex-direction:row;justify-content:flex-start;gap:var(--space-3)}.bform__file-zone--error{border-color:var(--color-error)}.bform__file-preview{max-width:48px;max-height:48px;width:auto;height:auto;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.phone-input__row{display:flex;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);transition:box-shadow .15s ease,border-color .15s ease}.phone-input__row:focus-within{outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--color-brand) 30%,transparent);border-color:var(--color-brand)}.phone-input__row--error{border-color:var(--color-error)}.phone-input__country{flex:0 0 auto;width:120px;border-right:1px solid var(--color-border)}.phone-input__number{flex:1 1 auto}.phone-input__inner-input{border:none!important;background:transparent!important;border-radius:0!important;box-shadow:none!important;height:var(--tap-target)}.bform__stepper-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.bform__stepper-row__text{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;flex:1 1 auto}.bform__stepper-row__label{font-family:var(--font-body);font-size:14px;font-weight:600;line-height:1.4;color:var(--wh-espresso);letter-spacing:var(--tracking-wider);text-transform:uppercase;margin:0}.bform__stepper-help{font-family:var(--font-body);font-size:12px;font-weight:400;line-height:1.5;color:var(--fg-muted);margin:0}.bform__stepper-row__controls{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto}.bform__stepper-pill{justify-content:space-between;background-color:var(--bg-elevated);border-radius:var(--radius-pill);box-shadow:inset 0 0 0 1px var(--border-strong);padding:4px;box-sizing:border-box}.bform__stepper-btn,.bform__stepper-pill{display:inline-flex;align-items:center;height:36px}.bform__stepper-btn{appearance:none;-webkit-appearance:none;background:transparent;border:0;cursor:pointer;width:36px;min-width:36px;border-radius:50%;justify-content:center;color:var(--wh-espresso);padding:0;position:relative;transition:background-color var(--dur-1) var(--ease-soft),opacity var(--dur-1) var(--ease-soft)}.bform__stepper-btn:before{content:"";position:absolute;inset:-4px;border-radius:50%}.bform__stepper-btn:hover:not(:disabled){background-color:color-mix(in srgb,var(--wh-espresso) 8%,transparent)}.bform__stepper-btn:focus-visible{outline:2px solid var(--wh-espresso);outline-offset:2px}.bform__stepper-btn:disabled{opacity:.35;cursor:not-allowed}.bform__stepper-btn-icon{width:16px;height:16px;display:block}.bform__stepper-num{font-family:var(--font-brand);font-size:12px;font-weight:400;line-height:1;color:var(--wh-soft-black);min-width:48px;text-align:center;font-variant-numeric:tabular-nums;user-select:none}.bform__stepper-max{font-family:var(--font-body);font-size:12px;font-weight:500;color:var(--fg-muted);letter-spacing:var(--tracking-wide);white-space:nowrap}