/* One spacing rhythm across the existing restaurant sections and both type choices. */
:root {
  --content-width: 75rem;
  --page-gutter: clamp(1.25rem, 5vw, 5rem);
  --page-inset: max(var(--page-gutter), calc((100% - var(--content-width)) / 2));
  --section-space: clamp(3.5rem, 6vw, 5.5rem);
  --section-title: clamp(2.5rem, 4vw, 4rem);
}

button, input, textarea { font: inherit; }
a, button, input, textarea { -webkit-tap-highlight-color: transparent; }
:is(a, button, input, textarea):focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 4px;
}
:is(section, article)[id] { scroll-margin-top: 1.5rem; }
.preview-controls[hidden] { display: none; }

.site-header {
  min-height: 80px;
  height: auto;
  padding-inline: var(--page-inset);
  padding-block: .75rem;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.site-header nav { gap: clamp(1.25rem, 2.5vw, 2rem); flex-wrap: wrap; }
.site-header nav > a:not(.nav-cta) { min-height: 44px; }
.menu-toggle { min-height: 44px; padding: .65rem .25rem; font-size: .875rem; }
:is(.button, .nav-cta), .type--bold :is(.button, .nav-cta) {
  min-height: 48px;
  padding: .8rem 1.2rem;
  font-size: .875rem;
  line-height: 1.5;
  letter-spacing: .055em;
  text-align: center;
}
.text-link, .simple-link, footer > a {
  min-height: 44px;
  font-size: .875rem;
  line-height: 1.5;
  letter-spacing: .055em;
}
.eyebrow, .type--bold .eyebrow {
  font-size: .875rem;
  line-height: 1.5;
  letter-spacing: .1em;
  margin-bottom: 1rem;
}
.eyebrow::before { width: 24px; flex-shrink: 0; }

.hero--full h1, .type--bold .hero--full h1 {
  font-size: clamp(3.25rem, 5vw, 5.5rem);
  line-height: 1.02;
}
.hero--full .intro { margin: 1.4rem 0 1.6rem; max-width: 24rem; }
.hero--full .hero-actions { gap: .65rem 1.25rem; }
.hero--chef .hero-content { padding-block: 3.5rem; }

:is(.welcome, .menu-section, .party-builder, .giftcards, .visit) {
  padding: var(--section-space) var(--page-inset);
}
:is(.section-heading, .signature-dish, .menu-grid, .menu-downloads,
    .builder-intro, .builder-shell, .giftcard-intro, .giftcard-availability, .giftcard-layout) {
  max-width: var(--content-width);
}
:is(.welcome, .menu-section, .gather, .builder-intro, .giftcard-intro, .visit) h2,
.type--bold :is(.welcome, .menu-section, .gather, .builder-intro, .giftcard-intro, .visit) h2 {
  font-size: var(--section-title);
  line-height: 1.08;
}
.welcome { grid-template-columns: 1.1fr .9fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.welcome-copy { padding-left: 1.5rem; line-height: 1.7; }
.welcome-copy p:first-child { margin-top: 0; }
.section-heading { gap: 2rem; align-items: center; padding-bottom: 1.75rem; }
.section-heading .button { flex-shrink: 0; }
.signature-dish { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); margin-block: 2rem; }
.signature-copy { padding: clamp(1.5rem, 4vw, 3.5rem); }
.signature-copy h3 { font-size: clamp(2rem, 3.6vw, 3.5rem); }
.signature-description { margin-block: 1.25rem 1.5rem; line-height: 1.7; }
.signature-price { padding-top: 1rem; }
.menu-grid--with-signature .menu-card { padding: 1.5rem 1.25rem; gap: .5rem 1rem; }
.menu-grid--with-signature .card-number { display: none; }
.menu-card .category { margin-top: 0; }
.menu-card h3 { margin: .5rem 0 .75rem; }
.menu-card p:last-child { margin-bottom: 0; color: rgba(255,255,255,.82); }
.menu-card strong { align-self: start; padding-top: .1rem; }
.menu-downloads { margin-top: 1.75rem; gap: 1rem 2rem; flex-wrap: wrap; }
.menu-downloads p { margin: 0; line-height: 1.65; }
.menu-downloads a { min-height: 44px; display: inline-flex; align-items: center; line-height: 1.5; }

.gather, .type--bold .gather {
  padding: clamp(3rem, 5vw, 4.5rem) var(--page-inset);
  grid-template-columns: 1.1fr .9fr;
  gap: clamp(2rem, 5vw, 4rem);
}
.gather-mark { display: none; }
.gather-copy { max-width: none; line-height: 1.7; }
.gather-copy p { margin: 0; }
.gather-copy .button { margin-top: 1.25rem; }
.gather-intro { min-width: 0; }
.gather-intro .gather-copy { max-width: 32rem; margin-top: 1.5rem; }
.gather-photo { width: min(100%, 24rem); min-width: 0; margin: 0; justify-self: end; }
.gather-photo img { display: block; width: 100%; height: auto; border: 1px solid var(--gold); }
.gather-photo figcaption { margin-top: .65rem; font-size: .875rem; line-height: 1.5; color: #e1c18b; }
.builder-intro { gap: clamp(2rem, 5vw, 4rem); margin-bottom: 2rem; align-items: center; }
.builder-intro > p { font-size: 1rem; line-height: 1.7; padding-left: 1.5rem; }
.builder-shell { grid-template-columns: minmax(0,1fr) 19rem; }
.type-card { padding: 1.2rem; grid-template-columns: 1fr; gap: .3rem; min-width: 0; }
.type-card > span { display: none; }
.type-card small { font-size: .875rem; line-height: 1.45; color: rgba(255,255,255,.78); }
.builder-form { padding: 2rem; min-width: 0; }
.included-menu { padding: 1rem 1.25rem; margin-bottom: 1.5rem; }
.included-menu h3 { font-size: 1.5rem; margin-bottom: .5rem; }
.included-menu ul { gap: .4rem 1rem; }
.choice-heading { gap: 1rem; margin-bottom: 1rem; }
.choice-heading > div > span, .choice-heading > p { font-size: .875rem; line-height: 1.5; }
.choice-heading > div > span { letter-spacing: .08em; }
.choice-heading.sub { margin-top: 2rem; padding-top: 1.75rem; }
.choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; }
.choice-grid label span { min-height: 54px; padding: .85rem 2.5rem .85rem 1rem; line-height: 1.45; }
.brunch-price { padding: 1rem 1.25rem; }
.event-details { margin-top: 2rem; padding-top: 1.75rem; }
.event-details label { min-width: 0; }
.event-details label > span { font-size: .875rem; letter-spacing: .04em; line-height: 1.5; }
.event-details :is(input,textarea) { min-width: 0; width: 100%; }
.builder-summary { padding: 2rem 1.5rem; align-self: start; min-height: 0; }
.summary-kicker { font-size: .875rem; line-height: 1.5; letter-spacing: .08em; margin: 0; }
.summary-content { flex: initial; color: rgba(255,255,255,.84); }
.summary-content ul { margin-block: .75rem; }
.summary-note { font-size: .875rem; line-height: 1.6; color: rgba(255,255,255,.75); margin: 1.5rem 0 1rem; }
.copy-status { font-size: .875rem; line-height: 1.5; }

.giftcard-intro { display: grid; grid-template-columns: 1.1fr .9fr; gap: 0 clamp(2rem, 5vw, 4rem); align-items: end; margin-bottom: 1.75rem; }
.giftcard-intro .eyebrow { grid-column: 1/-1; }
.giftcard-intro > p:last-child { margin: 0; font-size: 1rem; line-height: 1.7; padding-left: 1.5rem; border-left: 1px solid var(--gold); }
.giftcard-availability { margin-bottom: 1.75rem; padding: .85rem 1.1rem; }
.giftcard-layout { gap: clamp(2rem, 5vw, 4rem); }
.giftcard-personal { margin-top: 1.5rem; padding-top: 1.5rem; }
.giftcard-preview-content { padding: 2rem; }
.giftcard-preview-type { margin-top: 1.5rem; }

.visit { grid-template-columns: minmax(0,1.1fr) minmax(0,.85fr) minmax(0,1fr); gap: 2.5rem; }
.visit h2, .type--bold .visit h2 { font-size: clamp(2.25rem, 3.2vw, 3.25rem); }
.visit-phone { margin: 1.25rem 0 .75rem; font-size: 1.25rem; }
.visit-card { padding-top: 1rem; }
.visit-card .label { margin: 0 0 1rem; }
.visit .visit-card > p:not(.label):not(.kitchen-hours) { font-family: "DM Sans",sans-serif; font-size: 1rem; line-height: 1.7; min-height: 0; margin: 0 0 1.25rem; }
.opening-hours { margin-top: 0; }
.opening-hours > div:first-child { padding-top: 0; }
.visit-menu-link { margin-top: .5rem; }
footer { padding: 2rem var(--page-inset); gap: 1.5rem; }
footer p { margin: 0; font-size: 1.0625rem; }
footer > a { display: inline-flex; align-items: center; }

@media (max-width: 1000px) {
  .hero--full { height: auto; }
  .hero--full .hero-content { left: auto; top: auto; transform: none; width: auto; max-width: none; padding: 3rem var(--page-inset) 2rem; }
  .hero--full > .hero-full-image { width: 100%; height: 100%; }
  .hero--full h1, .type--bold .hero--full h1 { font-size: clamp(3rem, 7vw, 4.75rem); }
  .hero--full .hero-ending { display: inline; }
  .hero--full .intro { max-width: 32rem; }
  .hero--full .hero-actions { flex-direction: row; align-items: center; flex-wrap: wrap; }
  .builder-shell { grid-template-columns: minmax(0,1fr); }
  .builder-summary { padding: 1.75rem 2rem; }
  .visit { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem; }
  .visit-intro { grid-column: 1/-1; }
}

@media (max-width: 900px) {
  .signature-dish { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); }
  .signature-copy { padding: 1.75rem; }
  .signature-copy h3, .type--bold .signature-copy h3 { font-size: clamp(1.9rem, 4vw, 2.75rem); }
  .menu-grid--with-signature .menu-card { padding: 1.5rem 0; border-right: 0; }
  .giftcard-layout { grid-template-columns: minmax(0,1fr); gap: 2rem; }
}

