/* 115 Schiller v0.9.19 — unified mobile / narrow-viewport audit.
   Single final cascade layer. No booking, payment or guest data logic altered. */
html{scroll-padding-top:92px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0!important;max-width:100%;min-width:0}
*,*::before,*::after{box-sizing:border-box}
body{overflow-x:clip}
main,section,article,form,fieldset{min-width:0}
main img,main video,main iframe{max-width:100%}
:where(main) :where(p,h1,h2,h3,blockquote,li){overflow-wrap:break-word}
:where(main) :where(input,select,textarea,button){max-width:100%;min-width:0}
:where(main) :where(input[type="date"],input[type="time"],input[type="text"],input[type="email"],input[type="tel"],select,textarea){box-sizing:border-box}
:where(main) :where(input,select,textarea){font-size:max(16px,1em)}
:where(main) :where(a,button,summary,[role="button"]){touch-action:manipulation}
:where(main) [id]{scroll-margin-top:104px}
/* Date controls: accessible native pickers with an always-visible empty-state hint.
   The hint overlays only the empty state, never replaces input or affects form submission. */
.sch-date-control{display:block;position:relative;width:100%;min-width:0;max-width:100%}
.sch-date-control>input[type=date]{width:100%!important;max-width:100%;min-width:0;min-height:49px;display:block;box-sizing:border-box;color:#17382f!important;background:#fff}
.sch-date-control .sch-date-hint{display:none;pointer-events:none;position:absolute;left:13px;top:50%;transform:translateY(-50%);background:#fff;color:#63766a;font-size:14px;font-weight:500;letter-spacing:0;line-height:1.3;padding:2px 4px 2px 0;max-width:calc(100% - 63px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;z-index:1}
.sch-date-control.sch-date-empty:not(.sch-date-focus) .sch-date-hint{display:block}
.bookbar .sch-date-control>input[type=date]{min-height:35px;border:0}
.bookbar .sch-date-hint{left:0;font-size:13px}
.sch-date-control:focus-within>input[type=date]{outline-offset:2px}
/* Safety / incident reporting: keep the single emergency action separate from text.
   Never allow iOS-detected phone numbers to inherit giant button styling. */
.safe-body .safe-shell{min-width:0}
.safe-body .safe-emergency{grid-template-columns:minmax(0,1fr) auto}
.safe-body .safe-emergency>div{min-width:0}
.safe-body .safe-emergency>div h2{overflow-wrap:normal}
.safe-body .safe-emergency>div a[href^="tel:"]{color:inherit!important;background:transparent!important;display:inline!important;min-width:auto!important;width:auto!important;padding:0!important;font:inherit!important;text-decoration:underline!important}
.safe-body .safe-emergency>a[href="tel:911"]{width:auto;max-width:100%;min-width:0;white-space:nowrap;justify-content:center}
.safe-body .safe-fieldrow{grid-template-columns:repeat(2,minmax(0,1fr))}
.safe-body .safe-fieldrow>.safe-field,.safe-body .safe-field{min-width:0;max-width:100%;width:100%}
.safe-body .safe-field :where(input,select,textarea){min-width:0!important;max-width:100%!important;width:100%!important;display:block}
.safe-body .safe-form{max-width:100%;min-width:0}
/* Listing heading/ratings/photos share the same horizontal gutter. */
body:has(.intro.container) .intro.container{width:100%;max-width:1420px;margin-inline:auto;padding-inline:clamp(18px,4vw,42px)}
body:has(.intro.container) .introline{min-width:0}
body:has(.intro.container) .introline>div{min-width:0;max-width:100%}
body:has(.intro.container) .intro .rating-area{max-width:100%}
body:has(.entire-intro) .entire-intro{padding-inline:clamp(18px,4vw,42px)}
body:has(.entire-intro) .entire-intro .entire-lede{max-width:100%}
body:has(.entire-intro) .entire-reserve{min-width:0}
/* All forms: prevent Safari intrinsic date/time widths growing grid children. */
.dates,.twocol{min-width:0}
.dates>.field,.twocol>.field{min-width:0}
.dates input[type=date],.twocol input[type=date]{max-width:100%}
#gs-app{min-width:0}
#gs-app :where(.gs-content-grid,.gs-primary,.gs-detail-panel,.gs-white-panel){min-width:0}
/* Sticky header remains usable; internal section anchors clear it. */
#sch-global-header{width:100%;left:0;right:0}
#sch-global-header .sch-nav-inner{min-width:0}
#sch-global-footer{width:100%;margin-inline:0}
@media(max-width:760px){
  html{scroll-padding-top:80px}
  .safe-body .safe-emergency{grid-template-columns:minmax(0,1fr)!important;gap:18px}
  .safe-body .safe-emergency>a[href="tel:911"]{display:inline-flex;width:100%;min-height:52px;white-space:normal;line-height:1.25;text-align:center}
  .safe-body .safe-emergency h2{font-size:clamp(26px,7.5vw,37px);line-height:1.12;margin:12px 0 15px}
  .safe-body .safe-emergency p{font-size:15px;line-height:1.65;overflow-wrap:anywhere}
  .safe-body .safe-fieldrow{grid-template-columns:minmax(0,1fr)!important;gap:0}
  .safe-body .safe-form{padding:clamp(19px,5vw,26px)}
  .safe-body .safe-field :where(input,select,textarea){min-height:48px;font-size:16px}
  .safe-body .safe-field{margin:14px 0}
  .safe-body .safe-section{padding-block:32px 43px}
  .safe-body .safe-hero{padding-block:52px 33px}
  .safe-body .safe-shell{width:auto;max-width:none;margin-inline:18px}
  body:has(.intro.container) .intro.container{padding-inline:20px!important}
  body:has(.intro.container) .introline{align-items:flex-start;gap:14px}
  body:has(.intro.container) .intro h1{font-size:clamp(37px,10.5vw,54px);line-height:1.07;overflow-wrap:break-word}
  body:has(.intro.container) .intro .subtitle{font-size:clamp(16px,4.4vw,19px);line-height:1.55}
  body:has(.intro.container) .intro .rating-area{align-items:flex-start;min-width:0;padding-bottom:0}
  body:has(.intro.container) .intro .chips{gap:8px}
  body:has(.intro.container) .intro .chip{white-space:normal}
  body:has(.entire-intro) .entire-intro{padding-inline:20px}
  body:has(.entire-intro) .entire-intro h1{font-size:clamp(41px,10.6vw,60px);line-height:1.06}
  body:has(.entire-intro) .entire-lede{font-size:17px;line-height:1.58}
  body:has(.entire-intro) .entire-layout{padding-inline:20px}
  body:has(.entire-intro) .entire-layout .booking{padding:clamp(18px,5vw,26px)}
  .booking .dates{grid-template-columns:minmax(0,1fr)}
  #gs-app{padding-inline:clamp(18px,4.5vw,24px)}
  #gs-app .gs-masthead{gap:18px}
  #gs-app .gs-content-grid{grid-template-columns:minmax(0,1fr)}
  #gs-app .gs-two-col{grid-template-columns:minmax(0,1fr)}
  .sch-offer-listing,.sch-house-rule-preview{max-width:100%}
  .sch-offer-listing{margin-bottom:clamp(45px,9vw,70px)!important}
  #sch-global-footer .sch-foot-group{min-width:0}
}
@media(max-width:440px){
  .safe-body .safe-emergency{padding:25px 19px;border-radius:16px}
  .safe-body .safe-emergency>a[href="tel:911"]{padding:15px 12px;font-size:17px}
  .safe-body .safe-emergency h2{font-size:clamp(25px,7.4vw,32px)}
  .safe-body .safe-shell{margin-inline:17px}
  #gs-app .gs-masthead h1{font-size:clamp(43px,12vw,58px)}
  #gs-app .gs-masthead p{font-size:15px}
  #gs-app .gs-shortcuts{grid-template-columns:minmax(0,1fr)}
  .sch-book-steps span{overflow-wrap:normal}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}
/* Booking page's legacy `footer nav { display:flex }` must not override the
   site-wide footer's vertical link columns. Proven on the 1280px booking route. */
#sch-global-footer nav.sch-foot-group{display:block!important;min-width:0!important;max-width:100%;width:auto}
#sch-global-footer nav.sch-foot-group>a{display:block}
