/* Bid2Stay 29.2.12 — Unified Responsive Design System lock.
   Applied AFTER historical styles; non-destructive; behavior, routing, auth and map controls untouched.
   Naming: b2s-ds-; keep legacy selectors scoped to layout repair only. */
:root {
 --b2s-ds-ink:#102339; --b2s-ds-ink-deep:#03080e;
 --b2s-ds-gold:#e7b64e; --b2s-ds-surface:#fff; --b2s-ds-muted:#f5f7fa;
 --b2s-ds-text:#172538; --b2s-ds-text-muted:#536477;
 --b2s-ds-border:#dbe3ec; --b2s-ds-success:#18735c;
 --b2s-ds-space-1:4px; --b2s-ds-space-2:8px; --b2s-ds-space-3:12px;
 --b2s-ds-space-4:16px; --b2s-ds-space-5:24px; --b2s-ds-space-6:32px;
 --b2s-ds-radius-sm:8px; --b2s-ds-radius-md:12px; --b2s-ds-radius-lg:18px;
 --b2s-ds-control-height:44px; --b2s-ds-focus:2px solid var(--b2s-ds-gold);
}
html { -webkit-text-size-adjust:100%; }
html body { min-width:0; }
html body :is(main,article,section,header,footer,nav,form,fieldset) { min-width:0; }
/* Keep interactive controls readable without altering special icon/map buttons. */
html body :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]),textarea,select) {
 box-sizing:border-box; max-width:100%;
}
html body :is(input,textarea,select,button,a):focus-visible { outline:var(--b2s-ds-focus);outline-offset:3px; }
html body :is(button,input[type="submit"],input[type="button"],a.btn,a.b2s-btn,a.b2s-gh-btn,a.s04-btn) {
 -webkit-tap-highlight-color:transparent;
}
/* Generic content should shrink rather than widen the viewport. */
html body :is(.card,.panel,.form-row,.field-row,.filter-row,.actions,.button-row,.card-actions,
 .b2s-public-action-set,.b2s-gh-actions,.b2s-global-actions,.b2s2312-header-actions) {min-width:0;max-width:100%;}
html body :is(.actions,.button-row,.card-actions,.b2s-public-action-set,.b2s-gh-actions) {row-gap:var(--b2s-ds-space-2);}
/* Only text-labelled CTAs can wrap; no blanket button resizing. */
html body :is(a.btn,a.b2s-btn,a.b2s-gh-btn,a.s04-btn,
 button[type="submit"],input[type="submit"]) {overflow-wrap:break-word;}
/* Authenticated and public headers retain preexisting arrangement, with predictable gaps. */
@media(min-width:1101px){
 html body[data-b2s-button-layout] :is(.b2s-global-actions,.b2s2312-header-actions):has(> select[aria-label="Switch workspace"]) {column-gap:12px;min-width:0;}
 html body[data-b2s-button-layout] :is(.b2s-global-header-inner,.b2s2312-topbar):has(select[aria-label="Switch workspace"]) {column-gap:16px;}
}
@media (min-width:821px) and (max-width:1100px){
 html body[data-b2s-button-layout] :is(.b2s-global-header-inner,.b2s2312-topbar) {min-width:0;}
 html body[data-b2s-button-layout] :is(.b2s-global-actions,.b2s2312-header-actions) {min-width:0;}
}
@media(max-width:820px){
 html body :is(.form-row,.field-row,.filter-row) {min-width:0;}
 html body :is(.form-row,.field-row,.filter-row) > * {min-width:0;max-width:100%;}
 html body :is(.actions,.button-row,.card-actions,.b2s-public-action-set,.b2s-gh-actions) {row-gap:10px;}
 html body :is(img,video,canvas) {max-width:100%;}
}
@media(max-width:380px){
 html body :is(.actions,.button-row,.card-actions) > :is(a.btn,a.b2s-btn,a.b2s-gh-btn,a.s04-btn,button[type="submit"]) {max-width:100%;min-width:0;}
}
@media(prefers-reduced-motion:reduce){
 html body :is(.b2s-ds-card,.b2s-ds-action) {animation:none;transition:none;}
}
@media(forced-colors:active){
 html body :is(input,select,textarea,button):focus-visible {outline:2px solid Highlight;}
}

