/* Horeca theme: Bistro Miette */
:root {
  --color-primary: #27372c;
  --color-secondary: #8f3f2f;
  --color-accent: #d49a55;
  --color-text: #302b27;
  --color-text-light: #756d65;
  --color-background: #f7f1e7;
  --color-background-alt: #e9dfcf;
  --color-border: #cbbda9;
  --font-body: "Trebuchet MS", Arial, sans-serif;
  --font-heading: Georgia, "Times New Roman", serif;
  --container-width: 1180px;
  --border-radius: 0;
}

body { letter-spacing: 0.01em; }

.site-header { background-color: var(--color-background); }
.site-header__inner { min-height: 6.5rem; }
.site-logo { flex: 0 0 auto; margin-left: 0; text-align: left; font-size: 2rem; line-height: 0.9; letter-spacing: -0.04em; }
.site-logo span { display: block; margin-top: 0.55rem; color: var(--color-text-light); font-family: var(--font-body); font-size: 0.65rem; font-weight: 400; letter-spacing: 0.16em; text-transform: uppercase; }
.main-nav { margin-right: 0; margin-left: auto; flex: 0 1 42rem; }
.main-nav ul { justify-content: flex-end; gap: clamp(1rem, 2.4vw, 2.25rem); }
.main-nav a { padding-block: 0.5rem; font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase; }
.main-nav a[aria-current="page"] { border-bottom: 1px solid currentColor; }

.eyebrow { margin-bottom: 0.8rem; color: var(--color-secondary); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; }
.text-link { color: var(--color-primary); font-weight: 700; text-decoration: none; border-bottom: 1px solid var(--color-accent); }
.text-link span { display: inline-block; margin-left: 0.35rem; }
.button-row { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; margin-top: var(--spacing-md); }
.button { letter-spacing: 0.04em; }

