:root {
    --ink: #181713;
    --paper: #f5f1e8;
    --cream: #ece3d3;
    --gold: #b0976d;
    --gold-dark: #8c744e;
    --wine: #5f2026;
    --muted: #6f6b63;
    --bs-primary: #b0976d;
    --bs-primary-rgb: 176, 151, 109;
    --bs-link-color: #5f2026;
    --bs-link-hover-color: #8c744e;
    --bs-body-color: #181713;
    --bs-body-bg: #f5f1e8;
    --bs-border-radius: 0;
    --bs-focus-ring-color: rgba(176, 151, 109, .35);
}

/* Shop components only; the existing presentation pages keep their layout. */
.shop-section { padding: 5rem 0; }
.shop-panel { background: #fff; border: 1px solid #ded5c5; padding: clamp(1.25rem, 3vw, 2rem); }
.shop-product-card { background: #fff; border: 1px solid #ded5c5; }
.shop-product-card h3 { font-size: 1.9rem; letter-spacing: -.02em; }
.shop-product-card h3 a { text-decoration: none; }
.shop-product-image { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 1rem; background: #ece3d3; height: 300px; padding: 1.5rem; text-decoration: none; color: #8c744e; }
.shop-product-image img { height: 100%; width: 100%; object-fit: contain; }
.shop-product-image i { font-size: 4rem; }
.shop-product-image span { font-size: .8rem; }
.shop-detail-image { height: 520px; }
.shop-price { font-size: 1.6rem; color: #5f2026; font-weight: 700; }
.shop-quantity { width: 85px; }
.shop-age-note { background: #ece3d3; border-left: 3px solid #5f2026; padding: 1rem; font-size: .9rem; }
.form-check.shop-age-note { padding-left: 2.6rem; }
.shop-filter .form-control, .shop-filter .form-select { min-height: 48px; }
.shop-section .pagination { --bs-pagination-color:#5f2026; --bs-pagination-hover-color:#5f2026; --bs-pagination-active-bg:#5f2026; --bs-pagination-active-border-color:#5f2026; --bs-pagination-focus-color:#5f2026; --bs-pagination-focus-box-shadow:0 0 0 .25rem rgba(176,151,109,.3); }
@media (max-width: 575.98px) { .shop-section { padding: 3rem 0; } .shop-detail-image { height: 340px; } }
@media (max-width:575.98px) {
    .shop-cart-table thead { display:none; }
    .shop-cart-table, .shop-cart-table tbody, .shop-cart-table tr { display:block; width:100%; }
    .shop-cart-table tr { border-bottom:1px solid #ded5c5; padding:1rem 0; }
    .shop-cart-table td { display:flex; justify-content:space-between; align-items:center; gap:1rem; border:0; padding:.5rem 0; }
    .shop-cart-table td:first-child { display:block; font-size:1.1rem; margin-bottom:.5rem; }
}

@font-face { font-family: "FA Solid"; src: url('../vendor/fontawesome/webfonts/fa-solid-900.woff2') format('woff2'); font-display: swap; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: 1rem; line-height: 1.75; }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; font-weight: 400; line-height: 1.05; letter-spacing: -.035em; }
a { color: inherit; }
.container { max-width: 1240px; }
.notice-bar { background: var(--gold); color: var(--ink); font-size: .75rem; font-weight: 700; letter-spacing: .08em; padding: .45rem 0; text-transform: uppercase; }
.notice-bar a { text-decoration: none; }
.navbar { background: var(--ink); min-height: 104px; padding: 0; }
.navbar-brand img, .footer-logo { filter: brightness(0) invert(1); height: 76px; object-fit: contain; width: auto; }
.navbar-nav { gap: .3rem; }
.navbar .nav-link { color: rgba(255,255,255,.72); font-size: .83rem; font-weight: 700; letter-spacing: .08em; padding: .75rem 1rem !important; text-transform: uppercase; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--gold); }
.navbar-toggler { border-color: rgba(255,255,255,.3); }
.navbar-toggler-icon { filter: invert(1); }
.btn { border-radius: 0; font-size: .8rem; font-weight: 800; letter-spacing: .09em; padding: .85rem 1.5rem; text-transform: uppercase; }
.btn-primary { --bs-btn-bg: var(--gold); --bs-btn-border-color: var(--gold); --bs-btn-color: var(--ink); --bs-btn-hover-bg: var(--gold-dark); --bs-btn-hover-border-color: var(--gold-dark); --bs-btn-hover-color: #fff; --bs-btn-active-bg: var(--gold-dark); --bs-btn-active-border-color: var(--gold-dark); --bs-btn-disabled-bg: #82755f; --bs-btn-disabled-border-color: #82755f; }
.btn-dark { --bs-btn-bg: var(--ink); --bs-btn-border-color: var(--ink); --bs-btn-hover-bg: var(--wine); --bs-btn-hover-border-color: var(--wine); }
.btn-light { --bs-btn-bg: var(--paper); --bs-btn-border-color: var(--paper); --bs-btn-hover-bg: var(--gold); --bs-btn-hover-border-color: var(--gold); }
.hero { background: linear-gradient(90deg, rgba(20,18,15,.92) 0%, rgba(20,18,15,.58) 50%, rgba(20,18,15,.18) 100%), url('../img/header-winkel.webp') center/cover no-repeat; color: #fff; min-height: calc(100vh - 135px); padding: 8rem 0 6rem; position: relative; }
.hero-copy { max-width: 720px; }
.hero h1 { font-size: clamp(3.4rem, 7.5vw, 7.2rem); margin: .5rem 0 1.7rem; }
.hero .lead { color: rgba(255,255,255,.8); font-size: 1.18rem; max-width: 610px; }
.eyebrow { color: var(--gold-dark); font-size: .75rem; font-weight: 800; letter-spacing: .2em; margin-bottom: 1rem; text-transform: uppercase; }
.hero .eyebrow, .visit-banner .eyebrow, .cta-strip .eyebrow { color: #d7c29d; }
.hero-scroll { align-items: center; bottom: 3rem; gap: .8rem; position: absolute; right: 4vw; transform: rotate(90deg); transform-origin: right center; }
.hero-scroll span { font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; }
.section-space { padding: 8rem 0; }
.pb-section { padding-bottom: 8rem; }
.display-title { font-size: clamp(2.7rem, 5vw, 5rem); }
.intro-text, .large-copy { color: var(--muted); font-size: 1.2rem; }
.category-card { height: 530px; overflow: hidden; position: relative; }
.category-card-offset { margin-top: 4rem; }
.category-card:after { background: linear-gradient(transparent 30%, rgba(12,11,9,.92)); content: ""; inset: 0; position: absolute; }
.category-card img { height: 100%; object-fit: cover; transition: transform .7s ease; width: 100%; }
.category-card:hover img { transform: scale(1.045); }
.category-overlay { bottom: 0; color: #fff; padding: 2.2rem; position: absolute; z-index: 1; }
.category-overlay span, .number { color: var(--gold); font-size: .72rem; font-weight: 800; letter-spacing: .15em; }
.category-overlay h2 { font-size: 2.8rem; margin: .5rem 0; }
.category-overlay p { color: rgba(255,255,255,.7); line-height: 1.5; margin: 0; }
.text-link { border-bottom: 1px solid var(--gold); font-size: .8rem; font-weight: 800; letter-spacing: .1em; padding-bottom: .4rem; text-decoration: none; text-transform: uppercase; }
.experience { background: var(--cream); }
.experience-image { box-shadow: -26px 26px 0 var(--gold); }
.experience-image img, .story-image { display: block; height: 520px; object-fit: cover; width: 100%; }
.visit-banner, .cta-strip { background: var(--wine); color: #fff; padding: 6rem 0; }
.visit-banner h2 { font-size: clamp(2.5rem, 5vw, 4.8rem); margin: 0 auto; max-width: 980px; }
.site-footer { background: var(--ink); color: rgba(255,255,255,.65); }
.site-footer a { color: rgba(255,255,255,.75); text-decoration: none; }
.site-footer a:hover { color: var(--gold); }
.footer-title { color: #fff; font-family: Arial, Helvetica, sans-serif; font-size: .75rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); font-size: .72rem; letter-spacing: .04em; }
.page-hero { background: var(--ink); color: #fff; padding: 8rem 0; }
.page-hero h1 { font-size: clamp(3.3rem, 7vw, 6.6rem); margin-bottom: 1.5rem; }
.page-hero p:last-child { color: rgba(255,255,255,.68); font-size: 1.2rem; max-width: 620px; }
.tasting-hero { background: linear-gradient(90deg, rgba(24,23,19,.94), rgba(24,23,19,.65)), url('../img/card-wijn.webp') center/cover; }
.story-hero { background: linear-gradient(90deg, rgba(24,23,19,.94), rgba(24,23,19,.58)), url('../img/header-winkel.webp') center/cover; }
.contact-hero { background: var(--wine); }
.assortment-row { border-bottom: 1px solid rgba(24,23,19,.15); margin-bottom: 6rem; padding-bottom: 6rem; }
.assortment-row:last-child { border-bottom: 0; margin-bottom: 0; }
.assortment-row img { height: 440px; object-fit: cover; width: 100%; }
.assortment-row h2 { font-size: clamp(2.8rem, 5vw, 4.5rem); margin: 1rem 0 1.5rem; }
.small-note { color: var(--muted); font-size: .88rem; font-style: italic; }
.info-card, .hours-card { background: var(--cream); padding: 2.5rem; }
.info-card h3 { font-size: 2rem; margin-bottom: 1.5rem; }
.info-card li { border-bottom: 1px solid rgba(24,23,19,.12); padding: .8rem 0; }
.info-card i { color: var(--gold-dark); margin-right: .8rem; }
.process-step { border-top: 3px solid var(--gold); padding: 2rem 1rem 0 0; }
.process-step span { color: var(--gold-dark); font-weight: 800; }
.process-step h3 { font-size: 2rem; margin: 1rem 0; }
.upcoming { background: #fff; }
.next-tasting { background: var(--cream); border-bottom: 1px solid rgba(24,23,19,.12); }
.next-tasting h2 { font-size: clamp(2rem, 3vw, 3rem); }
.next-tasting-date { display: block; font-family: Georgia,serif; font-size: 1.8rem; line-height: 1.2; }
.tasting-card { border-top: 1px solid rgba(24,23,19,.18); display: grid; gap: 2rem; grid-template-columns: 78px 1fr; padding: 2rem 0; }
.tasting-date { background: var(--wine); color: #fff; display: flex; flex-direction: column; height: 78px; justify-content: center; text-align: center; }
.tasting-date strong { font-family: Georgia,"Times New Roman",serif; font-size: 2rem; line-height: 1; }
.tasting-date span { font-size: .65rem; letter-spacing: .14em; margin-top: .25rem; }
.tasting-card h3 { font-size: 2rem; }
.tasting-meta { color: var(--gold-dark); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.value-card { background: #fff; height: 100%; padding: 2.5rem; }
.value-card i { color: var(--gold-dark); font-size: 1.8rem; }
.value-card h3 { font-size: 2rem; margin: 1.5rem 0 1rem; }
.contact-list { display: flex; flex-direction: column; gap: 1.5rem; margin-top: 2rem; }
.contact-list a { align-items: flex-start; display: flex; gap: 1.2rem; text-decoration: none; }
.contact-list i { color: var(--gold-dark); margin-top: .4rem; width: 20px; }
.hours-row { border-bottom: 1px solid rgba(24,23,19,.12); display: flex; justify-content: space-between; padding: .72rem 0; }
.hours-note { color: var(--muted); font-size: .78rem; padding-top: 1.5rem; }
.reveal-ready { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
.reveal-ready.is-visible { opacity: 1; transform: none; }

@media (max-width: 991.98px) {
    .row.g-5 { --bs-gutter-x: 1.5rem; }
    .navbar { min-height: 86px; padding: .5rem 0; }
    .navbar-brand img { height: 62px; }
    .navbar-collapse { border-top: 1px solid rgba(255,255,255,.12); padding: 1.2rem 0 1.5rem; }
    .navbar-nav { align-items: stretch !important; }
    .hero { min-height: 740px; }
    .section-space { padding: 6rem 0; }
    .pb-section { padding-bottom: 6rem; }
    .category-card-offset { margin-top: 0; }
    .experience-image img, .story-image { height: 420px; }
}
@media (max-width: 575.98px) {
    .row.g-5 { --bs-gutter-x: 1.5rem; }
    .notice-bar { font-size: .59rem; }
    .notice-bar i { display: none; }
    .hero { min-height: 680px; padding: 6rem 0 4rem; }
    .hero h1 { font-size: 3.25rem; }
    .hero .lead { font-size: 1rem; }
    .section-space { padding: 4.5rem 0; }
    .pb-section { padding-bottom: 4.5rem; }
    .category-card { height: 450px; }
    .page-hero { padding: 5rem 0; }
    .page-hero h1 { font-size: 3.2rem; }
    .assortment-row { margin-bottom: 4rem; padding-bottom: 4rem; }
    .assortment-row img { height: 320px; }
    .experience-image { box-shadow: -12px 12px 0 var(--gold); }
    .experience-image img, .story-image { height: 320px; }
    .visit-banner, .cta-strip { padding: 4.5rem 0; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
    .reveal-ready { opacity: 1; transform: none; }
}
