/* Vinotéka Na cestě – vzhled nad Bootstrap 5.3 (barvy z loga: malinová #e71343, béžová #eadfc9) */
:root {
  --vn-red: #e71343;
  --vn-red-dark: #b80f35;
  --vn-wine: #7a0d26;
  --vn-wine-dark: #3d0713;
  --vn-beige: #eadfc9;
  --vn-cream: #f8f4ec;
  --vn-ink: #1d1a1b;
  --vn-muted: #6b6466;
  --bs-primary: #e71343;
  --bs-primary-rgb: 231, 19, 67;
  --bs-link-color: #b80f35;
  --bs-link-color-rgb: 184, 15, 53;
  --bs-link-hover-color: #7a0d26;
  --bs-body-color: #1d1a1b;
  --bs-body-font-family: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  --bs-border-radius: .6rem;
  --serif: Georgia, "Times New Roman", serif;
}
body { background: #fff; -webkit-font-smoothing: antialiased; }
.ico { vertical-align: -.2em; flex-shrink: 0; }
.ico-lg { width: 30px; height: 30px; }
.ico-xl { width: 48px; height: 48px; }
.skip-link { position: absolute; left: 1rem; top: 1rem; z-index: 2000; background: #fff; padding: .5rem 1rem; }

.btn-primary { --bs-btn-bg: var(--vn-red); --bs-btn-border-color: var(--vn-red); --bs-btn-hover-bg: var(--vn-red-dark); --bs-btn-hover-border-color: var(--vn-red-dark);
  --bs-btn-active-bg: var(--vn-wine); --bs-btn-active-border-color: var(--vn-wine); --bs-btn-disabled-bg: var(--vn-red); --bs-btn-disabled-border-color: var(--vn-red); font-weight: 600; }
.btn-outline-primary { --bs-btn-color: var(--vn-red-dark); --bs-btn-border-color: var(--vn-red); --bs-btn-hover-bg: var(--vn-red); --bs-btn-hover-border-color: var(--vn-red); --bs-btn-active-bg: var(--vn-red-dark); font-weight: 600; }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: #f08aa1; box-shadow: 0 0 0 .2rem rgba(231, 19, 67, .18); }
.form-check-input:checked { background-color: var(--vn-red); border-color: var(--vn-red); }

/* hlavicka */
.topbar { background: var(--vn-wine-dark); color: #f3e6e9; font-size: .82rem; padding: .35rem 0; }
.topbar a { color: #fff; text-decoration: none; }
.site-header { background: #fff; border-bottom: 1px solid #efe7da; }
.site-header .navbar { padding: .35rem 0; }
.site-logo { height: 56px; width: auto; }
@media (min-width: 992px) { .site-logo { height: 64px; } }
.navbar .nav-link { font-weight: 600; color: var(--vn-ink); padding: .5rem .8rem !important; border-radius: .5rem; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--vn-red-dark); background: var(--vn-cream); }
.dropdown-menu { border: 0; box-shadow: 0 .75rem 2rem rgba(61, 7, 19, .15); border-radius: .8rem; padding: .5rem; }
.dropdown-item { border-radius: .4rem; padding: .45rem .8rem; }
.dropdown-item:active { background: var(--vn-red); }
.btn-cart { background: var(--vn-red); color: #fff; font-weight: 600; border-radius: 2rem; padding: .45rem 1rem; }
.btn-cart:hover { background: var(--vn-red-dark); color: #fff; }
.btn-icon { border-radius: 2rem; color: var(--vn-ink); }
.navbar-toggler { border: 0; }
.navbar-toggler:focus { box-shadow: none; }
.nav-search { position: relative; margin-left: 1rem; }
.nav-search input { border-radius: 2rem; padding-right: 2.2rem; width: 190px; background: var(--vn-cream); border-color: transparent; }
.nav-search button { position: absolute; right: .2rem; top: 50%; transform: translateY(-50%); color: var(--vn-muted); }
.menu-contact a { color: var(--vn-ink); text-decoration: none; }

/* hero */
.hero { position: relative; min-height: 520px; height: 72vh; max-height: 720px; background: var(--vn-wine-dark); overflow: hidden; }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s ease; }
.hero-slide.active { opacity: 1; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(40, 4, 12, .82) 0%, rgba(40, 4, 12, .55) 45%, rgba(40, 4, 12, .1) 100%); }
.hero-content { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; }
.hero-box { max-width: 600px; color: #fff; }
.hero-box h1 { font-family: var(--serif); font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 700; line-height: 1.08; margin-bottom: 1rem; }
.hero-box .lead { color: #f7ebee; font-size: clamp(1rem, 1.6vw, 1.2rem); }
.hero .eyebrow { color: #ffb3c3; }
@media (max-width: 575.98px) { .hero { min-height: 480px; height: 78vh; } .hero::after { background: linear-gradient(0deg, rgba(40, 4, 12, .9) 0%, rgba(40, 4, 12, .55) 60%, rgba(40, 4, 12, .25) 100%); } .hero-content { align-items: flex-end; padding-bottom: 2rem; } }

.eyebrow { display: inline-block; text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; font-weight: 700; color: var(--vn-red); margin-bottom: .35rem; }
.section-title { font-family: var(--serif); font-weight: 700; font-size: clamp(1.5rem, 2.6vw, 2.1rem); color: var(--vn-wine-dark); }
.page-title { font-family: var(--serif); font-weight: 700; font-size: clamp(1.7rem, 3vw, 2.4rem); color: var(--vn-wine-dark); margin: .5rem 0 1.25rem; }
.section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.section-head .section-title { margin: 0; }
.link-arrow { font-weight: 600; text-decoration: none; white-space: nowrap; }

/* vyhody */
.usp { background: var(--vn-cream); border-bottom: 1px solid #efe7da; padding: 1.25rem 0; }
.usp-item { display: flex; gap: .8rem; align-items: center; color: var(--vn-wine); }
.usp-item strong { display: block; color: var(--vn-ink); font-size: .95rem; line-height: 1.2; }
.usp-item span { display: block; color: var(--vn-muted); font-size: .82rem; }

/* karta produktu */
.product-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #eee5d7; border-radius: 1rem; overflow: hidden; transition: box-shadow .2s, transform .2s; }
.product-card:hover { box-shadow: 0 .8rem 2rem rgba(61, 7, 19, .12); transform: translateY(-3px); }
.product-img { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 5; overflow: hidden; background: radial-gradient(circle at 50% 60%, #fff 0%, var(--vn-cream) 75%); }
/* fotka vzdy uvnitr pevneho ramecku (aspect-ratio je jen minimum, obsah by ho jinak roztahl) */
.product-img picture { position: absolute; inset: 1rem 1rem .5rem; display: flex; align-items: center; justify-content: center; }
.product-img img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; mix-blend-mode: multiply; }
.badges { position: absolute; top: .6rem; left: .6rem; display: flex; flex-direction: column; gap: .3rem; align-items: flex-start; }
.badges .badge { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; border-radius: 2rem; padding: .3rem .55rem; }
.badge-new { background: var(--vn-wine); }
.badge-tip { background: var(--vn-red); }
.badge-sale { background: #c97b00; }
.product-body { display: flex; flex-direction: column; flex: 1; padding: .85rem 1rem 1rem; }
.product-cat { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--vn-muted); font-weight: 600; }
.product-name { font-size: .98rem; font-weight: 600; line-height: 1.3; margin: .25rem 0 .4rem; }
.product-name a { color: var(--vn-ink); text-decoration: none; }
.product-name a::after { content: ""; position: absolute; inset: 0; }
.product-card { position: relative; }
.product-meta { display: flex; gap: .7rem; align-items: center; font-size: .8rem; color: var(--vn-muted); margin-bottom: .6rem; }
.product-foot { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: .5rem; position: relative; z-index: 2; }
.price { font-weight: 800; color: var(--vn-wine); font-size: 1.15rem; white-space: nowrap; }
.price-lg { font-size: 2rem; }
.price-request { color: var(--vn-muted); font-size: 1rem; }
.btn-add { border-radius: 2rem; padding: .4rem .7rem; }
.dot { display: inline-block; width: .7rem; height: .7rem; border-radius: 50%; margin-right: .3rem; vertical-align: -.05em; border: 1px solid rgba(0, 0, 0, .15); }
.dot-bile { background: #f1e3a6; }
.dot-cervene { background: #7a0d26; }
.dot-rose { background: #f4a3b4; }
@media (max-width: 575.98px) { .product-body { padding: .7rem; } .product-name { font-size: .88rem; } .price { font-size: 1rem; } .product-img picture { inset: .6rem .6rem .3rem; } }

/* vinarstvi */
.wineries { background: linear-gradient(180deg, var(--vn-cream), #fff); }
.winery-card { display: flex; align-items: center; gap: 1rem; padding: 1rem; background: #fff; border: 1px solid #eee5d7; border-radius: 1rem; text-decoration: none; color: var(--vn-ink); transition: box-shadow .2s, border-color .2s; height: 100%; }
.winery-card:hover { border-color: var(--vn-red); box-shadow: 0 .5rem 1.5rem rgba(61, 7, 19, .1); }
.winery-img { width: 72px; height: 72px; flex-shrink: 0; border-radius: .8rem; overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--vn-cream); color: var(--vn-red); }
.winery-img img { width: 100%; height: 100%; object-fit: cover; }
.winery-body strong { display: block; font-size: 1.02rem; }
.winery-body span { font-size: .82rem; color: var(--vn-muted); }
.winery-arrow { margin-left: auto; color: var(--vn-red); }

.about-band { background: var(--vn-beige); }
.shop-card { background: var(--vn-cream); border-radius: 1rem; padding: 1.25rem 1.4rem; border: 1px solid #efe5d3; }
.shop-card .ico { color: var(--vn-red); margin-right: .25rem; }

/* katalog */
.filters { background: var(--vn-cream); border-radius: 1rem; padding: 1rem; margin: 1rem 0 1.25rem; scroll-margin-top: 110px; }
.filters-row { display: flex; gap: .6rem; flex-wrap: wrap; }
.filters-row .form-select { width: auto; flex: 1 1 170px; }
.filter-search { position: relative; flex: 2 1 240px; }
.filter-search .ico { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: var(--vn-muted); }
.filter-search input { padding-left: 2.3rem; }
.chips { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .8rem; align-items: center; }
.chip { display: inline-flex; align-items: center; gap: .2rem; padding: .35rem .8rem; border-radius: 2rem; background: #fff; border: 1px solid #e5d9c4; color: var(--vn-ink); text-decoration: none; font-size: .88rem; font-weight: 500; }
.chip small { color: var(--vn-muted); margin-left: .2rem; }
.chip:hover { border-color: var(--vn-red); }
.chip.active { background: var(--vn-red); border-color: var(--vn-red); color: #fff; }
.chip.active small { color: #ffd6df; }
.chip-reset { border-style: dashed; color: var(--vn-red-dark); }
.chip-sep { width: 1px; height: 1.4rem; background: #dccdb3; margin: 0 .2rem; }
.cat-logo { max-width: 180px; height: auto; }
.cat-desc.collapsed { max-height: 9.5rem; overflow: hidden; position: relative; }
.cat-desc.collapsed::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3rem; background: linear-gradient(rgba(255, 255, 255, 0), #fff); }
.more-btn { padding: 0; font-weight: 600; }

/* detail */
.product-gallery .main-image { position: relative; display: flex; align-items: center; justify-content: center; height: 560px; width: 100%; overflow: hidden; background: radial-gradient(circle at 50% 60%, #fff 0%, var(--vn-cream) 75%); border-radius: 1.2rem; color: var(--vn-muted); }
.product-gallery .main-image picture { position: absolute; inset: 1.5rem; display: flex; align-items: center; justify-content: center; }
.product-gallery .main-image img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; mix-blend-mode: multiply; }
@media (max-width: 767.98px) { .product-gallery .main-image { height: 340px; } .product-gallery .main-image picture { inset: 1rem; } }
.thumbs { display: flex; gap: .5rem; overflow-x: auto; }
.thumb { flex: 0 0 76px; height: 100px; background: var(--vn-cream); border-radius: .6rem; padding: .3rem; border: 2px solid transparent; }
.thumb:hover { border-color: var(--vn-red); }
.thumb picture { display: block; width: 100%; height: 100%; }
.thumb img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.product-title { font-family: var(--serif); font-weight: 700; font-size: clamp(1.6rem, 3vw, 2.3rem); color: var(--vn-wine-dark); margin: .2rem 0 .8rem; }
.tag { display: inline-flex; align-items: center; background: var(--vn-cream); border: 1px solid #ece0cb; border-radius: 2rem; padding: .25rem .7rem; font-size: .85rem; }
.tag-accent { background: #fde7ec; border-color: #f7c0cd; color: var(--vn-red-dark); font-weight: 600; }
.buy-box { background: #fff; border: 1px solid #eee5d7; border-radius: 1rem; padding: 1.25rem; box-shadow: 0 .5rem 1.5rem rgba(61, 7, 19, .06); }
.avail { color: var(--vn-muted); font-weight: 600; }
.avail.in-stock { color: #2b7a3d; }
.facts li { display: flex; gap: .5rem; padding: .25rem 0; color: var(--vn-muted); }
.facts .ico { color: var(--vn-red); margin-top: .15rem; }
.qty-input { display: flex; width: 132px; flex-shrink: 0; }
.qty-input .btn { border-color: #ddd0bb; width: 40px; }
.qty-input input { border-radius: 0; border-left: 0; border-right: 0; border-color: #ddd0bb; -moz-appearance: textfield; }
.qty-input input::-webkit-outer-spin-button, .qty-input input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.qty-input .btn:first-child { border-radius: .6rem 0 0 .6rem; }
.qty-input .btn:last-child { border-radius: 0 .6rem .6rem 0; }
.qty-sm { width: 112px; }
.qty-sm .btn { width: 34px; padding: .25rem; }
.params { display: grid; grid-template-columns: minmax(130px, 40%) 1fr; margin: 0; border-top: 1px solid #eee5d7; }
.params dt, .params dd { padding: .5rem 0; border-bottom: 1px solid #eee5d7; margin: 0; }
.params dt { font-weight: 500; color: var(--vn-muted); }
.content-text { line-height: 1.7; }
.content-text img { max-width: 100%; height: auto; border-radius: .6rem; }
.content-text table { width: 100% !important; margin-bottom: 1rem; }
.content-text td { padding: .4rem; vertical-align: top; }
.content-text h2 { font-size: 1.35rem; margin-top: 1.5rem; color: var(--vn-wine-dark); }
.mobile-buy { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; background: #fff; border-top: 1px solid #eee5d7; box-shadow: 0 -.5rem 1.5rem rgba(0, 0, 0, .08); padding: .65rem 1rem calc(.65rem + env(safe-area-inset-bottom)); display: flex; justify-content: space-between; align-items: center; }
@media (max-width: 767.98px) { body:has(.mobile-buy) .site-footer { padding-bottom: 4.5rem; } }

/* kosik, objednavka */
.steps { display: flex; gap: .5rem; list-style: none; padding: 0; margin: .5rem 0 1rem; font-size: .88rem; flex-wrap: wrap; }
.steps li { display: flex; align-items: center; gap: .4rem; color: var(--vn-muted); }
.steps li + li::before { content: ""; width: 1.5rem; height: 1px; background: #d8cbb3; margin-right: .3rem; }
.steps span { display: inline-flex; width: 1.6rem; height: 1.6rem; border-radius: 50%; align-items: center; justify-content: center; background: #efe6d6; font-weight: 700; }
.steps .current { color: var(--vn-ink); font-weight: 600; }
.steps .current span { background: var(--vn-red); color: #fff; }
.steps .done span { background: var(--vn-wine); color: #fff; }
.cart-list { border-top: 1px solid #eee5d7; }
.cart-row { display: grid; grid-template-columns: 64px 1fr auto auto auto; gap: .8rem; align-items: center; padding: .8rem 0; border-bottom: 1px solid #eee5d7; }
.cart-img { width: 64px; height: 84px; background: var(--vn-cream); border-radius: .6rem; display: flex; align-items: center; justify-content: center; padding: .25rem; }
.cart-img img { max-width: 100%; max-height: 76px; object-fit: contain; mix-blend-mode: multiply; }
.cart-total { min-width: 90px; text-align: right; }
@media (max-width: 575.98px) {
  .cart-row { grid-template-columns: 56px 1fr auto; grid-template-areas: "img name del" "img qty total"; row-gap: .4rem; }
  .cart-img { grid-area: img; width: 56px; } .cart-name { grid-area: name; } .cart-qty { grid-area: qty; } .cart-total { grid-area: total; min-width: 0; } .cart-del { grid-area: del; }
}
.summary-box { background: var(--vn-cream); border-radius: 1rem; padding: 1.25rem; top: 100px; }
.free-ship .progress { height: .45rem; background: #e8dcc6; }
.free-ship .progress-bar { background: var(--vn-red); }
.form-section { border: 0; margin-bottom: 1.8rem; }
.form-section legend { font-family: var(--serif); font-weight: 700; font-size: 1.3rem; color: var(--vn-wine-dark); margin-bottom: .8rem; }
.choice { display: flex; align-items: center; gap: .8rem; padding: .8rem 1rem; border: 1px solid #e5d9c4; border-radius: .8rem; margin-bottom: .5rem; cursor: pointer; background: #fff; }
.choice:has(input:checked) { border-color: var(--vn-red); background: #fff5f7; box-shadow: 0 0 0 1px var(--vn-red); }
.choice small { display: block; color: var(--vn-muted); }
.choice.disabled { opacity: .45; cursor: not-allowed; }
.choice .form-check-input { margin: 0; flex-shrink: 0; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.success-icon { display: inline-flex; width: 80px; height: 80px; border-radius: 50%; background: #e7f4ea; color: #2b7a3d; align-items: center; justify-content: center; }
.inquiry-box { background: var(--vn-cream); border-radius: 1rem; padding: 1.5rem; }
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* paticka */
.site-footer { background: var(--vn-wine-dark); color: #e9d9dd; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: #ffb3c3; }
.site-footer h2 { color: #fff; letter-spacing: .08em; font-size: .85rem; margin-bottom: 1rem; }
.site-footer li { padding: .15rem 0; }
.footer-bottom { background: #2a040d; color: #c9a9b1; }

/* lightbox */
#lightbox .modal-content { min-height: 50vh; align-items: center; justify-content: center; }
#lightbox img { max-height: 88vh; }
.lb-nav { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(0, 0, 0, .45); color: #fff; border: 0; width: 44px; height: 64px; font-size: 2rem; border-radius: .5rem; }
.lb-prev { left: .5rem; } .lb-next { right: .5rem; }

/* overeni veku */
.age-gate { position: fixed; inset: 0; z-index: 3000; background: rgba(40, 4, 12, .88); display: flex; align-items: center; justify-content: center; padding: 1rem; }
.age-gate[hidden] { display: none; }
.age-box { background: #fff; border-radius: 1.2rem; padding: 2rem 1.5rem; max-width: 420px; text-align: center; box-shadow: 0 1rem 3rem rgba(0, 0, 0, .4); }
.age-box img { height: 60px; width: auto; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* o nas */
.about-hero { position: relative; min-height: 340px; display: flex; align-items: flex-end; color: #fff; background: var(--vn-wine-dark); overflow: hidden; }
.about-hero picture { position: absolute; inset: 0; }
.about-hero img { width: 100%; height: 100%; object-fit: cover; }
.about-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(40, 4, 12, .85) 0%, rgba(40, 4, 12, .35) 70%, rgba(40, 4, 12, .15) 100%); }
.about-hero .container { position: relative; z-index: 2; padding-top: 6rem; padding-bottom: 2.5rem; }
.about-hero h1 { font-family: var(--serif); font-weight: 700; font-size: clamp(2.2rem, 5vw, 3.4rem); }
.about-hero .eyebrow { color: #ffb3c3; }
.about-hero .lead { max-width: 640px; color: #f7ebee; }
.lead-text { font-size: 1.12rem; color: var(--vn-wine-dark); }
.about-photo { display: block; border-radius: 1rem; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: 0 .5rem 1.5rem rgba(61, 7, 19, .12); }
.about-photo picture, .about-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.about-photo:hover img { transform: scale(1.04); }
.about-photo-lg { aspect-ratio: 4 / 3; }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.about-tile { background: #fff; border-radius: 1rem; padding: 1.4rem; height: 100%; border: 1px solid #efe5d3; }
.about-tile .ico { color: var(--vn-red); margin-bottom: .6rem; }
.about-tile p { font-size: .9rem; color: var(--vn-muted); margin: 0; }