.hero { min-height: 43rem; padding: 0; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(22rem, 0.8fr); }
.hero__image { min-height: 43rem; background: linear-gradient(90deg, transparent 75%, rgb(39 55 44 / 18%)), url("https://images.unsplash.com/photo-1541544741938-0af808871cc0?auto=format&fit=crop&w=1800&q=85") center/cover; }
.hero__content { display: flex; flex-direction: column; justify-content: center; padding: clamp(3rem, 7vw, 7rem); background-color: var(--color-primary); color: #fffaf2; }
.hero__content h1 { color: inherit; font-size: clamp(3rem, 5.4vw, 5.8rem); font-weight: 400; line-height: 0.98; letter-spacing: -0.045em; }
.hero__content .eyebrow { color: #e4b87f; }
.hero__content .text-link { color: #fffaf2; }

.service-strip { padding-block: 1.25rem; background-color: var(--color-accent); }
.service-strip__inner { display: grid; grid-template-columns: 1fr 1fr 1.5fr; }
.service-strip p { margin: 0; padding-inline: var(--spacing-md); border-right: 1px solid rgb(48 43 39 / 28%); }
.service-strip p:first-child { padding-left: 0; }
.service-strip p:last-child { border: 0; }
.service-strip strong, .service-strip span { display: block; }
.service-strip strong { font-size: 0.7rem; letter-spacing: 0.13em; text-transform: uppercase; }

.intro-section { padding-block: var(--spacing-xl); }
.editorial-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.7fr); gap: clamp(3rem, 9vw, 9rem); align-items: end; }
.editorial-grid h2 { max-width: 15ch; margin-bottom: 0; font-size: clamp(2.5rem, 5vw, 4.7rem); font-weight: 400; }
.editorial-grid__copy { padding-bottom: 0.5rem; font-size: 1.08rem; }

.signature-section { background-color: var(--color-background-alt); }
.signature-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(22rem, 0.8fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.signature-layout__photo { position: relative; margin-block: -6rem; }
.signature-layout__photo::after { content: "Seizoen  /  2026"; position: absolute; right: -1rem; bottom: 2rem; padding: 0.8rem 1.2rem; background: var(--color-secondary); color: #fff; font-size: 0.7rem; letter-spacing: 0.15em; text-transform: uppercase; }
.signature-layout__photo img { width: 100%; height: 42rem; object-fit: cover; }
.signature-layout__menu { padding-block: 4rem; }
.signature-layout__menu h2 { font-weight: 400; }
.dish-list { margin: 0 0 var(--spacing-md); padding: 0; list-style: none; }
.dish-list li { display: grid; grid-template-columns: 1fr auto; gap: var(--spacing-sm); padding-block: 1.15rem; border-bottom: 1px solid var(--color-border); }
.dish-list h3 { margin-bottom: 0.2rem; font-size: 1.15rem; font-weight: 400; }
.dish-list p { margin-bottom: 0; color: var(--color-text-light); font-size: 0.9rem; }
.dish-list li > span { color: var(--color-secondary); font-weight: 700; white-space: nowrap; }

.quote-section { padding-block: var(--spacing-xl); text-align: center; }
.quote-section blockquote { max-width: 25ch; margin: 0 auto var(--spacing-sm); color: var(--color-primary); font-family: var(--font-heading); font-size: clamp(2rem, 4vw, 3.7rem); line-height: 1.15; }
.quote-section p { color: var(--color-text-light); }

.reservation-banner { display: flex; justify-content: space-between; align-items: center; gap: var(--spacing-md); padding: clamp(2.5rem, 5vw, 5rem) max(var(--container-padding), calc((100% - var(--container-width)) / 2)); background-color: var(--color-secondary); color: #fff8ed; }
.reservation-banner h2 { margin: 0; color: inherit; font-weight: 400; }
.reservation-banner .eyebrow { color: #efc796; }
.reservation-banner .button { background-color: #fff8ed; color: var(--color-secondary); white-space: nowrap; }

.page-intro { padding-block: clamp(4rem, 10vw, 9rem); }
.page-intro__grid { display: grid; grid-template-columns: 0.35fr 1.4fr 0.75fr; gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.page-intro h1 { margin-bottom: 0; font-size: clamp(3rem, 6vw, 6rem); font-weight: 400; line-height: 1; letter-spacing: -0.04em; }
.page-intro__lead { padding-top: 0.6rem; font-size: 1.1rem; }

.story-section { padding-top: 0; }
.story-grid { display: grid; grid-template-columns: 1.3fr 0.7fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.story-grid img { width: 100%; height: 43rem; object-fit: cover; }
.story-grid h2, .team-feature h2 { font-weight: 400; }
.values-section { background-color: var(--color-primary); color: #f8f0e4; }
.values-section h2, .values-section h3 { color: inherit; }
.section-title { display: flex; justify-content: space-between; align-items: end; gap: var(--spacing-md); border-bottom: 1px solid rgb(255 255 255 / 25%); }
.section-title h2 { font-weight: 400; }
.numbered-values { display: grid; grid-template-columns: repeat(3, 1fr); }
.numbered-values article { padding: var(--spacing-md); border-right: 1px solid rgb(255 255 255 / 25%); }
.numbered-values article:first-child { padding-left: 0; }
.numbered-values article:last-child { border: 0; }
.numbered-values span { color: var(--color-accent); font-size: 0.75rem; }
.numbered-values h3 { margin-top: var(--spacing-md); font-weight: 400; }
.team-feature { display: grid; grid-template-columns: 0.65fr 1.2fr; gap: clamp(3rem, 9vw, 9rem); align-items: center; }
.team-feature img { width: 100%; height: 35rem; object-fit: cover; object-position: center 20%; }

.menu-hero { padding-block: clamp(4rem, 9vw, 8rem); background-color: var(--color-primary); color: #f8f0e4; text-align: center; }
.menu-hero h1 { max-width: 13ch; margin-inline: auto; color: inherit; font-size: clamp(3rem, 6vw, 6rem); font-weight: 400; line-height: 1; }
.menu-hero p:last-child { max-width: 38rem; margin-inline: auto; }
.menu-layout { display: grid; grid-template-columns: 19rem 1fr; gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.menu-note { position: sticky; top: 2rem; padding: var(--spacing-md); background-color: var(--color-accent); }
.menu-note h2 { font-weight: 400; }
.menu-columns { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-lg) var(--spacing-md); }
.menu-category { padding: 0; }
.menu-category header { display: flex; gap: 1rem; align-items: baseline; border-bottom: 2px solid var(--color-primary); }
.menu-category header span { color: var(--color-secondary); font-size: 0.7rem; }
.menu-category h2 { margin-bottom: 0.6rem; font-size: 1.75rem; font-weight: 400; }
.allergy-note { padding-block: var(--spacing-md); background: var(--color-background-alt); text-align: center; }
.allergy-note p { margin-bottom: 0; }

.page-intro--gallery { padding-bottom: var(--spacing-md); }
.gallery-mosaic { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 15rem; gap: 1rem; }
.gallery-mosaic figure { grid-column: span 4; grid-row: span 2; position: relative; margin: 0; overflow: hidden; }
.gallery-mosaic__wide { grid-column: span 8 !important; }
.gallery-mosaic__tall { grid-row: span 3 !important; }
.gallery-mosaic img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.gallery-mosaic figure:hover img { transform: scale(1.025); }
.gallery-mosaic figcaption { position: absolute; left: 0; bottom: 0; padding: 0.75rem 1rem; background: var(--color-background); font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; }
.gallery-words { grid-column: span 4; display: flex; align-items: center; justify-content: center; background: var(--color-secondary); color: #fff; }
.gallery-words p { margin: 0; font-family: var(--font-heading); font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.15; }
.private-section { padding-block: var(--spacing-xl); }
.private-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 9vw, 9rem); }
.private-grid h2 { max-width: 12ch; font-weight: 400; }

.contact-hero { display: grid; grid-template-columns: 0.85fr 1.15fr; min-height: 39rem; padding: 0; }
.contact-hero__intro { display: flex; flex-direction: column; justify-content: center; padding: clamp(3rem, 7vw, 7rem); }
.contact-hero__intro h1 { font-size: clamp(3rem, 5.5vw, 5.5rem); font-weight: 400; line-height: 1; }
.contact-hero__intro .button { align-self: flex-start; margin-top: var(--spacing-sm); }
.contact-hero__image { background: url("https://images.unsplash.com/photo-1550966871-3ed3cdb5ed0c?auto=format&fit=crop&w=1600&q=85") center/cover; }
.contact-details { background-color: var(--color-primary); color: #f8f0e4; }
.contact-board { display: grid; grid-template-columns: 1.15fr 1fr 0.85fr; }
.contact-board article { padding: var(--spacing-md); border-right: 1px solid rgb(255 255 255 / 22%); }
.contact-board article:first-child { padding-left: 0; }
.contact-board article:last-child { border: 0; }
.contact-board a { color: inherit; }
.hours-list { margin: 0; }
.hours-list div { display: grid; grid-template-columns: 1fr auto; gap: 1rem; padding-block: 0.65rem; border-bottom: 1px solid rgb(255 255 255 / 18%); }
.hours-list dd { margin: 0; text-align: right; }
.contact-note > .container { display: grid; grid-template-columns: 0.4fr 1fr; gap: var(--spacing-lg); }
.contact-note h2 { font-weight: 400; }
.map-placeholder { min-height: 25rem; display: grid; place-items: center; background-color: #d9cbb7; background-image: linear-gradient(30deg, rgb(39 55 44 / 10%) 12%, transparent 12.5%, transparent 87%, rgb(39 55 44 / 10%) 87.5%), linear-gradient(150deg, rgb(39 55 44 / 10%) 12%, transparent 12.5%, transparent 87%, rgb(39 55 44 / 10%) 87.5%); background-size: 5rem 8rem; text-align: center; }
.map-placeholder > div { padding: var(--spacing-md); background: var(--color-background); box-shadow: 0 1rem 3rem rgb(48 43 39 / 18%); }
.map-placeholder span { color: var(--color-secondary); font-family: var(--font-heading); font-size: 2rem; }

.site-footer { align-items: flex-start; background-color: #17231b; text-align: left; }
.site-footer .item { padding-inline: var(--spacing-sm); }
.site-footer strong { font-family: var(--font-heading); font-size: 1.6rem; font-weight: 400; }
.site-footer p { margin-bottom: 0; color: rgb(255 255 255 / 70%); font-size: 0.85rem; }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; }
  .hero__image { min-height: 28rem; }
  .signature-layout, .story-grid, .team-feature, .contact-hero { grid-template-columns: 1fr; }
  .signature-layout__photo { margin: 0; }
  .page-intro__grid { grid-template-columns: 1fr; gap: var(--spacing-sm); }
  .menu-layout { grid-template-columns: 1fr; }
  .menu-note { position: static; }
  .contact-hero__image { min-height: 28rem; }
  .gallery-mosaic figure, .gallery-mosaic__wide { grid-column: span 6 !important; }
  .gallery-words { grid-column: span 6; }
}

@media (max-width: 768px) {
  .site-logo { margin-left: 0; text-align: center; }
  .main-nav { margin: 0; }
  .service-strip__inner, .numbered-values, .contact-board, .menu-columns, .private-grid, .contact-note > .container { grid-template-columns: 1fr; }
  .service-strip p { padding: 0.75rem 0; border-right: 0; border-bottom: 1px solid rgb(48 43 39 / 28%); }
  .editorial-grid { grid-template-columns: 1fr; gap: var(--spacing-md); }
  .signature-layout__photo img, .story-grid img, .team-feature img { height: 28rem; }
  .numbered-values article, .contact-board article { padding-inline: 0; border-right: 0; border-bottom: 1px solid rgb(255 255 255 / 22%); }
  .reservation-banner { align-items: flex-start; flex-direction: column; }
  .gallery-mosaic { grid-auto-rows: 12rem; }
  .gallery-mosaic figure, .gallery-mosaic__wide, .gallery-words { grid-column: 1 / -1 !important; }
  .site-footer { flex-direction: column; gap: var(--spacing-md); }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-mosaic img { transition: none; }
}