/* 29.2.14 hospitality presentation. Scoped to content; navigation dimensions and auth surfaces retain their locks. */
:root{--b2s-premium-charcoal:#18212b;--b2s-premium-gold:#d4aa55;--b2s-premium-border:rgba(91,110,130,.18);--b2s-premium-shadow:0 6px 22px rgba(16,28,40,.055)}
.b2s-premium-icon{width:19px;height:19px;flex:0 0 19px;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.b2s-premium-control{display:inline-flex;align-items:center;gap:8px}
.b2s-premium-feature{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:13px;background:rgba(212,170,85,.13);color:var(--b2s-premium-gold)}
.b2s-premium-feature>.b2s-premium-icon{width:24px;height:24px;flex-basis:24px}
html body main :is(.dashboard-panel,.availability-card,.b2s-gh-welcome-card,.b2s-how-card,.b2s30-destination-card,.market-card,.b2s15-property-card,.b2s28190-panel,.s04-panel){box-sizing:border-box;min-width:0;border-radius:16px;box-shadow:var(--b2s-premium-shadow);height:auto;align-self:start}
html body main :is(.dashboard-panel,.availability-card,.b2s-gh-welcome-card,.b2s-how-card){padding:20px}
html body main :is(.b2s-how-grid,.b2s30-destination-grid,.b2s2880-two-grid,.b2s-gh-welcome-grid,.b2s-gh-action-grid){align-items:start;gap:18px}
html body main :is(.b2s30-card-content,.market-card-body,.b2s15-property-content){padding:18px;min-width:0}
html body main :is(.dashboard-section-head,.b2s-gh-section-head){margin-bottom:14px;gap:12px}
html body main :is(.dashboard-panel h2,.availability-card h2,.b2s-gh-section h2){line-height:1.3;font-size:clamp(19px,1.7vw,24px)}
html body main :is(.dashboard-panel p,.b2s-how-card p,.b2s30-card-description){line-height:1.55}
html body main :is(.actions,.card-actions,.market-card-actions,.b2s15-property-actions,.b2s2842-share-actions,.dashboard-action-buttons){gap:8px;flex-wrap:wrap;min-width:0}
html body main :is(.btn,.s04-btn,.b2s15-btn,.b2s30-card-button){min-height:44px;box-sizing:border-box;border-radius:10px;line-height:1.3;white-space:normal}
html body main :is(.table-wrap,.dashboard-table-wrap){max-width:100%;overflow:auto;overscroll-behavior-x:contain}
html body main :is(.table,.dashboard-table) :is(th,td){padding:12px 14px;vertical-align:middle}
html body main :is(.s04-grid,.detail-grid,.b2s2880-filter-grid){gap:14px;min-width:0}
html body main :is(.s04-field,.field,.detail-item){min-width:0}
html body main :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){border-radius:10px;max-width:100%;box-sizing:border-box}
html body main :is(.b2s30-destination-image,.market-card-image img){width:100%;aspect-ratio:16/10;height:auto;object-fit:cover;display:block}
html body main :is(.detail-gallery-main,.detail-gallery-small){background:#eef1f4;overflow:hidden;border-radius:16px}
html body main .detail-gallery-main{aspect-ratio:16/10}
html body main .detail-gallery-small{aspect-ratio:16/10}
html body main :is(.detail-gallery-main,.detail-gallery-small)>img{width:100%;height:100%;object-fit:cover;display:block}
html body main .b2s15-property-image{min-height:190px;background-size:cover;background-position:center;aspect-ratio:16/10}
html body main .b2s15-property-top{gap:12px;flex-wrap:wrap}
html body main .b2s15-room-card{gap:8px;padding:12px;border-radius:10px;min-width:0}
html body main .b2s15-room-card>div{min-width:0}
html body main .b2s15-room-card :is(strong,span){overflow-wrap:anywhere}
.b2s-premium-share{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0;padding:14px;border:1px solid var(--b2s-premium-border);border-radius:14px}
.b2s-premium-share>strong{margin-right:auto}.b2s-premium-share-status{flex-basis:100%;font-size:13px}
.b2s-premium-share button,.b2s-premium-more{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;background:#fff;color:#18212b;border:1px solid #cbd3db;border-radius:10px;font:inherit;font-size:14px;cursor:pointer}
.b2s-premium-more{margin:16px auto;display:flex}.b2s-premium-image-error{background:#edf0f3;object-fit:contain!important}
@media(min-width:1024px){
 html body main .b2s30-results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
 html body main .b2s15-property-grid{display:flex;flex-direction:column;min-width:0}
 html body main .b2s15-property-image{width:100%;height:220px;min-height:0;aspect-ratio:auto}
 html body main .b2s15-room-card{display:flex;flex-wrap:wrap;align-items:center}
 html body main .b2s15-room-card>div{flex:1 1 100%}
 html body main .b2s15-property-actions{display:flex;flex-wrap:wrap}
 .b2s-premium-collapsed{display:none!important}
}
@media(max-width:1023px){.b2s-premium-more{display:none}}
@media(max-width:820px){
 html body main :is(.dashboard-panel,.availability-card,.b2s-gh-welcome-card,.b2s-how-card){padding:16px}
 html body main :is(.b2s30-card-content,.market-card-body,.b2s15-property-content){padding:16px}
 html body main :is(.b2s30-results-grid,.b2s30-destination-grid){grid-template-columns:minmax(0,1fr);gap:16px}
 html body main .b2s15-property-grid{grid-template-columns:minmax(0,1fr)}
 html body main .b2s15-property-image{width:100%;min-height:0;height:210px;aspect-ratio:16/10}
 html body main :is(.b2s15-property-actions,.market-card-actions)>a{min-width:0;max-width:100%;overflow-wrap:break-word}
 .b2s-premium-control{gap:6px}.b2s-premium-share button{flex:1 1 125px}
}
@media(max-width:380px){html body main .b2s15-property-image{height:180px}.b2s-premium-share{padding:12px}}
@media(prefers-reduced-motion:reduce){html body main :is(.market-card,.b2s15-property-card,.b2s30-destination-card){transition:none;animation:none}}
/* Historical component rules use !important; these precise ownership rules win without changing mobile menus. */
html body main .b2s-premium-control:has(>.b2s-premium-icon)::before{content:none!important;display:none!important}
html body main .b2s-premium-control>.b2s-premium-icon{display:inline-block!important;width:19px!important;height:19px!important;min-width:19px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.9!important;stroke-linecap:round;stroke-linejoin:round}
html body main .b2s-premium-feature>.b2s-premium-icon{width:24px!important;height:24px!important}
html body main .b2s-premium-more{display:flex!important;align-items:center!important;justify-content:center!important;margin:18px auto!important;min-height:44px!important;padding:10px 18px!important;border-radius:10px!important;background:#fff!important;color:#18212b!important;border:1px solid #cbd3db!important;font:inherit!important;font-size:14px!important;box-shadow:none!important}
html body main .b2s-premium-more[hidden]{display:none!important}
@media(min-width:1024px){html body main :is(.b2s30-results-grid,.b2s30-destination-grid)>.b2s-premium-collapsed{display:none!important}}
@media(max-width:1023px){html body main .b2s-premium-more{display:none!important}}
html body main #b2sHomeDestinationGrid>article.b2s30-destination-card{align-self:start!important;height:auto!important;border-radius:16px!important}
@media(min-width:1024px){html body main #b2sHomeDestinationGrid>article.b2s30-destination-card.b2s-premium-collapsed.b2s-premium-collapsed{display:none!important}}
/* Rounded outline tokens also cover existing sprite icons; filled stars and brand marks stay intact. */
html body :is(.b2s2887-icon,.b2s2922-icon,.b2s282321-dock-icon){stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
