/* Page-level layouts for the six pages. Values come from ../design-system/tokens.css only. */

/* Inner page head */
.page-head{padding:var(--s-8) 0 var(--s-7);border-bottom:1px solid var(--line)}
.page-head .lead{margin-top:var(--s-4)}
@media(min-width:980px){.page-head{padding:var(--s-9) 0 var(--s-8)}}

/* Venue: alternating rows (two at most), then a photo pair */
.row{display:grid;gap:var(--s-6);align-items:center}
.row+.row{margin-top:var(--s-9)}
.row .text>*+*{margin-top:var(--s-4)}
@media(min-width:980px){.row{grid-template-columns:1.25fr 1fr;gap:var(--s-9)}.row--flip{grid-template-columns:1fr 1.25fr}.row--flip .photo{order:2}}
.pair{display:grid;gap:var(--s-6)}
@media(min-width:640px){.pair{grid-template-columns:1fr 1fr}}
.amenities{list-style:none;display:grid;gap:0;border-top:1px solid var(--line)}
.amenities li{display:grid;grid-template-columns:28px 1fr;gap:var(--s-3);padding:var(--s-5) 0;border-bottom:1px solid var(--line)}
.amenities .icon{width:24px;height:24px;color:var(--gold)}
.amenities b{display:block;font-weight:500;color:var(--text)}
.amenities span{font-size:var(--fs-sm);color:var(--text-muted)}
@media(min-width:980px){.amenities{grid-template-columns:1fr 1fr;column-gap:var(--s-8)}}
.occasions{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);margin-top:var(--s-5);font-family:var(--font-display);font-size:var(--fs-h3);color:var(--text)}

/* CTA band (same component on every page) */
.cta-band{display:grid;gap:var(--s-5);padding:var(--s-7) 0;border-top:1px solid var(--line)}
.cta-band .actions{display:flex;flex-wrap:wrap;gap:var(--s-3)}
@media(min-width:980px){.cta-band{grid-template-columns:1fr auto;align-items:center}}

/* Gallery */
.filters{display:flex;gap:var(--s-2);overflow-x:auto;padding-bottom:var(--s-2);margin-bottom:var(--s-6);scrollbar-width:none}
.filters button{flex:none;min-height:var(--btn-h-sm);padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:500;color:var(--text-body);transition:background-color var(--dur-1),color var(--dur-1),border-color var(--dur-1)}
.filters button:hover{border-color:var(--navy)}
.filters button[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--text-invert)}
.grid-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-2)}
@media(min-width:640px){.grid-photos{gap:var(--s-3)}}
@media(min-width:980px){.grid-photos{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}}
.grid-photos button{display:block;width:100%;aspect-ratio:3/2;overflow:hidden;border-radius:var(--r-1);background:var(--ivory-2)}
.grid-photos img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-3) var(--ease)}
.grid-photos button:hover img{transform:scale(1.02)}
.mosaic{display:grid;gap:var(--s-2);grid-template-columns:repeat(2,minmax(0,1fr))}
.mosaic a{display:block;overflow:hidden;border-radius:var(--r-1);aspect-ratio:3/2;background:var(--ivory-2)}
.mosaic a:first-child{grid-column:1 / -1}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-3) var(--ease)}
.mosaic a:hover img{transform:scale(1.02)}
@media(min-width:980px){.mosaic{grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:var(--s-3)}.mosaic a{aspect-ratio:auto}.mosaic a:first-child{grid-column:1;grid-row:span 2;aspect-ratio:3/2}}

