:root {
  color-scheme: light;
  --paper: #f6f2e9;
  --ink: #332d25;
  --muted: #6f6559;
  --wine: #7c3931;
  --line: #d9d0c1;
  --serif: Georgia, 'Times New Roman', serif;
  --body: 'Segoe UI', Arial, sans-serif;
  --display: 'Bahnschrift SemiCondensed', 'Arial Narrow', 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
html { background: var(--paper); color: var(--ink); }
body { margin: 0; font-family: var(--body); font-size: 17px; line-height: 1.65; }
a { color: inherit; text-underline-offset: .25em; text-decoration-thickness: 1px; }
a:hover { color: var(--wine); }
a:focus-visible { outline: 2px solid var(--wine); outline-offset: 6px; }
img { display: block; width: 100%; height: auto; object-fit: cover; }
figure { margin: 0; }
figcaption { margin-top: 12px; font-size: 13px; color: var(--muted); }
p { margin: 0 0 20px; }
p:last-child { margin-bottom: 0; }
h1, h2, h3 { margin: 0; font-family: var(--display); font-weight: 400; }
h1 { font-size: clamp(44px, 5.5vw, 78px); line-height: 1.08; letter-spacing: -.045em; }
h2 { font-size: clamp(30px, 3vw, 44px); line-height: 1.16; letter-spacing: -.025em; }
h3 { font-size: 25px; line-height: 1.3; }
.shell { width: min(1320px, 90%); margin-inline: auto; }
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding-block: 16px; border-bottom: 1px solid #292929; background: #000; color: var(--paper); }
.site-header.shell { width: 100%; padding-inline: max(5%, calc((100% - 1320px) / 2)); }
.site-header a:hover { color: #d9c8ad; }
.site-header a:focus-visible { outline-color: var(--paper); }
.brand { display: block; width: 168px; height: 98px; overflow: hidden; background: #000; text-decoration: none; flex: 0 0 auto; }
.brand-logo { width: 168px; height: 168px; max-width: none; object-fit: contain; transform: translateY(-35px); }
.navigation { display: flex; flex-wrap: wrap; align-items: center; gap: 32px; }
.navigation a { font-size: 15px; padding-block: 10px; text-decoration: none; }
.navigation a[aria-current="page"] { color: var(--paper); text-decoration: underline; }
.language-switch { display: inline-flex; align-items: center; gap: 8px; padding-left: 20px; border-left: 1px solid #514b43; white-space: nowrap; }
.navigation .language-switch a { font-size: 12px; min-height: 44px; display: inline-flex; align-items: center; }
.language-switch > span { color: #b5ab9c; font-size: 12px; }
.navigation .language-switch a[aria-current="true"] { color: var(--paper); text-decoration: underline; text-underline-offset: .35em; }
.navigation .language-switch a:not([aria-current]) { color: #c9beae; }
.eyebrow { color: var(--wine); text-transform: uppercase; font-size: 11px; letter-spacing: .19em; line-height: 1.5; margin-bottom: 22px; }
.hero { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 7%; padding-block: 56px 68px; }
.hero h1 { margin-bottom: 28px; }
.hero-copy { max-width: 540px; }
.hero-copy p:not(.eyebrow) { color: var(--muted); }
.hero-image { aspect-ratio: 4 / 5; }
.section-heading { display: flex; gap: 40px; align-items: baseline; margin-bottom: 32px; }
.section-heading .eyebrow { min-width: 94px; margin: 0; }
.wine-box { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 7%; align-items: center; margin-bottom: 68px; padding-block: 38px; border-block: 1px solid var(--line); }
.wine-box .eyebrow { margin-bottom: 14px; }
.wine-box h2 { font: clamp(32px, 3.5vw, 48px)/1.12 var(--serif); letter-spacing: -.035em; }
.wine-box-size { display: inline-block; margin: 18px 0 24px; padding-bottom: 8px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.wine-box-drawing { width: min(100%, 400px); aspect-ratio: 1; justify-self: center; }
.wine-box-sketch { width: 100%; height: 100%; object-fit: cover; }
.wine-box-copy { min-width: 0; }
.wine-box-copy > p:not(.eyebrow):not(.wine-box-size) { color: var(--muted); }
.wine-box-instruction { color: var(--muted); font-size: 15px; }
.wine-box-links { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.wine-box-links a { display: inline-block; padding-block: 10px; color: var(--wine); }
.wine-box-links a:hover { color: var(--ink); }
.wine-box-form-note { margin-top: 12px; color: var(--muted); font-size: 12px; }
.services { padding-block: 0 68px; }
.service-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; margin: 0; }
.service-list > div { padding-top: 22px; border-top: 1px solid var(--line); }
.service-list dt { font-family: var(--display); font-size: 26px; margin-bottom: 10px; }
.service-list dd { margin: 0; color: var(--muted); font-size: 16px; }
.founder { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); gap: 9%; align-items: center; padding-bottom: 68px; }
.founder-portrait { aspect-ratio: 3 / 4; object-position: center 35%; }
.founder-copy h2 { margin-bottom: 24px; }
.founder-copy > p:not(.eyebrow):not(.quote-attribution) { color: var(--muted); }
.founder blockquote { margin: 30px 0 18px; padding-left: 24px; border-left: 2px solid var(--wine); font-family: var(--serif); font-size: clamp(22px, 2.2vw, 31px); line-height: 1.5; }
.quote-attribution { color: var(--wine); font-size: 13px; }
.photo-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.photo-pair img, .photo-pair video { aspect-ratio: 4 / 5; }
.about-video { display: block; width: 100%; height: auto; min-width: 0; object-fit: cover; background: #211d18; }
.visit { display: grid; grid-template-columns: 1fr 1fr; gap: 7%; margin-top: 64px; padding-block: 42px 64px; border-top: 1px solid var(--line); }
.visit h2 { margin-bottom: 24px; font-size: 32px; }
address { font-style: normal; }
.text-links { display: flex; gap: 28px; flex-wrap: wrap; margin-top: 22px; }
.hours { margin: 0; }
.hours > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; padding-block: 8px; border-bottom: 1px solid var(--line); }
.hours dt, .hours dd { margin: 0; font-size: 16px; }
.hours dd { white-space: nowrap; font-variant-numeric: tabular-nums; }
.site-footer { display: flex; justify-content: space-between; gap: 20px; padding-block: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.page-intro { padding-block: 64px 50px; max-width: 760px; }
.page-intro h1 { margin-bottom: 22px; }
.page-intro .lead { font-family: var(--serif); font-size: clamp(21px, 2.4vw, 30px); line-height: 1.45; color: var(--muted); }
.menu-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, .65fr); gap: 8%; align-items: start; }
.menu-category { margin-bottom: 42px; }
.menu-category h2 { padding-bottom: 14px; border-bottom: 1px solid var(--ink); font-size: 30px; }
.menu-category h2 span { font: 15px var(--body); color: var(--muted); }
.menu-items { list-style: none; margin: 0; padding: 0; }
.menu-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 24px; padding-block: 19px; border-bottom: 1px solid var(--line); }
.menu-item h3 { font-family: var(--body); font-size: 18px; line-height: 1.45; }
.menu-item p { font-size: 14px; color: var(--muted); margin-top: 4px; }
.price { font-size: 18px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.menu-media { min-width: 0; }
.shelves-video { display: block; width: 100%; height: auto; aspect-ratio: 9 / 16; object-fit: cover; background: #211d18; }
.menu-note { font-size: 13px; color: var(--muted); padding-bottom: 48px; }
.events-hero { padding-bottom: 56px; }
.events-hero .hero-image { aspect-ratio: 4 / 5; object-position: 58% center; }
.event-note { display: grid; grid-template-columns: 1fr 1fr; gap: 7%; padding-block: 36px 64px; border-top: 1px solid var(--line); }
.event-note p { max-width: 500px; color: var(--muted); }
.contact-page { position: relative; isolation: isolate; }
.contact-page::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0 calc((100% - 100vw) / 2);
  pointer-events: none;
  opacity: .42;
  background-image:
    linear-gradient(to right, var(--paper) 0%, var(--paper) 34%, rgba(246, 242, 233, .75) 49%, rgba(246, 242, 233, .1) 75%),
    linear-gradient(to bottom, var(--paper) 0%, transparent 16%, transparent 75%, var(--paper) 100%),
    url('assets/contacts-interior-2026-11-03.jpeg');
  background-size: 100% 100%, 100% 100%, 68% auto;
  background-position: center, center, right 42%;
  background-repeat: no-repeat;
}
.contact-layout { padding-bottom: 64px; }
.contact-details { width: min(100%, 550px); }
.contact-details a { overflow-wrap: anywhere; }
.contact-details h2 { margin-bottom: 20px; font-size: 30px; }
.contact-details > section + section { margin-top: 34px; }
@media (max-width: 900px) {
  .hero { gap: 5%; }
  .navigation { gap: 22px; }
  .service-list { gap: 24px; }
  .menu-layout { gap: 5%; grid-template-columns: minmax(0, 1fr) minmax(0, .55fr); }
}
@media (max-width: 650px) {
  body { font-size: 16px; }
  .shell { width: 88%; }
  .site-header { position: relative; flex-direction: column; align-items: flex-start; gap: 4px; padding-block: 8px 6px; }
  .site-header.shell { padding-inline: 6%; }
  .brand { width: 110px; height: 64px; }
  .brand-logo { width: 110px; height: 110px; transform: translateY(-23px); }
  .navigation { justify-content: space-between; gap: 12px; width: 100%; }
  .navigation a { font-size: 14px; }
  .navigation { column-gap: 8px; row-gap: 4px; }
  .language-switch { position: absolute; right: 6%; top: 18px; margin-left: 0; padding-left: 14px; }
  h1 { font-size: clamp(42px, 10vw, 62px); }
  .hero, .visit, .event-note, .contact-layout { grid-template-columns: 1fr; gap: 32px; }
  .hero { padding-block: 36px 42px; }
  .hero h1 { margin-bottom: 22px; }
  .hero-image { aspect-ratio: 4 / 5; }
  .section-heading { display: block; margin-bottom: 24px; }
  .section-heading .eyebrow { margin-bottom: 12px; }
  .services { padding-bottom: 40px; }
  .wine-box { grid-template-columns: 1fr; gap: 24px; margin-bottom: 40px; padding-block: 28px; }
  .wine-box-drawing { width: min(100%, 280px); }
  .service-list { grid-template-columns: 1fr; gap: 22px; }
  .service-list > div { padding-top: 16px; }
  .service-list dt { font-size: 24px; }
  .founder { grid-template-columns: 1fr; gap: 28px; padding-bottom: 42px; }
  .founder-portrait { aspect-ratio: 4 / 5; }
  .founder blockquote { margin-top: 24px; padding-left: 18px; }
  .photo-pair { gap: 14px; }
  .photo-pair:has(.about-video) { grid-template-columns: 1fr; }
  .about-video { display: none; }
  .photo-pair img, .photo-pair video { aspect-ratio: 2 / 3; }
  .visit { margin-top: 36px; padding-block: 30px 44px; gap: 36px; }
  .visit h2 { font-size: 30px; margin-bottom: 18px; }
  .hours > div { gap: 12px; }
  .hours dt, .hours dd { font-size: 14px; }
  .page-intro { padding-block: 38px 32px; }
  .menu-layout { grid-template-columns: 1fr; gap: 0; }
  .menu-media { margin: 0 auto 40px; width: min(100%, 380px); }
  .menu-category { margin-bottom: 32px; }
  .menu-category h2 { font-size: 27px; }
  .menu-item { gap: 16px; padding-block: 17px; }
  .menu-item h3, .price { font-size: 16px; }
  .events-hero { padding-bottom: 42px; }
  .event-note { gap: 20px; padding-block: 28px 44px; }
  .contact-layout { padding-bottom: 44px; }
  .contact-page::before {
    opacity: .2;
    background-image:
      linear-gradient(to bottom, var(--paper) 0%, rgba(246, 242, 233, .6) 22%, rgba(246, 242, 233, .3) 65%, var(--paper) 100%),
      url('assets/contacts-interior-2026-11-03.jpeg');
    background-size: 100% 100%, cover;
    background-position: center, center;
  }
  .site-footer { font-size: 11px; flex-wrap: wrap; gap: 4px 16px; }
}
@media print {
  .site-header, .site-footer, .menu-media { display: none; }
  html { background: white; color: black; }
  .shell { width: 100%; }
  .page-intro { padding-block: 12px 20px; }
  .menu-layout { display: block; }
  .menu-item { break-inside: avoid; }
}
