/* Shared restaurant design. Page files own their interactions and image compositions;
   this file owns the palette, type, navigation, controls and spacing on every public page. */
:root {
  --ink:#30322f; --navy:#30322f; --cream:#f3efe7; --copper:#846b55;
  --muted:#625f59; --line:#d3c9bc; --sand:#d8c6ad; --surface:#faf7f1;
  --serif:'Playfair Display',Georgia,serif; --sans:'DM Sans',Arial,sans-serif;
  --sh-paper:var(--cream); --sh-dark:var(--navy); --sh-ink:var(--ink);
  --sh-copper:var(--copper); --sh-accent:var(--copper); --sh-line:var(--line);
  --sh-sand:var(--sand); --sh-button-hover:#e8dac7;
}
body.restaurant-site { background:var(--cream); color:var(--ink); font:400 16px/1.65 var(--sans); color-scheme:light; }
.restaurant-site :is(button,input,select,textarea) { font-family:var(--sans); }
.restaurant-site :is(h1,h2,h3,h4) { font-family:var(--serif); font-weight:600; letter-spacing:-.035em; text-transform:none; }
.restaurant-site p { text-wrap:pretty; }
.restaurant-site :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--copper); outline-offset:4px; }
.restaurant-site :is(section[id],article[id],h2[id]) { scroll-margin-top:28px; }
.restaurant-site .wrap { max-width:1200px; padding-inline:32px; }
.restaurant-site .pp-shell { width:min(1136px,calc(100% - 64px)); }
.restaurant-site .eyebrow { font:600 12px/1.6 var(--sans); letter-spacing:.12em; }
.restaurant-site .eyebrow.dark { color:var(--copper); }

/* One header, including the expanded mobile menu. */
body.restaurant-site .site-header,body.restaurant-site.participation-restaurant .site-header:not(.is-solid) { height:88px; padding-inline:clamp(20px,3.8vw,64px); gap:24px; background:var(--cream); color:var(--ink); border-bottom:1px solid var(--line); }
body.restaurant-site .brand img { width:58px; height:58px; margin-right:12px; filter:none; }
body.restaurant-site .brand span { font:400 12px/1.4 var(--sans); text-transform:none; letter-spacing:.04em; }
body.restaurant-site .brand b { font:600 16px/1.15 var(--sans); letter-spacing:.02em; }
body.restaurant-site .site-header nav { gap:clamp(12px,1.3vw,22px); }
body.restaurant-site .site-header nav a { display:flex; align-items:center; min-height:44px; font:500 14px/1.5 var(--sans); letter-spacing:0; text-transform:none; opacity:1; }
body.restaurant-site .site-header nav a:hover { color:var(--copper); }
body.restaurant-site .site-header nav a[aria-current=page] { text-decoration:underline; text-underline-offset:7px; text-decoration-color:var(--copper); }
body.restaurant-site .site-header .header-cta { min-height:50px; background:var(--sand); color:var(--ink); border-color:var(--sand); font-size:14px; padding:12px 18px; white-space:nowrap; }
body.restaurant-site .menu-button,body.restaurant-site.participation-restaurant .site-header:not(.is-solid) .menu-button { color:var(--ink); border:1px solid var(--line); border-radius:6px; min-height:44px; padding:10px 14px; font:500 14px var(--sans); }

