/* One continuous page: booking, calendar and details expand in place. */
:root{--booking-height:130px}
main{position:relative}
.booking-dock{position:sticky;top:0;z-index:30;background:var(--paper);padding:10px 0 0;border-bottom:1px solid var(--line);scroll-margin-top:0}
.booking-dock .booking-bar{grid-template-columns:minmax(200px,1.2fr) minmax(155px,1fr) minmax(265px,1.6fr) minmax(105px,.7fr) minmax(120px,.8fr);min-height:80px}
.booking-dock .booking-field{padding:0 18px;gap:6px}
.booking-field>label,.booking-field>span,#space-field>label{font-family:var(--mono);font-size:12px;letter-spacing:.05em;color:var(--muted)}
#space-field{display:grid;gap:5px;border-top:1px solid var(--line);padding-top:9px;margin-top:5px}
#space-field select{font-size:13px}
#date-toggle{display:flex;justify-content:space-between;gap:8px;align-items:center;text-align:left;width:100%;font-size:14px;padding:0;min-height:25px}
#date-toggle>span:first-child{white-space:nowrap}
.booking-dock .booking-extras{margin:0;min-height:40px;align-items:center;position:relative}
.booking-extras .text-button{font-size:12px;padding:9px 0}
#booking-message{font-size:12px;color:var(--muted);position:absolute;right:0;max-width:35%;line-height:1.4;text-align:right}
.inline-panel,.search-area,.catering-section,#space-highlight,.package-headcount{scroll-margin-top:calc(var(--booking-height) + 18px)}
.inline-panel{padding:28px 0 32px;border-bottom:1px solid var(--line)}
.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.panel-heading h2,#booking-title{font-family:var(--mono);font-size:16px;letter-spacing:.045em;line-height:1.5;margin:0;text-transform:uppercase}
.panel-heading .text-button{font-family:var(--mono);font-size:12px}
.calendar-note{font-size:14px;color:var(--muted);margin:10px 0 24px}
.inline-calendar-layout{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:56px;max-width:930px;margin:0 auto}
.calendar-nav{border-top:0;padding:0 0 18px}
.calendar-nav h3{font-family:var(--mono);font-size:14px;text-transform:uppercase;margin:0;text-align:center}
#calendar-months{display:block}
.calendar-day{min-height:55px;font-size:15px}
.calendar-day small{font-size:11px}
.calendar-selection-column{border-left:1px solid var(--line);padding:5px 0 0 34px}
.calendar-selection-column>h3,#calendar-comparison h3{font-family:var(--mono);font-size:12px;letter-spacing:.03em;margin-bottom:17px}
#calendar-selection{border:0;padding:0;display:flex;flex-wrap:wrap;gap:9px;min-height:37px}
#calendar-selection p{font-size:14px;color:var(--muted)}
.selected-date{border:1px solid var(--line);padding:8px 11px;display:flex;align-items:center;gap:20px;font-size:13px}
#calendar-clear{font-size:11px;margin:12px 0}
#calendar-comparison{margin:24px 0}
.compare-spaces>div{font-size:12px;line-height:1.5}
#calendar-use{margin-top:16px;width:100%}
.calendar-demo-note{font-size:11px;text-align:center;margin-top:25px}
.calendar-legend{margin-bottom:0;font-size:11px}
#booking-panel>#booking-content{max-width:900px;margin:18px auto 0}
#booking-content .dialog-subtitle{margin-top:12px}
.inline-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:28px}
.search-area{padding:23px 0 28px}
.booking-help-search{margin:0 auto;border:1px solid var(--line);padding:0 6px 0 15px}
.booking-help-search:focus-within{border-color:var(--ink);outline:1px solid var(--ink);outline-offset:0}
.booking-help-search input:focus-visible,.booking-help-search button:focus-visible{outline:none}
.booking-help-search button:focus-visible{background:var(--panel)}
.booking-help-search input::placeholder{font-size:12px}
.inline-help{max-width:720px;margin:26px auto 0;border-top:1px solid var(--line);padding-top:20px}
.help-top{display:flex;justify-content:space-between;align-items:center;gap:20px}
.help-top label{font-size:12px;font-family:var(--mono);flex:1;max-width:350px}
#help-space{margin-top:8px;font-family:var(--sans)}
.help-top .text-button{font-size:12px}
.hero-photo-button{cursor:zoom-in}
.gallery-expanded .hero-photo-button{cursor:zoom-out}
.gallery-expanded .hero-photo-button img{aspect-ratio:auto;height:auto;max-height:85vh;object-fit:contain;animation:none}
.catering-section{padding:90px 0}
.catering-section>h2{font-family:var(--sans);font-size:clamp(23px,2.6vw,35px);line-height:1.3;letter-spacing:-.02em;margin:0 auto;max-width:850px}
.caterer-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;max-width:930px;margin:34px auto 0}
.caterer-list button{font-family:var(--mono);font-size:13px;letter-spacing:.025em;padding:18px 6px;border-bottom:1px solid var(--line)}
.caterer-list button:hover,.caterer-list button[aria-expanded="true"]{text-decoration:underline;text-underline-offset:6px}
#caterer-profile{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:30px;text-align:left}
.caterer-nav{display:grid;grid-template-columns:36px 1fr 36px auto;align-items:center;gap:18px;padding:14px 0;font-family:var(--mono);font-size:12px}
.caterer-nav>span{text-align:center}
.caterer-nav>button{font-size:12px;min-height:32px}
.caterer-nav #caterer-close{margin-left:20px}
.caterer-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px;padding-bottom:28px;align-items:start}
.caterer-profile-grid.no-photo{display:block;max-width:650px;margin:0 auto;text-align:center}
.caterer-profile-grid figure{margin:0}
.caterer-photo{width:100%;aspect-ratio:1.18;object-fit:cover}
.caterer-profile-grid figcaption{font-size:11px;color:var(--muted);margin-top:8px}
.caterer-logo{display:flex;align-items:center;justify-content:flex-start;min-height:90px;margin:0 0 22px;background:#fafaf7;padding:18px 24px;width:fit-content;max-width:100%}
.caterer-logo img{max-width:210px;max-height:90px;object-fit:contain}
.caterer-logo.light-logo{background:#350f1b}
.no-photo .caterer-logo{margin-inline:auto}
.caterer-copy>p{font-size:15px;line-height:1.75;color:var(--muted);margin-bottom:25px}
.sample-menus{margin:0 0 20px}
.sample-menus details{border-top:1px solid var(--line)}
.sample-menus summary{display:flex;justify-content:space-between;gap:16px;cursor:pointer;list-style:none;padding:16px 0;font-family:var(--mono);font-size:12px;line-height:1.5}
.sample-menus summary::-webkit-details-marker,.package-group summary::-webkit-details-marker{display:none}
.menu-courses{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.menu-courses h4{font-family:var(--mono);font-size:11px;text-transform:uppercase;margin:0 0 9px;font-weight:400}
.menu-courses ul{list-style:none;padding:0;margin:0;font-size:13px;color:var(--muted);line-height:1.65}
.menu-courses li{margin:0 0 9px}
.menu-note{font-size:12px;line-height:1.7;color:var(--muted);margin:20px 0}
.caterer-copy>.text-button{font-size:12px}
.details-section{padding:64px 0;background:var(--paper)}
.details-section #details-title{font-family:var(--mono);font-size:14px;letter-spacing:.06em}
.specification-context{text-align:center;margin:20px 0 40px;line-height:1.7}
.specification-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:950px;margin:0 auto;gap:0;text-align:center;align-items:stretch}
.specification-grid>section{border:0;border-bottom:1px solid var(--line);padding:30px 28px}
.specification-grid>section:nth-child(odd){border-right:1px solid var(--line)}
.specification-grid>section:nth-child(n+3){border-bottom:0}
.specification-grid>section:last-child{padding:30px 28px}
.specification-grid h3{font-size:12px;margin-bottom:16px}
.specification-grid p{font-size:14px;line-height:1.85}
.capacity-block{margin-top:28px}
.capacity-block h3{margin-bottom:10px}
.combined-specs>h3{text-align:center;margin:40px 0 8px}
.floorplan-section{padding:65px 0 20px}
#floorplan-caption{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:16px}
.floorplan-frame{margin:35px auto 0;background:white;padding:30px;max-width:1000px}
#floorplan-image{width:100%;max-height:680px;object-fit:contain}
.clients-section{padding-top:80px;padding-bottom:75px}
.rooms-section{border-top:1px solid var(--line);padding-top:70px;padding-bottom:70px}
.room-card .room-image img,.room-card .room-image img.portrait-photo{object-fit:cover;aspect-ratio:1.47;width:100%;padding:0;background:none}
.room-grid{gap:36px}
#space-highlight{padding-top:28px;margin-bottom:65px}
#space-highlight .panel-heading h2{font-size:16px}
.detail-addresses{font-family:var(--mono);font-size:12px;line-height:1.8;display:grid;gap:8px;margin-top:20px}
#space-highlight .detail-slideshow{max-width:950px;margin:28px auto}
#space-highlight .detail-image{aspect-ratio:1.65;object-fit:cover;width:100%;margin:0}
#space-highlight .detail-image.floor-plan{object-fit:contain;background:white;padding:20px}
#space-highlight .highlight-actions{max-width:950px;margin:25px auto 0}
.room-only{border:1px solid var(--line);padding:22px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px}
.room-only h3{font-family:var(--mono);font-size:14px;margin-bottom:8px}
.room-only p{font-size:14px;color:var(--muted);line-height:1.6}
.room-only>span,.room-only .text-button{font-family:var(--mono);font-size:11px}
.package-groups{margin-top:25px}
.package-group{border-bottom:1px solid var(--line)}
.package-group>summary{display:flex;align-items:center;justify-content:space-between;padding:23px 0;cursor:pointer;list-style:none;font-family:var(--mono);font-size:13px;letter-spacing:.04em}
.package-group[open]>summary>span,.sample-menus details[open]>summary>span{transform:rotate(45deg)}
.package-body{padding:0 0 25px}
.package-options label,.package-base{display:flex;align-items:start;gap:14px;padding:15px 0;font-size:14px;cursor:pointer}
.package-options input,.package-base input{width:16px;height:16px;margin:2px 0 0;flex:none;accent-color:var(--ink)}
.package-options label>span,.package-base>span{flex:1}
.package-options small,.package-base small{display:block;color:var(--muted);font-size:13px;line-height:1.6;margin-top:6px}
.package-options b,.package-base b{font-weight:400;white-space:nowrap;font-size:13px}
.package-note{font-size:12px;color:var(--muted);line-height:1.7;margin-top:18px}
#cocktail-options{border-top:1px solid var(--line);margin-top:15px;padding-top:20px}
#cocktail-options h3,.package-select-label{font-family:var(--mono);font-size:12px;font-weight:400;margin-bottom:15px;display:block}
.bartender-count{display:flex;align-items:center;gap:20px;margin-top:18px;font-family:var(--mono);font-size:12px}
.bartender-count input{width:65px;padding:10px;border:1px solid var(--line);font-size:16px}
.bartender-count>span{color:var(--muted);font-family:var(--sans)}
#food-package{width:100%;padding:14px;border:1px solid var(--line);font-size:14px}
#browse-food{font-size:12px;margin-top:12px}
.package-headcount{margin:28px 0;border:1px solid var(--line);padding:20px}
.package-headcount label{font-family:var(--mono);font-size:12px;display:block;margin-bottom:14px}
.package-headcount label>span{font-family:var(--sans);font-size:13px;color:var(--muted);margin-left:15px}
.package-headcount input{font-size:16px;padding:12px;border:1px solid var(--line);max-width:200px}
#package-error{font-size:13px;margin-top:12px}
.quote-row{gap:24px}
.quote-row>span:last-child{white-space:nowrap}
@media(max-width:1050px){
  .booking-dock .booking-bar{grid-template-columns:1fr 1fr}
  .booking-dock .booking-field{padding:10px 14px;margin:0;min-height:65px;border-bottom:1px solid var(--line)}
  .booking-dock .booking-field:nth-child(2){border-right:0}
  .booking-dock .time-field{grid-column:1/-1;border-right:0}
  .booking-dock .guests-field{border-bottom:0;border-right:1px solid var(--line)}
  .booking-dock .search-button{grid-column:auto;margin:5px}
  .inline-calendar-layout{gap:30px}
  #booking-message{position:static;max-width:50%;margin-left:16px;font-size:11px}
}
@media(max-width:760px){
  .booking-dock{padding-top:5px}
  .booking-dock .booking-field{min-height:54px;padding:6px 12px;gap:3px}
  .booking-dock .booking-field input,.booking-dock .booking-field select{font-size:13px;height:23px}
  .booking-field>label,.booking-field>span,#space-field>label{font-size:10px}
  #space-field{padding-top:5px;margin-top:4px;gap:3px}
  .booking-dock .booking-extras{min-height:32px}
  .booking-extras .text-button{font-size:11px;padding:7px 0}
  #date-toggle{font-size:13px}
  .search-area{padding:20px 0}
  .inline-calendar-layout{grid-template-columns:1fr;gap:24px;max-width:460px}
  .calendar-selection-column{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}
  #calendar-comparison{margin:18px 0}
  .calendar-day{min-height:49px}
  #calendar-use{margin-top:10px}
  .inline-panel{padding:22px 0}
  .catering-section{padding:60px 0}
  .caterer-list{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:25px}
  .caterer-list button{font-size:11px;line-height:1.7;padding:14px 4px}
  .caterer-profile-grid{grid-template-columns:1fr;gap:24px}
  .caterer-photo{aspect-ratio:1.4}
  .caterer-logo{min-height:60px;padding:15px 20px;margin-bottom:20px}
  .caterer-logo img{max-height:65px;max-width:170px}
  .caterer-nav{gap:8px;font-size:11px}
  .caterer-nav #caterer-close{margin-left:6px;font-size:10px}
  .details-section{padding:45px 0}
  .specification-context{margin:18px 0 24px;font-size:11px}
  .specification-grid{grid-template-columns:1fr 1fr}
  .specification-grid>section,.specification-grid>section:last-child{padding:24px 12px}
  .specification-grid p{font-size:12px;line-height:1.8}
  .specification-grid h3{font-size:11px}
  .floorplan-section{padding:45px 0 0}
  .floorplan-frame{padding:12px;margin-top:23px}
  .clients-section,.rooms-section{padding-top:55px;padding-bottom:55px}
  .room-grid{gap:38px}
  .room-only{padding:17px}
  .room-only p{font-size:13px}
  .package-options label,.package-base{font-size:13px;gap:10px}
  .package-options b,.package-base b{font-size:12px}
  .package-headcount label>span{display:block;margin:8px 0 0}
  .bartender-count{flex-wrap:wrap;gap:12px}
  .quote-row{font-size:13px;gap:15px}
  .quote-footnote{font-size:11px}
}

.specification-grid>section:nth-child(2){padding:30px 28px;border-bottom:1px solid var(--line)}
.caterer-actions{display:flex;flex-wrap:wrap;gap:18px}.caterer-actions .text-button{font-size:12px}
@media(max-width:760px){.specification-grid>section:nth-child(2){padding:24px 12px}}
