/* xFame LOBBY V11 — definitive mobile booking layout.
   Loaded last. Uses explicit body page classes; no :has dependency is required. */

html{max-width:100%;overflow-x:hidden}
body.lobby-theme{max-width:100%;overflow-x:hidden}
body.lobby-theme main{min-width:0;max-width:100%}

/* HOME: booking CTA must remain a real text button on phones. */
@media (max-width:720px){
  body.page-home .home-deck{box-sizing:border-box;width:calc(100% - 12px)!important;max-width:none!important;padding-top:6px!important}
  body.page-home .home-commandbar{
    box-sizing:border-box!important;grid-template-columns:auto minmax(0,1fr)!important;
    width:100%!important;max-width:100%!important;min-width:0!important;
    gap:5px!important;padding:6px!important;overflow:visible!important;
  }
  body.page-home .home-commandbar__brand{min-width:0!important;width:auto!important;flex:0 0 auto!important}
  body.page-home .home-commandbar__brand>span:last-child{display:none!important}
  body.page-home .home-commandbar__logo{width:50px!important;height:50px!important}
  body.page-home .home-commandbar__actions{
    display:flex!important;min-width:0!important;max-width:100%!important;align-items:center!important;
    justify-content:flex-end!important;gap:5px!important;flex-wrap:nowrap!important;
  }
  body.page-home .home-booking-cta{
    display:inline-flex!important;width:auto!important;min-width:88px!important;max-width:none!important;
    height:46px!important;min-height:46px!important;padding:0 11px!important;gap:6px!important;
    flex:0 0 auto!important;justify-content:center!important;white-space:nowrap!important;
    color:#fff!important;background:linear-gradient(135deg,#ff7413,#ed4e00)!important;
    border-color:#ff9a57!important;border-radius:12px!important;
    font-size:9px!important;line-height:1!important;font-weight:950!important;letter-spacing:.045em!important;
  }
  body.page-home .home-booking-cta span{display:inline!important;visibility:visible!important;opacity:1!important;width:auto!important;height:auto!important}
  body.page-home .home-booking-cta i{display:inline!important;color:#fff!important;font-size:13px!important}
  body.page-home .home-login{height:46px!important;min-height:46px!important;min-width:78px!important;padding:0 11px!important;font-size:13px!important;white-space:nowrap!important}
  body.page-home .lobby-burger--home{width:50px!important;min-width:50px!important;height:46px!important;padding:0 12px!important}
  body.page-home .home-xf{display:none!important}
}
@media (max-width:370px){
  body.page-home .home-commandbar__logo{width:44px!important;height:44px!important}
  body.page-home .home-booking-cta{min-width:76px!important;height:42px!important;min-height:42px!important;padding:0 8px!important;font-size:8px!important}
  body.page-home .home-booking-cta i{display:none!important}
  body.page-home .home-login{min-width:68px!important;height:42px!important;min-height:42px!important;padding:0 8px!important;font-size:12px!important}
  body.page-home .lobby-burger--home{width:44px!important;min-width:44px!important;height:42px!important;padding:0 10px!important}
}

/* STANDALONE /booking page. */
body.page-booking{padding-top:0!important;background:#070604!important;color-scheme:dark!important}
body.page-booking main{overflow:visible!important}
body.page-booking .booking-map[hidden],
body.page-booking .booking-map-grid-fallback[hidden],
body.page-welcome .booking-map[hidden],
body.page-welcome .booking-map-grid-fallback[hidden]{display:none!important}

@media (max-width:820px){
  body.page-booking .lobby-floating-chrome{
    top:max(8px,env(safe-area-inset-top))!important;left:8px!important;right:8px!important;
    width:auto!important;min-width:0!important;gap:6px!important;z-index:7000!important;
  }
  body.page-booking .lobby-floating-brand{min-width:56px!important;min-height:58px!important;padding:5px!important;border-radius:16px!important}
  body.page-booking .lobby-floating-brand>span{width:46px!important;height:46px!important}
  body.page-booking .lobby-floating-brand>strong{display:none!important}
  body.page-booking .lobby-floating-actions{min-width:0!important;gap:5px!important;padding:5px!important;border-radius:16px!important}
  body.page-booking .lobby-floating-login{min-height:46px!important;height:46px!important;padding:0 14px!important;border-radius:11px!important;font-size:12px!important}
  body.page-booking .lobby-burger{width:50px!important;min-width:50px!important;height:46px!important;padding:0 12px!important}

  body.page-booking .booking-page{
    box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;
    margin:0!important;padding:calc(max(8px,env(safe-area-inset-top)) + 78px) 8px 46px!important;
    overflow:visible!important;
  }
  body.page-booking .booking-hero{
    box-sizing:border-box!important;display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;
    min-height:0!important;padding:24px 16px 23px!important;border-radius:18px!important;overflow:hidden!important;
  }
  body.page-booking .booking-hero__copy{width:100%!important;max-width:100%!important;min-width:0!important}
  body.page-booking .booking-hero__number{display:none!important}
  body.page-booking .booking-hero__signal{top:15px!important;right:16px!important;transform:scale(.7)!important;transform-origin:top right!important}
  body.page-booking .booking-kicker{max-width:calc(100% - 40px)!important;gap:8px!important;font-size:8px!important;letter-spacing:.13em!important;white-space:nowrap!important}
  body.page-booking .booking-kicker i{width:24px!important;flex:0 0 24px!important}
  body.page-booking .booking-hero h1{
    box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin:21px 0 16px!important;
    font-size:clamp(34px,10.4vw,44px)!important;line-height:.91!important;letter-spacing:-.055em!important;
    overflow:visible!important;overflow-wrap:normal!important;word-break:keep-all!important;hyphens:none!important;
  }
  body.page-booking .booking-hero h1 em{display:block!important}
  body.page-booking .booking-hero p{width:100%!important;max-width:100%!important;margin:0!important;font-size:13px!important;line-height:1.52!important;overflow-wrap:anywhere!important}
  body.page-booking .booking-live-line{margin-top:19px!important;align-items:flex-start!important;flex-direction:column!important;gap:8px!important}
  body.page-booking .booking-live-line>span{padding:7px 10px!important;font-size:8px!important}
  body.page-booking .booking-live-line b{font-size:11px!important}

  body.page-booking .booking-flow{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;margin-top:8px!important}
  body.page-booking .booking-steps{
    position:relative!important;top:auto!important;z-index:2!important;display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;width:100%!important;max-width:100%!important;min-width:0!important;
    gap:4px!important;margin:8px 0!important;padding:5px!important;border-radius:14px!important;
    background:rgba(13,11,8,.98)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  }
  body.page-booking .booking-steps>button{
    display:flex!important;min-width:0!important;min-height:46px!important;padding:7px 5px!important;
    align-items:center!important;justify-content:center!important;flex-direction:column!important;gap:3px!important;
    border-radius:10px!important;text-align:center!important;
  }
  body.page-booking .booking-steps>button span{grid-row:auto!important;font-size:8px!important}
  body.page-booking .booking-steps>button b{font-size:9px!important;line-height:1.05!important;white-space:normal!important}
  body.page-booking .booking-steps>button small,body.page-booking .booking-steps__secure{display:none!important}

  body.page-booking .booking-workspace,body.page-booking .booking-panel{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important}
  body.page-booking .booking-panel{padding:20px 13px!important;border-radius:17px!important;overflow:hidden!important}
  body.page-booking .booking-panel__head{display:block!important;padding-bottom:18px!important}
  body.page-booking .booking-panel__head h2{font-size:clamp(28px,8.8vw,36px)!important;line-height:.98!important;overflow-wrap:anywhere!important}
  body.page-booking .booking-panel__head p{max-width:100%!important;margin-top:10px!important;font-size:11.5px!important;line-height:1.48!important;text-align:left!important;overflow-wrap:anywhere!important}
  body.page-booking .booking-time-grid,body.page-booking .booking-time-grid--start,body.page-booking .booking-time-grid--quote,body.page-booking .booking-contact-grid{
    display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;max-width:100%!important;min-width:0!important;gap:10px!important;
  }
  body.page-booking .booking-time-grid label,body.page-booking .booking-contact-grid label{min-width:0!important}
  body.page-booking .booking-time-grid input,body.page-booking .booking-contact-grid input{
    box-sizing:border-box!important;display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;
    height:54px!important;padding:0 12px!important;font-size:16px!important;border-radius:12px!important;
  }
  body.page-booking input[type="datetime-local"]{-webkit-appearance:none!important;appearance:none!important;text-align:left!important}
  body.page-booking .booking-zone-choice{box-sizing:border-box!important;width:100%!important;min-width:0!important;min-height:58px!important;padding:10px 13px!important}
  body.page-booking .booking-zone-choice b{overflow-wrap:anywhere!important}
  body.page-booking .booking-map-toolbar{display:flex!important;align-items:stretch!important;flex-direction:column!important;gap:10px!important;margin-top:17px!important}
  body.page-booking .booking-legend{display:flex!important;flex-wrap:wrap!important;gap:8px 11px!important;font-size:10px!important;line-height:1.2!important}
  body.page-booking .booking-map-toolbar>button{align-self:stretch!important;width:100%!important;min-height:44px!important}
  body.page-booking .booking-map-shell{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;min-height:0!important;padding:7px!important;border-radius:14px!important;overflow:hidden!important}
  body.page-booking .booking-map{min-width:0!important;max-width:100%!important}
  body.page-booking .booking-map-grid-fallback:not([hidden]){display:grid!important;width:100%!important;min-width:0!important;gap:9px!important}
  body.page-booking .booking-fallback-zone{box-sizing:border-box!important;width:100%!important;min-width:0!important;padding:11px!important;border-radius:11px!important}
  body.page-booking .booking-fallback-zone>div{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  body.page-booking .booking-map-grid-fallback button{box-sizing:border-box!important;width:100%!important;min-width:0!important;min-height:68px!important;padding:9px!important;text-align:left!important}
  body.page-booking .booking-map-grid-fallback button b{font-size:13px!important}
  body.page-booking .booking-map-grid-fallback button small{max-width:100%!important;font-size:9px!important;overflow-wrap:anywhere!important}
  body.page-booking .booking-selection{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:7px!important;padding:13px!important}
  body.page-booking .booking-selection>span{grid-column:auto!important}
  body.page-booking .booking-selection strong{text-align:left!important;overflow-wrap:anywhere!important}
  body.page-booking .booking-next,body.page-booking .booking-submit{box-sizing:border-box!important;width:100%!important;min-width:0!important;height:52px!important;margin:20px 0 0!important;padding:0 13px!important}
  body.page-booking .booking-nav-actions{display:flex!important;align-items:stretch!important;flex-direction:column-reverse!important;gap:8px!important;margin-top:20px!important}
  body.page-booking .booking-nav-actions button{width:100%!important;min-width:0!important;margin:0!important}
  body.page-booking .booking-back{height:46px!important}
  body.page-booking .booking-tariff-grid{grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
  body.page-booking .booking-order{grid-template-columns:minmax(0,1fr)!important}
  body.page-booking .booking-order>div{border-right:0!important;border-bottom:1px solid rgba(255,255,255,.08)!important}
  body.page-booking .booking-order>div:last-child{border-bottom:0!important}
  body.page-booking .booking-success{padding:8px!important}
  body.page-booking .booking-success>section{box-sizing:border-box!important;width:100%!important;max-width:100%!important;max-height:calc(100dvh - 16px)!important;overflow:auto!important;padding:27px 16px!important;border-radius:17px!important}
  body.page-booking #bookingSuccessDetails{grid-template-columns:1fr!important}
}

/* WELCOME: the embedded booking app gets the same phone geometry. */
@media (max-width:820px){
  body.page-welcome .welcome-page{max-width:100%!important;overflow-x:hidden!important;padding-bottom:74px!important}
  body.page-welcome .welcome-booking{box-sizing:border-box!important;padding:48px 0 92px!important;overflow:hidden!important}
  body.page-welcome .welcome-booking>.welcome-shell{box-sizing:border-box!important;width:calc(100% - 16px)!important;max-width:100%!important;margin:0 auto!important}
  body.page-welcome .welcome-booking__intro{display:block!important;min-width:0!important}
  body.page-welcome .welcome-booking__intro h2{font-size:clamp(32px,9.2vw,40px)!important;line-height:.94!important}
  body.page-welcome .welcome-booking__intro>p{max-width:100%!important;margin-top:13px!important;font-size:12.5px!important;line-height:1.5!important}
  body.page-welcome .welcome-booking-app{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;margin-top:20px!important}
  body.page-welcome .welcome-booking-live{align-items:flex-start!important;justify-content:flex-start!important;flex-direction:column!important;gap:7px!important;margin-bottom:9px!important}
  body.page-welcome .welcome-booking-app .booking-flow{display:block!important;width:100%!important;min-width:0!important}
  body.page-welcome .welcome-booking-app .booking-steps{
    position:relative!important;top:auto!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
    width:100%!important;min-width:0!important;gap:4px!important;margin:8px 0!important;padding:5px!important;border-radius:14px!important;
  }
  body.page-welcome .welcome-booking-app .booking-steps>button{
    display:flex!important;min-width:0!important;min-height:44px!important;padding:7px 4px!important;align-items:center!important;
    justify-content:center!important;flex-direction:column!important;gap:2px!important;text-align:center!important;border-radius:10px!important;
  }
  body.page-welcome .welcome-booking-app .booking-steps>button span{font-size:8px!important}
  body.page-welcome .welcome-booking-app .booking-steps>button b{font-size:9px!important;line-height:1!important;white-space:normal!important}
  body.page-welcome .welcome-booking-app .booking-workspace,body.page-welcome .welcome-booking-app .booking-panel{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important}
  body.page-welcome .welcome-booking-app .booking-panel{min-height:0!important;padding:18px 12px!important;border-radius:16px!important;overflow:hidden!important}
  body.page-welcome .welcome-booking-app .booking-panel__head{display:block!important;padding-bottom:17px!important}
  body.page-welcome .welcome-booking-app .booking-panel__head h2{font-size:28px!important;line-height:.98!important}
  body.page-welcome .welcome-booking-app .booking-panel__head p{max-width:100%!important;margin-top:9px!important;font-size:11px!important;line-height:1.45!important;text-align:left!important}
  body.page-welcome .welcome-booking-app .booking-time-grid,body.page-welcome .welcome-booking-app .booking-time-grid--start,body.page-welcome .welcome-booking-app .booking-time-grid--quote,body.page-welcome .welcome-booking-app .booking-contact-grid{
    grid-template-columns:minmax(0,1fr)!important;width:100%!important;min-width:0!important;gap:9px!important;
  }
  body.page-welcome .welcome-booking-app .booking-time-grid input,body.page-welcome .welcome-booking-app .booking-contact-grid input{
    box-sizing:border-box!important;display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;height:52px!important;padding:0 11px!important;font-size:16px!important;
  }
  body.page-welcome .welcome-booking-app input[type="datetime-local"]{-webkit-appearance:none!important;appearance:none!important;text-align:left!important}
  body.page-welcome .welcome-booking-app .booking-zone-choice{box-sizing:border-box!important;width:100%!important;min-width:0!important;min-height:56px!important;padding:9px 12px!important}
  body.page-welcome .welcome-booking-app .booking-map-toolbar{align-items:stretch!important;flex-direction:column!important;gap:9px!important;margin-top:15px!important}
  body.page-welcome .welcome-booking-app .booking-legend{display:flex!important;flex-wrap:wrap!important;gap:7px 10px!important;font-size:9.5px!important}
  body.page-welcome .welcome-booking-app .booking-map-toolbar>button{align-self:stretch!important;width:100%!important;min-height:43px!important}
  body.page-welcome .welcome-booking-app .booking-map-shell{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;min-height:0!important;padding:7px!important;overflow:hidden!important;border-radius:14px!important}
  body.page-welcome .welcome-booking-app .booking-map{min-width:0!important;width:100%!important;max-width:100%!important}
  body.page-welcome .welcome-booking-app .booking-map-grid-fallback:not([hidden]){display:grid!important;width:100%!important;min-width:0!important;gap:8px!important}
  body.page-welcome .welcome-booking-app .booking-fallback-zone{box-sizing:border-box!important;width:100%!important;min-width:0!important;padding:10px!important}
  body.page-welcome .welcome-booking-app .booking-fallback-zone>div{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
  body.page-welcome .welcome-booking-app .booking-map-grid-fallback button{box-sizing:border-box!important;width:100%!important;min-width:0!important;min-height:64px!important;padding:8px!important;text-align:left!important}
  body.page-welcome .welcome-booking-app .booking-selection{grid-template-columns:minmax(0,1fr)!important;gap:6px!important;padding:12px!important}
  body.page-welcome .welcome-booking-app .booking-selection>span{grid-column:auto!important}
  body.page-welcome .welcome-booking-app .booking-selection strong{text-align:left!important}
  body.page-welcome .welcome-booking-app .booking-next,body.page-welcome .welcome-booking-app .booking-submit{box-sizing:border-box!important;width:100%!important;min-width:0!important;height:50px!important;margin:18px 0 0!important;padding:0 12px!important}
  body.page-welcome .welcome-booking-app .booking-nav-actions{align-items:stretch!important;flex-direction:column-reverse!important;gap:8px!important;margin-top:18px!important}
  body.page-welcome .welcome-booking-app .booking-nav-actions button{width:100%!important;min-width:0!important;margin:0!important}
  body.page-welcome .welcome-booking-app .booking-tariff-grid{grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
  body.page-welcome .welcome-booking-app .booking-order{grid-template-columns:minmax(0,1fr)!important}
  body.page-welcome .welcome-booking-app .booking-order>div{border-right:0!important;border-bottom:1px solid rgba(255,255,255,.08)!important}
  body.page-welcome .welcome-booking-app .booking-order>div:last-child{border-bottom:0!important}
  body.page-welcome .welcome-mobile-book{
    box-sizing:border-box!important;right:8px!important;left:8px!important;bottom:max(8px,env(safe-area-inset-bottom))!important;
    min-height:52px!important;padding:0 16px!important;border-radius:13px!important;font-size:12px!important;
  }
}
@media (max-width:360px){
  body.page-booking .booking-fallback-zone>div,
  body.page-welcome .welcome-booking-app .booking-fallback-zone>div{grid-template-columns:minmax(0,1fr)!important}
  body.page-booking .booking-hero h1{font-size:33px!important}
  body.page-welcome .welcome-booking__intro h2{font-size:31px!important}
}
