.sob-flow{font-family:Arial,Helvetica,sans-serif;color:#222;background:#fff;font-synthesis:none;--green:#477b18;--line:#ddd;--muted:#717171}.sob-flow *{box-sizing:border-box}.sob-flow{margin:0}.sob-flow button,.sob-flow input,.sob-flow textarea{font:inherit}.sob-flow button,.sob-flow a,.sob-flow input,.sob-flow textarea,.sob-flow summary{-webkit-tap-highlight-color:transparent}.sob-flow button{cursor:pointer}.sob-flow button:disabled{opacity:.32;cursor:not-allowed}.sob-flow button:focus-visible,.sob-flow a:focus-visible,.sob-flow input:focus-visible,.sob-flow textarea:focus-visible,.sob-flow summary:focus-visible{outline:3px solid var(--green);outline-offset:3px}.sob-flow [hidden]{display:none!important}.sob-flow h1,.sob-flow h2,.sob-flow h3,.sob-flow p{margin-top:0}.sob-flow h1{font-size:40px;line-height:1.1;letter-spacing:-1.2px;margin-bottom:16px}.sob-flow h2{font-size:24px;line-height:1.25;letter-spacing:-.4px;margin-bottom:12px}.sob-flow h3{font-size:18px;margin-bottom:14px}.sob-flow p{line-height:1.55}.sob-flow a{color:inherit}.sob-flow .preview-bar{background:#f7f7f7;text-align:center;font-size:11px;letter-spacing:1px;padding:10px 16px}.sob-flow .preview-bar span{letter-spacing:0;margin-left:14px;color:#666}.sob-flow .brand{max-width:1160px;margin:auto;display:flex;align-items:center;gap:12px;padding:22px 28px;border-bottom:1px solid var(--line);font-size:18px;font-weight:700}.sob-flow .brand img{object-fit:contain}.sob-flow .brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:5px;color:var(--muted)}.sob-flow .brand a{margin-left:auto;font-size:13px;font-weight:400}.sob-flow .flow-main{max-width:1104px;margin:auto;padding:48px 28px 0}.sob-flow .eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--green);margin-bottom:16px}.sob-flow .heading>p:last-child{color:var(--muted);font-size:17px}.sob-flow .steps{list-style:none;padding:0;display:flex;gap:32px;margin:30px 0 42px;font-size:13px;color:var(--muted)}.sob-flow .steps li{display:flex;gap:8px;align-items:center}.sob-flow .steps span{display:grid;place-items:center;width:24px;height:24px;border:1px solid #bbb;border-radius:50%;font-size:12px}.sob-flow .steps [aria-current]{font-weight:700;color:#222}.sob-flow .steps [aria-current] span{background:var(--green);color:white;border-color:var(--green)}.sob-flow .layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:70px;align-items:start}.sob-flow .muted{color:var(--muted)}.sob-flow .section-title{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:30px 0 14px}.sob-flow .section-title h3{margin:0}.sob-flow .text-button{border:0;background:none;color:#222;font-weight:600;font-size:14px;text-decoration:underline;padding:6px 0}.sob-flow .date-box{display:grid;grid-template-columns:1fr 1fr;border:1px solid #aaa;border-radius:12px;overflow:hidden}.sob-flow .date-box label{padding:15px 16px;font-weight:700;font-size:10px;letter-spacing:.6px;min-width:0}.sob-flow .date-box label+label{border-left:1px solid #aaa}.sob-flow .date-box input{display:block;width:100%;min-width:0;background:#fff;border:0;color:#222;padding:8px 0 0;letter-spacing:0;font-size:15px;min-height:32px}.sob-flow .date-note{font-size:13px;color:var(--muted);margin:12px 0 28px}.sob-flow .guests{border:1px solid #aaa;border-radius:12px;padding:0 20px}.sob-flow .guests summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:18px 0;font-weight:700}.sob-flow .guests summary::-webkit-details-marker{display:none}.sob-flow .guests small{display:block;font-weight:400;font-size:13px;color:var(--muted);margin-top:6px;line-height:1.45}.sob-flow .counter-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 0;border-top:1px solid #eee}.sob-flow .counter-row label{font-size:15px;font-weight:600}.sob-flow .counter-row label small{max-width:200px}.sob-flow .counter{display:flex;gap:4px;align-items:center;flex-shrink:0}.sob-flow .counter button,.sob-flow .round{border:1px solid #aaa;background:white;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;color:#555;font-size:21px}.sob-flow .counter input{width:36px;text-align:center;border:0;padding:4px 0;background:#fff;color:#222;-moz-appearance:textfield}.sob-flow .counter input::-webkit-inner-spin-button{display:none}.sob-flow .technical-note{font-size:11px;line-height:1.5;color:#777;margin:14px 0 24px}.sob-flow .next-note{display:flex;gap:16px;margin:28px 0;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.sob-flow .next-note>span{font-size:22px;color:var(--green)}.sob-flow .next-note strong{font-size:15px}.sob-flow .next-note p{font-size:14px;color:var(--muted);margin:8px 0 0}.sob-flow .actions{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:28px}.sob-flow .primary{border:0;border-radius:9999px;padding:17px 25px;background:var(--green);color:#fff;font-size:16px;line-height:1.2;font-weight:700;min-height:52px}.sob-flow .primary:hover{background:#386212}.sob-flow .primary span{margin-left:30px}.sob-flow [data-flow="next"]{margin-left:auto}.sob-flow .stay-card{border:1px solid var(--line);border-radius:14px;padding:24px;position:sticky;top:24px;box-shadow:0 5px 22px #00000008}.sob-flow .room{display:flex;align-items:center;gap:16px}.sob-flow .room img{width:100px;height:100px;object-fit:cover;border-radius:8px}.sob-flow .room h2{font-size:20px;margin-bottom:8px}.sob-flow .room p{font-size:12px;margin:0;color:#666}.sob-flow .stay-card hr{border:0;border-top:1px solid var(--line);margin:24px 0}.sob-flow .stay-card h3{font-size:17px}.sob-flow .stay-card dl{margin:0;font-size:14px}.sob-flow .stay-card dl>div{display:flex;gap:12px;justify-content:space-between;margin:16px 0}.sob-flow .stay-card dt{color:#666}.sob-flow .stay-card dd{margin:0;text-align:right;max-width:65%;line-height:1.45}.sob-flow .price-note{font-size:14px}.sob-flow .price-note p{color:var(--muted);font-size:13px;margin:10px 0 0}.sob-flow .card-foot{font-size:12px;text-align:center;color:var(--green);background:#f3f7ef;border-radius:8px;padding:14px 6px;margin:20px 0 0}.sob-flow .fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:28px 0}.sob-flow .fields label,.sob-flow .message-label{font-size:13px;font-weight:600;display:block}.sob-flow .fields .wide{grid-column:1/-1}.sob-flow .fields input,.sob-flow textarea{width:100%;border:1px solid #aaa;border-radius:8px;background:white;color:#222;padding:15px;margin-top:8px;min-height:50px}.sob-flow .fields small,.sob-flow .check small{display:block;color:var(--muted);font-size:12px;font-weight:400;line-height:1.5;margin-top:7px}.sob-flow textarea{resize:vertical}.sob-flow .check{display:flex;gap:12px;align-items:flex-start;margin:22px 0;line-height:1.5;font-size:14px}.sob-flow .check input{accent-color:var(--green);width:20px;height:20px;flex-shrink:0;margin:0}.sob-flow .consent{border-top:1px solid var(--line);padding-top:24px}.sob-flow .error{color:#a12622;font-size:14px;line-height:1.5}.sob-flow .error:empty{display:none}.sob-flow [aria-invalid=true]{outline:2px solid #a12622}.sob-flow .done{background:#edf5e7;padding:18px;border-radius:8px;color:#315614}.sob-flow .ruled{border-top:1px solid var(--line);padding-top:24px}.sob-flow .user-copy,.sob-flow [data-flow="review-contact"]{white-space:pre-wrap;overflow-wrap:anywhere}.sob-flow footer{margin-top:60px;border-top:1px solid var(--line);padding:28px 0;font-size:13px}.sob-flow footer span{float:right;color:var(--muted)}.sob-flow footer small{display:block;font-size:11px;color:var(--muted);margin-top:14px}.sob-flow dialog{border:0;border-radius:16px;padding:28px;max-width:740px;width:calc(100% - 28px);max-height:92vh;overflow:auto;color:#222;box-shadow:0 15px 90px #0003}.sob-flow dialog::backdrop{background:#0005}.sob-flow .calendar-top{display:flex;justify-content:space-between;gap:20px}.sob-flow .calendar-top p{font-size:14px;color:var(--muted);margin-bottom:0}.sob-flow .round{flex-shrink:0}.sob-flow .calendar-nav{display:flex;justify-content:space-between;margin:22px 0 0}.sob-flow .months{display:grid;grid-template-columns:1fr 1fr;gap:28px}.sob-flow .month h3{text-align:center;font-size:16px;margin:0 0 20px}.sob-flow .days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.sob-flow .weekday{text-align:center;font-size:11px;color:#777;padding-bottom:8px}.sob-flow .day{border:0;border-radius:50%;background:white;color:#222;aspect-ratio:1;min-width:0;font-size:13px;padding:0}.sob-flow .day:disabled{text-decoration:line-through;opacity:.3}.sob-flow .day.range{background:#edf5e7;border-radius:5px}.sob-flow .day.selected{background:var(--green);color:white}.sob-flow .day.today{box-shadow:inset 0 0 0 1px #aaa}.sob-flow .calendar-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:22px;margin-top:22px}.sob-flow dialog .technical-note{margin-bottom:0}@media(max-width:900px){.sob-flow .layout{gap:32px;grid-template-columns:minmax(0,1fr) 310px}.sob-flow .stay-card{padding:20px}.sob-flow .room{gap:12px}.sob-flow .room img{width:78px;height:82px}}@media(max-width:700px){.sob-flow .brand{padding:18px 20px;font-size:16px}.sob-flow .brand a{font-size:11px}.sob-flow .brand img{width:36px;height:30px}.sob-flow .flow-main{padding:32px 20px 0}.sob-flow h1{font-size:32px}.sob-flow .heading>p:last-child{font-size:15px}.sob-flow .steps{gap:20px;margin:26px 0 32px;font-size:12px}.sob-flow .layout{grid-template-columns:1fr;gap:32px}.sob-flow .stay-card{position:static;grid-row:1}.sob-flow .stay-card>h3,.sob-flow .stay-card>dl,.sob-flow .stay-card>hr,.sob-flow .stay-card>.price-note,.sob-flow .stay-card>.card-foot{display:none}.sob-flow .stay-card{padding:16px}.sob-flow .room img{width:72px;height:72px}.sob-flow .room h2{font-size:18px}.sob-flow .room p{font-size:12px}.sob-flow .date-box label{padding:12px}.sob-flow .date-box input{font-size:14px}.sob-flow .section-title{align-items:baseline}.sob-flow .section-title .text-button{font-size:12px}.sob-flow .guests{padding:0 16px}.sob-flow .counter-row label small{font-size:11px}.sob-flow .counter{gap:1px}.sob-flow .technical-note{font-size:10px}.sob-flow .months{grid-template-columns:1fr}.sob-flow .month+.month{display:none}.sob-flow .calendar-nav{margin-bottom:12px}.sob-flow dialog{padding:22px}.sob-flow .day{font-size:14px}.sob-flow .primary{padding:16px 20px}.sob-flow footer span{float:none;display:block;margin-top:8px}.sob-flow .preview-bar{font-size:9px}.sob-flow .preview-bar span{margin-left:8px;font-size:10px}}@media(max-width:360px){.sob-flow .flow-main{padding-left:16px;padding-right:16px}.sob-flow .brand{padding-left:16px;padding-right:16px}.sob-flow .brand a{max-width:70px;text-align:right}.sob-flow .steps{gap:13px;font-size:11px}.sob-flow .steps span{width:22px;height:22px}.sob-flow .fields{gap:12px}.sob-flow .counter input{width:28px}.sob-flow .counter-row label small{max-width:125px}.sob-flow .section-title{gap:8px}.sob-flow .section-title h3{font-size:16px}}/* Focused, two-step enquiry preview. Shared email palette remains unchanged. */.sob-flow .day.selected:disabled{opacity:1;text-decoration:none}.sob-flow .brand{padding-top:16px;padding-bottom:16px}.sob-flow .brand small{display:none}.sob-flow .flow-main{padding-top:32px}.sob-flow h1{font-size:34px;letter-spacing:-.8px;margin-bottom:12px}.sob-flow .heading>p:last-child{font-size:16px;margin-bottom:0}.sob-flow .steps{margin:24px 0 30px;gap:28px}.sob-flow .layout{gap:48px;grid-template-columns:minmax(0,1fr) 340px}.sob-flow [data-flow="trip-heading"]{font-size:22px;margin-bottom:20px}.sob-flow .date-box{overflow:visible}.sob-flow .date-box button{background:white;border:0;border-radius:12px;text-align:left;padding:16px;min-width:0;color:#222}.sob-flow .date-box button+button{border-left:1px solid #aaa;border-radius:0 12px 12px 0}.sob-flow .date-box button:first-child{border-radius:12px 0 0 12px}.sob-flow .date-box button:hover{background:#f7f9f5}.sob-flow .date-box button span{display:block;font-size:10px;letter-spacing:.6px;font-weight:700}.sob-flow .date-box button strong{display:block;font-size:16px;font-weight:400;margin-top:8px}.sob-flow .counter button,.sob-flow .round{width:44px;height:44px}.sob-flow .counter-row{flex-wrap:wrap}.sob-flow .counter-row>label{flex:1;min-width:80px}.sob-flow .counter-row label small{max-width:175px}.sob-flow .field-error{display:block;font-size:12px;font-weight:400;line-height:1.45;color:#a12622;margin:8px 0 0;flex-basis:100%}.sob-flow .field-error:empty{display:none}.sob-flow .check{flex-wrap:wrap}.sob-flow .check>span:not(.field-error){flex:1}.sob-flow .check>.field-error{margin-left:32px}.sob-flow .request-note{color:#666;font-size:13px;line-height:1.5;margin:20px 0 0}.sob-flow .stay-card{box-shadow:none;padding:20px}.sob-flow .room img{width:76px;height:76px;object-position:35% center}.sob-flow .room h2{font-size:19px}.sob-flow .room p{font-size:12px}.sob-flow .stay-details{border-top:1px solid var(--line);margin-top:18px;padding-top:4px}.sob-flow .stay-details summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;padding:14px 0;font-size:13px;line-height:1.6;font-weight:600}.sob-flow .stay-details summary::-webkit-details-marker{display:none}.sob-flow .stay-details[open] summary>span:last-child{transform:rotate(180deg)}.sob-flow .stay-details dl{border-top:1px solid #eee;padding-top:4px}.sob-flow .review-box{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.sob-flow .review-box .section-title{margin-top:0}.sob-flow .review-box>p{white-space:pre-line;font-size:14px}.sob-flow .review-box .request-note{font-size:13px}.sob-flow .preview-notes{margin-top:16px;font-size:11px;color:#777}.sob-flow .preview-notes summary{cursor:pointer}.sob-flow .preview-notes p{margin-top:12px;max-width:700px}.sob-flow .actions{gap:12px}.sob-flow [data-flow="next"]{font-size:15px}@media(max-width:900px){.sob-flow .layout{gap:28px;grid-template-columns:minmax(0,1fr) 290px}.sob-flow .stay-card{padding:16px}}@media(max-width:700px){.sob-flow .flow-main{padding-top:24px}.sob-flow h1{font-size:28px;line-height:1.15}.sob-flow .heading>p:last-child{font-size:14px}.sob-flow .brand{padding:14px 20px}.sob-flow .steps{margin:20px 0 24px}.sob-flow .layout{grid-template-columns:1fr;gap:24px}.sob-flow .stay-card{padding:14px 16px}.sob-flow .room img{width:52px;height:52px}.sob-flow .room h2{font-size:16px;margin-bottom:4px}.sob-flow .room p{font-size:11px}.sob-flow .stay-details{margin-top:12px}.sob-flow .stay-details summary{padding:10px 0 6px;font-size:12px}.sob-flow .date-box button{padding:14px 12px}.sob-flow .date-box button strong{font-size:14px}.sob-flow .counter-row label small{font-size:11px}.sob-flow .counter{gap:0}.sob-flow .counter input{width:30px}.sob-flow .fields{grid-template-columns:1fr}.sob-flow .actions{flex-wrap:wrap}.sob-flow [data-flow="next"]{width:100%;margin-left:0}.sob-flow .months{gap:0}.sob-flow dialog{padding:16px}.sob-flow .calendar-top h2{font-size:21px}.sob-flow .calendar-top p{font-size:13px}.sob-flow .days{gap:0}.sob-flow .day{min-height:36px}.sob-flow .calendar-bottom{margin-top:16px;padding-top:16px}.sob-flow footer{margin-top:40px}}

.sob-flow{max-width:1104px;margin:24px auto;background:#fff;color:#222;border:1px solid #ddd;border-radius:16px;overflow:visible;font:16px/1.5 Arial,Helvetica,sans-serif}
.sob-flow .flow-main{padding:28px}
.sob-flow form{margin:0}.sob-flow input,.sob-flow textarea{max-width:100%;font-size:16px}
.sob-flow .sob-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.sob-flow .native-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sob-flow .native-dates input{display:block;width:100%;padding:12px}
.sob-flow:not(.enhanced) [data-edit],.sob-flow:not(.enhanced) [data-count]{display:none}
.sob-flow [data-flow="date-note"],.sob-flow [data-flow="review-trip"]{white-space:pre-line}
.sob-flow [data-flow="next"]{margin-left:auto}
@media(max-width:700px){.sob-flow .flow-main{padding:20px 16px}.sob-flow h1{font-size:28px}.sob-flow [data-flow="next"]{width:100%}}
.sob-flow .heading>h2{font-size:40px;line-height:1.1;letter-spacing:-1.2px;margin-bottom:16px}
.sob-flow .children-notice{padding:14px 16px;margin:12px 0 20px;background:#f3f7ee;border-left:3px solid var(--green);border-radius:0 6px 6px 0;font-size:14px;line-height:1.55;color:#35472b}
.sob-flow .children-notice p{margin:0 0 8px}
.sob-flow .children-notice p:last-child{margin-bottom:0}
@media(max-width:700px){.sob-flow .heading>h2{font-size:28px}.sob-flow .children-notice{font-size:14px}}
.sob-flow .price-breakdown{margin:24px 0;padding:20px;border:1px solid #ddd;border-radius:12px;background:#fff}
.sob-flow .price-breakdown h3{margin:0 0 16px;font-size:20px;line-height:1.3}
.sob-flow .price-breakdown dl{margin:0}
.sob-flow .price-breakdown dl>div{display:flex;justify-content:space-between;gap:16px;padding:8px 0}
.sob-flow .price-breakdown dt{font-weight:400;min-width:0}
.sob-flow .price-breakdown dd{margin:0;white-space:nowrap}
.sob-flow .price-breakdown .price-total{margin-top:8px;padding-top:16px;border-top:1px solid #ddd;color:#477b18;font-weight:700}
.sob-flow .price-breakdown .price-total dt{font-weight:700}
/* Geometry, not font baselines: resist inherited Astra button padding/line-height. */
.sob-flow .counter button,.sob-flow button.round{padding:0;line-height:1;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;letter-spacing:0}
.sob-flow .sob-icon{display:block;position:relative;width:18px;height:18px;flex:0 0 18px;margin:0;padding:0}
.sob-flow .sob-icon::before,.sob-flow .sob-icon::after{content:"";position:absolute;display:block;box-sizing:border-box;background:currentColor;border-radius:1px}
.sob-flow .sob-icon-plus::before,.sob-flow .sob-icon-minus::before{width:16px;height:2px;left:1px;top:8px}
.sob-flow .sob-icon-plus::after{height:16px;width:2px;left:8px;top:1px}
.sob-flow .sob-icon-close::before,.sob-flow .sob-icon-close::after{width:18px;height:2px;left:0;top:8px;transform:rotate(45deg)}
.sob-flow .sob-icon-close::after{transform:rotate(-45deg)}
.sob-flow .sob-icon-previous::before,.sob-flow .sob-icon-next::before{width:10px;height:10px;left:5px;top:4px;border:solid currentColor;border-width:0 0 2px 2px;background:none;border-radius:0;transform:rotate(45deg)}
.sob-flow .sob-icon-next::before{left:2px;transform:rotate(225deg)}
.sob-flow .child-ages{padding:0 0 20px}.sob-flow .age-hint{font-size:13px;color:#555;margin:0 0 12px}
.sob-flow .child-ages label{display:block;font-size:14px;margin:12px 0}
.sob-flow .child-ages select{display:block;font:16px/1.5 Arial,sans-serif;width:100%;min-height:44px;margin-top:6px;padding:8px 12px;color:#222;background:#fff;border:1px solid #aaa;border-radius:8px}
.sob-flow select:focus-visible{outline:3px solid var(--green);outline-offset:3px}
/* Multi-room: fixed cards per accommodation, toggled on/off, no accommodation duplication possible. */
.sob-flow .room-card{border-top:1px solid #eee;padding:16px 0}
.sob-flow .room-card:first-child{border-top:0}
.sob-flow .room-toggle{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:15px;font-weight:600}
.sob-flow .room-toggle input{accent-color:var(--green);width:22px;height:22px;flex-shrink:0;margin:0}
.sob-flow .room-toggle img{width:44px;height:40px;object-fit:cover;border-radius:6px;flex-shrink:0}
.sob-flow .room-toggle small{display:block;font-weight:400;font-size:12px;color:var(--muted);margin-top:2px}
.sob-flow .room-fields{padding:4px 0 0 56px}
@media(max-width:700px){.sob-flow .room-fields{padding-left:0}.sob-flow .room-toggle img{width:36px;height:32px}}
/* Compact Airbnb-style widget: sits in a column next to a room's own description
   text. Framing/wording/order deliberately mirror Airbnb's own small search
   widget — one bordered box (dates row + guests row, one divider between them),
   "Add dates for prices" heading, "1 guest" default — with our own green pill
   button kept as-is per owner instruction 2026-09-11. */
.sob-widget{--green:#477b18;--line:#ddd;--muted:#717171;font:15px/1.5 Arial,Helvetica,sans-serif;color:#222;max-width:360px;border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 6px 20px #00000012;background:#fff}
.sob-widget *{box-sizing:border-box}
.sob-widget [hidden]{display:none!important}
.sob-widget form{margin:0}
.sob-widget input,.sob-widget button{font:inherit}
.sob-widget button{cursor:pointer}
.sob-widget button:disabled{opacity:.32;cursor:not-allowed}
/* Baseline reset against the host theme's own global button style (observed live:
   a 30px pill radius on every <button>); specific rules below re-add roundness only
   where a circular/pill control is actually wanted. */
.sob-widget button{border-radius:0;box-shadow:none}
.sob-widget button:focus-visible,.sob-widget input:focus-visible,.sob-widget summary:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.sob-widget-heading{font-size:22px;font-weight:800;line-height:1.2;margin:0 0 20px;color:#222}
.sob-widget-box{border:1px solid #b0b0b0;border-radius:12px;overflow:hidden;margin-bottom:16px}
.sob-widget-dates,.sob-widget-date-box{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #b0b0b0}
.sob-widget-dates label{display:block;padding:12px 14px;min-width:0;font-weight:700;font-size:10px;letter-spacing:.4px;text-transform:uppercase;color:#222}
.sob-widget-dates label+label{border-left:1px solid #b0b0b0}
.sob-widget-dates input{display:block;width:100%;border:0;padding:6px 0 0;font-size:14px;color:#222;background:#fff;text-transform:none;font-weight:400;letter-spacing:0}
/* Reset the host theme's own global button look (observed live: a 30px
   border-radius bleeding through onto these two — which, side by side, drew a
   lens/arc at their shared edge instead of a straight seam). A thin
   pseudo-element divider replaces the old border so neither half reads as a button. */
.sob-widget-date-box{position:relative}
.sob-widget .sob-widget-date-box button{background:#fff;border:0;border-radius:0;box-shadow:none;text-align:left;padding:12px 14px;min-width:0;color:#222}
.sob-widget-date-box::after{content:"";position:absolute;top:14px;bottom:14px;left:50%;width:1px;background:rgba(0,0,0,.14)}
.sob-widget-date-box span{display:block;font-weight:700;font-size:10px;letter-spacing:.4px;text-transform:uppercase}
.sob-widget-date-box strong{display:block;font-weight:400;font-size:14px;margin-top:4px;color:#222}
.sob-widget-date-box strong.is-placeholder{color:var(--muted)}
.sob-widget-guests summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px}
.sob-widget-guests summary::-webkit-details-marker{display:none}
.sob-widget-guests summary>span:first-child{font-weight:700;font-size:10px;letter-spacing:.4px;text-transform:uppercase}
.sob-widget-guests summary>span:last-child{font-size:14px;color:#222;font-weight:400}
.sob-widget-guests[open] summary{border-bottom:1px solid #eee}
.sob-widget .counter-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-top:1px solid #eee}
.sob-widget .counter-row label{font-size:13px;font-weight:600}
.sob-widget .counter-row label small{display:block;font-weight:400;color:var(--muted);font-size:11px;margin-top:2px}
.sob-widget .counter{display:flex;gap:4px;align-items:center;flex-shrink:0}
.sob-widget .counter button{border:1px solid #aaa;background:#fff;border-radius:50%;width:28px;height:28px;line-height:1;color:#555;font-size:15px;padding:0}
.sob-widget .counter input{width:28px;text-align:center;border:0;padding:2px 0;background:#fff;color:#222;-moz-appearance:textfield}
.sob-widget .counter input::-webkit-inner-spin-button{display:none}
/* Two classes' worth of specificity so the baseline `.sob-widget button` reset
   above (a class+element selector) can never win this — regression fixed live
   2026-09-12: the reset's higher specificity was silently squaring off this
   button's corners regardless of source order. */
.sob-widget .sob-widget-submit{display:block;width:100%;border:0;border-radius:9999px;padding:13px;background:var(--green);color:#fff;font-size:15px;font-weight:700}
.sob-widget .sob-widget-submit:hover{background:#386212}
.sob-widget-calendar{border:0;border-radius:16px;padding:20px;max-width:320px;width:calc(100% - 28px);box-shadow:0 15px 60px #0004;color:#222}
.sob-widget-calendar::backdrop{background:#0006}
.sob-widget-cal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.sob-widget-cal-top h3{margin:0;font-size:15px;font-weight:700}
.sob-widget .sob-widget-cal-top button{border:1px solid #aaa;background:#fff;border-radius:50%;width:30px;height:30px;font-size:16px;line-height:1;color:#555;padding:0}
.sob-widget-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.sob-widget-weekday{text-align:center;font-size:10px;color:#777;padding-bottom:6px}
/* The light range band lives on this wrapper (behind), never on the day button
   itself: a same-element ::before always paints ON TOP of its own element's
   background (negative z-index only demotes it below the element's own content,
   not below its background) — put on the button, the band cut a selected day's
   dark circle visibly in half instead of sitting behind it. One unbroken band
   across the whole range instead of separate rounded squares with visible white
   seams: a plain-rectangle ::before per cell, stretched past its own box into the
   grid gap on both sides so neighbours' fills touch exactly. The two ends (the
   arrival/departure circles) only fill their inward-facing half, so the band
   visibly starts at the circle itself, not a whole cell-width later. A one-night
   stay (start/end adjacent, no .range cell between) still meets exactly at the gap. */
.sob-widget-cal-cell{position:relative}
.sob-widget-cal-cell.range::before{content:"";position:absolute;top:0;bottom:0;left:-2px;right:-2px;background:#edf5e7}
.sob-widget-cal-cell.range-start::before{content:"";position:absolute;top:0;bottom:0;left:50%;right:-2px;background:#edf5e7}
.sob-widget-cal-cell.range-end::before{content:"";position:absolute;top:0;bottom:0;left:-2px;right:50%;background:#edf5e7}
/* padding:0 matters here as much as the border-radius reset elsewhere — the host
   theme's own button padding was pushing the day number off-center in these tiny
   circles; flex centering makes it exact regardless of the theme's own line-height.
   background:transparent (not white) so a .range cell's band behind it — full
   square, no circle — reads as one continuous fill, not a white disc on green. */
.sob-widget .sob-widget-cal-grid button{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:100%;border:0;border-radius:50%;background:transparent;color:#222;aspect-ratio:1;font-size:12px;min-width:0;padding:0}
.sob-widget .sob-widget-cal-grid button:disabled{text-decoration:line-through;opacity:.3}
.sob-widget .sob-widget-cal-grid button.selected{background:var(--green);color:#fff}
/* A picked date (arrival, while now choosing departure) falls before the new
   earliest-selectable day and would otherwise inherit the disabled look above —
   it must read as selected, never as struck-through/unavailable. */
.sob-widget .sob-widget-cal-grid button.selected:disabled{opacity:1;text-decoration:none}
.sob-widget .sob-widget-cal-close{display:block;width:100%;margin-top:14px;border:0;border-radius:0;background:none;text-decoration:underline;font-size:13px;padding:8px 0;color:#222}
@media(max-width:480px){.sob-widget{max-width:100%}}
/* Stay-card info hygiene: one static label + one live line share the summary slot
   (only ever one visible at a time), and the per-room breakdown lives in exactly
   one place — this list — not repeated in the summary or the left accordion badge. */
.sob-flow .stay-summary-text{display:flex;flex-direction:column;gap:2px;text-align:left}
.sob-flow .stay-summary-live{font-weight:400;color:var(--muted);font-size:12px}
.sob-flow .stay-details[open] .stay-summary-live{display:none}
.sob-flow .stay-details:not([open]) .stay-summary-static{display:none}
.sob-flow .stay-rooms{margin:4px 0 0;padding-top:12px;border-top:1px solid #eee;display:grid;gap:10px}
.sob-flow .stay-rooms:empty{display:none;border:0;margin:0;padding:0}
.sob-flow .stay-room{font-size:13px;line-height:1.5}
.sob-flow .stay-room strong{display:block;font-weight:600;margin-bottom:2px}
.sob-flow .stay-room span{color:var(--muted)}
/* One header block per active room — grows/shrinks with the room toggles below,
   not frozen on whichever room the page itself started on. */
.sob-flow .room-list{display:grid;gap:16px}
.sob-flow .room-list .room+.room{padding-top:16px;border-top:1px solid var(--line)}
.sob-flow .review-rooms{margin:14px 0 18px;display:grid;gap:10px}
.sob-flow .review-rooms .stay-room{font-size:14px}

/* 0.9.9: approved typography pass. Scoped to booking UI; no theme-wide resets.
   Keep existing data hooks, native fields and calendar geometry intact. */
/* Observed EN Terracini wrapper only. Preserve the outer photographic container. */
#post-1576 #book.uagb-block-icmxmysr:has(>.sob-flow){background-color:transparent!important;padding:0!important}
/* Keep the photo visible behind the outer booking wrapper on every page. */
#book.uagb-block-icmxmysr:has(>.sob-flow){background-color:transparent!important}
.sob-flow{--muted:#595959;border:0;border-radius:12px;font:16px/1.5 Arial,Helvetica,sans-serif}
.sob-flow h2,.sob-flow h3,.sob-flow button{text-transform:none;font-family:inherit}
.sob-flow h2{font-size:22px;line-height:28px;font-weight:600;letter-spacing:0}
.sob-flow h3{font-size:18px;line-height:24px;font-weight:600;letter-spacing:0}
.sob-flow .heading>h2{font-size:28px;line-height:34px;font-weight:600;letter-spacing:-.4px;margin-bottom:12px}
.sob-flow .heading>p:last-child{font-size:16px;line-height:24px;max-width:60ch;margin:0}
.sob-flow .brand{font-size:16px;line-height:24px;border:0;padding:24px 28px 0}
.sob-flow .flow-main{padding:24px 28px 32px}
.sob-flow .steps{margin:24px 0 32px;padding:0;gap:24px;font-size:14px;line-height:20px;flex-wrap:wrap}
.sob-flow .steps li{margin:0;gap:8px}
.sob-flow .steps span{flex:0 0 28px;width:28px;height:28px;font-size:14px;line-height:1}
.sob-flow .layout{gap:32px}
.sob-flow .layout>form{min-width:0}
.sob-flow .guests{border:0;border-radius:0;padding:0}
.sob-flow .guests summary{padding:16px 0;font-size:18px;line-height:24px;font-weight:600}
.sob-flow .room-card{padding:24px 0;border-color:var(--line)}
.sob-flow .room-toggle{font-size:18px;line-height:24px;font-weight:600;align-items:flex-start}
.sob-flow .room-toggle input{margin-top:3px}
.sob-flow .room-toggle img{width:56px;height:56px}
.sob-flow .room-toggle small,.sob-flow .guests small,.sob-flow .counter-row label small,
.sob-flow .fields small,.sob-flow .check small{font-size:14px;line-height:20px;color:var(--muted);margin-top:4px}
.sob-flow .counter-row{padding:16px 0}
.sob-flow .counter-row label,.sob-flow .fields label,.sob-flow .message-label{font-size:16px;line-height:24px;font-weight:600}
.sob-flow .counter input{font-variant-numeric:tabular-nums;width:36px}
.sob-flow .counter button:disabled,.sob-flow button.round:disabled{opacity:.45}
.sob-flow .date-box button span{font-size:14px;line-height:20px;letter-spacing:0;font-weight:600;text-transform:none}
.sob-flow .date-box button strong{font-size:16px;line-height:24px;margin-top:4px;font-weight:600;text-transform:none}
.sob-flow .date-box button strong.is-placeholder{color:var(--muted);font-weight:400}
.sob-flow .date-note{font-size:14px;line-height:20px;margin:12px 0 24px}
.sob-flow .request-note,.sob-flow .technical-note,.sob-flow .field-error,.sob-flow .review-box .request-note{font-size:14px;line-height:20px}
.sob-flow .check{font-size:16px;line-height:24px}
.sob-flow .stay-card{border:0;border-left:1px solid var(--line);border-radius:0;padding:0 0 0 24px;box-shadow:none}
.sob-flow .stay-card .room-list{display:none} /* photos/descriptions belong to room selectors, not repeated summaries */
.sob-flow .stay-details{border:0;margin:0;padding:0}
.sob-flow .stay-details summary,.sob-flow .stay-summary-live,.sob-flow .stay-room{font-size:14px;line-height:20px}
.sob-flow .stay-card dl{font-size:16px;line-height:24px}
.sob-flow .price-breakdown{border:0;border-top:1px solid var(--line);border-radius:0;padding:24px 0 0;margin:24px 0}
.sob-flow .price-breakdown h3{font-size:18px;line-height:24px}
.sob-flow .price-breakdown dd{font-variant-numeric:tabular-nums}
.sob-flow .price-breakdown .price-total{font-size:18px;line-height:24px}
.sob-flow [data-flow="next"]{font-size:16px;line-height:24px}
.sob-flow .weekday{font-size:14px;line-height:20px;color:var(--muted)}
.sob-flow .day{font-size:16px;display:flex;align-items:center;justify-content:center;line-height:1}
.sob-flow .calendar-top p{font-size:14px;line-height:20px}
.sob-flow .room-toggle>span,.sob-flow .check>span{min-width:0;overflow-wrap:break-word}
@media(max-width:700px){
 .sob-flow .layout{grid-template-columns:minmax(0,1fr);gap:32px}
 .sob-flow .stay-card{grid-row:auto;position:static;border:0;border-top:1px solid var(--line);padding:16px 0 0}
 .sob-flow .brand{padding:20px 16px 0}
 .sob-flow .flow-main{padding:24px 16px}
 .sob-flow .room-fields{padding-left:0}
 .sob-flow .room-toggle img{width:48px;height:48px}
 .sob-flow .steps{gap:16px}
 .sob-flow .counter-row label small{max-width:none}
 .sob-flow .calendar-top h2{font-size:22px;line-height:28px}
}

/* 0.9.10: uninterrupted date band, matching the compact widget. */
.sob-flow .days{column-gap:0;row-gap:3px}
.sob-flow .sob-calendar-cell{position:relative;min-width:0;isolation:isolate}
.sob-flow .sob-calendar-cell::before{position:absolute;inset:0;background:#edf5e7;z-index:-1}
.sob-flow .sob-calendar-cell.range::before{content:""}
.sob-flow .sob-calendar-cell.range-start::before{content:"";left:50%}
.sob-flow .sob-calendar-cell.range-end::before{content:"";right:50%}
.sob-flow .sob-calendar-cell .day{position:relative;width:100%;background:transparent}
.sob-flow .sob-calendar-cell .day.range{border-radius:0;background:transparent}
.sob-flow .sob-calendar-cell .day.selected{border-radius:50%;background:var(--green);color:#fff}
/* 0.9.10: the intro-column widget placement (`.soh-room-intro-widget`, added to every
   room page's own upper introductory row alongside `.soh-room-intro-copy`) is far
   shorter than the description text beside it. Under the row's own CSS Grid/Flex
   `align-items:start`, that left it pinned to the top with a large empty gap below —
   the "stuck to the top" look reported live on every room page, not just one. Stretch
   this column to the row's full height, then center the actual widget card within it,
   instead of the page-content-level magic-number margin hack this replaces. */
.soh-room-intro-widget{align-self:stretch;display:flex;align-items:center;justify-content:center}
/* Event dates remain selectable: a gold dot is independent of the green date range. */
/* Event days: carrot digits only. The explanation appears beside the calendar when such a day is clicked. */
.sob-widget .sob-widget-cal-grid button.sob-event-day:not(.selected):not(:disabled),.sob-flow .day.sob-event-day:not(.selected):not(:disabled){color:#cc5a0a}
.sob-event-notice{margin:12px 0 0;padding:0;border:0;background:none;color:#9c4308;font-size:14px;line-height:1.5;text-align:left}
.sob-event-notice[hidden],.sob-event-popup[hidden]{display:none!important}
.sob-event-notice p,.sob-event-popup p{margin:0 0 6px;font-size:inherit;line-height:inherit}
.sob-event-notice ul{margin:0;padding-left:18px}
.sob-event-notice a,.sob-event-popup a{color:inherit;text-decoration:underline}
.sob-event-popup{margin-top:14px;color:#9c4308;font-size:14px;line-height:1.5;text-align:left}
.sob-event-popup.is-right,.sob-event-popup.is-left{position:absolute;width:240px;margin:0;padding:16px 18px;border-radius:16px;background:#fff;box-shadow:0 15px 60px #0004}
.sob-event-popup.is-right{left:calc(100% + 12px)}
.sob-event-popup.is-left{right:calc(100% + 12px)}
.sob-widget-calendar.sob-popup-out,.sob-flow dialog.sob-popup-out{overflow:visible}