@media (max-width: 800px) {
  .site-header { min-height: 72px; padding-block: .5rem; }
  .site-header nav { top: 100%; padding: 1.25rem var(--page-gutter); gap: .5rem; }
  .site-header nav > a:not(.nav-cta) { padding-block: .75rem; }
  .hero--chef .hero-content { padding: 3rem var(--page-inset) 2rem; }
  .welcome, .builder-intro, .giftcard-intro { grid-template-columns: minmax(0,1fr); gap: 1.25rem; }
  .welcome-copy, .builder-intro > p, .giftcard-intro > p:last-child { border-left: 0; padding-left: 0; }
  .giftcard-intro .eyebrow { margin-bottom: -.25rem; }
  .section-heading { display: flex; flex-wrap: wrap; gap: 1.5rem; }
  .section-heading .button { margin-top: 0; }
  .gather, .type--bold .gather { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
  .gather-photo { width: min(100%, 28rem); justify-self: start; }
  .builder-types { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .type-card { padding: 1rem .8rem; border-right: 1px solid var(--line); }
  .type-card:last-child { border-right: 0; }
  .type-card strong, .type--bold .type-card strong { font-size: 1.25rem; overflow-wrap: anywhere; }
  .type-card small { font-size: .875rem; }
  .builder-form { padding: 1.5rem; }
  .event-details { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .event-details .wide { grid-column: 1/-1; }
  .builder-summary { padding: 1.5rem; }
  footer { gap: 1rem; }
}

@media (max-width: 600px) {
  :root { --section-space: 3.25rem; --section-title: clamp(2.25rem, 9vw, 3rem); }
  .hero--full .hero-content { padding-top: 2.5rem; }
  .hero--full .hero-actions { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .signature-dish { grid-template-columns: minmax(0,1fr); margin-block: 1.5rem; }
  .signature-copy { padding: 1.75rem 1.25rem; }
  .signature-copy h3, .type--bold .signature-copy h3 { font-size: clamp(2rem, 8vw, 2.75rem); }
  .menu-downloads { display: block; }
  .builder-types { grid-template-columns: minmax(0,1fr); }
  .type-card { padding: 1rem 1.25rem; border-right: 0; }
  .type-card strong, .type--bold .type-card strong { font-size: 1.5rem; }
  .builder-form { padding: 1.25rem; }
  .choice-grid, .event-details, .visit { grid-template-columns: minmax(0,1fr); }
  .event-details .wide { grid-column: auto; }
  .choice-heading { align-items: start; flex-wrap: wrap; gap: .4rem; }
  .brunch-price { padding: 1rem; }
  .giftcard-preview-content { padding: 1.5rem; }
  .visit { gap: 2rem; }
}
