/* W-050: booking rules derived from existing homepage, same cascade. */
.booking-bar{--cream:#FBF8F1}
body{padding-bottom: 106px;}
.booking-bar{position: fixed; bottom: 0px; left: 0px; right: 0px; z-index: 20; background: rgba(246, 242, 234, 0.97); border-top: 1px solid var(--line); box-shadow: rgba(42, 42, 51, 0.07) 0px -8px 35px; backdrop-filter: blur(14px); padding: 15px 5vw;}
.booking-form{max-width: 1320px; margin: auto; display: grid; grid-template-columns: 1.15fr 1fr 1fr 0.65fr 1.25fr; align-items: center; gap: 0px;}
.booking-intro{padding-right: 24px;}
.booking-intro strong{font-family: "Cormorant Garamond", serif; font-weight: 400; font-size: 1.5rem; display: block; line-height: 1.1;}
.booking-intro small{font-size: 0.61rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-soft);}
.booking-field{padding: 0px 24px; border-left: 1px solid var(--line); display: block;}
.booking-field span{display: block; font-size: 0.61rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--pine); font-weight: 400; margin-bottom: 5px;}
.booking-field input{border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor transparent; border-image: none; background: transparent; border-radius: 0px; color: var(--ink); font: 300 0.92rem "Work Sans", sans-serif; width: 100%; min-width: 0px; padding: 3px 0px;}
.booking-field input:focus{outline: 0px; border-bottom-color: var(--gold);}
.booking-submit{padding: 0.95rem 1.1rem; white-space: nowrap; border: 1px solid var(--pine-deep); background: var(--pine-deep); color: var(--cream); font: 400 0.64rem "Work Sans", sans-serif; letter-spacing: 0.15em; text-transform: uppercase; cursor: pointer;}
.booking-submit:hover{background: var(--pine);}
.booking-submit:focus-visible{outline: 2px solid var(--gold); outline-offset: 4px;}
.booking-error{font-size: 0.8rem; color: var(--ink); max-width: 1320px; margin: auto;}
.booking-error:empty{display: none;}
@media (max-width: 900px){.booking-form{grid-template-columns: 1fr 1fr 0.7fr 1.2fr;}
.booking-intro{display: none;}
.booking-field:first-of-type{border-left: 0px; padding-left: 0px;}
.booking-field{padding: 0px 15px;}
.booking-submit{font-size: 0.57rem;}}
@media (max-width: 560px){body{padding-bottom: 160px;}
.booking-bar{padding: 12px 5vw;}
.booking-form{grid-template-columns: 1fr 1fr 0.7fr; gap: 10px 0px;}
.booking-field{padding: 0px 10px;}
.booking-field span{font-size: 0.52rem; letter-spacing: 0.13em;}
.booking-field input{font-size: 0.76rem;}
.booking-submit{grid-column: 1 / -1; width: 100%; padding: 0.8rem; font-size: 0.61rem;}}
@media (prefers-reduced-motion: reduce){.booking-bar{backdrop-filter: none;}}
.booking-bar{left: 50%; right: auto; bottom: 20px; transform: translateX(-50%); width: calc(100% - 64px); max-width: 1320px; border: 1px solid rgba(42, 42, 51, 0.12); border-radius: 14px; box-shadow: rgba(18, 25, 14, 0.18) 0px 10px 40px, rgba(18, 25, 14, 0.06) 0px 2px 8px; padding: 18px 28px;}
.booking-submit{border-radius: 7px;}
@media (max-width: 900px){.booking-bar{width: calc(100% - 36px); padding: 16px 20px;}}
@media (max-width: 560px){.booking-bar{bottom: 12px; width: calc(100% - 24px); padding: 14px 16px; border-radius: 12px;}
body{padding-bottom: 180px;}}
.booking-field{min-width: 0px;}
.booking-field input{box-sizing: border-box; max-width: 100%;}
.booking-note{margin: 0.65rem 0px 0px; text-align: center; font-size: 0.72rem; color: var(--ink-soft);}
.booking-field input:focus-visible{outline: 2px solid var(--gold); outline-offset: 3px;}
@media (max-width: 560px){.booking-form{grid-template-columns: minmax(0px, 1fr) minmax(0px, 1fr); gap: 12px;}
.booking-field{padding: 0px; border-left: 0px;}
.booking-field span{font-size: 0.65rem; letter-spacing: 0.08em;}
.booking-field input{font-size: 16px;}
.booking-submit{grid-column: 2; width: 100%; font-size: 0.7rem; letter-spacing: 0.08em; white-space: normal; min-height: 44px;}
.booking-field:nth-of-type(3){grid-column: 1;}
.booking-note{font-size: 0.7rem;}
body{padding-bottom: 230px;}}
@media (max-width: 380px){.booking-form{grid-template-columns: minmax(0px, 1fr); gap: 8px;}
.booking-field{display: grid; grid-template-columns: 78px minmax(0px, 1fr); align-items: center; gap: 6px;}
.booking-field span{margin: 0px;}
.booking-field:nth-of-type(3),.booking-submit{grid-column: 1;}
body{padding-bottom: 265px;}}
html{scroll-padding-bottom: var(--booking-space,110px);}
body{padding-bottom: var(--booking-space,110px);}
a:focus-visible,button:focus-visible,input:focus-visible{scroll-margin-bottom: var(--booking-space,110px);}
.booking-bar{padding: 10px 22px; bottom: 14px;}
.booking-intro strong{font-size: 1.25rem;}
.booking-intro small{display: block; margin-top: 4px; font-size: 0.6rem; letter-spacing: 0.04em; text-transform: none; line-height: 1.35;}
.booking-field{padding: 0px 18px;}
.booking-field span{margin-bottom: 2px;}
.booking-field input{padding: 2px 0px;}
.booking-submit{padding: 0.7rem 1rem;}
.booking-note{display: none;}
.booking-launch,.booking-close{display: none;}
@media (max-width: 900px){.booking-bar{padding: 10px 16px;}
.booking-intro{display: block;}
.booking-form{grid-template-columns: 1fr 1fr 1fr 0.7fr 1.1fr;}
.booking-field{padding: 0px 8px;}
.booking-intro{padding-right: 10px;}
.booking-intro strong{font-size: 1.1rem;}}
@media (max-width: 560px), (max-height: 500px){.booking-bar{bottom: 12px; width: calc(100% - 24px); padding: 7px; max-height: calc(100dvh - 24px); overflow: auto;}
.booking-launch{display: block; width: 100%; min-height: 44px; border: 1px solid var(--pine-deep); border-radius: 7px; background: var(--pine-deep); color: var(--cream); font: 400 0.7rem "Work Sans", sans-serif; letter-spacing: 0.1em; text-transform: uppercase; padding: 0.7rem 1rem; cursor: pointer;}
.booking-form,.booking-error{display: none;}
.booking-bar.is-open{padding: 44px 16px 16px;}
.booking-bar.is-open .booking-launch{display: none;}
.booking-bar.is-open .booking-close{display: block; position: absolute; right: 12px; top: 8px; border: 0px; background: transparent; color: var(--ink); font-size: 1.5rem; line-height: 1; padding: 6px; cursor: pointer;}
.booking-bar.is-open .booking-form{display: grid; grid-template-columns: minmax(0px, 1fr) minmax(0px, 1fr); gap: 12px;}
.booking-intro{display: none;}
.booking-field{padding: 0px; border: 0px;}
.booking-field span{font-size: 0.65rem;}
.booking-field input{font-size: 16px;}
.booking-submit{grid-column: 2; min-height: 44px; white-space: normal; font-size: 0.7rem;}
.booking-field:nth-of-type(3){grid-column: 1;}
.booking-bar.is-open .booking-note{display: block; font-size: 0.72rem; margin: 0.75rem 0px 0px; line-height: 1.5;}
.booking-bar.is-open .booking-error:not(:empty){display: block; margin-top: 0.5rem;}
.booking-launch:focus-visible,.booking-close:focus-visible{outline: 2px solid var(--gold); outline-offset: 2px;}}
@media (max-width: 380px){.booking-bar.is-open .booking-form{grid-template-columns: minmax(0px, 1fr); gap: 8px;}
.booking-submit{grid-column: 1;}}
