/* Presentation only. Scoped to the design-copy envelope; original app and selectors are intact. */
.booking-design {
 --bg:#f7f4ee;--white:#fffdf9;--text:#302c27;--text-mid:#514b43;--text-light:#6e655a;
 --green:#76523d;--green-dark:#4b3d32;--green-light:#f0e9df;--green-border:#b8a18e;
 --gold:#76523d;--gold-light:#f0e9df;--gold-border:#cbb8a5;
 --cream-border:#d9d0c4;--red:#a02d26;--blue:#514b43;--blue-light:#efebe3;--blue-border:#cbbfb1;
 --shadow:none;--radius:16px;
}
.booking-design body {font-size:1rem;line-height:1.8;letter-spacing:.02em;font-kerning:normal;background:var(--bg);color:var(--text)}
.booking-design ::selection {background:var(--green);color:white}
.booking-design :is(button,input,select,textarea,a,[role="button"],summary):focus-visible {outline:3px solid var(--green);outline-offset:4px}
.booking-design :is(input,select,textarea,button) {font-size:1rem}
.booking-design :is(input,select,textarea) {accent-color:var(--green)}
.booking-design a {color:var(--green)}
.booking-design .booking-page-head {max-width:1160px;margin:0 auto;padding:24px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--cream-border)}
.booking-design .booking-page-brand {font-family:var(--font-serif);font-size:1.5rem;letter-spacing:.05em;text-decoration:none;color:var(--text)}
.booking-design .booking-page-brand span {font-size:.875rem;margin-left:8px;letter-spacing:.08em}
.booking-design .booking-page-back {font-size:.875rem;text-underline-offset:5px;white-space:nowrap;padding-block:8px}
.booking-design .booking-page-note {max-width:1064px;margin:22px auto;padding:18px 24px;border:1px solid var(--green-border);border-radius:12px;background:var(--green-light);font-size:.875rem;color:var(--text-mid)}
.booking-design .booking-page-note strong {display:block;color:var(--text);font-weight:500;margin-bottom:4px}
.booking-design .booking-page-feedback:not([hidden]) {position:fixed;inset:auto 20px 20px;max-width:700px;margin-inline:auto;z-index:10000;padding:20px 24px;border-radius:12px;background:var(--green-dark);color:var(--white);font-size:1rem;box-shadow:0 4px 24px #302c2726}
.booking-design .page {max-width:1120px;padding:44px 28px 96px}
.booking-design .section-title {font-size:clamp(1.75rem,3vw,2.4rem);font-weight:400;letter-spacing:.04em;line-height:1.5;font-feature-settings:"palt" 1}
.booking-design .section-sub {font-size:.875rem;letter-spacing:.015em;line-height:1.8;margin-bottom:28px}
.booking-design .divider {width:32px;height:1px;margin:20px auto}
.booking-design .grid {gap:28px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.booking-design .grid>div {min-width:0}
.booking-design .grid:has(> :only-child) {grid-template-columns:minmax(0,700px);justify-content:center}
.booking-design .panel {padding:28px 24px;margin-bottom:24px;border-radius:16px;box-shadow:none}
.booking-design .panel-title {font-family:var(--font-sans);font-size:1.0625rem;font-weight:500;letter-spacing:.035em;padding-bottom:17px;margin-bottom:22px}
.booking-design .benefit-strip {max-width:850px;margin:0 auto 32px;padding:18px 24px;font-size:.875rem;line-height:1.9;border-radius:12px}
.booking-design .benefit-strip__head {display:block;font-size:1rem;letter-spacing:.04em;margin:0 0 6px}
.booking-design .step-bar {margin:0 0 36px;flex-wrap:wrap;row-gap:12px}
.booking-design .step-item {font-size:.875rem;gap:7px}
.booking-design .step-num {width:30px;height:30px;font-size:.875rem;border-width:1px}
.booking-design .step-arrow {color:var(--text-light);margin-inline:10px}
.booking-design .plan-card {border-width:1px;border-radius:12px;margin-bottom:14px;align-items:stretch}
.booking-design .plan-card-img {width:112px;min-width:112px;height:auto;min-height:156px;object-fit:cover}
.booking-design .plan-card-body {padding:19px 18px}
.booking-design .plan-card-title {font-size:1.125rem;font-weight:500;line-height:1.6;letter-spacing:.025em}
.booking-design :is(.plan-card-price,.plan-card-desc,.plan-card-check) {font-size:.875rem;line-height:1.75}
.booking-design .plan-card-price {margin:4px 0 8px}
.booking-design .plan-card.active {box-shadow:0 0 0 1px var(--green);background:var(--green-light)}
.booking-design .plan-card:hover {box-shadow:none}
.booking-design .plan-card.active:hover {box-shadow:0 0 0 1px var(--green)}
.booking-design .plan-card:not(.plan-card-disabled):active {transform:none}
.booking-design .panel.plan-needs-attention {animation:none;box-shadow:0 0 0 2px var(--gold)}
.booking-design .plan-cta-banner {background:var(--green-light);border-width:1px;border-radius:12px;flex-wrap:wrap;animation:none}
.booking-design .plan-cta-banner:hover {transform:none;box-shadow:none}
.booking-design .plan-cta-banner__icon {animation:none}
.booking-design .plan-cta-banner__text {font-size:1rem;line-height:1.7}
.booking-design .plan-cta-banner__text small {font-size:.875rem}
.booking-design .plan-cta-banner__btn {font-size:.875rem;min-height:44px;border-radius:8px}
.booking-design .cal-nav {margin-bottom:20px}
.booking-design .cal-month {font-family:var(--font-sans);font-size:1.0625rem;font-weight:500;letter-spacing:.025em}
.booking-design .cal-nav-btn {width:44px;height:44px;border-radius:9px;font-size:1.375rem}
.booking-design .cal-grid {gap:5px}
.booking-design .cal-dow {font-size:.875rem;padding:8px 0;color:var(--text-mid)}
.booking-design .cal-day {min-height:52px;padding:11px 2px;font-size:1rem;line-height:1.4;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.booking-design .cal-day.cal-range {background:var(--green-light)}
.booking-design .cal-day.cal-selected {background:var(--green)}
.booking-design .cal-day.cal-selected:hover {background:var(--green-dark)}
.booking-design .cal-hint {font-size:.875rem;gap:10px 16px;margin-top:18px}
/* The original legend has inline colors; replace only its two decorative swatches. */
.booking-design .cal-hint-dot[style*="background"] {background:var(--green)!important}
.booking-design .cal-hint>span:last-child .cal-hint-dot {background:var(--green-light)!important;border:1px solid var(--green-border)}
.booking-design .info-hint {font-size:.875rem;line-height:1.8;padding:12px 14px;border-radius:0 9px 9px 0;border-left-width:2px}
.booking-design .calendar-welcome {font-size:.875rem;padding:12px 14px;line-height:1.8}
.booking-design .date-badge {gap:10px;margin-top:18px}
.booking-design :is(.badge-in,.badge-out) {font-size:.875rem;padding:7px 11px;border-radius:6px}
.booking-design .badge-reset {font-size:.875rem;min-height:44px}
.booking-design .num-btns {gap:8px}
.booking-design .num-btn {width:46px;height:46px;border-radius:9px;font-size:1.125rem;font-weight:500;box-shadow:none}
.booking-design .num-btn.active,.booking-design .cosleep-btns .num-btn.active {background:var(--green);border-color:var(--green);color:white;box-shadow:none}
.booking-design .cosleep-btns .num-btn {width:44px;height:44px;font-size:1rem}
.booking-design :is(.cosleep-box,.optbox,.notes-hints) {padding:18px;border-radius:12px;background:var(--blue-light);border-color:var(--cream-border)}
.booking-design :is(.cosleep-title,.optbox-title) {font-size:1rem;line-height:1.7}
.booking-design :is(.cosleep-desc,.optbox-desc,.notes-hints) {font-size:.875rem;line-height:1.85;color:var(--text-mid)}
.booking-design .opt-row {font-size:1rem;line-height:1.65;padding:13px 14px;min-height:48px;border-radius:8px;margin-bottom:8px}
.booking-design .opt-row input {width:18px;height:18px}
.booking-design .optbox.err-box {border-color:var(--red)}
.booking-design .frow {margin-bottom:22px}
.booking-design .flabel {font-size:.9375rem;font-weight:500;margin-bottom:9px}
.booking-design .flabel .req {font-size:.8125rem;margin-left:7px}
.booking-design .finput {font-size:1rem;min-height:48px;padding:12px 14px;border-radius:9px;background:var(--white);line-height:1.6}
.booking-design .finput:focus {outline:2px solid var(--green);outline-offset:2px}
.booking-design .finput.err {border-color:var(--red);background:#fff5f2}
.booking-design .finput.err:focus {outline-color:var(--red)}
.booking-design .finline {gap:6px;flex-wrap:wrap}
.booking-design .finline .finput {max-width:100%;min-width:0}
.booking-design :is(.ferr,.char-count,.calc-note,.price-empty) {font-size:.875rem;line-height:1.8}
.booking-design .calc-note {padding:12px 14px;border-radius:9px}
.booking-design .price-row {font-size:1rem;gap:12px;padding-top:12px;flex-wrap:wrap}
.booking-design .price-detail {font-size:.875rem;color:var(--text-mid);padding:6px 0 12px 12px;gap:10px;flex-wrap:wrap}
.booking-design .price-tag {font-size:.8125rem;padding:3px 7px}
.booking-design .price-total {font-family:var(--font-sans);font-size:clamp(1.4rem,2.4vw,1.875rem);font-weight:500;border-top-width:1px;padding-top:24px;margin-top:18px;gap:12px;flex-wrap:wrap;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.booking-design .terms-box {padding:22px;border-radius:12px}
.booking-design .terms-title {font-size:1rem;line-height:1.7}
.booking-design .terms-body {font-size:.875rem;line-height:1.9;max-height:260px;padding-right:12px;margin-bottom:20px;scrollbar-color:var(--green-border) transparent}
.booking-design .terms-check {font-size:1rem;line-height:1.7;gap:12px;min-height:44px}
.booking-design .terms-check input {width:20px;height:20px;flex-shrink:0}
.booking-design .submit-reassure {font-size:.875rem;padding:18px 20px;line-height:1.9;border-radius:12px}
.booking-design .submit-btn {font-family:var(--font-sans);font-size:1rem;font-weight:500;line-height:1.65;letter-spacing:.04em;padding:18px 20px;min-height:58px;border-radius:10px}
.booking-design .submit-note {font-size:.875rem;line-height:1.8;margin-top:14px}
.booking-design :is(.top-err,.submit-err-summary) {font-size:.9375rem;line-height:1.8;border-radius:9px;padding:16px;animation:none}
.booking-design .submit-err-summary ul {font-size:.875rem}
.booking-design .reserve-prebook {max-width:1064px;margin:26px auto 0;padding:0}
.booking-design .reserve-prebook__intro {font-size:.875rem;line-height:1.9}
.booking-design .reserve-amenity-details {margin-top:18px;border-radius:12px}
.booking-design .reserve-amenity-details>summary {font-size:.875rem;padding:15px 20px;min-height:48px}
.booking-design .reserve-amenity-content {padding:22px}
.booking-design .reserve-amenity-col {border-radius:9px;padding:20px}
.booking-design .reserve-amenity-head {font-size:.9375rem;letter-spacing:.03em}
.booking-design .reserve-group-label {font-size:.875rem;letter-spacing:.02em;margin-top:18px}
.booking-design .reserve-amenity-list li {font-family:var(--font-sans);font-size:.875rem;line-height:1.85;padding-left:18px}
.booking-design .reserve-amenity-footnote {font-size:.875rem;line-height:1.85}
/* Existing React output uses inline sizes; one narrow override raises small reading text without editing JS. */
.booking-design #root :is([style*="font-size: 10px"],[style*="font-size: 11px"],[style*="font-size: 12px"],[style*="font-size: 13px"]) {font-size:.875rem!important}
.booking-design .form-detail-enter {animation:none}
@media(max-width:1100px){.booking-design :is(.booking-page-note,.reserve-prebook){margin-inline:28px}}
@media(max-width:768px){
 .booking-design .grid {grid-template-columns:minmax(0,1fr);gap:8px}
 .booking-design .page {padding:32px 20px 72px}
 .booking-design .panel {padding:24px 22px;margin-bottom:20px}
 .booking-design :is(.booking-page-note,.reserve-prebook) {margin-inline:20px}
 .booking-design .booking-page-head {padding:20px}
 .booking-design .cal-grid {gap:5px}
}
@media(max-width:480px){
 .booking-design .page {padding-inline:14px}
 .booking-design .panel {padding:22px 16px}
 .booking-design .booking-page-head {padding:18px 16px;gap:12px;flex-wrap:wrap}
 .booking-design .booking-page-brand {font-size:1.3rem}
 .booking-design .booking-page-brand span {font-size:.8125rem;margin-left:4px}
 .booking-design :is(.booking-page-note,.reserve-prebook) {margin-inline:14px}
 .booking-design .booking-page-note {padding:16px}
 .booking-design .step-bar {padding:0;gap:10px 0;justify-content:flex-start}
 .booking-design .step-item {font-size:.875rem;white-space:normal;gap:5px}
 .booking-design .step-num {width:26px;height:26px}
 .booking-design .step-arrow {margin-inline:5px}
 .booking-design .cal-grid {gap:3px}
 .booking-design .cal-day {min-height:48px;padding:10px 0}
 .booking-design .plan-card-img {width:82px;min-width:82px;min-height:164px}
 .booking-design .plan-card-body {padding:16px 13px}
 .booking-design .plan-card-title {font-size:1.0625rem}
 .booking-design .num-btn {width:44px;height:44px}
 .booking-design .terms-box {padding:18px 16px}
 .booking-design .benefit-strip {padding:16px}
 .booking-design .reserve-amenity-content {padding:14px}
}
@media(prefers-reduced-motion:reduce){.booking-design *,.booking-design *::before,.booking-design *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
