/* A dedicated catering surface; no restaurant-menu or invitation styles change. */
.catering-page { background:var(--paper); color:var(--ink); }
.catering-page main { overflow:hidden; }
.catering-page a:focus-visible { outline:3px solid var(--brass); outline-offset:5px; }
.catering-skip { position:absolute; top:-100px; left:20px; z-index:100; padding:16px; background:var(--paper); color:var(--ink); }
.catering-skip:focus { top:12px; }
.catering-hero { position:relative; display:flex; align-items:flex-start; min-height:max(560px,61.6vh); box-sizing:border-box; overflow:hidden; background:var(--navy-2); color:var(--paper); }
.catering-hero::after { content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,color-mix(in oklab,var(--navy-2) 92%,transparent) 0%,color-mix(in oklab,var(--navy-2) 70%,transparent) 48%,color-mix(in oklab,var(--navy-2) 28%,transparent) 100%); }
.catering-hero-copy { position:relative; z-index:2; width:100%; padding:144px var(--edge) 40px; align-self:flex-start; }
.catering-eyebrow { margin:0 0 28px; font:500 12px/1.6 var(--mono); letter-spacing:.15em; text-transform:uppercase; }
.catering-hero .catering-eyebrow,.catering-contact .catering-eyebrow { color:var(--brass-lit); }
.catering-hero h1 { max-width:1000px; margin:0 0 24px; font:400 clamp(34px,5vw,72px)/.96 var(--serif); letter-spacing:-.02em; }
.catering-hero h1 em { color:var(--brass-lit); font-weight:400; }
.catering-lede { max-width:520px; margin:0; font:400 17px/1.6 var(--sans); color:var(--type-on-dark-soft); }
.catering-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:24px; }
.catering-page .btn { white-space:normal; text-align:center; line-height:1.5; font-size:14px; }
.catering-text-link { font:500 15px/1.6 var(--sans); text-decoration:underline; text-underline-offset:6px; }
.catering-location { margin:30px 0 0; font:400 12px/1.6 var(--mono); color:var(--type-on-dark-soft); }
.catering-hero figure { position:absolute; inset:0; margin:0; }
.catering-hero img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:60% center; }
.catering-hero figcaption { position:absolute; z-index:2; right:26px; bottom:25px; padding:9px 14px; background:color-mix(in oklab,var(--navy-2) 86%,transparent); color:var(--paper); font:italic 18px/1.4 var(--serif); }
.catering-intro { display:grid; grid-template-columns:1fr 2fr; gap:60px; max-width:1250px; margin:auto; padding:86px 40px; }
.catering-intro .catering-eyebrow { padding-top:10px; color:var(--type-on-light-soft); }
.catering-page h2 { margin:0 0 24px; font:400 clamp(34px,3.3vw,52px)/1.15 var(--serif); letter-spacing:-.02em; }
.catering-intro p:not(.catering-eyebrow),.catering-menu-heading>p:last-child { font:400 18px/1.75 var(--sans); max-width:720px; color:var(--type-on-light-soft); }
.catering-menu-shell { background:var(--paper-2); padding:75px max(28px,calc((100vw - 1170px)/2)); }
.catering-menu-heading { max-width:760px; margin-bottom:60px; }
.catering-menu-heading .catering-eyebrow { color:var(--navy); }
.catering-menu-heading .catering-fee-note { margin-top:18px; padding-top:16px; border-top:1px solid var(--rule-brass); font-size:15px; }
.catering-menu-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:70px; }
.catering-index nav { display:flex; flex-direction:column; border-top:1px solid var(--rule-light); }
.catering-index nav a { display:flex; justify-content:space-between; gap:12px; padding:17px 0; border-bottom:1px solid var(--rule-light); font:500 15px/1.5 var(--sans); }
.catering-index nav a:hover { color:var(--navy); text-decoration:underline; }
.catering-index nav a { color:var(--type-on-light-soft); }
.catering-index nav a[aria-selected="true"] { color:var(--navy); font-weight:700; border-bottom-color:var(--brass); }
.catering-tabs-ready .catering-menu-content { min-width:0; }
.catering-tabs-ready .catering-category { margin-bottom:0; }
.catering-tabs-ready .catering-category[hidden] { display:none; }
.catering-tabs-ready .catering-price-note { margin-top:20px; margin-bottom:0; }
.catering-category[role="tabpanel"]:focus-visible { outline:2px solid var(--brass); outline-offset:-2px; }
.catering-index>p { margin:30px 0 10px; font:400 16px/1.6 var(--sans); }
.catering-category { margin:0 0 55px; scroll-margin-top:120px; }
.catering-category h3 { margin:0 0 18px; font:400 32px/1.25 var(--serif); color:var(--navy); }
.catering-category table { width:100%; table-layout:fixed; border-collapse:collapse; }
.catering-category thead th { padding:12px 0; border-top:1px solid var(--rule-brass); border-bottom:1px solid var(--rule-light); font:500 12px/1.6 var(--mono); text-transform:uppercase; }
.catering-category th { text-align:left; }
.catering-category thead th:first-child { width:62%; }
.catering-category thead th:not(:first-child) { width:19%; text-align:right; }
.catering-category tbody th { padding:20px 20px 20px 0; font:500 18px/1.45 var(--sans); }
.catering-category tbody th,.catering-category td { border-bottom:1px solid var(--rule-light); vertical-align:top; }
.catering-category td { padding:20px 0 20px 12px; text-align:right; }
.catering-category td strong { font:500 17px/1.55 var(--sans); font-variant-numeric:tabular-nums; }
.catering-category td span { display:block; font:400 13px/1.5 var(--sans); color:var(--type-on-light-soft); }
.dish-detail { display:block; margin-top:5px; font:400 15px/1.6 var(--sans); color:var(--type-on-light-soft); }
.catering-price-note,.catering-custom-note { font:400 15px/1.7 var(--sans); color:var(--type-on-light-soft); margin:0 0 40px; }
.catering-extras { margin:0; }
.catering-extras>div { border-top:1px solid var(--rule-light); padding:20px 0; }
.catering-extras dt { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font:500 18px/1.5 var(--sans); }
.catering-extras dt strong { font:500 16px/1.6 var(--sans); }
.catering-extras dd { margin:6px 0 0; font:400 15px/1.7 var(--sans); color:var(--type-on-light-soft); }
.catering-contact { display:grid; grid-template-columns:1fr 1.2fr; gap:70px; padding:85px max(28px,calc((100vw - 1170px)/2)); background:var(--navy); color:var(--paper); scroll-margin-top:100px; }
.catering-contact p:not(.catering-eyebrow) { font:400 18px/1.75 var(--sans); color:var(--type-on-dark-soft); margin:0; }
.catering-contact p.catering-contact-note { margin-top:26px; font-size:14px; }
#catering-menu { scroll-margin-top:95px; }
@media(max-width:1100px) { .catering-menu-layout { grid-template-columns:180px minmax(0,1fr); gap:35px; } .catering-contact { gap:35px; } }
@media(max-width:760px) {
  .catering-hero { min-height:max(720px,61.6vh); }
  .catering-hero::after { background:linear-gradient(90deg,color-mix(in oklab,var(--navy-2) 90%,transparent),color-mix(in oklab,var(--navy-2) 55%,transparent)); }
  .catering-hero-copy { padding:104px var(--edge) 40px; }
  .catering-hero h1 { font-size:clamp(34px,9vw,56px); }
  .catering-hero img { object-position:center 65%; }
  .catering-hero figcaption { display:none; }
  .catering-intro { grid-template-columns:1fr; gap:0; padding:52px 25px; }
  .catering-menu-shell { padding:52px 22px; }
  .catering-menu-layout { grid-template-columns:1fr; gap:38px; }
  .catering-menu-heading { margin-bottom:30px; }
  .catering-index nav { display:grid; grid-template-columns:1fr 1fr; gap:0 22px; }
  .catering-category thead th:first-child { width:52%; }
  .catering-category thead th:not(:first-child) { width:24%; }
  .catering-category tbody th { font-size:16px; padding-right:8px; }
  .catering-category td { padding-left:6px; }
  .catering-category td strong { font-size:16px; }
  .catering-category td span { font-size:12px; }
  .dish-detail { font-size:14px; }
  .catering-contact { grid-template-columns:1fr; gap:16px; padding:52px 25px; }
  .catering-page .site-footer a { overflow-wrap:anywhere; }
}
