/* Readable booking flow with local fonts and assets. */
/* T794 inline shell applies only after progressive enhancement is ready. */
.booking-flow .booking-title{font:650 20px/1.4 system-ui,sans-serif;letter-spacing:normal;margin:0 0 16px}
/* T-971 (d): a plain booking page without the script (the payment link page) uses the same title style. */
.booking-page-title{font:650 20px/1.4 system-ui,sans-serif;letter-spacing:normal;margin:0 0 16px}
/* T-971 (a3): the property's contact line sits just under the refusal sentence inside the box. */
.booking-inline-error [data-booking-refusal-contact]{margin:8px 0 0}
/* T-1114 (round 5 N4, N10): this browser's held booking, first on a page whose Review or Send is off because of it; its clock line and buttons wrap on a phone. */
.booking-held-first{border:2px solid var(--line);border-radius:12px;padding:16px;margin:16px 0;background:#fffdf7;overflow-wrap:anywhere}.booking-held-first p{margin:8px 0}.booking-held-first [role=note]{margin-top:0}.booking-held-first .button{margin:4px 8px 4px 0}
/* T-973: the rig-size boxes on the choose step; the over-limit warning and its acknowledgement box on the review step. */
.rig-size{border:1px solid var(--line);border-radius:10px;padding:0 16px 16px;margin:24px 0 0;min-width:0}.rig-size legend{font-weight:650;padding:0 8px}.rig-size .size-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.size-warning{background:#fff0a6;border:1px solid #ad871b;border-radius:10px;padding:16px;margin:24px 0}.size-warning p{margin:0 0 12px}.accept-size{display:flex;align-items:flex-start;gap:16px;font-weight:500;margin:0}
@media(max-width:560px){.rig-size .size-grid{grid-template-columns:1fr;gap:0}}
.booking-flow [hidden]{display:none!important}.booking-flow a:not(.button){display:inline-flex;align-items:center;min-height:44px;padding-block:10px}
.booking-flow{width:min(100% - 32px,1040px);padding-top:24px}.booking-section{border:1px solid var(--line);border-radius:12px;margin:0 0 16px;background:#fffdf7;padding:16px}.booking-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.booking-section-head h2{margin:0;font-size:20px}.booking-change{width:auto;margin:0;background:transparent;color:var(--ink);border:1px solid var(--line);flex:none;min-height:44px}.booking-section-summary{color:var(--muted);font-size:14px;overflow-wrap:anywhere}.booking-section-panel{min-width:0}.booking-section-panel[hidden],.booking-native-select{display:none!important}.booking-options{border:0;padding:0;margin:16px 0;min-width:0}.booking-options legend{font-weight:650;padding:0 0 8px}.booking-option{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:12px;margin:8px 0;min-height:44px;cursor:pointer}.booking-option input{width:22px;height:22px;min-height:0;flex:none}.booking-option span{overflow-wrap:anywhere}.booking-option:has(input:checked){border-color:var(--primary);background:#e9eedf}.booking-flow input,.booking-flow select{min-width:0}.booking-live:empty{display:none}.booking-section-hint{color:var(--muted);font-size:14px;margin:8px 0 0}.booking-inline-error{padding:16px;background:#fff0e7;border-left:4px solid #a32d22;margin:16px 0}/* T-962 (C4): one error box; the server sentence inside keeps its alert role but not its own bar, fill or padding. */.booking-inline-error [role=alert]{background:none;border:0;border-radius:0;padding:0;margin:0}.booking-summary{margin:8px 0}.booking-section:not(.is-current) .booking-section-summary{padding-top:8px}.booking-flow .test-badge{margin-top:16px}.booking-flow form{margin-top:24px}
@media(min-width:768px){.booking-flow .booking-review-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:start;gap:24px}.booking-flow .booking-review-price .quote{margin-top:0}.booking-flow .booking-review-agreement h2{margin-top:0}}
@media(max-width:560px){.booking-section{padding:12px}.booking-section-head{gap:8px}.booking-section-head h2{font-size:18px}.booking-change{padding:10px 12px}.booking-flow .cf-turnstile{overflow:auto}}
@media(prefers-reduced-motion:reduce){.booking-flow *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.booking-flow{width:100%;padding:0}.booking-flow .booking-section{border:0;padding:0}.booking-flow .booking-section-panel[hidden]{display:block!important}.booking-flow form,.booking-flow .booking-change,.booking-flow .cf-turnstile,.booking-flow button,.booking-flow a.button,.booking-flow .honeypot,.booking-flow .booking-live,.booking-flow .booking-section-hint{display:none!important}.booking-flow .agreement{max-height:none;overflow:visible;border:0}.booking-flow .quote{background:white;color:black;border:1px solid #777}.booking-flow .booking-section-head{display:block}}
:root{color-scheme:light;--paper:#f6f4ec;--ink:#193e37;--muted:#53655f;--line:#c8d0c6}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif}header,main,footer{width:min(100% - 40px,760px);margin:auto}header{padding:42px 0 24px;border-bottom:1px solid var(--line)}.eyebrow,.step{font-size:.77rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.eyebrow{margin:0;color:var(--muted)}.brand{font-size:1.4rem;font-weight:750;margin:.3rem 0}main{padding:42px 0 24px}h1{font-family:Georgia,serif;font-size:clamp(2.1rem,6vw,3.5rem);font-weight:500;line-height:1.12;letter-spacing:-.025em;margin:.7rem 0 1.2rem}h2{font-size:1.25rem;line-height:1.3;margin:2rem 0 .7rem}.intro{font-size:1.1rem;color:var(--muted);max-width:62ch}.step{color:var(--muted)}a{color:var(--ink);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}form{margin-top:2rem}label{display:block;font-size:.94rem;font-weight:650;margin:1.15rem 0 .4rem}input,select{font:inherit;color:var(--ink);background:#fff;border:1px solid #82978a;border-radius:7px;width:100%;padding:.78rem;min-height:48px}input[type=checkbox]{width:23px;height:23px;min-height:0;flex:none;margin:.2rem 0;accent-color:var(--ink)}button,.button{display:inline-flex;justify-content:center;align-items:center;gap:1.4rem;background:var(--ink);color:#fff;border:0;border-radius:7px;font:inherit;font-weight:650;text-decoration:none;min-height:52px;padding:.85rem 1.4rem;cursor:pointer}button{width:100%;margin-top:1.5rem}button:hover,.button:hover{background:#295b4e}button:disabled{opacity:.65;cursor:wait}:focus-visible{outline:3px solid #5b8031;outline-offset:4px}.date-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.help{font-size:.86rem;color:var(--muted)}.quote{background:var(--ink);color:white;padding:1.5rem;border-radius:10px;margin:1.5rem 0}.quote>span{display:block;font-size:.9rem}.quote>strong{font-size:2.4rem;line-height:1.3}.quote p{margin:.6rem 0 0}.agreement{white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border:1px solid var(--line);padding:1.4rem;border-radius:7px;max-height:26rem;overflow:auto}.accept{display:flex;align-items:flex-start;gap:.85rem;font-weight:500;padding:1.1rem;background:#e9eedf;border-radius:7px;margin:1.5rem 0}.test-badge{padding:.75rem 1rem;background:#fff0a6;border:1px solid #ad871b;border-radius:5px;color:#514107;font-size:.9rem;font-weight:750}details{padding:1rem;background:#e9eedf;border-radius:7px}summary{cursor:pointer;font-weight:650}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}footer{padding:28px 0 42px;color:var(--muted);font-size:.85rem;border-top:1px solid var(--line);margin-top:2rem}.skip{position:absolute;top:-100px;left:20px;background:white;padding:.8rem;z-index:2}.skip:focus{top:10px}[role=alert]{background:#fff0e7;border-left:4px solid #a54928;padding:1rem}.cf-turnstile{min-height:70px;max-width:100%;overflow:auto}@media(max-width:560px){header,main,footer{width:calc(100% - 32px)}header{padding-top:24px}main{padding-top:26px}.date-grid{grid-template-columns:1fr;gap:0}.agreement{padding:1rem}.button{width:100%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* T714 booking presentation; existing steps, wording and fields stay in place. */
/* T-1142: compact property context and native, keyboard-operable date detail.
   Namespaced to the engine header so install-owned chrome keeps its styling. */
.booking-property-header{padding:24px 0 16px;display:grid;gap:4px}
.booking-property-header .brand{margin:0;overflow-wrap:anywhere}
.booking-property-header .booking-back{font-size:14px;min-height:44px;display:inline-flex;align-items:center;justify-self:start}
.booking-date-details{margin:16px 0}
.booking-date-details p{margin:8px 0}
.booking-date-details ul{padding-left:24px}
@media screen {
:root { --paper:#f3f0e6; --ink:#17231e; --muted:#56635c; --line:#c8cbbe; --primary:#24513f; --primary-strong:#17382d; }
body { font-size:16px; line-height:1.5; }
header,main,footer { width:min(100% - 32px,760px); }
header { padding:32px 0 24px; }
main { padding:32px 0 24px; }
.eyebrow,.step { font-size:12px; line-height:20px; letter-spacing:.08em; }
.brand { font-size:20px; line-height:28px; margin:8px 0 0; }
h1 { font-size:clamp(32px,5vw,40px); line-height:1.2; margin:8px 0 24px; }
h2 { font-size:20px; line-height:1.2; margin:24px 0 16px; }
.intro { font-size:16px; line-height:1.5; }
a { color:var(--primary-strong); }
form { margin-top:32px; }
label { font-size:14px; line-height:20px; margin:24px 0 8px; }
input,select { min-height:44px; padding:10px 12px; border-color:#7c8479; border-radius:10px; background:#fffdf7; font-size:16px; line-height:24px; }
input[type=checkbox] { width:22px; height:22px; min-height:0; padding:0; accent-color:var(--primary); }
button,.button { min-height:44px; padding:12px 16px; gap:16px; border-radius:10px; background:var(--primary); font-size:14px; line-height:20px; }
button { margin-top:24px; }
button:hover,.button:hover { background:var(--primary-strong); }
:focus-visible { outline:3px solid var(--primary-strong); outline-offset:3px; }
.date-grid { gap:16px; }
.help { font-size:14px; line-height:20px; margin:8px 0; }
.quote { background:var(--primary-strong); padding:24px; border-radius:10px; margin:24px 0; }
.quote>strong { font-size:40px; }
.quote p { margin:8px 0 0; }
.agreement { background:#fffdf7; padding:24px; border-radius:10px; }
.accept { min-height:44px; gap:16px; padding:16px; border-radius:10px; margin:24px 0; }
details { padding:16px; border:1px solid var(--line); border-radius:10px; background:#fffdf7; }
summary { min-height:44px; padding:8px 0; }
.test-badge { padding:12px 16px; border-radius:10px; font-size:14px; }
footer { padding:24px 0 32px; font-size:14px; margin-top:32px; }
.skip { min-height:44px; padding:12px 16px; border-radius:10px; }
[role=alert] { color:#17231e; padding:16px; border-left-color:#a32d22; border-radius:10px; }
/* T-962 (C11): the second of two held-step buttons is outlined, so the payment button stays the one main action. */
.button.button-secondary { background:transparent; color:var(--primary-strong); box-shadow:inset 0 0 0 2px var(--primary); }
.button.button-secondary:hover { background:#e9eedf; }
@media(max-width:560px) {
header { padding-top:24px; }
main { padding-top:24px; }
.date-grid { gap:0; }
.agreement { padding:16px; }
}
}