/* A common action shape. Selection chips and image controls stay distinct. */
body.restaurant-site .button,
.restaurant-site #sm-fest :is(.sf-button,.sfm-action),
.restaurant-site #sm-atelier :is(.se-button,.se-action,.button),
.restaurant-site #sm-future .sf-restaurant .sf-action,
.restaurant-site #patisserie :is(.pp-button,button[type=submit]),
.restaurant-site [data-guest-tool] button:not(.pt-secondary),
.restaurant-site .tool-nav :is(#next,#submit) {
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  min-height:50px; padding:13px 22px; border:1px solid var(--ink); border-radius:6px;
  background:var(--ink); color:var(--cream); font:600 16px/1.4 var(--sans);
  text-transform:none; letter-spacing:0; box-shadow:none; white-space:normal;
}
body.restaurant-site .button:hover { background:#454b43; border-color:#454b43; transform:none; }
body.restaurant-site .button.ghost { background:transparent; color:inherit; border-color:currentColor; backdrop-filter:none; }
.restaurant-site :is(.cta,.page-cta,.favorite-seat,.event-hero,.sf-hero,.se-hero) .button,
.restaurant-site #sm-fest .sf-hero .sf-button,
.restaurant-site #sm-atelier .se-hero .se-button { background:var(--sand); border-color:var(--sand); color:var(--ink); }
.restaurant-site :is(.cta,.page-cta,.event-hero) .button.ghost { background:transparent; color:var(--cream); border-color:#f3efe780; }
.restaurant-site .text-link { font-weight:500; text-decoration:underline; text-underline-offset:5px; }
.restaurant-site .actions { gap:12px 20px; flex-wrap:wrap; align-items:center; }

/* Subnavigation reads as navigation rather than a second row of calls to action. */
.restaurant-site .section-nav { padding-block:10px; background:var(--cream); border-bottom:1px solid var(--line); gap:8px 22px; }
.restaurant-site .section-nav strong { font-size:13px; color:var(--muted); }
.restaurant-site .section-nav a { min-height:44px; display:flex; align-items:center; padding:8px 0; border:0; border-radius:0; background:transparent; color:var(--ink); font-size:15px; font-weight:500; }
.restaurant-site .section-nav a:is(:hover,:focus-visible,[aria-current=page]) { background:transparent; color:var(--ink); box-shadow:inset 0 -2px var(--copper); }

/* Titles follow one scale; specialist scenes retain their own geometry. */
.restaurant-site :is(.intro,.offer-head,.host-story,.hours,.gift-copy,.favorite-seat,.content-follow,.cta,.page-cta,.inquiry-copy) h2 { font-size:clamp(30px,3.8vw,52px); line-height:1.15; letter-spacing:-.035em; }
.restaurant-site .br-copy h1 { font-size:clamp(52px,5.2vw,76px); line-height:1.08; }
.restaurant-site .br-eyebrow { font-size:12px; }
.restaurant-site .br-lead { font-size:18px; line-height:1.65; }
.restaurant-site .br-opening { font-size:14px; }
.restaurant-site .br-invitation { padding-block:24px; }
.restaurant-site .br-invitation h2 { font-size:clamp(26px,2.7vw,38px); line-height:1.2; }
.restaurant-site :is(.editorial,.offer-worlds,.host-story,.harbor-visit,.hours) { padding-top:clamp(48px,6vw,88px); padding-bottom:clamp(48px,6vw,88px); }
.restaurant-site .editorial { column-gap:64px; }
.restaurant-site .editorial h2 { font-size:clamp(28px,3vw,40px); line-height:1.18; }
.restaurant-site .editorial h3 { font-family:var(--serif); font-size:26px; line-height:1.25; }
.restaurant-site .editorial p { font-size:16px; line-height:1.7; }
.restaurant-site .reading-page .editorial,.restaurant-site.reading-page .editorial { max-width:960px; }
.restaurant-site .cta,.restaurant-site .page-cta { background:var(--navy); color:var(--cream); padding-block:clamp(48px,6vw,80px); }

/* Informational pages use a clear, compact introduction. */
.restaurant-site .story-hero.text-hero { height:auto; min-height:0; padding:64px 0; background:var(--cream); color:var(--ink); }
.restaurant-site .text-hero:before,.restaurant-site .text-hero .story-shade { display:none; }
.restaurant-site .text-hero .story-copy { position:relative; inset:auto; width:min(1136px,calc(100% - 64px)); margin-inline:auto; padding:0; }
.restaurant-site .text-hero .story-copy h1 { font-size:clamp(32px,4vw,54px); line-height:1.15; text-shadow:none; max-width:24ch; }
.restaurant-site .text-hero .story-copy>p:not(.eyebrow) { color:var(--muted); font-size:17px; }
.restaurant-site .text-hero .eyebrow { color:var(--copper); }

/* Photo headers share a frame with the four celebration pages. */
.restaurant-site .story-hero.page-photo-hero { display:grid; grid-template-columns:1fr 1fr; min-height:480px; height:auto; align-items:stretch; background:var(--cream); color:var(--ink); }
.restaurant-site .page-photo-hero>img { position:relative; inset:auto; grid-column:2; grid-row:1; min-height:480px; height:100%; max-height:600px; width:100%; object-fit:cover; transform:none; }
.restaurant-site .page-photo-hero .story-shade { display:none; }
.restaurant-site .page-photo-hero .story-copy { position:relative; inset:auto; grid-column:1; grid-row:1; align-self:center; width:100%; margin:0; padding:48px clamp(24px,5vw,64px) 48px max(32px,calc((100vw - 1136px)/2)); }
.restaurant-site .page-photo-hero .story-copy h1 { font-size:clamp(34px,4vw,56px); line-height:1.15; text-shadow:none; max-width:20ch; }
.restaurant-site .page-photo-hero .story-copy>p:not(.eyebrow) { color:var(--muted); font-size:17px; }
.restaurant-site .page-photo-hero .eyebrow { color:var(--copper); }
.restaurant-site .page-photo-hero.menu-photo-hero,.restaurant-site .menu-photo-hero>img { min-height:360px; }
.restaurant-site.event-repaired .event-hero,.restaurant-site.event-repaired .event-hero-image { min-height:600px; }
.restaurant-site .event-hero .story-copy h1 { font-size:clamp(34px,4vw,56px); line-height:1.15; }
.restaurant-site .event-hero .story-copy>p:not(.eyebrow) { font-size:17px; line-height:1.65; }
.restaurant-site #patisserie h1 { font-size:clamp(36px,4.9vw,68px); line-height:1.12; letter-spacing:-.035em; }
.restaurant-site #patisserie .pp-hero-copy>p:not(.pp-kicker) { font-size:18px; }
.restaurant-site #patisserie .pp-hero { padding-block:56px; }

/* The about-page invitation uses the same paper and real photograph. */
.restaurant-site #sm-future .sf-restaurant { --sf-ink:var(--ink); --sf-paper:var(--cream); background:var(--cream); }
.restaurant-site #sm-future .sf-dining-stage { background:var(--cream); min-height:600px; }
.restaurant-site #sm-future .sf-dining-copy { padding:56px max(32px,6%) 48px max(32px,calc((100vw - 1136px)/2)); }
.restaurant-site #sm-future .sf-dining-copy h1 { font:600 clamp(36px,4.9vw,68px)/1.12 var(--serif); letter-spacing:-.035em; color:var(--ink); }
.restaurant-site #sm-future .sf-dining-copy h1 em { color:var(--copper); }
.restaurant-site #sm-future .sf-dining-copy>p:not(.sf-eyebrow) { max-width:44ch; color:var(--muted); font:400 17px/1.65 var(--sans); }
.restaurant-site #sm-future .sf-dining-copy .sf-eyebrow { font-size:12px; color:var(--copper); }
.restaurant-site #sm-future .sf-dining-choices button { font-size:15px; min-height:48px; }
.restaurant-site #sm-future .sf-dining-note { font-size:14px!important; color:var(--muted)!important; }
.restaurant-site #sm-future .sf-dining-photo { min-height:600px; perspective:none; }
.restaurant-site #sm-future .sf-dining-photo img { animation:none; transform:none; }
.restaurant-site #sm-future .sf-dining-photo:after { background:linear-gradient(0deg,#30322fbc,transparent 48%); }
.restaurant-site #sm-future .sf-dining-caption { font-family:var(--serif); }
.restaurant-site .gallery-film-heading h3 { font-family:var(--serif); font-weight:600; }
.restaurant-site .gallery-page { padding-block:56px; }
.restaurant-site .gallery-intro h2 { font-family:var(--serif); font-size:clamp(30px,3.8vw,48px); line-height:1.18; }
.restaurant-site .photo-story { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.restaurant-site .photo-story figure,.restaurant-site .photo-story .photo-wide,.restaurant-site .photo-story .photo-tall { grid-column:auto; min-height:0; background:transparent; border-radius:8px; }
.restaurant-site .photo-story img { width:100%; height:auto; transform:none; border-radius:8px; }
.restaurant-site .photo-story figcaption { position:relative; inset:auto; padding:12px 0; background:transparent; color:var(--muted); font:400 14px/1.6 var(--sans); letter-spacing:0; text-transform:none; }

/* Compact utility and route introductions follow the same paper treatment. */
.restaurant-site .story-hero.utility-hero { background:var(--cream); color:var(--ink); }
.restaurant-site .utility-hero .eyebrow { color:var(--copper); }
.restaurant-site .utility-hero .story-copy>p:not(.eyebrow) { color:var(--muted); }
.restaurant-site .route-planner { grid-template-columns:1fr 1fr; gap:32px; padding:40px; }
.restaurant-site .route-planner h2 { font-size:clamp(28px,3vw,40px); line-height:1.18; }

/* Controls and cards share borders and radii. */
.restaurant-site :is(.offer-card,.rental-grid article,.link-cards a,.decision-cards a,.celebration-facts,.arrival-guide,.career-contact,.menu-compass,.menu-shortcuts a,.reservation-frame,.website-inquiry,.catering-tool form,.price-card,.pt-card,.contact-options>section) { border-radius:8px; box-shadow:none; }
.restaurant-site :is(.equipment-band,.inquiry-studio,.route-planner,.winter-note) { border-radius:8px; }
.restaurant-site :is(.host-story img,.visual-pair figure) { border-radius:8px; }
.restaurant-site .menu-compass { background:#e9e1d6; }
.restaurant-site :is(.form-grid,.pp-fields,.pt-fields)>label { font-size:15px; font-weight:500; line-height:1.5; }
.restaurant-site :is(.form-grid,.pp-fields,.pt-fields) :is(input:not([type=checkbox],[type=radio]),select,textarea),
.restaurant-site .menu-compass input { border:1px solid #a69d91; border-radius:6px; min-height:50px; background:var(--surface); color:var(--ink); font:400 16px/1.5 var(--sans); }
.restaurant-site :is(.website-inquiry,.catering-tool form,.pt-card) { background:var(--surface); }
.restaurant-site :is(.choice-grid label,.planner-options span,.pp-options button,.tool-steps) { border-radius:6px; }
.restaurant-site :is(.privacy,.pp-check) { font-size:14px; line-height:1.65; }
.restaurant-site .menu-section h2 { font-size:clamp(28px,3.2vw,44px); line-height:1.18; }
.restaurant-site .menu-item h3 { font:600 18px/1.4 var(--sans); letter-spacing:0; }
.restaurant-site .menu-item p { font-size:15px; line-height:1.55; }
.restaurant-site .menu-item>strong { color:#67513f; font-variant-numeric:tabular-nums; }
.restaurant-site .menu-shortcuts small,.restaurant-site .offer-card small { font-size:12px; line-height:1.5; letter-spacing:.08em; }
.restaurant-site .menu-jump a { border-radius:6px; font-size:14px; }
.restaurant-site :is(figcaption,.field-hint,.pp-help) { font-size:14px; line-height:1.6; }
.restaurant-site .brand-bridge small,.restaurant-site .footer-brand small { font-size:12px; }
.restaurant-site :is(.sm-privacy,.sm-privacy-launcher) { --sm-paper:var(--cream); --sm-ink:var(--ink); --sm-accent:var(--copper); }
.restaurant-site .sm-privacy-launcher { font-size:12px; border-radius:6px; }
.restaurant-site .sm-privacy .sm-privacy-kicker { font-size:12px; }
.restaurant-site #sm-atelier { font-family:var(--sans); font-size:16px; }
.restaurant-site #sm-atelier :is(.se-hero-top,.se-overline,.se-bridge .se-overline,.se-focus-caption .se-overline) { font-size:12px; }
.restaurant-site #sm-atelier :is(#se-location,#se-motion,#se-explore) { font-size:12px; }
.restaurant-site #sm-atelier #se-motion { min-height:44px; }
.restaurant-site .signature .signature-kicker { font-size:12px; }
.restaurant-site #sm-atelier .se-hero h1 { font-size:clamp(40px,5vw,72px); line-height:1.1; }
.restaurant-site #sm-atelier .se-planner-title h2 { font-size:clamp(30px,3.6vw,48px); line-height:1.15; }
.restaurant-site #sm-fest .sf-intro h1 { font-size:clamp(40px,5vw,72px); line-height:1.1; }
.restaurant-site #sm-fest .sf-photo { border-radius:8px; }
.restaurant-site #sm-fest :is(.sfm-eyebrow,.sfm-caption,.sfm-toggle) { font-size:12px; }
.restaurant-site #sm-fest .sfm-picture { border-radius:8px; }

/* Content is immediately visible while scrolling; photos provide the atmosphere. */
.restaurant-site .cinema-heading,.restaurant-site .cinema-item { opacity:1!important; translate:none!important; filter:none!important; transition:none!important; }
.restaurant-site :is(.cinema-ambient,.cinema-progress) { display:none; }
.restaurant-site footer { background:var(--navy); color:var(--cream); padding:48px max(24px,calc((100vw - 1136px)/2)); gap:32px; font-size:14px; }
.restaurant-site footer a { overflow-wrap:anywhere; }
.restaurant-site footer p>a { padding-inline:0; }
.restaurant-site footer p { font-size:14px; line-height:1.7; }
.restaurant-site footer small { font-size:12px; }
.restaurant-site .footer-grid { gap:32px; }
.restaurant-site #sm-atelier .harbor-single-request .website-inquiry { border-radius:8px; }

@media(max-width:1150px) {
  body.restaurant-site .site-header { height:76px; gap:16px; }
  body.restaurant-site .site-header nav { display:none; position:absolute; top:76px; left:0; right:0; max-height:calc(100dvh - 76px); overflow-y:auto; padding:16px 24px; background:var(--cream); color:var(--ink); border-bottom:1px solid var(--line); flex-direction:column; gap:0; box-shadow:0 16px 24px #30322f12; }
  body.restaurant-site .site-header nav.open { display:flex; }
  body.restaurant-site .menu-button { display:block; }
  body.restaurant-site .site-header .header-cta { display:none; }
  body.restaurant-site .brand img { width:48px; height:48px; }
}
@media(max-width:900px) {
  .restaurant-site .photo-story { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .restaurant-site .br-lead { font-size:16px; }
  body.restaurant-site .mobile-actions { background:var(--cream); border-top:1px solid var(--line); box-shadow:none; }
  body.restaurant-site .mobile-actions a { border-radius:6px; }
  body.restaurant-site .mobile-actions a.mobile-primary { background:var(--ink); color:var(--cream); }
  .restaurant-site #sm-future .sf-dining-copy { padding:36px 28px; }
}
@media(max-width:760px) {
  .restaurant-site .wrap { padding-inline:20px; }
  .restaurant-site .pp-shell { width:calc(100% - 40px); }
  .restaurant-site :is(.intro,.offer-worlds,.host-story,.harbor-visit,.hours,.editorial) { padding-top:40px; padding-bottom:40px; }
  .restaurant-site :is(.intro,.offer-head,.host-story,.hours,.gift-copy,.favorite-seat,.content-follow,.cta,.page-cta,.inquiry-copy) h2 { font-size:clamp(28px,7.8vw,36px); line-height:1.18; }
  .restaurant-site.reading-page .editorial h2 { font-size:clamp(22px,5.8vw,29px); }
  .restaurant-site .editorial h3 { font-size:clamp(20px,5.8vw,24px); }
  .restaurant-site .route-planner { grid-template-columns:1fr; padding:24px; gap:24px; }
  .restaurant-site .text-hero { padding-block:36px; }
  .restaurant-site .text-hero .story-copy { width:calc(100% - 40px); }
  .restaurant-site .text-hero .story-copy h1 { font-size:clamp(30px,8vw,40px); }
  .restaurant-site .story-hero.page-photo-hero { grid-template-columns:1fr; min-height:0; }
  .restaurant-site .page-photo-hero>img { grid-column:1; grid-row:1; min-height:0; height:240px; object-position:var(--header-focus,50% 50%); }
  .restaurant-site .page-photo-hero .story-copy { grid-column:1; grid-row:2; padding:28px 20px 32px; }
  .restaurant-site .page-photo-hero .story-copy h1 { font-size:clamp(30px,8vw,40px); }
  .restaurant-site .menu-photo-hero>img { height:180px; min-height:0; }
  .restaurant-site.event-repaired .event-hero { min-height:0; }
  .restaurant-site.event-repaired .event-hero-image { min-height:0; height:300px; }
  .restaurant-site .event-hero .story-copy h1 { font-size:clamp(30px,8vw,40px); }
  .restaurant-site .event-hero .story-copy>p:not(.eyebrow) { font-size:16px; }
  .restaurant-site .section-nav { gap:20px; }
  .restaurant-site .section-nav a { font-size:14px; }
  .restaurant-site #patisserie h1 { font-size:clamp(34px,9vw,46px); }
  .restaurant-site #patisserie .pp-hero { padding-block:36px; }
  .restaurant-site #patisserie .pp-hero-copy>p:not(.pp-kicker) { font-size:16px; }
  .restaurant-site #sm-future .sf-dining-photo { min-height:0; height:300px; }
  .restaurant-site #sm-future .sf-dining-copy { padding:32px 20px; }
  .restaurant-site #sm-future .sf-dining-copy h1 { font-size:clamp(34px,9vw,46px); }
  .restaurant-site #sm-future .sf-dining-copy>p:not(.sf-eyebrow) { font-size:16px; }
  .restaurant-site #sm-future .sf-dining-choices button { font-size:14px; }
  .restaurant-site .br-eyebrow { font-size:12px; }
  .restaurant-site .br-opening { font-size:14px; }
  .restaurant-site .pp-inquiry { padding-block:40px; }
  .restaurant-site .gallery-page { padding-block:40px; }
  .restaurant-site footer { grid-template-columns:.8fr 1.2fr; gap:24px; padding-bottom:40px; }
  .restaurant-site .footer-brand,.restaurant-site footer>div:last-child { grid-column:1/-1; }
}
@media(max-width:600px) { .restaurant-site .photo-story { grid-template-columns:1fr; } }
@media(max-width:380px) {
  body.restaurant-site .site-header { padding-inline:14px; gap:10px; }
  body.restaurant-site .brand img { width:42px; height:42px; margin-right:8px; }
  .restaurant-site footer { grid-template-columns:1fr; gap:20px; }
  .restaurant-site footer>div:nth-child(3) p { display:flex; flex-wrap:wrap; gap:4px 16px; }
  .restaurant-site footer>div:nth-child(3) br { display:none; }
  .restaurant-site .menu-section h2 { font-size:27px; }
  .restaurant-site .br-copy h1 { font-size:42px; }
  .restaurant-site .text-hero .story-copy h1 { font-size:27px; }
}


/* Optikcheck: one warm composition, shorter task paths and an unobstructed footer. */
.restaurant-site footer .footer-privacy{grid-column:1/-1;border-top:1px solid #f3efe72b;padding-top:12px}
.restaurant-site footer .sm-privacy-inline{color:var(--cream)}
.restaurant-site .reservation-heading{padding-block:40px 24px}
.restaurant-site .reservation-heading .story-copy h1{font-size:clamp(32px,3.8vw,48px)}
.restaurant-site .interactive-reservation{margin-top:0}
.restaurant-site .reservation-heading+article{padding-top:0}
.restaurant-site .reservation-notes{margin:20px 0;border:1px solid var(--line);border-radius:8px;padding:0 20px;background:var(--surface)}
.restaurant-site .reservation-notes summary{min-height:56px;padding:15px 0;font-weight:500;cursor:pointer}
.restaurant-site .reservation-notes>div{padding:0 0 16px}
.restaurant-site .reservation-notes .arrival-grid{gap:24px}
.restaurant-site .reservation-notes h3{font:600 18px/1.4 var(--sans)}
.restaurant-site .reservation-fallback{font-size:14px;line-height:1.6}
.restaurant-site .story-hero.menu-photo-hero,.restaurant-site .menu-photo-hero>img{min-height:260px}
.restaurant-site .menu-photo-hero .story-copy{padding-block:28px}
.restaurant-site .menu-jump{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:20px 0 32px}
.restaurant-site .menu-jump a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 8px;text-align:center;border:1px solid var(--line);background:transparent;line-height:1.4}
.restaurant-site .menu-compass{padding:20px;border:1px solid var(--line);background:var(--surface)}
.restaurant-site.event-repaired .event-hero{background:var(--cream);color:var(--ink);min-height:480px}
.restaurant-site.event-repaired .event-hero .story-copy{padding:40px clamp(24px,4vw,64px)}
.restaurant-site.event-repaired .event-hero .eyebrow{color:var(--copper)}
.restaurant-site.event-repaired .event-hero .story-copy>p:not(.eyebrow){color:var(--muted);max-width:46ch}
.restaurant-site.event-repaired .event-hero-image{min-height:480px;background:var(--cream);display:flex;align-items:center;justify-content:center}
.restaurant-site.event-repaired .event-hero-image img{width:100%;height:480px;object-fit:contain;max-height:none}
.restaurant-site.event-repaired .event-hero .button{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.restaurant-site.event-repaired .event-hero .button.ghost{padding-inline:0;border:0;background:transparent;color:var(--ink);text-decoration:underline;text-underline-offset:5px}
.restaurant-site #sm-fest{background:var(--cream);color:var(--ink);color-scheme:light;--sf-gold:var(--copper)}
.restaurant-site #sm-fest .sf-page-links{background:var(--cream);color:var(--ink);border-bottom:1px solid var(--line);padding-block:10px}
.restaurant-site #sm-fest .sf-page-links a{color:var(--ink);display:inline-flex;align-items:center;min-height:44px}
.restaurant-site #sm-fest .sf-hero{max-width:1200px;margin:auto;padding:40px 32px 48px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px}
.restaurant-site #sm-fest .sf-intro h1{font-size:clamp(36px,4vw,56px);animation:none;margin:16px 0 24px}
.restaurant-site #sm-fest .sf-intro h1 em{color:var(--copper)}
.restaurant-site #sm-fest .sf-eyebrow{font-size:12px;color:var(--copper)}
.restaurant-site #sm-fest .sf-lead{color:var(--muted);font-size:17px;max-width:46ch;line-height:1.65}
.restaurant-site #sm-fest .sf-handwritten{color:var(--muted);font-family:var(--sans);font-style:normal;font-size:14px}
.restaurant-site #sm-fest .sf-film{border-radius:8px;aspect-ratio:4/3;min-height:0;height:auto;width:100%;max-width:100%;border:0;box-shadow:none}
.restaurant-site #sm-fest .sf-photo{border-radius:8px;transform:none;animation:none}
.restaurant-site #sm-fest .sf-story.is-paused .sf-photo{transform:none}
.restaurant-site #sm-fest .sf-motion{min-height:44px;border-radius:6px;background:#30322fe6;color:var(--cream)}
.restaurant-site #sm-fest .sf-scene-tabs button{min-height:44px;font-size:14px;color:var(--ink);border-color:var(--line)}
.restaurant-site #sm-fest .sf-scene-tabs button[aria-pressed=true]{color:var(--ink);border-color:var(--copper)}
.restaurant-site #sm-fest .sfm-intro{grid-template-columns:minmax(0,1fr) minmax(0,360px);max-width:1200px;margin:auto;padding:40px 32px;gap:64px;min-height:0}
.restaurant-site #sm-fest .sfm-figure{width:100%;min-width:0}
.restaurant-site #sm-fest .sfm-copy{display:block}
.restaurant-site #sm-fest .sfm-eyebrow{position:static;margin:0 0 20px;color:var(--copper);text-align:left;letter-spacing:.12em;font-size:12px}
.restaurant-site #sm-fest .sfm-lines{display:none}
.restaurant-site #sm-fest .sfm-intro .sfm-choices{max-height:none;opacity:1;visibility:visible;overflow:visible;transform:none;transition:none}
.restaurant-site #sm-fest .sfm-choices h2{font-size:clamp(34px,4vw,56px);line-height:1.15;margin:0 0 24px}
.restaurant-site #sm-fest .sfm-choice-grid button{border-radius:6px;font-size:15px;min-height:52px;transform:none}
.restaurant-site #sm-fest .sfm-choice-result{min-height:82px;font-size:16px;line-height:1.6}
.restaurant-site #sm-fest .sfm-action{margin-top:20px}
.restaurant-site #sm-fest .sfm-video{animation:none!important;transform:none!important}
.restaurant-site #sm-atelier .se-bridge .signature-chevy{--sig-paper:var(--cream);--sig-ink:var(--ink);--sig-accent:var(--copper);background:transparent;color:var(--ink);margin-top:36px;border-block:1px solid var(--line)}
.restaurant-site #sm-atelier .se-bridge .signature-inner{width:100%;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:40px;padding:32px 0}
.restaurant-site #sm-atelier .se-bridge .signature-copy{display:block}
.restaurant-site #sm-atelier .se-bridge .signature h2{font:600 clamp(28px,3vw,40px)/1.18 var(--serif);margin:0 0 16px}
.restaurant-site #sm-atelier .se-bridge .signature-copy>p:not([class]),.restaurant-site #sm-atelier .se-bridge .signature figcaption{color:var(--muted)}
.restaurant-site #sm-atelier .se-bridge .signature-kicker{font-size:12px}
.restaurant-site #sm-atelier .se-bridge .apache-detail{margin:16px 0;font-size:12px}
.restaurant-site #sm-atelier .se-bridge .chevy-stage{aspect-ratio:2/3;max-width:230px;margin-inline:auto;border-radius:8px}
.restaurant-site #sm-atelier .se-bridge .signature figure{grid-row:auto}
.restaurant-site #sm-atelier .se-bridge .signature figcaption{font-size:14px;margin-top:12px}
.restaurant-site #sm-atelier .se-planner{border-top:1px solid var(--line)}
.restaurant-site .faq-answer{border-bottom:1px solid var(--line);break-inside:avoid}
.restaurant-site .faq-answer summary{min-height:56px;padding:16px 0;font:500 17px/1.5 var(--sans);cursor:pointer}
.restaurant-site .faq-answer>div{padding-bottom:8px}
.restaurant-site .faq-answer>div p:first-child{margin-top:0}
.restaurant-site .faq-answer[open] summary{color:var(--copper)}
@media(max-width:900px){
 body.restaurant-site{padding-bottom:calc(74px + env(safe-area-inset-bottom))}
 body.restaurant-site .mobile-actions{grid-template-columns:minmax(0,1.65fr) minmax(0,.85fr) minmax(0,.9fr);gap:5px;padding:6px 8px calc(6px + env(safe-area-inset-bottom))}
 body.restaurant-site .mobile-actions a{min-height:48px;padding:8px 3px;font-size:13px;line-height:1.3;background:transparent;color:var(--ink)}
 .restaurant-site #sm-fest .sfm-intro{gap:32px;grid-template-columns:minmax(0,1fr) minmax(0,300px)}
}
@media(max-width:900px){
 .restaurant-site footer{grid-template-columns:1fr;gap:16px;padding:28px 20px}
 .restaurant-site footer .footer-brand{font-size:25px}
 .restaurant-site footer .footer-brand img{width:48px;height:48px;margin-right:12px}
 .restaurant-site footer>div>b{font-size:14px}
 .restaurant-site footer>div:nth-child(2) p{margin:8px 0 0}
 .restaurant-site footer>div:is(:nth-child(3),:nth-child(4)) p{display:flex;flex-wrap:wrap;gap:0 18px;margin:4px 0 0;font-size:14px}
 .restaurant-site footer>div:is(:nth-child(3),:nth-child(4)) p br{display:none}
 .restaurant-site footer>div:is(:nth-child(3),:nth-child(4)) p a{display:inline-flex;align-items:center;min-height:44px;font-size:14px}
 .restaurant-site footer>div:nth-child(4) p small{display:flex}
}
@media(max-width:760px){
 .restaurant-site .brand-bridge{padding:20px}
 .restaurant-site .brand-bridge a{grid-template-columns:90px minmax(0,1fr);gap:16px}
 .restaurant-site .brand-bridge img{width:90px}
 .restaurant-site .brand-bridge span{padding-left:16px}
 .restaurant-site .brand-bridge strong{font-size:19px}
 .restaurant-site .brand-bridge em{font-size:13px}
 .restaurant-site .reservation-heading{padding:28px 0 20px;min-height:0}
 .restaurant-site .reservation-heading .story-copy h1{font-size:34px}
 .restaurant-site .reservation-notes{padding-inline:16px}
 .restaurant-site .reservation-notes .arrival-grid{grid-template-columns:1fr}
 .restaurant-site .story-hero.menu-photo-hero{min-height:0}
 .restaurant-site .menu-photo-hero>img{height:140px;min-height:0}
 .restaurant-site .menu-photo-hero .story-copy{padding:24px 20px}
 .restaurant-site .menu-jump{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-block:16px 24px}
 .restaurant-site .menu-compass{padding:16px}
 .restaurant-site.event-repaired .event-hero{min-height:0}
 .restaurant-site.event-repaired .event-hero .story-copy{padding:28px 20px 32px}
 .restaurant-site.event-repaired .event-hero-image{min-height:0;height:260px}
 .restaurant-site.event-repaired .event-hero-image img{height:260px}
 .restaurant-site.event-repaired .event-hero .actions{display:flex;gap:8px 20px}
 .restaurant-site #sm-fest .sf-hero{grid-template-columns:1fr;padding:28px 20px 32px;gap:28px}
 .restaurant-site #sm-fest .sf-intro h1{font-size:clamp(32px,8vw,40px);margin:14px 0 20px}
 .restaurant-site #sm-fest .sf-lead{font-size:16px}
 .restaurant-site #sm-fest .sf-film{height:auto;aspect-ratio:4/3;border-radius:8px}
 .restaurant-site #sm-fest .sfm-intro{display:grid;grid-template-columns:1fr;padding:28px 20px;gap:24px}
 .restaurant-site #sm-fest .sfm-copy{order:1;width:100%}
 .restaurant-site #sm-fest .sfm-figure{order:2;justify-self:center;width:min(100%,270px)}
 .restaurant-site #sm-fest .sfm-choices{width:100%}
 .restaurant-site #sm-fest .sfm-choices h2{font-size:clamp(32px,8vw,40px);margin:0 0 20px}
 .restaurant-site #sm-fest .sfm-choice-grid button{min-height:48px;font-size:14px}
 .restaurant-site #sm-fest .sfm-choice-result{min-height:100px;font-size:15px;margin-top:14px}
 .restaurant-site #sm-fest .sfm-action{margin-top:8px;background:transparent;border:0;color:var(--ink);padding:8px 0;width:auto;min-height:44px;text-decoration:underline;text-underline-offset:5px}
 .restaurant-site #sm-fest .sfm-shade{background:linear-gradient(0deg,#101710b3,transparent 15%)}
 .restaurant-site #sm-atelier .se-bridge .signature-inner{grid-template-columns:1fr;gap:20px;padding:28px 0}
 .restaurant-site #sm-atelier .se-bridge .chevy-stage{max-width:200px}
 .restaurant-site #sm-atelier .se-occasions{grid-template-columns:repeat(2,minmax(0,1fr))}
 .restaurant-site #sm-atelier .se-occasions button{min-height:48px;font-size:14px;padding:12px}
 .restaurant-site .faq-answer summary{font-size:16px}
}

@media(max-width:900px){body.restaurant-site .mobile-actions:has(a:last-child:nth-child(2)){grid-template-columns:repeat(2,minmax(0,1fr))}}
.restaurant-site #sm-future .sf-dining-copy h1{font-size:clamp(34px,4vw,56px)}
.restaurant-site #sm-future :is(.sf-dining-stage,.sf-dining-photo){min-height:480px}
@media(max-width:760px){.restaurant-site #sm-future .sf-dining-copy h1{font-size:clamp(32px,8vw,40px)}.restaurant-site #sm-future .sf-dining-stage{min-height:0}.restaurant-site #sm-future .sf-dining-photo{min-height:0;height:280px}}
.restaurant-site #sm-fest .sf-scenes button{color:var(--muted);border-color:var(--line);min-height:44px;font-size:14px}
.restaurant-site #sm-fest .sf-scenes button[aria-pressed=true]{color:var(--ink);border-color:var(--copper)}
.restaurant-site #sm-fest .sf-film{animation:none}
.restaurant-site #sm-fest .sf-scene{transform:none;transition:opacity .45s ease}
.restaurant-site #sm-atelier .hafenbar .harbor-single-request{background:var(--cream);color:var(--ink);color-scheme:light}
.restaurant-site #sm-atelier .harbor-single-request .se-planner-intro>.se-overline{color:var(--copper);font-size:12px}
.restaurant-site #sm-atelier .harbor-single-request #se-other-occasion{color-scheme:light;border-color:var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}
.restaurant-site #sm-atelier .harbor-single-request .se-occasions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:0}
.restaurant-site #sm-atelier .harbor-single-request .se-occasions button{border:1px solid var(--line);border-radius:6px;padding:12px;color:var(--ink);min-height:48px;font-size:15px}
.restaurant-site #sm-atelier .harbor-single-request .se-occasions button[aria-pressed=true]{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.restaurant-site #sm-atelier .harbor-single-request .se-guestline{border-color:var(--line)}
.restaurant-site #sm-atelier .harbor-single-request .se-stepper{background:var(--surface);border-color:var(--line);border-radius:6px}
.restaurant-site #sm-atelier .harbor-single-request .se-stepper :is(input,button){color:var(--ink)}
.restaurant-site #sm-atelier .harbor-single-request .se-services label{color:var(--ink);border-color:var(--line)}
.restaurant-site #sm-atelier .harbor-single-request .se-services strong{color:var(--ink);font-weight:500}
.restaurant-site #sm-atelier .harbor-single-request .se-services small{color:var(--muted);font-size:14px;max-width:none}
.restaurant-site #sm-atelier .harbor-single-request .se-services label:has(input:checked) strong{color:var(--copper)}
.restaurant-site #sm-atelier .harbor-single-request .website-inquiry{border:1px solid var(--line)}
@media(max-width:760px){.restaurant-site #sm-atelier .harbor-single-request .se-occasions button{font-size:14px}}

body.restaurant-site .interactive-reservation .reservation-frame>iframe{min-height:0;height:900px;background:var(--cream);transition:none}
/* Compact reading introductions and the careers page follow the same warm entry. */
.restaurant-site .text-hero+.editorial{padding-top:24px}
.restaurant-site .text-hero+.editorial>h2:first-of-type{margin-top:0}
.restaurant-site .text-hero+.editorial>p:first-child{margin-top:0}
.restaurant-site .story-hero.reservation-heading{padding-block:40px 24px}
.restaurant-site .page-photo-hero .button.ghost{background:transparent;color:var(--ink);border:0;padding-inline:0;text-decoration:underline;text-underline-offset:5px}
.restaurant-site .career-hero{background:var(--cream);color:var(--ink)}
.restaurant-site .career-hero h1{font:600 clamp(34px,4vw,56px)/1.15 var(--serif);letter-spacing:-.035em}
.restaurant-site .career-hero .eyebrow{color:var(--copper);font-size:12px}
.restaurant-site .career-hero :is(.career-lead,.career-note){color:var(--muted);line-height:1.65}
.restaurant-site .career-hero .button{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.restaurant-site .career-hero .button.ghost{background:transparent;border:0;padding-inline:0;color:var(--ink);text-decoration:underline;text-underline-offset:5px}
.restaurant-site .career-hero figure img{height:480px;width:100%;object-fit:cover}
@media(max-width:760px){
 .restaurant-site .story-hero.text-hero{padding-block:32px}
 .restaurant-site .story-hero.reservation-heading{padding-block:28px 20px}
 .restaurant-site .career-hero .career-intro{padding:32px 20px}
 .restaurant-site .career-hero h1{font-size:clamp(32px,8vw,40px)}
 .restaurant-site .career-hero .career-lead{font-size:16px}
 .restaurant-site .career-hero figure img{height:260px}
}
.restaurant-site .career-hero>figure{min-height:0}
.restaurant-site .career-hero>figure>img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover}
@media(max-width:800px){.restaurant-site .career-hero>figure{height:260px}.restaurant-site .career-hero>figure>img{position:static;height:100%}}

.meal-wish-invitation{padding:28px 32px;margin:35px 0;background:#eeeee2;border:1px solid #dedecf;border-radius:12px;color:#334638}.meal-wish-invitation h2{font-size:28px;margin:0 0 12px}.meal-wish-invitation p{font-size:14px;line-height:1.75;max-width:750px;margin:0}@media(max-width:600px){.meal-wish-invitation{padding:23px}.meal-wish-invitation h2{font-size:24px}}
