/* v813 Reservation Mobile + Email Integrity
   Final Customer reservation authority. Mobile-first, PWA-safe, no hardcoded business palette.
   Root cause fixed here: legacy .reserve-brand-v49>div treated the new full brand-mark wrapper
   as a 52x52 logo tile, clipping the wrapper and letting brand copy overlap the reservation header. */

html body.reserve-v49,html body.reserve-v49 *{box-sizing:border-box!important}
html,body.reserve-v49{
  -webkit-text-size-adjust:100%!important;
  text-size-adjust:100%!important;
}

html body.reserve-v49 .reserve-shell-v49{
  width:100%!important;
  min-height:0!important;
  display:block!important;
  padding:18px clamp(14px,4vw,24px) 26px!important;
}

html body.reserve-v49 .reserve-card-v49{
  width:min(760px,100%)!important;
  margin:0 auto!important;
  padding:clamp(20px,4vw,34px)!important;
  border-radius:clamp(22px,4vw,var(--tt-card-radius,34px))!important;
  overflow:hidden!important;
  isolation:isolate!important;
}

/* The whole brand wrapper is NOT the logo tile. */
html body.reserve-v49 .reserve-brand-v49{
  display:block!important;
  margin:0 0 22px!important;
  min-width:0!important;
  min-height:0!important;
  overflow:visible!important;
}
html body.reserve-v49 .reserve-brand-v49>.customer-brand-mark-v755{
  width:100%!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--tt-card-text-safe)!important;
  box-shadow:none!important;
  overflow:visible!important;
}
html body.reserve-v49 .reserve-brand-v49 .customer-brand-logo-v755{
  width:58px!important;
  height:58px!important;
  flex:0 0 58px!important;
  object-fit:contain!important;
  border-radius:15px!important;
  background:var(--tt-card-bg)!important;
}
html body.reserve-v49 .reserve-brand-v49 .customer-brand-copy-v755{
  display:grid!important;
  gap:3px!important;
  min-width:0!important;
  width:auto!important;
  height:auto!important;
  overflow:visible!important;
}
html body.reserve-v49 .reserve-brand-v49 .customer-brand-copy-v755 strong{
  display:block!important;
  margin:0!important;
  font-size:clamp(17px,4.7vw,20px)!important;
  line-height:1.12!important;
  letter-spacing:-.02em!important;
  color:var(--tt-card-heading-safe)!important;
  -webkit-text-fill-color:var(--tt-card-heading-safe)!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
html body.reserve-v49 .reserve-brand-v49 .customer-brand-copy-v755 small{
  display:block!important;
  margin:0!important;
  font-size:clamp(13px,3.6vw,15px)!important;
  line-height:1.25!important;
  color:var(--tt-card-text-safe)!important;
  -webkit-text-fill-color:var(--tt-card-text-safe)!important;
}

html body.reserve-v49 .reserve-card-v49>header{
  display:block!important;
  position:relative!important;
  margin:0 0 22px!important;
  padding:0!important;
  min-width:0!important;
  overflow:visible!important;
}
html body.reserve-v49 .reserve-card-v49>header>span{
  display:block!important;
  margin:0 0 8px!important;
  font-size:12px!important;
  line-height:1.25!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}
html body.reserve-v49 .reserve-card-v49>header>h1{
  display:block!important;
  margin:0 0 12px!important;
  max-width:100%!important;
  font-size:clamp(34px,9.5vw,52px)!important;
  line-height:.98!important;
  letter-spacing:-.055em!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
html body.reserve-v49 .reserve-card-v49>header>p{
  margin:0!important;
  max-width:62ch!important;
  font-size:clamp(15px,4vw,18px)!important;
  line-height:1.5!important;
  font-weight:700!important;
}

html body.reserve-v49 #reserve-form-v49{
  display:grid!important;
  gap:16px!important;
  min-width:0!important;
}
html body.reserve-v49 #reserve-form-v49 label{
  display:grid!important;
  gap:7px!important;
  min-width:0!important;
  margin:0!important;
  font-size:clamp(15px,4vw,17px)!important;
  line-height:1.25!important;
  font-weight:850!important;
}
html body.reserve-v49 #reserve-form-v49 input,
html body.reserve-v49 #reserve-form-v49 textarea{
  width:100%!important;
  min-width:0!important;
  min-height:54px!important;
  margin:0!important;
  padding:14px 15px!important;
  border-radius:15px!important;
  font-family:inherit!important;
  font-size:16px!important; /* prevents Android/iOS form zoom/text inflation */
  line-height:1.35!important;
  font-weight:650!important;
  color:var(--tt-card-text-safe)!important;
  -webkit-text-fill-color:var(--tt-card-text-safe)!important;
  background:var(--tt-card-bg)!important;
}
html body.reserve-v49 #reserve-form-v49 textarea{
  min-height:112px!important;
  resize:vertical!important;
}
html body.reserve-v49 #reserve-form-v49 input::placeholder,
html body.reserve-v49 #reserve-form-v49 textarea::placeholder{
  color:color-mix(in srgb,var(--tt-card-text-safe) 62%,transparent)!important;
  opacity:1!important;
}
html body.reserve-v49 .reserve-row-v49{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:16px!important;
  min-width:0!important;
}
html body.reserve-v49 #reserve-form-v49 button{
  width:100%!important;
  min-height:56px!important;
  margin-top:2px!important;
  padding:14px 18px!important;
  border-radius:var(--tt-button-radius,16px)!important;
  font-size:16px!important;
  line-height:1.2!important;
  font-weight:900!important;
  touch-action:manipulation!important;
}
html body.reserve-v49 #reserve-form-v49 button:disabled{opacity:.7!important;cursor:wait!important}

html body.reserve-v49 .reserve-result-v49{
  margin-top:18px!important;
  font-size:15px!important;
  line-height:1.45!important;
}
html body.reserve-v49 .back-v49{
  display:inline-flex!important;
  width:100%!important;
  min-height:48px!important;
  margin-top:12px!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:15px!important;
}

/* Footer remains above the fixed Customer dock without a fake page-background strip. */
@media(max-width:767px){
  html body.reserve-v49 footer.customer-unified-footer-v736{
    padding-bottom:max(28px,calc(var(--customer-bottom-nav-height-v754,var(--v132-nav-h,76px)) + env(safe-area-inset-bottom,0px) + 18px))!important;
  }
}

@media(min-width:640px){
  html body.reserve-v49 .reserve-row-v49{grid-template-columns:1fr 1fr!important}
}

@media(min-width:768px){
  html body.reserve-v49 .reserve-shell-v49{padding:30px clamp(22px,5vw,64px) 42px!important}
  html body.reserve-v49 .reserve-brand-v49 .customer-brand-logo-v755{width:64px!important;height:64px!important;flex-basis:64px!important}
  html body.reserve-v49 .reserve-card-v49>header>h1{font-size:clamp(44px,5vw,56px)!important}
}
