/* Perla cards: the site's navy, gold, Quicksand headings and rounded buttons. */
.cards-hero {
    position: relative;
    padding: 78px 0 84px;
    text-align: center;
    background: linear-gradient(90deg, rgba(30,30,43,.79), rgba(30,30,43,.55), rgba(30,30,43,.79)), url('/images/hero/hero-3.webp') center 54% / cover;
    border-bottom: 3px solid #c5a15a;
}
.cards-intro { max-width: 720px; margin: 0 auto; }
.cards-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 2.4px; line-height: 1.8; }
.cards-hero .cards-eyebrow { color: #e4b95b; margin: 0 0 19px; }
.cards-hero h1 { color: #fff; font-family: 'Quicksand', sans-serif; font-size: 52px; font-weight: 700; line-height: 1.2; text-transform: uppercase; letter-spacing: 3px; margin: 0; }
.cards-hero h1::after { content: ''; display: block; width: 54px; height: 1px; margin: 25px auto 20px; background: #e4b95b; }
.cards-intro > p:last-child { color: #eee9df; font-family: 'Graviola-Regular', sans-serif; font-size: 17px; margin: 0; }
.cards-page { background: #f4f2ed; padding: 70px 0 90px; color: #383848; }
.cards-page .cards-eyebrow { color: #8a6930; margin: 0 0 20px; }
.cards-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.menu-card { border: 1px solid #ded8cb; padding: 33px; background: #faf9f6; }
.menu-card h2 { font-family: 'Quicksand', sans-serif; font-size: 26px; margin: 18px 0; }
.menu-card p { color: #797681; line-height: 1.8; }
.menu-card-live { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1fr) 250px; align-items: center; gap: 70px; position: relative; padding: 54px 65px; margin-bottom: 12px; background: #383848; border-color: #383848; box-shadow: 0 18px 45px rgba(38,35,46,.09); }
.menu-card-live::before { content: ''; position: absolute; inset: 13px; border: 1px solid rgba(228,185,91,.3); pointer-events: none; }
.menu-card-live .cards-eyebrow { color: #e4b95b; display: block; font-size: 10px; }
.menu-card-live h2 { color: #fff; font-size: 38px; margin: 0 0 22px; }
.menu-card-live p { color: #d3d0d6; max-width: 520px; font-size: 17px; }
.cards-status { display: inline-block; color: #8a6930; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 2px; }
.cards-status::before { content: ''; display: inline-block; width: 20px; height: 1px; background: #b99a5c; margin: 0 9px 3px 0; }
.cards-actions { display: flex; flex-wrap: wrap; gap: 25px; align-items: center; margin-top: 30px; }
.cards-button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 48px; background: #e4b95b; color: #383848; border: 1px solid #e4b95b; border-radius: 50px; padding: 13px 26px; font-family: 'Quicksand', sans-serif; font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .5px; line-height: 1.5; transition: background .2s, color .2s; }
.cards-button:hover, .cards-button:focus { color: #383848; background: #f0cf86; border-color: #f0cf86; }
.cards-text-link, .cards-back { color: #8a6930; text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.menu-card-live .cards-text-link { color: #e4b95b; font-size: 14px; }
.cards-page a:focus-visible, .cards-hero a:focus-visible, .cards-menu a:focus-visible, .cards-menu button:focus-visible { outline: 2px solid #c19942; outline-offset: 5px; }
.wine-cover { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 305px; padding: 32px 20px; background: #30303e; border: 1px solid #a78c56; outline: 1px solid rgba(228,185,91,.2); outline-offset: -8px; box-shadow: 9px 12px 0 rgba(20,20,28,.18); color: #e4b95b; text-align: center; }
.wine-cover:hover, .wine-cover:focus { color: #f2d899; border-color: #e4b95b; }
.wine-cover img { width: 104px; height: auto; margin: 0 0 21px; }
.wine-cover-rule { width: 28px; height: 1px; background: #a78c56; margin-bottom: 22px; }
.wine-cover > span:last-of-type { font-family: 'Quicksand', sans-serif; font-size: 15px; letter-spacing: 3px; }
.wine-cover small { font-size: 7px; letter-spacing: 2px; margin-top: 12px; color: #beb7a7; }
.wine-hero .cards-back { display: inline-block; margin-bottom: 28px; color: #e8d5ad; font-size: 12px; }
.wine-hero { padding-top: 36px; padding-bottom: 58px; }
.wine-layout { display: grid; grid-template-columns: 255px minmax(0,1fr); gap: 42px; align-items: start; }
.wine-nav { position: sticky; top: 115px; background: #383848; padding: 30px 26px; border-top: 2px solid #c5a15a; }
.wine-nav .cards-eyebrow { color: #e4b95b; margin-bottom: 16px; }
.wine-nav > a { display: flex; justify-content: space-between; align-items: baseline; gap: 15px; color: #efedf0; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.1); font-size: 15px; }
.wine-nav > a:hover, .wine-nav > a:focus { color: #e4b95b; }
.wine-nav > a span { color: #cbb788; font-size: 11px; font-variant-numeric: tabular-nums; }
.wine-pdf { display: flex; flex-direction: column; align-items: stretch; gap: 13px; margin-top: 30px; }
.wine-pdf-label { font-size: 13px; color: #cbc7d0; text-align: center; }
.wine-pdf .cards-text-link { color: #dccba6; font-size: 12px; text-align: center; }
.wine-categories { background: #fffefa; border: 1px solid #e1dacb; padding: 36px 42px 40px; box-shadow: 0 10px 35px rgba(38,35,46,.035); }
.wine-price-note { text-align: right; color: #837b6e; font-size: 12px; margin: 0 0 36px; }
.wine-category { padding: 0; scroll-margin-top: 115px; margin-bottom: 50px; }
.wine-category-heading { display: flex; align-items: center; gap: 18px; border-bottom: 1px solid #c5a15a; padding-bottom: 18px; }
.wine-category-number { color: #aa8847; font-family: 'Quicksand', sans-serif; font-size: 12px; letter-spacing: 1px; }
.wine-category h2 { font-family: 'Quicksand', sans-serif; font-size: 27px; font-weight: 600; line-height: 1.3; margin: 0; }
.wine-list { list-style: none; padding: 0; margin: 0; }
.wine-item { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; border-bottom: 1px solid #eee9df; padding: 20px 0 18px; }
.wine-item:last-child { border-bottom: 0; }
.wine-info { min-width: 0; }
.wine-info h3 { font-family: 'Graviola-Regular', sans-serif; font-weight: 400; font-size: 18px; line-height: 1.5; margin: 0 0 5px; overflow-wrap: anywhere; }
.wine-info p { font-size: 13px; color: #8c8377; margin: 0; line-height: 1.6; }
.wine-info p span { margin: 0 5px; color: #b1945d; }
.wine-price { white-space: nowrap; color: #383848; font-size: 17px; font-weight: 600; font-variant-numeric: tabular-nums; }
.wine-price small { font-size: 10px; color: #8a6930; font-weight: 400; margin-left: 2px; }
.wine-closing { text-align: center; border-top: 1px solid #d6c4a0; padding-top: 30px; color: #797681; font-size: 14px; }
.wine-closing p { max-width: 370px; margin: 0 auto 16px; }
.cards-menu > button.drop-nav-arrow { background: transparent; border: 0; line-height: 1; }
.wine-producers { padding: 72px 0 0; scroll-margin-top: 115px; }
.wine-producers-heading { max-width: 570px; margin: 0 auto 38px; text-align: center; }
.wine-producers-heading::before { content: ''; display: block; width: 42px; height: 1px; margin: 0 auto 28px; background: #c5a15a; }
.wine-producers-heading .cards-eyebrow { color: #8a6930; font-size: 10px; margin-bottom: 14px; }
.wine-producers-heading h2 { font-family: 'Quicksand', sans-serif; font-size: 32px; line-height: 1.35; font-weight: 500; margin: 0 0 14px; }
.wine-producers-heading > p:last-child { color: #797681; font-size: 16px; line-height: 1.7; margin: 0; }
.wine-producers-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px 20px; list-style: none; padding: 0; margin: 0; }
.wine-producer { display: block; height: 100%; color: #383848; }
.wine-producer-logo { display: flex; align-items: center; justify-content: center; height: 145px; padding: 24px 18px; background: #fff; border: 1px solid #e1dacb; transition: border-color .2s; }
.wine-producer-logo-dark { background: #383848; border-color: #383848; }
.wine-producer-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.wine-producer-wordmark { font-family: 'Quicksand', sans-serif; font-size: 22px; font-weight: 500; letter-spacing: 2px; text-align: center; }
.wine-producer-caption { display: flex; justify-content: space-between; gap: 10px; padding: 13px 2px 0; font-size: 13px; line-height: 1.5; }
.wine-producer-caption > span:last-child { color: #a38446; }
.wine-producer:hover, .wine-producer:focus { color: #8a6930; }
.wine-producer:hover .wine-producer-logo, .wine-producer:focus .wine-producer-logo { border-color: #c5a15a; }
/* Reservation page: the cards layout around the shared reservation form. */
.reservation-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 42px; align-items: start; }
.reservation-card { background: #fffefa; border: 1px solid #e1dacb; padding: 40px 42px 30px; box-shadow: 0 10px 35px rgba(38,35,46,.035); scroll-margin-top: 115px; }
.reservation-card h2 { font-family: 'Quicksand', sans-serif; font-size: 30px; font-weight: 600; line-height: 1.3; margin: 0 0 12px; }
.reservation-lead { color: #797681; line-height: 1.8; margin: 0 0 30px; }
.reservation-card input[type="text"], .reservation-card input[type="email"] { background: #fff; border-color: #ded8cb; margin-bottom: 22px; }
.reservation-card input[type="text"]:focus, .reservation-card input[type="email"]:focus { border-color: #c5a15a; }
.reservation-card .jq-selectbox { margin-bottom: 22px; }
.reservation-card .send_reservation { width: 100%; height: 56px; line-height: 56px; margin-top: 6px; background: #e4b95b; color: #383848; font-size: 15px; letter-spacing: .5px; }
.reservation-card .send_reservation:hover, .reservation-card .send_reservation:focus { background: #f0cf86; color: #383848; }
.reservation-aside { position: sticky; top: 115px; background: #383848; color: #efedf0; padding: 30px 28px 32px; border-top: 2px solid #c5a15a; }
.reservation-aside .cards-eyebrow { color: #e4b95b; margin-bottom: 14px; }
.reservation-aside ul { list-style: none; padding: 0; margin: 0 0 30px; }
.reservation-aside li { padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.1); color: #cbc7d0; font-size: 14px; line-height: 1.7; }
.reservation-aside li strong { display: block; color: #fff; font-family: 'Quicksand', sans-serif; font-size: 15px; font-weight: 600; margin-bottom: 3px; }
.reservation-contact a { display: block; color: #efedf0; font-size: 17px; line-height: 1.6; }
.reservation-contact a:hover, .reservation-contact a:focus { color: #e4b95b; }
.reservation-contact p:last-child { color: #bfb8c0; font-size: 13px; margin: 12px 0 0; }
/* Paper of the printed wine card: marble texture with watercolour strokes at the edges, faded like the PDF's multiply layers. */
.wine-categories { position: relative; z-index: 0; overflow: hidden; background: linear-gradient(rgba(255,254,250,.42), rgba(255,254,250,.42)), url('/images/karte/marble.webp') center top / 100% auto repeat-y #fffefa; }
.wine-category { position: relative; }
.wine-category-short::before { display: none; }
.wine-category::before, .menu-card-pending::after { content: ''; position: absolute; z-index: -1; pointer-events: none; mix-blend-mode: multiply; opacity: .42; background-repeat: no-repeat; background-size: contain; }
.wine-category:nth-of-type(4n+1)::before { top: -70px; right: -90px; width: 430px; height: 269px; background-image: url('/images/karte/wash-orange.webp'); background-position: right top; }
.wine-category:nth-of-type(4n+2)::before { bottom: -30px; left: -110px; width: 420px; height: 184px; background-image: url('/images/karte/wash-pink.webp'); background-position: left bottom; transform: rotate(-18deg); }
.wine-category:nth-of-type(4n+3)::before { top: -60px; right: -60px; width: 235px; height: 294px; background-image: url('/images/karte/wash-rose.webp'); background-position: right top; transform: rotate(12deg); }
.wine-category:nth-of-type(4n)::before { bottom: -40px; right: -80px; width: 330px; height: 183px; background-image: url('/images/karte/wash-violet.webp'); background-position: right bottom; transform: scaleX(-1); }
.menu-card-pending { position: relative; z-index: 0; overflow: hidden; background: linear-gradient(rgba(250,249,246,.35), rgba(250,249,246,.35)), url('/images/karte/marble.webp') center top / 100% auto repeat-y #faf9f6; }
.menu-card-pending::after { right: -70px; bottom: -50px; width: 280px; height: 175px; background-image: url('/images/karte/wash-orange.webp'); background-position: right bottom; }
.menu-card:nth-of-type(3)::after { right: auto; left: -80px; bottom: -30px; width: 270px; height: 118px; background-image: url('/images/karte/wash-pink.webp'); background-position: left bottom; transform: rotate(-14deg); }
.menu-card:nth-of-type(4)::after { right: -60px; bottom: -40px; width: 260px; height: 144px; background-image: url('/images/karte/wash-violet.webp'); background-position: right bottom; transform: scaleX(-1); }
@media (min-width: 992px) {
    .menu-main .cards-menu:focus-within > .drop-nav { display: block; }
}
@media (max-width: 1199px) {
    .wine-layout { gap: 28px; grid-template-columns: 230px minmax(0,1fr); }
    .wine-categories { padding: 30px; }
    .menu-card-live { gap: 35px; padding: 45px; }
}
@media (max-width: 991px) {
    .wine-producers-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .wine-layout { grid-template-columns: 1fr; gap: 28px; }
    .wine-nav { position: static; display: flex; flex-wrap: wrap; gap: 0 22px; }
    .wine-nav .cards-eyebrow { width: 100%; margin-bottom: 8px; }
    .wine-nav > a { flex: 1 0 27%; }
    .wine-pdf { width: 100%; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 16px 24px; margin-top: 24px; }
    .wine-pdf-label { display: none; }
    .menu-card-live { grid-template-columns: minmax(0,1fr) 190px; padding: 38px; gap: 30px; }
    .wine-cover { min-height: 275px; }
    .menu-card-pending { padding: 24px; }
    .menu-card-pending h2 { font-size: 21px; }
    .wine-category { scroll-margin-top: 100px; }
    .reservation-layout { grid-template-columns: 1fr; gap: 28px; }
    .reservation-card { scroll-margin-top: 100px; }
    .reservation-aside { position: static; }
}
@media (max-width: 575px) {
    .wine-producers { padding-top: 48px; scroll-margin-top: 100px; }
    .wine-producers-heading { margin-bottom: 26px; }
    .wine-producers-heading h2 { font-size: 26px; }
    .wine-producers-heading > p:last-child { font-size: 14px; }
    .wine-producers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 14px; }
    .wine-producer-logo { height: 124px; padding: 20px 13px; }
    .wine-producer-caption { font-size: 12px; }
    .wine-producer-wordmark { font-size: 18px; }
    .cards-hero { padding: 50px 0 55px; }
    .cards-hero h1 { font-size: 34px; letter-spacing: 2px; }
    .cards-hero .cards-eyebrow { font-size: 9px; letter-spacing: 2px; }
    .cards-intro > p:last-child { font-size: 15px; }
    .wine-hero { padding-top: 25px; padding-bottom: 42px; }
    .wine-hero .cards-back { margin-bottom: 24px; }
    .cards-page { padding: 32px 0 50px; }
    .cards-grid { grid-template-columns: 1fr; gap: 16px; }
    .menu-card-live { grid-template-columns: 1fr; padding: 34px 28px; gap: 32px; }
    .menu-card-live h2 { font-size: 30px; }
    .menu-card-live p { font-size: 16px; }
    .wine-cover { width: 195px; min-height: 260px; justify-self: center; }
    .wine-cover img { width: 90px; }
    .cards-actions { gap: 18px; }
    .cards-button { padding: 13px 20px; font-size: 11px; }
    .wine-nav { padding: 23px; gap: 0 16px; }
    .wine-nav > a { flex-basis: 42%; font-size: 13px; gap: 8px; }
    .wine-categories { padding: 25px 19px; }
    .wine-price-note { text-align: left; font-size: 11px; margin-bottom: 28px; }
    .wine-category-heading { gap: 12px; padding-bottom: 16px; }
    .wine-category h2 { font-size: 23px; }
    .wine-category { margin-bottom: 38px; }
    .wine-item { gap: 12px; padding: 17px 0; }
    .wine-info h3 { font-size: 16px; }
    .wine-info p { font-size: 12px; }
    .wine-price { font-size: 15px; }
    .wine-category:nth-of-type(4n+1)::before { width: 280px; height: 175px; top: -50px; right: -70px; }
    .wine-category:nth-of-type(4n+2)::before { width: 280px; height: 122px; left: -80px; }
    .wine-category:nth-of-type(4n+3)::before { width: 160px; height: 200px; top: -40px; right: -40px; }
    .wine-category:nth-of-type(4n)::before { width: 230px; height: 128px; right: -60px; }
    .reservation-card { padding: 26px 20px 20px; }
    .reservation-card h2 { font-size: 25px; }
    .reservation-lead { font-size: 15px; margin-bottom: 24px; }
    .reservation-aside { padding: 24px 20px 26px; }
}
@media print {
    .wine-producers { display: none; }
    header, footer, .wine-nav, .cards-back, .wine-closing, .pre-loader, .modal, .back-to-top { display: none !important; }
    .cards-hero { background: white; padding: 0 0 20px; border: 0; }
    .cards-hero h1, .cards-hero .cards-eyebrow, .cards-intro > p:last-child { color: #383848; }
    .cards-page { background: white; padding: 0; }
    .wine-layout { display: block; }
    .wine-categories { padding: 0; border: 0; box-shadow: none; background: none; }
    .wine-category::before { display: none; }
    .wine-item { break-inside: avoid; }
    .wine-category-heading { break-after: avoid; }
}
.cards-hero .cards-hub-link { display: inline-block; margin-top: 20px; color: #e4b95b; font-size: 13px; text-decoration: underline; text-underline-offset: 4px; }