/* Rates */
.rate-group{display:grid;gap:var(--s-5);padding:var(--s-7) 0;border-top:1px solid var(--line)}
@media(min-width:980px){.rate-group{grid-template-columns:280px 1fr;gap:var(--s-8)}}
.rate-group h2{font-size:var(--fs-h3)}
.rate-group>div>p.meta{margin-top:var(--s-2)}
.rate-list{list-style:none;display:grid;gap:0}
.rate-list li{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-5);padding:var(--s-4) 0;border-bottom:1px solid var(--line)}
.rate-list li:first-child{padding-top:0}
.rate-list b{font-weight:500;color:var(--text)}
.rate-list small{display:block;font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px}
.rate-list .amount{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--text);white-space:nowrap;text-align:right}
.rate-list .amount small{font-family:var(--font-body);margin-top:0}
.bill{border:1px solid var(--line-strong);border-radius:var(--r-1);background:var(--white);padding:var(--s-6);font-variant-numeric:tabular-nums}
.bill .line{display:flex;justify-content:space-between;gap:var(--s-4);padding:var(--s-3) 0;color:var(--text-body)}
.bill .line+.line{border-top:1px dashed var(--line-strong)}
.bill .total{border-top:1px solid var(--navy)!important;margin-top:var(--s-2);padding-top:var(--s-4);color:var(--text);align-items:baseline}
.bill .total .price{font-size:var(--fs-h2)}
.bill p{margin-top:var(--s-4);font-size:var(--fs-sm);color:var(--text-muted)}

/* Date strip (Home) */
.strip{display:grid;grid-auto-flow:column;grid-auto-columns:132px;gap:var(--s-2);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--s-3);margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);scrollbar-width:thin}
.tile{scroll-snap-align:start;display:grid;gap:var(--s-2);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-1);background:var(--white);transition:border-color var(--dur-1)}
.tile:hover{border-color:var(--navy)}
.tile .wd{font-size:var(--fs-xs);color:var(--text-muted)}
.tile .d{font-family:var(--font-display);font-size:2.25rem;line-height:1;color:var(--text)}
.tile .slots{display:grid;gap:4px;padding-top:var(--s-2);border-top:1px solid var(--line);font-size:var(--fs-xs)}
.tile .slots span{display:flex;align-items:center;gap:6px}
.tile .slots .icon{width:14px;height:14px}
.st-free{color:var(--text)} .st-free .icon{color:var(--gold)}
.st-held{color:var(--gold-text)} .st-booked{color:var(--booked);text-decoration:line-through}
.tile--closed{background:transparent;opacity:.6;pointer-events:none}

