:root {
  --tdv-wine: #5b1828;
  --tdv-wine-dark: #351018;
  --tdv-olive: #67705a;
  --tdv-copper: #b87843;
  --tdv-cream: #f6f0e7;
  --tdv-paper: #fcfaf6;
  --tdv-ink: #211b1b;
  --tdv-muted: #746d68;
  --tdv-border: #ded6cc;
  --tdv-white: #fff;
  --tdv-success: #28724b;
  --tdv-danger: #a1333d;
  --tdv-shadow: 0 18px 50px rgba(45, 24, 27, .09);
  --tdv-radius: 16px;
  --tdv-shell: min(1240px, calc(100% - 40px));
  --tdv-serif: Georgia, "Times New Roman", serif;
  --tdv-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--tdv-ink); background: var(--tdv-paper); font-family: var(--tdv-sans); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
a { color: var(--tdv-wine); text-decoration-thickness: 1px; text-underline-offset: 3px; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, h4 { margin: 0 0 .6em; color: var(--tdv-ink); font-family: var(--tdv-serif); font-weight: 500; letter-spacing: -.025em; line-height: 1.12; }
h1 { font-size: clamp(2.7rem, 6vw, 5.25rem); }
h2 { font-size: clamp(2rem, 4vw, 3.25rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); }
p { margin: 0 0 1.2em; }
::selection { color: #fff; background: var(--tdv-wine); }
.tdv-shell { width: var(--tdv-shell); margin-inline: auto; }
.tdv-page { min-height: 60vh; overflow: clip; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { z-index: 100000; top: 8px; left: 8px; width: auto; height: auto; padding: 12px 16px; clip: auto; color: var(--tdv-ink); background: #fff; }
.tdv-icon { flex: 0 0 auto; width: 1.3em; height: 1.3em; vertical-align: -.2em; }
.tdv-eyebrow { margin-bottom: 14px; color: var(--tdv-copper); font-size: .75rem; font-weight: 800; letter-spacing: .18em; line-height: 1.3; text-transform: uppercase; }

/* Header */
.tdv-announcement { position: relative; z-index: 61; color: #fff; background: var(--tdv-wine-dark); font-size: .78rem; letter-spacing: .035em; }
.tdv-announcement__inner { min-height: 34px; display: flex; align-items: center; justify-content: center; gap: 30px; }
.tdv-announcement span, .tdv-announcement a { display: inline-flex; align-items: center; gap: 8px; }
.tdv-announcement a { color: #fff; font-weight: 700; text-decoration: none; }
.tdv-announcement .tdv-icon { width: 16px; height: 16px; }
.tdv-header { position: sticky; z-index: 60; top: 0; background: rgba(252, 250, 246, .93); border-bottom: 1px solid rgba(222, 214, 204, .75); backdrop-filter: blur(16px); }
.admin-bar .tdv-header { top: 32px; }
.tdv-header__inner { min-height: 82px; display: grid; grid-template-columns: 210px 1fr auto; align-items: center; gap: 28px; }
.tdv-brand { position: relative; z-index: 2; line-height: 0; }
.tdv-brand .custom-logo-link, .tdv-footer .custom-logo-link { display: inline-block; }
.tdv-brand .custom-logo { width: auto; max-width: 176px; max-height: 58px; object-fit: contain; }
.tdv-wordmark { color: var(--tdv-ink); font-family: var(--tdv-serif); font-size: 1.75rem; font-weight: 700; line-height: 1; text-decoration: none; }
.tdv-wordmark span { color: var(--tdv-wine); font-style: italic; font-weight: 400; }
.tdv-nav__list { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 2.5vw, 38px); padding: 0; margin: 0; list-style: none; }
.tdv-nav__list > li { position: relative; }
.tdv-nav__list a { display: block; padding: 28px 0; color: var(--tdv-ink); font-size: .84rem; font-weight: 750; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.tdv-nav__list > li > a::after { position: absolute; right: 50%; bottom: 20px; left: 50%; height: 2px; content: ""; background: var(--tdv-copper); transition: left .2s ease, right .2s ease; }
.tdv-nav__list > li:hover > a::after, .tdv-nav__list > .current-menu-item > a::after { right: 0; left: 0; }
.tdv-nav .sub-menu { position: absolute; top: calc(100% - 4px); left: -24px; min-width: 220px; padding: 12px 0; margin: 0; visibility: hidden; opacity: 0; list-style: none; background: #fff; border: 1px solid var(--tdv-border); border-radius: 10px; box-shadow: var(--tdv-shadow); transform: translateY(8px); transition: .2s ease; }
.tdv-nav li:hover > .sub-menu, .tdv-nav li:focus-within > .sub-menu { visibility: visible; opacity: 1; transform: none; }
.tdv-nav .sub-menu a { padding: 9px 20px; text-transform: none; letter-spacing: 0; }
.tdv-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.tdv-header-actions > button, .tdv-header-actions > a, .tdv-menu-toggle { position: relative; display: inline-grid; width: 42px; height: 42px; padding: 0; place-items: center; color: var(--tdv-ink); background: transparent; border: 0; border-radius: 50%; cursor: pointer; text-decoration: none; transition: background .2s ease, color .2s ease; }
.tdv-header-actions > :is(button, a):hover { color: #fff; background: var(--tdv-ink); }
.tdv-cart-count { position: absolute; top: 0; right: 0; display: grid; min-width: 18px; height: 18px; padding: 0 4px; place-items: center; color: #fff; background: var(--tdv-wine); border: 2px solid var(--tdv-paper); border-radius: 99px; font-size: .62rem; font-weight: 800; line-height: 1; }
.tdv-header-actions > a:hover .tdv-cart-count { color: var(--tdv-wine); background: #fff; }
.tdv-menu-toggle { display: none; }
.tdv-menu-toggle__close { display: none; }
.tdv-menu-toggle[aria-expanded="true"] .tdv-menu-toggle__open { display: none; }
.tdv-menu-toggle[aria-expanded="true"] .tdv-menu-toggle__close { display: block; }
.tdv-search-panel { border-top: 1px solid var(--tdv-border); background: var(--tdv-paper); }
.tdv-product-search { min-height: 86px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; }
.tdv-product-search input[type="search"] { width: 100%; padding: 12px 0; color: var(--tdv-ink); background: transparent; border: 0; outline: 0; font-family: var(--tdv-serif); font-size: clamp(1.15rem, 2vw, 1.6rem); }
.tdv-product-search button { padding: 11px 20px; color: #fff; background: var(--tdv-ink); border: 1px solid var(--tdv-ink); border-radius: 99px; cursor: pointer; }

/* Buttons */
.tdv-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.tdv-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wc-block-components-button:not(.is-link), .wp-element-button { display: inline-flex; min-height: 50px; padding: 13px 22px; align-items: center; justify-content: center; gap: 10px; color: #fff; background: var(--tdv-ink); border: 1px solid var(--tdv-ink); border-radius: 999px; box-shadow: none; font-size: .82rem; font-weight: 800; letter-spacing: .06em; line-height: 1.2; text-align: center; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease; }
.tdv-button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .wc-block-components-button:not(.is-link):hover, .wp-element-button:hover { color: var(--tdv-ink); background: #fff; border-color: var(--tdv-ink); box-shadow: 0 10px 24px rgba(33, 27, 27, .14); transform: translateY(-2px); }
.tdv-button--light { color: var(--tdv-ink); background: #fff; border-color: var(--tdv-ink); }
.tdv-button--light:hover { color: #fff; background: var(--tdv-ink); }
.tdv-button--outline { color: var(--tdv-ink); background: transparent; }
.tdv-text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--tdv-wine); font-size: .82rem; font-weight: 800; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }
.tdv-text-link .tdv-icon { transition: transform .2s ease; }
.tdv-text-link:hover .tdv-icon { transform: translateX(4px); }

/* Home */
.tdv-hero { position: relative; min-height: min(720px, 77vh); display: grid; align-items: center; overflow: hidden; color: #fff; background: var(--tdv-wine-dark); }
.tdv-hero__media, .tdv-hero__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.tdv-hero__media { object-fit: cover; object-position: center; }
.tdv-hero__shade { background: linear-gradient(90deg, rgba(35, 9, 16, .94) 0%, rgba(45, 12, 20, .74) 38%, rgba(45, 12, 20, .08) 70%), linear-gradient(0deg, rgba(20, 8, 10, .2), transparent 50%); }
.tdv-hero__content { position: relative; z-index: 2; padding-block: 90px; }
.tdv-hero h1 { max-width: 720px; color: #fff; font-size: clamp(3.2rem, 6.7vw, 6.1rem); }
.tdv-hero__lead { max-width: 610px; margin-bottom: 34px; color: rgba(255,255,255,.84); font-size: clamp(1.05rem, 1.8vw, 1.25rem); }
.tdv-hero .tdv-text-link { color: #fff; }
.tdv-benefits { color: #fff; background: var(--tdv-olive); }
.tdv-benefits__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.tdv-benefits__grid > div { min-height: 106px; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 18px 34px; border-right: 1px solid rgba(255,255,255,.2); }
.tdv-benefits__grid > div:last-child { border-right: 0; }
.tdv-benefits__grid .tdv-icon { width: 30px; height: 30px; color: var(--tdv-cream); }
.tdv-benefits__grid span { display: flex; flex-direction: column; line-height: 1.4; }
.tdv-benefits__grid strong { font-family: var(--tdv-serif); font-size: 1.05rem; font-weight: 600; }
.tdv-benefits__grid span span, .tdv-benefits__grid span:not(.x) { font-size: .8rem; }
.tdv-section { padding-block: clamp(76px, 9vw, 126px); }
.tdv-section-heading { margin-bottom: 45px; }
.tdv-section-heading--center { max-width: 730px; margin-right: auto; margin-left: auto; text-align: center; }
.tdv-section-heading--center > p:last-child { color: var(--tdv-muted); }
.tdv-section-heading--split { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.tdv-section-heading--split h2 { margin-bottom: 0; }
.tdv-section-heading--split > p { max-width: 420px; margin-bottom: 4px; color: var(--tdv-muted); }
.tdv-categories-section { background: var(--tdv-cream); }
.tdv-category-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.tdv-category { min-width: 0; display: flex; padding: 25px 14px 20px; flex-direction: column; align-items: center; color: var(--tdv-ink); background: rgba(255,255,255,.52); border: 1px solid rgba(184,120,67,.16); border-radius: var(--tdv-radius); text-align: center; text-decoration: none; transition: transform .25s ease, background .25s ease, box-shadow .25s ease; }
.tdv-category:hover { background: #fff; box-shadow: var(--tdv-shadow); transform: translateY(-6px); }
.tdv-category__art { width: 112px; height: 112px; display: grid; margin-bottom: 10px; place-items: center; }
.tdv-category__art img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 12px 14px rgba(45,24,27,.09)); transition: transform .3s ease; }
.tdv-category:hover img { transform: scale(1.06) rotate(-1deg); }
.tdv-category strong { font-family: var(--tdv-serif); font-size: 1.12rem; font-weight: 600; }
.tdv-category > span:last-child { color: var(--tdv-muted); font-size: .73rem; }
.tdv-products-section { background: #fff; }
.tdv-story { color: #fff; background: var(--tdv-wine-dark); }
.tdv-story__grid { display: grid; grid-template-columns: .85fr 1.15fr; }
.tdv-story__visual { min-height: 510px; display: flex; padding: 60px; flex-direction: column; justify-content: end; background: radial-gradient(circle at 30% 25%, rgba(184,120,67,.38), transparent 35%), linear-gradient(135deg, #6f2436, #341016); }
.tdv-story__year { font-family: var(--tdv-serif); font-size: clamp(5rem, 12vw, 9rem); font-style: italic; line-height: .8; opacity: .6; }
.tdv-story__visual p { margin: 30px 0 0; font-family: var(--tdv-serif); font-size: 1.2rem; }
.tdv-story__copy { display: flex; padding: clamp(55px, 8vw, 110px); flex-direction: column; align-items: flex-start; justify-content: center; }
.tdv-story__copy h2 { color: #fff; }
.tdv-story__copy > p:not(.tdv-eyebrow) { max-width: 650px; color: rgba(255,255,255,.78); }
.tdv-story__copy a.tdv-button,
.tdv-story__copy a.tdv-button:visited { color: #fff; background: transparent; border-color: rgba(255,255,255,.7); }
.tdv-story__copy a.tdv-button:hover,
.tdv-story__copy a.tdv-button:focus-visible,
.tdv-story__copy a.tdv-button:active { color: var(--tdv-ink) !important; background: #fff !important; border-color: #fff !important; }
.tdv-new-products { background: var(--tdv-paper); }
.tdv-journal { background: var(--tdv-cream); }
.tdv-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tdv-post-grid--archive { padding-block: 70px; }
.tdv-post-card { min-width: 0; overflow: hidden; background: #fff; border: 1px solid var(--tdv-border); border-radius: var(--tdv-radius); box-shadow: 0 8px 30px rgba(45,24,27,.04); transition: transform .25s ease, box-shadow .25s ease; }
.tdv-post-card:hover { box-shadow: var(--tdv-shadow); transform: translateY(-5px); }
.tdv-post-card__image { display: block; aspect-ratio: 16/10; overflow: hidden; background: #e9e1d8; }
.tdv-post-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.tdv-post-card:hover .tdv-post-card__image img { transform: scale(1.035); }
.tdv-post-card__body { padding: 25px; }
.tdv-post-card__meta { margin-bottom: 10px; color: var(--tdv-copper); font-size: .71rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.tdv-post-card h2 { margin-bottom: 10px; font-size: 1.55rem; }
.tdv-post-card h2 a { color: inherit; text-decoration: none; }
.tdv-post-card__body > p:not(.tdv-post-card__meta) { color: var(--tdv-muted); font-size: .9rem; }

/* Pages, blog and content */
.tdv-page-hero, .tdv-shop-hero { padding-block: clamp(65px, 9vw, 110px); background: var(--tdv-cream); }
.tdv-page-hero .tdv-shell, .tdv-shop-hero .tdv-shell { max-width: 960px; }
.tdv-page-hero h1, .tdv-shop-hero h1 { font-size: clamp(2.8rem, 5.8vw, 5rem); }
.tdv-page-hero p:last-child, .tdv-shop-hero p:last-child { max-width: 720px; margin-bottom: 0; color: var(--tdv-muted); font-size: 1.08rem; }
.tdv-page-hero--blog { color: #fff; background: linear-gradient(110deg, rgba(53,16,24,.98), rgba(91,24,40,.9)); }
.tdv-page-hero--blog h1 { color: #fff; }
.tdv-page-hero--blog p:last-child { color: rgba(255,255,255,.75); }
.tdv-entry { padding-block: 70px; }
.tdv-entry > * { max-width: 760px; margin-right: auto; margin-left: auto; }
.tdv-entry > .alignwide { max-width: 1240px; }
.tdv-entry > .alignfull { max-width: none; }
.tdv-entry :is(h2,h3,h4) { margin-top: 1.5em; }
.tdv-entry blockquote { padding: 25px 30px; margin-block: 35px; color: var(--tdv-wine); border-left: 3px solid var(--tdv-copper); font-family: var(--tdv-serif); font-size: 1.25rem; }
.tdv-blog__layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 55px; padding-block: 70px 100px; }
.tdv-blog__posts { display: grid; gap: 24px; }
.tdv-blog__posts .tdv-post-card { display: grid; grid-template-columns: minmax(220px, 42%) 1fr; }
.tdv-blog__posts .tdv-post-card__image { height: 100%; aspect-ratio: auto; }
.tdv-blog__sidebar { position: relative; }
.tdv-widget { padding: 26px; margin-bottom: 20px; background: #fff; border: 1px solid var(--tdv-border); border-radius: var(--tdv-radius); }
.tdv-widget--intro { color: #fff; background: var(--tdv-olive); border: 0; }
.tdv-widget h2 { font-size: 1.4rem; }
.tdv-widget--intro h2 { color: #fff; }
.tdv-widget ul { padding: 0; margin: 0; list-style: none; }
.tdv-widget li { padding-block: 8px; border-bottom: 1px solid var(--tdv-border); }
.tdv-widget li:last-child { border: 0; }
.tdv-widget a { color: inherit; text-decoration: none; }
.search-form { display: flex; }
.search-form label { flex: 1; }
.search-form input { width: 100%; height: 44px; padding: 8px 12px; border: 1px solid var(--tdv-border); border-radius: 8px 0 0 8px; }
.search-form .search-submit { width: 44px; overflow: hidden; color: #fff; background: var(--tdv-ink); border: 0; border-radius: 0 8px 8px 0; font-size: 0; cursor: pointer; }
.search-form .search-submit::after { content: "→"; font-size: 18px; }
.tdv-single { padding-block: 75px 110px; }
.tdv-single__header { max-width: 940px; text-align: center; }
.tdv-single__header h1 { font-size: clamp(2.7rem, 6vw, 5rem); }
.tdv-single__lead { color: var(--tdv-muted); font-family: var(--tdv-serif); font-size: 1.25rem; }
.tdv-single__image { max-width: 1100px; margin-block: 48px; }
.tdv-single__image img { width: 100%; max-height: 620px; object-fit: cover; border-radius: var(--tdv-radius); }
.tdv-single__content { width: min(760px, calc(100% - 40px)); margin-inline: auto; }
.tdv-single__content img { border-radius: 10px; }
.tdv-single__footer, .tdv-post-nav, .tdv-comments { max-width: 760px; }
.tdv-post-nav { padding-top: 40px; margin-top: 40px; border-top: 1px solid var(--tdv-border); }
.nav-links { display: flex; justify-content: space-between; gap: 20px; }
.page-numbers { display: inline-grid; min-width: 42px; height: 42px; padding: 0 10px; place-items: center; color: var(--tdv-ink); background: #fff; border: 1px solid var(--tdv-border); border-radius: 50%; text-decoration: none; }
.page-numbers.current { color: #fff; background: var(--tdv-ink); border-color: var(--tdv-ink); }
.tdv-empty { max-width: 650px; padding-block: 120px; text-align: center; }

/* Contact */
.tdv-page-hero--contact { background: linear-gradient(120deg, var(--tdv-cream), #efe2d3); }
.tdv-contact__cards { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: -34px; }
.tdv-contact__cards > a { display: flex; min-width: 0; padding: 25px; align-items: flex-start; gap: 16px; color: var(--tdv-ink); background: #fff; border: 1px solid var(--tdv-border); border-radius: var(--tdv-radius); box-shadow: var(--tdv-shadow); text-decoration: none; }
.tdv-contact__cards .tdv-icon { width: 27px; height: 27px; color: var(--tdv-copper); }
.tdv-contact__cards span { min-width: 0; display: flex; flex-direction: column; }
.tdv-contact__cards small { color: var(--tdv-muted); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.tdv-contact__cards strong { overflow: hidden; font-family: var(--tdv-serif); font-size: 1.1rem; text-overflow: ellipsis; }
.tdv-contact__cards em { color: var(--tdv-muted); font-size: .76rem; font-style: normal; }
.tdv-contact__main { display: grid; grid-template-columns: 1.1fr .9fr; gap: 60px; padding-block: 90px 110px; }
.tdv-contact__form-wrap h2 { font-size: clamp(2rem, 4vw, 3.1rem); }
.tdv-contact-form { display: grid; gap: 18px; margin-top: 30px; }
.tdv-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.tdv-contact-form label { display: grid; gap: 7px; color: var(--tdv-muted); font-size: .78rem; font-weight: 700; letter-spacing: .035em; }
.tdv-contact-form :is(input[type="text"], input[type="email"], input[type="tel"], textarea) { width: 100%; padding: 13px 15px; color: var(--tdv-ink); background: #fff; border: 1px solid var(--tdv-border); border-radius: 10px; outline: 0; }
.tdv-contact-form :is(input, textarea):focus { border-color: var(--tdv-copper); box-shadow: 0 0 0 3px rgba(184,120,67,.14); }
.tdv-contact-form .tdv-checkbox { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; }
.tdv-checkbox input { margin-top: 4px; accent-color: var(--tdv-wine); }
.tdv-honeypot { position: absolute !important; left: -9999px !important; }
.tdv-contact-form .tdv-button { justify-self: start; }
.tdv-contact__aside { display: grid; align-content: start; gap: 18px; }
.tdv-contact__map { min-height: 390px; overflow: hidden; border-radius: var(--tdv-radius); }
.tdv-contact__map iframe { width: 100%; height: 100%; min-height: 390px; border: 0; filter: saturate(.7) sepia(.12); }
.tdv-contact__map-placeholder { min-height: 390px; display: flex; padding: 35px; flex-direction: column; align-items: center; justify-content: center; color: var(--tdv-ink); background: radial-gradient(circle at 50% 35%, rgba(184,120,67,.22), transparent 28%), var(--tdv-cream); text-align: center; }
.tdv-contact__map-placeholder .tdv-icon { width: 38px; height: 38px; margin-bottom: 12px; color: var(--tdv-copper); }
.tdv-contact__map-placeholder strong { font-family: var(--tdv-serif); font-size: 1.3rem; }
.tdv-contact__map-placeholder p { color: var(--tdv-muted); font-size: .78rem; }
.tdv-contact__business { padding: 26px; color: #fff; background: var(--tdv-olive); border-radius: var(--tdv-radius); }
.tdv-contact__business h2 { color: #fff; font-size: 1.35rem; }
.tdv-contact__business p { color: rgba(255,255,255,.8); font-size: .86rem; }
.tdv-notice { padding: 13px 16px; margin-block: 20px; border-radius: 9px; }
.tdv-notice--success { color: var(--tdv-success); background: #e5f3e9; }
.tdv-notice--error { color: var(--tdv-danger); background: #f8e5e6; }
.tdv-cart-toast { position: fixed; z-index: 99999; right: 24px; bottom: 24px; min-width: 280px; display: flex; padding: 16px 18px; align-items: center; gap: 12px; color: #fff; background: var(--tdv-wine-dark); border: 1px solid rgba(255,255,255,.16); border-radius: 12px; box-shadow: 0 18px 45px rgba(0,0,0,.25); opacity: 0; transform: translateY(16px); transition: .22s ease; }
.tdv-cart-toast.is-visible { opacity: 1; transform: none; }
.tdv-cart-toast > span { display: grid; width: 30px; height: 30px; place-items: center; color: var(--tdv-wine-dark); background: var(--tdv-cream); border-radius: 50%; font-weight: 900; }
.tdv-cart-toast div { display: flex; flex-direction: column; }
.tdv-cart-toast small { color: rgba(255,255,255,.72); }

/* Shop and WooCommerce */
.woocommerce-breadcrumb { margin-bottom: 30px; color: var(--tdv-muted); font-size: .75rem; }
.woocommerce-breadcrumb a { color: inherit; text-decoration: none; }
.woocommerce-breadcrumb span { margin: 0 8px; opacity: .5; }
.tdv-shop-hero { background: radial-gradient(circle at 85% 10%, rgba(184,120,67,.18), transparent 35%), var(--tdv-cream); }
.tdv-term-description > :first-child { margin-top: 0; }
.tdv-shop-categories { padding-block: 60px; background: #fff; border-bottom: 1px solid var(--tdv-border); }
.tdv-shop-categories__heading { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 30px; }
.tdv-shop-categories__heading h2 { margin: 0; font-size: 2rem; }
.tdv-shop-categories__heading p { margin: 0; color: var(--tdv-muted); }
.tdv-shop-categories .tdv-category-grid { gap: 10px; }
.tdv-shop-categories .tdv-category { padding: 16px 8px; background: var(--tdv-paper); }
.tdv-shop-categories .tdv-category__art { width: 78px; height: 78px; }
.tdv-shop-products { padding-block: 65px 110px; }
.tdv-shop-toolbar { min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 25px; padding-bottom: 18px; border-bottom: 1px solid var(--tdv-border); }
.tdv-shop-toolbar p { margin: 0; color: var(--tdv-muted); font-size: .85rem; }
.woocommerce .woocommerce-ordering { margin: 0; }
.woocommerce .woocommerce-ordering select { min-height: 42px; padding: 8px 36px 8px 13px; color: var(--tdv-ink); background: #fff; border: 1px solid var(--tdv-border); border-radius: 9px; }
.woocommerce ul.products, ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; padding: 0; margin: 0; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product, ul.products li.product { position: relative; min-width: 0; width: auto !important; display: flex; padding: 13px 13px 16px; margin: 0 !important; float: none !important; flex-direction: column; background: #fff; border: 1px solid var(--tdv-border); border-radius: 14px; transition: transform .25s ease, box-shadow .25s ease; }
.woocommerce ul.products li.product:hover { z-index: 2; box-shadow: var(--tdv-shadow); transform: translateY(-5px); }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { color: inherit; text-decoration: none; }
.woocommerce ul.products li.product a img { width: 100%; margin: 0 0 17px !important; aspect-ratio: 1/1; object-fit: contain; background: var(--tdv-paper); border-radius: 9px; transition: transform .3s ease; }
.woocommerce ul.products li.product:hover a img { transform: scale(1.025); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 2.7em; padding: 0 !important; margin: 0 4px 8px; color: var(--tdv-ink); font-family: var(--tdv-sans); font-size: .93rem !important; font-weight: 700; letter-spacing: 0; line-height: 1.35; }
.woocommerce ul.products li.product .price { display: block; margin: auto 4px 14px !important; color: var(--tdv-wine) !important; font-size: 1.05rem !important; font-weight: 800; }
.woocommerce ul.products li.product .price del { color: var(--tdv-muted); font-size: .8em; opacity: .7; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .button, .woocommerce ul.products li.product .added_to_cart { width: 100%; min-height: 44px; display: inline-flex; margin: 0 !important; align-items: center; justify-content: center; color: #fff; background: var(--tdv-ink); border: 1px solid var(--tdv-ink); border-radius: 99px; font-size: .72rem; font-weight: 800; letter-spacing: .06em; line-height: 1; text-decoration: none; text-transform: uppercase; transition: .2s ease; }
.woocommerce ul.products li.product .button::before { margin-right: 7px; content: "+"; font-size: 1.1rem; font-weight: 400; }
.woocommerce ul.products li.product .button:hover { color: var(--tdv-ink); background: #fff; transform: none; }
.woocommerce ul.products li.product .button.loading { padding-right: 1em; opacity: .75; }
.woocommerce ul.products li.product .button.added { display: none; }
.woocommerce ul.products li.product .added_to_cart { color: #fff; background: var(--tdv-ink); border-color: var(--tdv-ink); }
.tdv-product-flag { position: absolute; z-index: 2; top: 24px; left: 24px; padding: 5px 9px; color: #fff; background: var(--tdv-olive); border-radius: 99px; font-size: .62rem; font-weight: 800; letter-spacing: .08em; line-height: 1; text-transform: uppercase; }
.tdv-product-flag--sale { background: var(--tdv-wine); }
.woocommerce span.onsale { z-index: 3; top: 22px; right: 22px; left: auto; min-width: 0; min-height: 0; padding: 6px 9px; color: #fff; background: var(--tdv-wine); border-radius: 99px; font-size: .65rem; line-height: 1; }
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner { padding: 16px 18px !important; margin: 0 0 24px !important; color: var(--tdv-ink); background: #fff; border: 1px solid var(--tdv-border) !important; border-top: 3px solid var(--tdv-olive) !important; border-radius: 10px; list-style: none; }
.woocommerce-error { border-top-color: var(--tdv-danger) !important; }
.woocommerce-message .button { float: right; }
.woocommerce nav.woocommerce-pagination { margin-top: 40px; }
.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { margin: 3px; border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 42px; height: 42px; display: grid; padding: 0; place-items: center; background: #fff; border: 1px solid var(--tdv-border); border-radius: 50%; }
.woocommerce nav.woocommerce-pagination ul li span.current { color: #fff; background: var(--tdv-ink); border-color: var(--tdv-ink); }

/* Single product */
.single-product .tdv-page { overflow: visible; }
.single-product main, .single-product .site-main { width: var(--tdv-shell); padding-block: 55px 100px; margin-inline: auto; }
.single-product div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, .9fr); gap: clamp(40px, 6vw, 85px); }
.single-product div.product .woocommerce-product-gallery, .single-product div.product .summary { width: 100% !important; float: none !important; }
.single-product div.product .woocommerce-product-gallery { padding: 18px; background: #fff; border: 1px solid var(--tdv-border); border-radius: var(--tdv-radius); }
.single-product div.product .woocommerce-product-gallery img { border-radius: 9px; }
.single-product div.product .product_title { font-size: clamp(2.4rem, 4.5vw, 4.2rem); }
.single-product div.product p.price { color: var(--tdv-wine); font-size: 1.7rem; font-weight: 800; }
.single-product .woocommerce-product-details__short-description { color: var(--tdv-muted); }
.single-product form.cart { display: flex; gap: 10px; padding-block: 20px; }
.quantity { display: inline-flex; }
.quantity .qty { width: 76px; min-height: 50px; padding: 8px; border: 1px solid var(--tdv-border); border-radius: 99px; text-align: center; }
.single_add_to_cart_button { flex: 1; }
.product_meta { padding-top: 18px; color: var(--tdv-muted); border-top: 1px solid var(--tdv-border); font-size: .8rem; }
.product_meta > span { display: block; }
.tdv-assurance { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 22px; }
.tdv-assurance span { display: flex; padding: 12px 8px; flex-direction: column; align-items: center; gap: 5px; color: var(--tdv-muted); background: var(--tdv-cream); border-radius: 9px; font-size: .68rem; text-align: center; }
.tdv-assurance .tdv-icon { color: var(--tdv-olive); }
.woocommerce div.product .woocommerce-tabs, .single-product section.related, .single-product section.upsells { grid-column: 1 / -1; padding-top: 50px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; border-bottom: 1px solid var(--tdv-border); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { padding: 0; margin: 0 25px 0 0; background: transparent; border: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 14px 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--tdv-wine); border-bottom: 2px solid var(--tdv-wine); }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 850px; padding-block: 25px; margin: 0; }
.related.products > h2, .upsells.products > h2 { margin-bottom: 30px; }

/* Cart and checkout, including WooCommerce Blocks */
.woocommerce-cart .tdv-page-content, .woocommerce-checkout .tdv-page-content { background: var(--tdv-paper); }
.woocommerce-cart .tdv-entry, .woocommerce-checkout .tdv-entry { max-width: 1240px; }
.woocommerce-cart .tdv-entry > *, .woocommerce-checkout .tdv-entry > * { max-width: none; }
.woocommerce table.shop_table { overflow: hidden; background: #fff; border: 1px solid var(--tdv-border); border-collapse: separate; border-radius: 12px; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 16px; border-color: var(--tdv-border); }
.woocommerce-cart table.cart img { width: 82px; border-radius: 8px; }
.woocommerce a.remove { display: grid; width: 28px; height: 28px; place-items: center; color: var(--tdv-danger) !important; background: #f7e9ea; }
.woocommerce a.remove:hover { color: #fff !important; background: var(--tdv-danger); }
.cart-collaterals .cart_totals { padding: 26px; background: #fff; border: 1px solid var(--tdv-border); border-radius: 12px; }
.wc-block-cart, .wc-block-checkout { margin: 0 !important; }
.wc-block-components-sidebar-layout { align-items: flex-start; gap: 35px; }
.wc-block-components-sidebar { position: sticky; top: 112px; padding: 25px !important; background: #fff; border: 1px solid var(--tdv-border); border-radius: 14px; }
.wc-block-components-main { padding-right: 0 !important; }
.wc-block-components-checkout-step { padding: 24px !important; margin-bottom: 16px; background: #fff; border: 1px solid var(--tdv-border); border-radius: 14px; }
.wc-block-components-checkout-step__heading { margin-bottom: 18px !important; }
.wc-block-components-checkout-step__title { font-family: var(--tdv-serif); font-size: 1.5rem !important; font-weight: 600 !important; }
.wc-block-components-text-input input, .wc-blocks-components-select .wc-blocks-components-select__container { background: #fff !important; border-color: var(--tdv-border) !important; border-radius: 9px !important; }
.wc-block-components-order-summary { padding: 0 !important; }
.wc-block-components-totals-wrapper { padding: 15px 0 !important; border-color: var(--tdv-border) !important; }
.wc-block-components-button.wp-element-button { width: 100%; min-height: 54px; }
.wc-block-components-product-name { color: var(--tdv-ink); font-weight: 700; text-decoration: none; }
.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img { border-radius: 8px; }

/* Footer */
.tdv-footer { color: rgba(255,255,255,.74); background: var(--tdv-wine-dark); }
.tdv-footer__top { display: grid; grid-template-columns: 1.25fr .75fr 1fr 1.25fr; gap: 48px; padding-block: 75px 55px; }
.tdv-footer h2 { color: #fff; font-family: var(--tdv-sans); font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.tdv-footer .custom-logo { width: auto; max-width: 165px; max-height: 62px; object-fit: contain; filter: brightness(0) invert(1); }
.tdv-wordmark--light { color: #fff; }
.tdv-footer__brand p { max-width: 270px; margin-top: 20px; font-family: var(--tdv-serif); font-size: 1.08rem; }
.tdv-footer ul { padding: 0; margin: 0; list-style: none; }
.tdv-footer li { margin-bottom: 9px; }
.tdv-footer a { color: inherit; text-decoration: none; }
.tdv-footer a:hover { color: #fff; }
.tdv-footer__contact li { display: flex; align-items: center; gap: 10px; }
.tdv-footer__contact .tdv-icon { width: 18px; color: var(--tdv-copper); }
.tdv-footer__newsletter p { font-size: .84rem; }
.tdv-footer__trust { display: flex; min-height: 92px; padding-block: 28px; align-items: center; justify-content: space-between; gap: 36px; border-top: 1px solid rgba(255,255,255,.12); }
.tdv-footer__trust > div:first-child { display: flex; align-items: center; gap: 12px; }
.tdv-footer__trust .tdv-icon { width: 28px; height: 28px; color: var(--tdv-copper); }
.tdv-footer__trust span { display: flex; flex-direction: column; font-size: .72rem; }
.tdv-footer__trust strong { color: #fff; font-size: .8rem; }
.tdv-anpc { display: flex; align-items: center; gap: 18px; }
.tdv-anpc img { width: 126px; height: auto; background: #fff; border-radius: 4px; }
.tdv-authorities-block { width: min(100%, 570px); }
.tdv-authorities-title { display: block; margin-bottom: 10px; color: #fff; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.tdv-authorities { display: grid; grid-template-columns: repeat(2, minmax(250px, 1fr)); gap: 14px; }
.tdv-authority-card {
  position: relative;
  min-height: 132px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: 76px auto;
  padding: 12px 46px 12px 14px;
  align-items: center;
  color: var(--tdv-ink) !important;
  background: #fff;
  border: 2px solid #fff;
  border-radius: 12px;
  text-decoration: none !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.14);
  transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.tdv-authority-card img { grid-column: 1; width: 100%; max-width: 210px; max-height: 74px; object-fit: contain; object-position: left center; }
.tdv-authority-card span { grid-column: 1; margin-top: 5px; color: #4f4946; font-size: .68rem; font-weight: 800; line-height: 1.25; }
.tdv-authority-card .tdv-icon { position: absolute; top: 50%; right: 14px; width: 24px; height: 24px; color: var(--tdv-ink); transform: translateY(-50%); }
.tdv-authority-card:hover, .tdv-authority-card:focus-visible, .tdv-authority-card:active { color: #fff !important; background: var(--tdv-ink); border-color: #fff; box-shadow: 0 12px 30px rgba(0,0,0,.24); transform: translateY(-2px); }
.tdv-authority-card:hover img, .tdv-authority-card:focus-visible img, .tdv-authority-card:active img { background: #fff; border-radius: 6px; }
.tdv-authority-card:hover span, .tdv-authority-card:focus-visible span, .tdv-authority-card:active span,
.tdv-authority-card:hover .tdv-icon, .tdv-authority-card:focus-visible .tdv-icon, .tdv-authority-card:active .tdv-icon { color: #fff; }
.tdv-footer__bottom { padding-block: 17px; color: rgba(255,255,255,.58); background: rgba(0,0,0,.2); font-size: .72rem; }
.tdv-footer__bottom .tdv-shell { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.tdv-footer__bottom p { margin: 0; }
.tdv-footer__bottom ul { display: flex; gap: 18px; }

/* Accessibility and motion */
:focus-visible { outline: 3px solid rgba(184,120,67,.65); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media (max-width: 1024px) {
  :root { --tdv-shell: min(100% - 32px, 920px); }
  .admin-bar .tdv-header { top: 32px; }
  .tdv-header__inner { grid-template-columns: 1fr auto auto; min-height: 70px; }
  .tdv-menu-toggle { z-index: 3; display: inline-grid; order: 2; }
  .tdv-header-actions { order: 3; }
  .tdv-account-link { display: none !important; }
  .tdv-nav { position: fixed; z-index: 1; top: 0; right: 0; width: min(410px, 100%); height: 100dvh; padding: 110px 34px 40px; visibility: hidden; background: var(--tdv-paper); box-shadow: -20px 0 50px rgba(45,24,27,.15); opacity: 0; transform: translateX(100%); transition: .25s ease; }
  .tdv-nav.is-open { visibility: visible; opacity: 1; transform: none; }
  .tdv-nav__list { display: block; }
  .tdv-nav__list a { padding: 14px 0; font-family: var(--tdv-serif); font-size: 1.6rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
  .tdv-nav__list > li > a::after { display: none; }
  .tdv-nav .sub-menu { position: static; min-width: 0; padding: 0 0 0 18px; visibility: visible; opacity: 1; background: transparent; border: 0; box-shadow: none; transform: none; }
  .tdv-nav .sub-menu a { padding: 6px 0; font-family: var(--tdv-sans); font-size: .95rem; }
  .tdv-category-grid { grid-template-columns: repeat(5, minmax(145px, 1fr)); overflow-x: auto; padding: 8px 2px 20px; scroll-snap-type: x mandatory; }
  .tdv-category { scroll-snap-align: start; }
  .tdv-benefits__grid > div { padding: 16px; }
  .woocommerce ul.products, ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tdv-blog__layout { grid-template-columns: 1fr 250px; gap: 30px; }
  .tdv-blog__posts .tdv-post-card { grid-template-columns: 1fr; }
  .tdv-blog__posts .tdv-post-card__image { aspect-ratio: 16/8; }
  .tdv-contact__cards { grid-template-columns: 1fr; max-width: 760px; }
  .tdv-contact__main { grid-template-columns: 1fr 1fr; gap: 35px; }
  .tdv-footer__top { grid-template-columns: 1.2fr .8fr 1fr; }
  .tdv-footer__newsletter, .tdv-footer__legal { grid-column: 1 / -1; }
}

@media (max-width: 782px) {
  .admin-bar .tdv-header { top: 46px; }
}

@media (max-width: 767px) {
  :root { --tdv-shell: calc(100% - 28px); }
  body { font-size: 15px; }
  .admin-bar .tdv-header { top: 0; }
  .tdv-announcement__inner { min-height: 32px; justify-content: flex-start; overflow: hidden; white-space: nowrap; }
  .tdv-announcement__inner > a { display: none; }
  .tdv-header__inner { gap: 4px; }
  .tdv-brand .custom-logo { max-width: 130px; max-height: 48px; }
  .tdv-search-toggle { display: none !important; }
  .tdv-header-actions > a, .tdv-menu-toggle { width: 40px; }
  .tdv-hero { min-height: 650px; align-items: end; }
  .tdv-hero__media { object-position: 63% center; }
  .tdv-hero__shade { background: linear-gradient(0deg, rgba(35,9,16,.98) 0%, rgba(35,9,16,.78) 52%, rgba(35,9,16,.2) 100%); }
  .tdv-hero__content { padding-block: 100px 64px; }
  .tdv-hero h1 { font-size: clamp(3rem, 14vw, 4.7rem); }
  .tdv-benefits__grid { grid-template-columns: 1fr; padding-block: 8px; }
  .tdv-benefits__grid > div { min-height: 80px; justify-content: flex-start; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.17); }
  .tdv-benefits__grid > div:last-child { border-bottom: 0; }
  .tdv-section { padding-block: 72px; }
  .tdv-section-heading--split { align-items: flex-start; flex-direction: column; }
  .tdv-category-grid { grid-template-columns: repeat(10, 145px); }
  .tdv-story__grid { grid-template-columns: 1fr; }
  .tdv-story__visual { min-height: 320px; padding: 35px; }
  .tdv-story__copy { padding: 55px 24px; }
  .tdv-post-grid { grid-template-columns: 1fr; }
  .tdv-page-hero, .tdv-shop-hero { padding-block: 60px; }
  .tdv-blog__layout { grid-template-columns: 1fr; padding-block: 45px 75px; }
  .tdv-blog__posts .tdv-post-card__image { aspect-ratio: 16/9; }
  .tdv-blog__sidebar { display: grid; grid-template-columns: 1fr; }
  .tdv-single { padding-block: 55px 75px; }
  .tdv-contact__cards { margin-top: -20px; }
  .tdv-contact__main { grid-template-columns: 1fr; padding-block: 65px 80px; }
  .tdv-form-row { grid-template-columns: 1fr; }
  .tdv-shop-categories__heading { align-items: flex-start; flex-direction: column; }
  .tdv-shop-products { padding-block: 45px 75px; }
  .tdv-shop-toolbar { align-items: flex-start; flex-direction: column; }
  .woocommerce ul.products, ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .woocommerce ul.products li.product, ul.products li.product { padding: 8px 8px 12px; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .82rem !important; }
  .woocommerce ul.products li.product .button, .woocommerce ul.products li.product .added_to_cart { min-height: 42px; font-size: .64rem; }
  .tdv-product-flag { top: 15px; left: 15px; }
  .single-product main, .single-product .site-main { padding-block: 35px 75px; }
  .single-product div.product { grid-template-columns: 1fr; gap: 28px; }
  .single-product form.cart { position: sticky; z-index: 20; bottom: 8px; padding: 8px; background: rgba(252,250,246,.94); border: 1px solid var(--tdv-border); border-radius: 99px; box-shadow: var(--tdv-shadow); backdrop-filter: blur(10px); }
  .tdv-assurance { gap: 5px; }
  .woocommerce div.product .woocommerce-tabs ul.tabs { overflow-x: auto; white-space: nowrap; }
  .wc-block-components-sidebar { position: static; padding: 18px !important; }
  .wc-block-components-checkout-step { padding: 18px !important; }
  .tdv-footer__top { grid-template-columns: 1fr 1fr; gap: 35px 25px; padding-block: 60px 40px; }
  .tdv-footer__brand, .tdv-footer__newsletter, .tdv-footer__legal { grid-column: 1 / -1; }
  .tdv-footer__trust { padding-block: 25px; align-items: flex-start; flex-direction: column; }
  .tdv-anpc { flex-wrap: wrap; }
  .tdv-footer__bottom .tdv-shell { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 420px) {
  .tdv-header-actions { gap: 0; }
  .tdv-hero .tdv-actions { align-items: flex-start; flex-direction: column; }
  .tdv-category-grid { grid-template-columns: repeat(10, 136px); }
  .woocommerce ul.products li.product .button::before { display: none; }
  .tdv-assurance span { font-size: .61rem; }
}

/* --------------------------------------------------------------------------
   1.0.6 — catalogue, footer, layout and commerce hardening
   Kept at the end intentionally: legacy block CSS is allowed to load, while
   these rules guarantee readable controls and a predictable WooCommerce UI.
   -------------------------------------------------------------------------- */

/* Defensive reset for WooCommerce body classes: the page itself is never a control. */
html body.tdv-theme {
  width: auto !important;
  max-width: none !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow-x: hidden;
  color: var(--tdv-ink);
  background: var(--tdv-paper);
}

/* GP Premium can inject an unstyled duplicate menu after the custom footer. */
html body.tdv-theme #generate-slideout-menu,
html body.tdv-theme .slideout-navigation { display: none !important; }

/* A visible, self-explanatory cart control in the header. */
.tdv-header-actions > a.tdv-cart-link {
  width: auto;
  min-width: 128px;
  min-height: 44px;
  padding: 5px 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: #fff;
  background: var(--tdv-ink);
  border: 1px solid var(--tdv-ink);
  border-radius: 999px;
}
.tdv-header-actions > a.tdv-cart-link:hover,
.tdv-header-actions > a.tdv-cart-link:focus-visible { color: var(--tdv-ink); background: #fff; }
.tdv-cart-copy { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; line-height: 1; }
.tdv-cart-label { font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.tdv-cart-total { max-width: 84px; overflow: hidden; font-size: .68rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.tdv-cart-total .woocommerce-Price-amount { color: inherit; }
.tdv-cart-link .tdv-cart-count {
  position: static;
  min-width: 20px;
  height: 20px;
  padding-inline: 5px;
  color: var(--tdv-ink);
  background: #fff;
  border: 0;
}
.tdv-header-actions > a.tdv-cart-link:hover .tdv-cart-count { color: #fff; background: var(--tdv-ink); }

.tdv-theme .woocommerce .ajax_add_to_cart.is-adding,
.tdv-theme .woocommerce .ajax_add_to_cart.loading {
  cursor: wait !important;
  opacity: .78 !important;
}

/* Every actionable element keeps a solid fill and readable label. */
.tdv-theme .woocommerce a.button,
.tdv-theme .woocommerce button.button,
.tdv-theme .woocommerce input.button,
.tdv-theme .woocommerce #respond input#submit,
.tdv-theme .wc-block-components-button:not(.is-link),
.tdv-theme .wp-block-button__link,
.tdv-theme a.gb-button,
.tdv-theme button.gb-button,
.tdv-theme a[class*="gb-button"],
.tdv-theme .tdv-legacy-cta,
.tdv-theme a.gb-text-eda52499 {
  min-height: 48px !important;
  display: inline-flex !important;
  padding: 12px 22px !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #fff !important;
  background-color: var(--tdv-ink) !important;
  background-image: none !important;
  border: 1px solid var(--tdv-ink) !important;
  border-radius: 999px !important;
  box-shadow: none;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.tdv-theme .woocommerce a.button:hover,
.tdv-theme .woocommerce a.button:focus-visible,
.tdv-theme .woocommerce button.button:hover,
.tdv-theme .woocommerce button.button:focus-visible,
.tdv-theme .woocommerce input.button:hover,
.tdv-theme .woocommerce input.button:focus-visible,
.tdv-theme .wc-block-components-button:not(.is-link):hover,
.tdv-theme .wc-block-components-button:not(.is-link):focus-visible,
.tdv-theme .wp-block-button__link:hover,
.tdv-theme .wp-block-button__link:focus-visible,
.tdv-theme a.gb-button:hover,
.tdv-theme a.gb-button:focus-visible,
.tdv-theme a[class*="gb-button"]:hover,
.tdv-theme a[class*="gb-button"]:focus-visible,
.tdv-theme .tdv-legacy-cta:hover,
.tdv-theme .tdv-legacy-cta:focus-visible,
.tdv-theme a.gb-text-eda52499:hover,
.tdv-theme a.gb-text-eda52499:focus-visible {
  color: var(--tdv-ink) !important;
  background-color: #fff !important;
  border-color: var(--tdv-ink) !important;
  opacity: 1 !important;
}
.tdv-theme .woocommerce button.button:disabled,
.tdv-theme .woocommerce button.button:disabled[disabled],
.tdv-theme .woocommerce input.button:disabled {
  color: #625b58 !important;
  background: #e8e5e2 !important;
  border-color: #d7d2ce !important;
  opacity: 1 !important;
}

/* Legacy About CTA: compact, high-contrast, and never white-on-white. */
.tdv-entry a.tdv-legacy-cta,
.tdv-entry a.gb-text-eda52499 { width: fit-content; margin-top: 12px; }

/* Shop: compact white canvas, stable four-column desktop grid. */
.tdv-shop { color: var(--tdv-ink); background: #fff; }
.tdv-shop-hero {
  padding-block: 46px 52px;
  background: #fff;
  border-bottom: 1px solid var(--tdv-border);
}
.tdv-shop-hero .woocommerce-breadcrumb { margin-bottom: 18px; }
.tdv-shop-hero h1 { max-width: 850px; color: var(--tdv-ink); font-size: clamp(2.25rem, 4.5vw, 4.25rem); }
.tdv-shop-categories { padding-block: 42px; background: #f8f7f5; }
.tdv-shop-categories__heading { margin-bottom: 22px; }
.tdv-shop-categories .tdv-category {
  color: var(--tdv-ink);
  background: #fff;
  border: 1px solid #e6e2de;
  box-shadow: none;
}
.tdv-shop-categories .tdv-category:hover,
.tdv-shop-categories .tdv-category:focus-visible {
  color: var(--tdv-ink);
  background: #fff;
  border-color: var(--tdv-ink);
  box-shadow: 0 10px 28px rgba(33,27,27,.08);
}
.tdv-shop-products { padding-block: 48px 90px; }
.tdv-shop-toolbar { color: var(--tdv-ink); background: #fff; }
.tdv-theme .woocommerce .woocommerce-ordering select {
  min-width: 230px;
  color: var(--tdv-ink) !important;
  background-color: #fff !important;
  border-color: #bdb7b2 !important;
}
.tdv-theme .woocommerce ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 20px !important; }

/* Product loops outside WooCommerce archives (homepage recommendations/new). */
.tdv-theme ul.products li.product a.woocommerce-LoopProduct-link,
.tdv-theme ul.products li.product a.woocommerce-loop-product__link {
  color: inherit;
  text-decoration: none;
}
.tdv-theme ul.products li.product .woocommerce-loop-product__title {
  min-height: 2.7em;
  padding: 0 !important;
  margin: 0 4px 8px !important;
  color: var(--tdv-ink) !important;
  font-family: var(--tdv-sans) !important;
  font-size: .93rem !important;
  font-weight: 750 !important;
  letter-spacing: 0 !important;
  line-height: 1.35 !important;
}
.tdv-theme ul.products li.product .price {
  display: block;
  margin: auto 4px 14px !important;
  color: var(--tdv-wine) !important;
  font-size: 1.05rem !important;
  font-weight: 800 !important;
}
.tdv-theme ul.products li.product .button,
.tdv-theme ul.products li.product .added_to_cart {
  width: 100% !important;
  min-height: 48px !important;
  display: inline-flex !important;
  padding: 10px 12px !important;
  margin: auto 0 0 !important;
  align-items: center;
  justify-content: center;
  color: #fff !important;
  background: var(--tdv-ink) !important;
  border: 1px solid var(--tdv-ink) !important;
  border-radius: 999px !important;
  font-size: .72rem !important;
  font-weight: 800 !important;
  letter-spacing: .05em !important;
  line-height: 1.15 !important;
  text-align: center;
  text-decoration: none !important;
  text-transform: uppercase;
}
.tdv-theme ul.products li.product .button:hover,
.tdv-theme ul.products li.product .button:focus-visible,
.tdv-theme ul.products li.product .added_to_cart:hover,
.tdv-theme ul.products li.product .added_to_cart:focus-visible {
  color: var(--tdv-ink) !important;
  background: #fff !important;
}

/* Product cards and “Cele mai vândute”: hover changes the border only. */
.tdv-theme .woocommerce ul.products li.product,
.tdv-theme .wc-block-grid__product,
.tdv-theme .wc-block-product,
.tdv-theme .wp-block-woocommerce-product-collection li {
  color: var(--tdv-ink) !important;
  background: #fff !important;
  border-color: #e2ded9 !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.tdv-theme .woocommerce ul.products li.product:hover,
.tdv-theme .woocommerce ul.products li.product:focus-within,
.tdv-theme .wc-block-grid__product:hover,
.tdv-theme .wc-block-grid__product:focus-within,
.tdv-theme .wc-block-product:hover,
.tdv-theme .wc-block-product:focus-within,
.tdv-theme .wp-block-woocommerce-product-collection li:hover,
.tdv-theme .wp-block-woocommerce-product-collection li:focus-within {
  color: var(--tdv-ink) !important;
  background: #fff !important;
  border-color: var(--tdv-ink) !important;
  box-shadow: 0 14px 34px rgba(33,27,27,.09) !important;
  transform: translateY(-2px);
}
.tdv-theme .woocommerce ul.products li.product:hover :is(.woocommerce-LoopProduct-link, .woocommerce-loop-product__link, h2, h3, .woocommerce-loop-product__title),
.tdv-theme .wc-block-grid__product:hover :is(a:not(.wp-block-button__link):not(.button), h2, h3, .wc-block-grid__product-title),
.tdv-theme .wc-block-product:hover :is(a:not(.wp-block-button__link):not(.button), h2, h3, .wc-block-components-product-name),
.tdv-theme .wp-block-woocommerce-product-collection li:hover :is(a:not(.wp-block-button__link):not(.button), h2, h3) {
  color: var(--tdv-ink) !important;
  opacity: 1 !important;
}
.tdv-theme .woocommerce ul.products li.product:hover .price,
.tdv-theme .wc-block-grid__product:hover .price,
.tdv-theme .wc-block-product:hover .price,
.tdv-theme .wp-block-woocommerce-product-collection li:hover .price { color: var(--tdv-wine) !important; }
.tdv-theme .woocommerce ul.products li.product .button,
.tdv-theme .woocommerce ul.products li.product .added_to_cart,
.tdv-theme .wc-block-grid__product .wp-block-button__link,
.tdv-theme .wc-block-product .wp-block-button__link {
  width: 100% !important;
  min-height: 48px !important;
  margin-top: auto !important;
  color: #fff !important;
  background: var(--tdv-ink) !important;
  border-color: var(--tdv-ink) !important;
}
.tdv-theme .woocommerce ul.products li.product .button:hover,
.tdv-theme .woocommerce ul.products li.product .added_to_cart:hover,
.tdv-theme .wc-block-grid__product .wp-block-button__link:hover,
.tdv-theme .wc-block-product .wp-block-button__link:hover { color: var(--tdv-ink) !important; background: #fff !important; border-color: var(--tdv-ink) !important; }

/* Cart: no decorative overlay, no white-on-white values, simple two-column UI. */
.woocommerce-cart .tdv-page-content,
.woocommerce-cart .tdv-entry,
.woocommerce-cart .tdv-entry > *,
.woocommerce-cart .woocommerce,
.woocommerce-checkout .tdv-page-content,
.woocommerce-checkout .tdv-entry,
.woocommerce-checkout .tdv-entry > *,
.woocommerce-checkout .woocommerce {
  color: var(--tdv-ink) !important;
  background: #fff !important;
  background-image: none !important;
}
.woocommerce-cart .tdv-page-hero,
.woocommerce-checkout .tdv-page-hero { padding-block: 44px; background: #f8f7f5; border-bottom: 1px solid var(--tdv-border); }
.woocommerce-cart .tdv-page-hero h1,
.woocommerce-checkout .tdv-page-hero h1 { color: var(--tdv-ink); font-size: clamp(2.25rem, 4vw, 3.6rem); }
.woocommerce-cart .tdv-entry,
.woocommerce-checkout .tdv-entry { padding-block: 48px 80px; }
.woocommerce-cart .tdv-entry::before,
.woocommerce-cart .tdv-entry::after,
.woocommerce-cart .woocommerce::before,
.woocommerce-cart .woocommerce::after { background: none !important; }

@media (min-width: 900px) {
  .woocommerce-cart .tdv-entry > .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(320px, .72fr);
    align-items: start;
    gap: 30px;
  }
  .woocommerce-cart .woocommerce-notices-wrapper,
  .woocommerce-cart .woocommerce-message,
  .woocommerce-cart .woocommerce-info,
  .woocommerce-cart .woocommerce-error,
  .woocommerce-cart .wc-empty-cart-message,
  .woocommerce-cart .return-to-shop { grid-column: 1 / -1; }
  .woocommerce-cart .woocommerce-cart-form,
  .woocommerce-cart .cart-collaterals { width: auto !important; float: none !important; }
  .woocommerce-cart .cart-collaterals .cart_totals {
    position: sticky;
    top: 120px;
    width: 100% !important;
    float: none !important;
  }
}

.tdv-theme .woocommerce table.shop_table {
  width: 100%;
  color: var(--tdv-ink) !important;
  background: #fff !important;
  border-color: #d9d5d1 !important;
  border-radius: 10px;
}
.tdv-theme .woocommerce table.shop_table thead,
.tdv-theme .woocommerce table.shop_table thead tr,
.tdv-theme .woocommerce table.shop_table thead th {
  color: var(--tdv-ink) !important;
  background: #f2f1ef !important;
}
.tdv-theme .woocommerce table.shop_table th,
.tdv-theme .woocommerce table.shop_table td,
.tdv-theme .woocommerce table.shop_table td :is(a, span, bdi, strong) {
  color: var(--tdv-ink) !important;
  border-color: #dedad6 !important;
  opacity: 1 !important;
}
.tdv-theme .woocommerce table.shop_table .product-name a { color: var(--tdv-ink) !important; font-weight: 800; }
.tdv-theme .woocommerce table.shop_table .product-price,
.tdv-theme .woocommerce table.shop_table .product-subtotal { white-space: nowrap; }
.tdv-theme .woocommerce .quantity { display: inline-flex; align-items: stretch; }
.tdv-theme .woocommerce .quantity .qty,
.tdv-theme .woocommerce .quantity .minus,
.tdv-theme .woocommerce .quantity .plus {
  min-height: 42px;
  color: var(--tdv-ink) !important;
  background: #fff !important;
  border: 1px solid #c8c3be !important;
  border-radius: 0 !important;
  opacity: 1 !important;
}
.tdv-theme .woocommerce .quantity .qty { width: 62px; border-right: 0 !important; border-left: 0 !important; text-align: center; }
.tdv-theme .woocommerce .quantity .minus,
.tdv-theme .woocommerce .quantity .plus { width: 38px; padding: 0; font-weight: 900; cursor: pointer; }
.tdv-theme .woocommerce .quantity .minus { border-radius: 8px 0 0 8px !important; }
.tdv-theme .woocommerce .quantity .plus { border-radius: 0 8px 8px 0 !important; }
.tdv-theme .woocommerce .cart .button[name="apply_coupon"],
.tdv-theme .woocommerce .cart .button[name="update_cart"] {
  color: var(--tdv-ink) !important;
  background: #fff !important;
  border-color: var(--tdv-ink) !important;
}
.tdv-theme .woocommerce .cart .button[name="apply_coupon"]:hover,
.tdv-theme .woocommerce .cart .button[name="update_cart"]:hover { color: #fff !important; background: var(--tdv-ink) !important; }
.tdv-theme .woocommerce table.cart td.actions .coupon { display: flex; gap: 8px; }
.tdv-theme .woocommerce table.cart td.actions .coupon .input-text {
  width: 150px !important;
  min-height: 48px;
  padding: 10px 13px !important;
  color: var(--tdv-ink) !important;
  background: #fff !important;
  border: 1px solid #bdb7b2 !important;
  border-radius: 8px;
}
.tdv-theme .cart-collaterals .cart_totals {
  color: var(--tdv-ink) !important;
  background: #fff !important;
  border: 1px solid #d9d5d1 !important;
  box-shadow: 0 12px 35px rgba(33,27,27,.07);
}
.tdv-theme .cart-collaterals .cart_totals h2 { color: var(--tdv-ink) !important; font-size: 2rem; }
.tdv-theme .cart-collaterals .cart_totals table th,
.tdv-theme .cart-collaterals .cart_totals table td { color: var(--tdv-ink) !important; background: #fff !important; }
.tdv-theme .wc-proceed-to-checkout a.checkout-button { width: 100%; min-height: 56px !important; color: #fff !important; background: var(--tdv-ink) !important; border-color: var(--tdv-ink) !important; }
.tdv-theme .wc-proceed-to-checkout a.checkout-button:hover { color: var(--tdv-ink) !important; background: #fff !important; }

/* Classic checkout and Woo Blocks share one restrained visual language. */
.tdv-theme .woocommerce-checkout :is(input.input-text, textarea, select),
.tdv-theme .woocommerce-cart :is(input.input-text, textarea, select),
.tdv-theme .wc-block-components-text-input input,
.tdv-theme .wc-blocks-components-select__container {
  color: var(--tdv-ink) !important;
  background: #fff !important;
  border-color: #bdb7b2 !important;
}
.tdv-theme .woocommerce-checkout #customer_details > div,
.tdv-theme .woocommerce-checkout #order_review,
.tdv-theme .woocommerce-checkout .woocommerce-checkout-payment,
.tdv-theme .wc-block-components-checkout-step,
.tdv-theme .wc-block-components-sidebar {
  color: var(--tdv-ink) !important;
  background: #fff !important;
  border-color: #d9d5d1 !important;
}
.tdv-theme .woocommerce-checkout #place_order { width: 100%; min-height: 56px !important; }

@media (max-width: 1100px) {
  .tdv-theme .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .tdv-authorities { min-width: 250px; grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
  .tdv-header-actions > a.tdv-cart-link { min-width: 44px; width: 44px; height: 42px; padding: 0; }
  .tdv-cart-copy { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .tdv-cart-link .tdv-cart-count { position: absolute; top: -3px; right: -3px; border: 2px solid #fff; }
  .tdv-shop-hero { padding-block: 34px 38px; }
  .tdv-shop-categories { padding-block: 32px; }
  .tdv-shop-products { padding-block: 34px 68px; }
  .tdv-theme .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
  .tdv-theme .woocommerce ul.products li.product { padding: 8px 8px 11px !important; }
  .tdv-theme .woocommerce ul.products li.product .button,
  .tdv-theme .woocommerce ul.products li.product .added_to_cart { min-height: 44px !important; padding: 9px 7px !important; font-size: .63rem !important; }
  .woocommerce-cart .tdv-entry,
  .woocommerce-checkout .tdv-entry { padding-block: 30px 60px; }
  .tdv-theme .woocommerce table.shop_table_responsive tr td,
  .tdv-theme .woocommerce-page table.shop_table_responsive tr td { color: var(--tdv-ink) !important; background: #fff !important; }
  .tdv-theme .woocommerce table.shop_table_responsive tr td::before,
  .tdv-theme .woocommerce-page table.shop_table_responsive tr td::before { color: #625b58 !important; }
  .tdv-theme .woocommerce table.cart td.actions .coupon { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; margin-bottom: 10px; }
  .tdv-theme .woocommerce table.cart td.actions .coupon .input-text { width: 100% !important; }
  .tdv-theme .woocommerce table.cart td.actions > .button { width: 100% !important; }
  .tdv-theme .cart-collaterals .cart_totals { padding: 20px; }
  .tdv-theme .wc-block-components-sidebar { position: static; }
  .tdv-authorities { width: 100%; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 420px) {
  .tdv-theme .woocommerce ul.products li.product .button::before { display: inline; }
  .tdv-theme .woocommerce table.cart td.actions .coupon { grid-template-columns: 1fr; }
  .tdv-theme .woocommerce table.cart td.actions .coupon .button { width: 100%; }
  .tdv-authorities { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   1.0.8 — mobile viewport and age-verification hardening
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {
  html {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overscroll-behavior-x: none;
  }

  html body.tdv-theme {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    overscroll-behavior-x: none;
  }

  /* Keep the closed drawer inside the viewport so it cannot widen the page. */
  .tdv-nav {
    right: 0;
    max-width: 100vw;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    clip-path: inset(0 0 0 100%);
    transform: none;
    transition: visibility .25s ease, opacity .25s ease, clip-path .25s ease;
  }

  .tdv-nav.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    clip-path: inset(0);
    transform: none;
  }

  /* Age Gate must stay above the cookie notice and inside the usable screen. */
  body.age-restriction .age-gate__wrapper {
    z-index: 2147483646 !important;
    width: 100% !important;
    height: 100dvh !important;
    min-height: 100svh !important;
    padding: max(16px, env(safe-area-inset-top)) 14px max(16px, env(safe-area-inset-bottom)) !important;
    align-items: flex-start !important;
    justify-content: center !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }

  body.age-restriction .age-gate {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: min(100%, 360px) !important;
    max-height: calc(100dvh - 32px) !important;
    margin: clamp(16px, 6svh, 52px) auto auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    transform: none !important;
  }

  body.age-restriction .age-gate__form,
  body.age-restriction .age-gate__fields {
    min-height: 0 !important;
  }

  body.age-restriction .age-gate__buttons {
    position: relative;
    z-index: 2;
  }

  body.age-restriction .age-gate__submit {
    min-width: 88px;
    min-height: 48px;
    padding: 11px 22px;
    touch-action: manipulation;
  }
}

/* The WooCommerce icon font glyph overlaps “Ai un cupon?” with our compact notice padding. */
.tdv-theme .woocommerce-form-coupon-toggle .woocommerce-info {
  padding-left: 18px !important;
}

.tdv-theme .woocommerce-form-coupon-toggle .woocommerce-info::before {
  display: none !important;
  content: none !important;
}