/* Reviews */
.reviews-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:var(--s-5);margin-bottom:var(--s-6)}
.score{display:flex;align-items:center;gap:var(--s-3)}
.score .g{width:28px;height:28px}
.score .num{font-family:var(--font-display);font-size:var(--fs-h2);line-height:1;color:var(--text)}
.score .meta{display:grid}
.review-list{display:grid;gap:var(--s-4)}
@media(min-width:980px){.review-list{grid-template-columns:repeat(3,1fr)}}
.stars .off{color:#DADCE0}

/* Contact */
.contact-grid{display:grid;gap:var(--s-8)}
@media(min-width:980px){.contact-grid{grid-template-columns:1.4fr 1fr;gap:var(--s-9);align-items:start}}
.contact-list{display:grid;gap:var(--s-5)}
.contact-list dt{font-size:var(--fs-xs);color:var(--text-muted)}
.contact-list dd{font-size:var(--fs-lead);color:var(--text);margin-top:2px}

/* Availability */
.cal-shell{display:grid;gap:var(--s-5);align-items:start}
@media(min-width:1000px){.cal-shell{grid-template-columns:1.4fr 1fr;gap:var(--s-7)}}
.cal{border:1px solid var(--line);border-radius:var(--r-1);background:var(--white);padding:var(--s-4)}
@media(min-width:640px){.cal{padding:var(--s-6)}}
.slot-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-1);padding:var(--s-1);border-radius:var(--r-pill);background:var(--ivory-2);margin-bottom:var(--s-5)}
.slot-switch button{min-height:var(--btn-h-sm);border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:500;color:var(--text-body);display:flex;align-items:center;justify-content:center;gap:6px;transition:background-color var(--dur-2) var(--ease),color var(--dur-2)}
.slot-switch button[aria-pressed="true"]{background:var(--navy);color:var(--text-invert)}
.slot-switch .icon{width:16px;height:16px}
.cal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-3)}
.cal-top h2{font-size:var(--fs-h3)}
.cal-top .nav-btns{display:flex;gap:var(--s-2)}
.cal-top button{width:var(--tap);height:var(--tap);border-radius:var(--r-pill);border:1px solid var(--line-strong);display:grid;place-items:center;color:var(--navy)}
.cal-top button:disabled{opacity:.3;cursor:default}
.dow,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--s-1)}
.dow span{text-align:center;font-size:var(--fs-xs);color:var(--text-muted);padding-bottom:var(--s-2)}
.days .cal-day{height:auto;aspect-ratio:1/1;min-height:var(--tap);font-size:1.125rem;flex-direction:column;gap:2px;width:100%;cursor:pointer}
.days .cal-day .mk{display:flex;gap:2px;height:10px;color:var(--gold-text)}
.days .cal-day .mk .icon{width:10px;height:10px}
.days .cal-day--selected .mk{color:var(--gold)}
.days .empty,.days .past{border-color:transparent;background:transparent;pointer-events:none}
.days .past{color:#C5C9D2}
.days.is-changing{opacity:0;transform:translateX(calc(var(--dir,1) * -12px));transition:opacity 160ms,transform 160ms}
.legend{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);margin-top:var(--s-5);font-size:var(--fs-xs);color:var(--text-muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:14px;height:14px;border-radius:var(--r-1);display:inline-block}
.panel{border:1px solid var(--line-strong);border-radius:var(--r-1);background:var(--white);padding:var(--s-6);display:grid;gap:var(--s-4)}
@media(min-width:1000px){.panel{position:sticky;top:calc(var(--header-h) + var(--s-5))}}
.panel .slots{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}
.panel .slot{border:1px solid var(--line);border-radius:var(--r-1);padding:var(--s-3);font-size:var(--fs-sm)}
.panel .slot b{display:flex;align-items:center;gap:6px;font-weight:500;color:var(--text)}
.panel .slot b .icon{width:16px;height:16px;color:var(--gold)}
.panel .slot.is-booked b{color:var(--booked);text-decoration:line-through}
.panel .slot.is-held b{color:var(--gold-text)}
.panel .breakdown{display:grid;gap:var(--s-2);font-size:var(--fs-sm);border-top:1px solid var(--line);padding-top:var(--s-4)}
.panel .breakdown div{display:flex;justify-content:space-between;gap:var(--s-3)}
.panel .breakdown .sum{color:var(--text);font-weight:500}
.panel .breakdown .sum span:last-child{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:400}
.sheet-close,.scrim{display:none}
@media(max-width:999px){
  .panel{position:fixed;left:0;right:0;bottom:0;z-index:70;max-height:85svh;overflow:auto;border-radius:var(--r-sheet) var(--r-sheet) 0 0;border-bottom:0;
    padding-bottom:calc(var(--s-6) + env(safe-area-inset-bottom));box-shadow:var(--shadow-overlay);transform:translateY(105%);transition:transform var(--dur-3) var(--ease)}
  .panel.is-open{transform:none}
  .panel .panel-empty{display:none}
  .sheet-close{display:grid;place-items:center;position:absolute;top:var(--s-3);right:var(--s-3);width:var(--tap);height:var(--tap);border-radius:var(--r-pill);border:1px solid var(--line-strong)}
  .scrim{display:block;position:fixed;inset:0;z-index:65;background:rgba(12,24,54,.4);opacity:0;pointer-events:none;transition:opacity var(--dur-2)}
  .scrim.is-open{opacity:1;pointer-events:auto}
}
@media(max-width:479px){.rate-list li{flex-wrap:wrap}.rate-list .amount{white-space:normal;text-align:left}}
