/* Vini d’Elite — FINAL POLISH
   PASS 1: tokens / buttons / footer / rhythm
   PASS 2A: global width / alignment (readable · standard · wide)
   Load LAST. Do not redesign. */

:root {
  /* Width system (Pass 2A) — three modes only */
  --vde-readable: 760px;
  --vde-lead: 680px;
  --vde-standard: 1220px;
  --vde-wide: 1220px;
  --vde-content-max: var(--vde-standard);
  --vde-wine-split: 1380px;

  --vde-ivory: #e4d6b6;
  --vde-muted: #cbb98e;
  --vde-section-standard: clamp(56px, 5.5vw, 88px);
  --vde-section-major: clamp(72px, 7vw, 112px);
  --vde-btn-height: 48px;
  --vde-btn-font: .62rem;
  --vde-btn-track: .14em;
  /* reuse existing gold tokens where defined */
  --vde-gold: var(--gold-l, var(--gold, #d9c08a));
}

/* —— Readable body / meta (no cream product surfaces) —— */
.vde-main .lead,
.vde-main .shead > p,
.vde-main .about-c > p,
.vde-main .cantina-evening > p,
.vde-main .concierge-note p,
.vde-detail .lead,
.vde-detail .block > p,
.vde-b2b .hero-in > p,
.vde-b2b .sec p,
.page-winery .wy-hero .lead,
.page-winery .wy-copy p,
.page-about .op-intro p,
.page-about .op-sec p,
.page-prive.prive-unlocked .prive-hero .lead,
.page-prive.prive-unlocked .house-copy p,
.page-tasting .set-hero p,
.vde-contact .lead {
  color: var(--vde-ivory);
}

.vde-main .mut,
.vde-detail .grape,
.vde-detail .crumb,
.vde-detail .review-meta,
.page-winery .wy-coming-note,
.page-prive.prive-unlocked .prive-hero .subline,
.vde-contact .promise,
.vde-contact .status:not(.ok):not(.error) {
  color: var(--vde-muted);
}

/* —— Readable line length (editorial only) —— */
.vde-main .lead,
.vde-main .shead > p,
.vde-main .about-c > p,
.vde-main .cantina-evening > p,
.vde-detail .lead,
.vde-detail .block > p,
.page-winery .wy-hero .lead,
.page-winery .wy-copy p,
.page-about .op-intro p,
.page-prive.prive-unlocked .prive-hero .lead,
.page-tasting .set-hero p,
.vde-contact .lead {
  max-width: var(--vde-readable);
}

/* —— Eyebrow / metadata (not brand/logo) —— */
.eyebrow,
.wy-kicker,
.page-wine .label,
.vde-b2b .eyebrow,
.page-prive.prive-unlocked .prive-shead .eyebrow {
  font-size: .60rem;
  letter-spacing: .18em;
}

/* —— Button proportions (keep fill/outline treatments) —— */
.btn,
.wy-btn,
.page-prive.prive-unlocked .house-cta .btn,
.page-prive.prive-unlocked .prive-hero .btn,
.page-tasting .btn,
.page-wine .btn,
.page-wine .review-toggle {
  min-height: var(--vde-btn-height);
  padding-left: 24px;
  padding-right: 24px;
  font-size: var(--vde-btn-font);
  letter-spacing: var(--vde-btn-track);
  box-sizing: border-box;
}

/* Form submits may stay taller */
.vde-contact .btn[type="submit"],
.vde-b2b form .btn[type="submit"],
.page-prive.prive-unlocked .house-ask .btn[type="submit"] {
  min-height: 52px;
}

/* —— Section rhythm — only clear extremes —— */
.page-prive.prive-unlocked .prive-hero {
  /* Pass 2C: trim excess bottom empty; keep airy character */
  padding-bottom: clamp(24px, 3vw, 44px);
}
.page-winery .wy-sec.wy-sec-tight:has(.wy-close-cta) {
  padding-top: var(--vde-section-standard);
  padding-bottom: var(--vde-section-standard);
}
.page-home #gastro.sec,
.page-home #pribeh.sec,
.page-home #cantina.sec {
  /* required: overrides legacy important from homepage-refine.css */
  padding-top: var(--vde-section-standard) !important;
  padding-bottom: var(--vde-section-standard) !important;
}

/* —— Winery gallery: layout lives in winery-detail-refine.css (Pass 2B) —— */
.page-winery .wy-gallery .wy-media img {
  object-fit: cover;
}

/* —— Bottle image system —— */
.wcard-img,
.page-home .wcard-img,
.page-shop .wcard-img,
.page-prive.prive-unlocked .house-photo,
.page-prive.prive-unlocked .prive-photo,
.page-wine .related .rc img {
  aspect-ratio: 4 / 5;
}
.wcard-img .rimg,
.wcard-img img,
.page-home .wcard-img img,
.page-shop .wcard-img img,
.page-prive.prive-unlocked .house-photo img,
.page-prive.prive-unlocked .prive-photo img,
.page-wine .photo img,
.page-wine .related .rc img {
  object-fit: cover !important;
  object-position: center;
}

/* —— Incoming status badge (UI) —— */
.badge-way,
.winery-card .badge,
.wy-coming-note {
  text-transform: uppercase;
  letter-spacing: .16em;
}

/* —— Contact: chrome 1560, form content stays narrow —— */
.vde-contact .head .wrap,
.vde-contact footer.ft .wrap {
  width: min(var(--vde-content-max), calc(100% - 40px));
  max-width: var(--vde-content-max);
}
.vde-contact main .wrap {
  width: min(1160px, calc(100% - 40px));
  max-width: 1160px;
}

/* —— Canonical footer chrome (pages without full .ft inline styles) —— */
footer.ft {
  padding: 64px 0 28px;
  border-top: 1px solid var(--line, rgba(217, 192, 138, .24));
  background: rgba(16, 5, 8, .35);
}
footer.ft .ft-grid {
  display: grid;
  grid-template-columns: 1.5fr repeat(4, 1fr);
  gap: 24px;
  padding-bottom: 34px;
  border-bottom: 1px solid var(--line, rgba(217, 192, 138, .24));
}
footer.ft .brand .bm {
  font-family: Cinzel, var(--engrave, var(--cap, serif));
  font-size: 1.4rem;
  letter-spacing: .14em;
  color: var(--vde-gold);
  background: none;
  -webkit-text-fill-color: var(--vde-gold);
  filter: none;
}
footer.ft .ft-grid > div > p {
  margin: 14px 0 0;
  color: var(--vde-muted);
  font-size: .92rem;
  line-height: 1.55;
  max-width: 36ch;
}
footer.ft h4 {
  margin: 0 0 14px;
  font-family: Cinzel, var(--engrave, var(--cap, serif));
  font-size: .58rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--vde-gold);
  font-weight: 500;
}
footer.ft a.fl,
footer.ft span.fl {
  display: block;
  margin: 7px 0;
  color: var(--vde-ivory);
  font-size: .9rem;
  text-decoration: none;
}
footer.ft a.fl:hover {
  color: var(--vde-gold);
}
footer.ft .ft-bot {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding-top: 22px;
  color: var(--vde-muted);
  font-size: .78rem;
}
footer.ft .ft-bot a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 1020px) {
  footer.ft .ft-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 520px) {
  footer.ft {
    padding: 44px 0 22px;
  }
  footer.ft .ft-grid {
    grid-template-columns: 1fr 1fr;
    gap: 22px 16px;
    padding-bottom: 22px;
  }
  footer.ft .ft-grid > div:first-child {
    grid-column: 1 / -1;
  }
  footer.ft h4 {
    margin-bottom: 10px;
  }
  footer.ft a.fl,
  footer.ft span.fl {
    margin: 5px 0;
  }
  footer.ft .ft-bot {
    gap: 8px;
    padding-top: 18px;
  }
}

/* Hide legacy thin foot styles when canonical .ft is present */
.vde-detail footer.ft,
.vde-b2b footer.ft,
.vde-contact footer.ft,
.page-winery footer.ft,
.page-about footer.ft {
  color: inherit;
}

/* Overflow safety */
html, body {
  overflow-x: clip;
}

/* =========================================================
   PASS 2A — WIDTH / ALIGNMENT SYSTEM
   Homepage + Kolekce: no layout changes (benchmark).
   New !important budget: max 6 (each marked).
   ========================================================= */

/* Shared intention: wide shells share --vde-wide; text uses readable width */

/* —— Winery: readable story/quote; wide media (already on wy-wrap) —— */
.page-winery .wy-copy {
  /* width works even when editorial forces max-width:none !important */
  width: min(var(--vde-readable), 100%);
}
.page-winery .wy-quote {
  width: min(42rem, 100%);
}
.page-winery .wy-gallery .wy-media-grid,
.page-winery .wy-grid3,
.page-winery .wy-grid2,
.page-winery .wy-cellar,
.page-winery .wy-wines {
  width: 100%;
  box-sizing: border-box;
}

/* —— B2B: restore hero to wide shell (fixes left-edge drift vs sections) —— */
.vde-b2b .hero-in.wrap {
  /* required: overrides b2b-page.css hero-in max-width:none !important */
  max-width: var(--vde-wide) !important;
  /* required: overrides b2b-page.css padding … 0 !important (restore gutters + keep vertical) */
  padding: clamp(64px, 8vw, 96px) 20px !important;
  box-sizing: border-box;
}
.vde-b2b .price-grid,
.vde-b2b .cards,
.vde-b2b .steps,
.vde-b2b .example-grid,
.vde-b2b .auth-in {
  width: 100%;
}
/* Sleep & Sip — centered editorial block (matches other premium intros) */
.vde-b2b #sleep-sip .wrap {
  max-width: min(860px, var(--vde-standard)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
}
.vde-b2b #sleep-sip .sleep-block {
  max-width: min(52rem, 100%);
  margin: 0 auto;
  padding: clamp(12px, 2vw, 28px) 0;
  text-align: center;
}
.vde-b2b #sleep-sip .sleep-block .title,
.vde-b2b #sleep-sip .sleep-lead {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
/* Form module → centered column: intro above, fields in one grid */
.vde-b2b #poptavka .wrap.contact-grid {
  max-width: min(820px, var(--vde-standard)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  gap: clamp(28px, 3.5vw, 40px);
}

/* —— Privé: bottle/media stay wide; sourcing ask → ~1100–1200, left-aligned —— */
.page-prive.prive-unlocked .house-grid,
.page-prive.prive-unlocked .aurelio-block,
.page-prive.prive-unlocked .slopes {
  width: 100%;
}
.page-prive.prive-unlocked .house-ask .wrap {
  /* Pass 3: shared sourcing container ~1180–1250 */
  max-width: min(1220px, var(--vde-standard)) !important;
  /* required: left-align to wide content axis (overrides editorial margin-left:auto !important) */
  margin-left: max(20px, calc((100vw - min(100vw, var(--vde-wide))) / 2 + 20px)) !important;
  margin-right: auto !important;
}
/* Event module — 1200–1400 */
.page-prive.prive-unlocked .prive-event-in.wrap {
  max-width: min(1320px, var(--vde-wide)) !important;
  margin-left: max(20px, calc((100vw - min(100vw, var(--vde-wide))) / 2 + 20px)) !important;
  margin-right: auto !important;
  box-sizing: border-box;
}

/* —— Wine detail: main split container Pass 2B —— */
.page-wine main > .wrap:has(.hero),
.page-wine .related-sec .wrap,
.page-wine section.reviews.wrap {
  /* required: overrides editorial.css .wrap max-width:1560px !important */
  max-width: var(--vde-wine-split) !important;
}
.page-wine .hero {
  width: 100%;
}

/* —— Degustační set: short H1 matches house / O projektu section titles —— */
.page-tasting .set-hero h1 {
  /* required: keep Playfair section-title scale (no long-paragraph shrink) */
  font: 500 clamp(2.2rem, 4.4vw, 3.8rem) / 1.08 "Playfair Display", serif !important;
  color: #f0e4c8 !important;
  line-height: 1.08 !important;
  max-width: min(48rem, 100%);
  letter-spacing: normal;
}
.page-tasting .set-hero > p:not(.set-note) {
  font-size: clamp(1.05rem, 1.35vw, 1.18rem);
  line-height: 1.8;
}
.page-tasting .set-hero > p.set-note {
  margin-top: clamp(12px, 1.6vw, 18px) !important;
  font-size: clamp(.98rem, 1.2vw, 1.08rem) !important;
  line-height: 1.7 !important;
  color: var(--vde-muted, #cbb98e) !important;
  font-style: italic;
  max-width: min(640px, 100%) !important;
}

@media (max-width: 768px) {
  .page-winery .wy-copy,
  .page-winery .wy-quote {
    width: 100%;
  }
}


/* ——— C6A typography, alignment, shared chrome ———
   Shared rhythm only. Does not change photos, bottle cards, catalog, CMS. */

.wrap,
.wy-wrap,
.vde-contact .head .wrap,
.vde-contact footer.ft .wrap,
.vde-contact main .wrap {
  width: min(var(--vde-standard), calc(100% - 40px)) !important;
  max-width: var(--vde-standard) !important;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* Long reading vs shorter lead on the same left axis */
.vde-main .shead > p,
.vde-main .about-c > p,
.vde-main .cantina-evening > p,
.vde-detail .block > p,
.page-about .op-intro p,
.page-about .op-sec p,
.page-winery .wy-copy p,
.page-prive.prive-unlocked .house-copy p,
.page-tasting .set-hero p:not(.set-note),
.vde-contact .lead,
.vde-b2b .sec p {
  max-width: var(--vde-readable) !important;
}

.vde-main .lead,
.vde-detail .lead,
.page-home .hero-c .sub,
.page-winery .wy-hero .lead,
.page-prive.prive-unlocked .prive-hero .lead,
.vde-b2b .hero-in > p,
.page-tasting .set-hero > p.set-note {
  max-width: var(--vde-lead) !important;
}

.page-home .hero-c .cta,
.page-home .shead + .cta,
.vde-b2b .hero-in .cta,
.page-winery .wy-hero .cta,
.vde-contact .lead + .btn,
.vde-contact .lead + div,
.page-tasting .set-hero .btn {
  margin-left: 0;
}


.page-home .hero-logo .sub {
  max-width: min(680px, 100%) !important;
}

/* Keep logo-hero centered as a composed lockup */
.page-home .hero-c:not(.hero-logo),
.page-home .shead,
.vde-b2b .hero-in,
.vde-contact .wrap > h1,
.vde-contact .wrap > .lead {
  text-align: left;
}

.page-home .hero-c:not(.hero-logo) .cta,
.vde-b2b .hero-in .cta {
  justify-content: flex-start;
}

.page-home .hero-c:not(.hero-logo) .eyebrow,
.page-home .shead .eyebrow,
.vde-b2b .eyebrow {
  margin: 0 0 10px;
}

.page-home .hero-c:not(.hero-logo) h1,
.vde-b2b .hero h1,
.page-shop .shop-intro h1,
.page-about .op-hero h1,
.page-winery .wy-hero h1 {
  margin: 0 0 16px;
}

.page-home .hero-c:not(.hero-logo) .sub,
.vde-b2b .hero-in > p,
.page-winery .wy-hero .lead,
.vde-contact .lead {
  margin: 0 0 28px;
}

.vde-main .sec {
  padding-top: var(--vde-section-standard);
  padding-bottom: var(--vde-section-standard);
}

.page-home .finder.sec {
  padding-top: clamp(36px, 4vw, 56px) !important;
  padding-bottom: clamp(36px, 4vw, 56px) !important;
}

/* H1 hierarchy: homepage remains largest; contact must not match it */
.page-home .hero-c h1,
.hero-c h1 {
  font-size: clamp(2.15rem, 4.1vw, 4.35rem) !important;
  line-height: 1.08 !important;
  max-width: 18ch;
}

.vde-contact h1,
.page-contact h1,
body.vde-contact h1 {
  font: 500 clamp(2.05rem, 3.6vw, 3.05rem) / 1.12 "Playfair Display", serif !important;
  margin: 0 0 18px !important;
  max-width: 16ch;
}

.page-shop .shop-intro h1,
.page-about .op-hero h1 {
  font-size: clamp(2.05rem, 3.8vw, 3.6rem) !important;
  line-height: 1.08 !important;
}

@media (max-width: 430px) {
  .page-home .hero-c h1,
  .hero-c h1 {
    font-size: clamp(1.82rem, 7.6vw, 2.22rem) !important;
    max-width: 14ch;
  }
  .vde-contact h1,
  body.vde-contact h1 {
    font-size: clamp(1.85rem, 7.2vw, 2.2rem) !important;
  }
  .page-shop .shop-intro h1,
  .page-about .op-hero h1,
  .page-winery .wy-hero h1 {
    font-size: clamp(1.75rem, 7.4vw, 2.2rem) !important;
  }
  html, body {
    overflow-x: clip;
  }
}

/* Legal pages: own quieter rhythm */
.page-legal h1,
.vde-legal h1,
body.page-gdpr h1,
.legal-doc h1 {
  font-size: clamp(1.85rem, 3.2vw, 2.6rem) !important;
  line-height: 1.15 !important;
  margin: 0 0 18px;
}

footer.ft .ft-grid > div > p {
  max-width: 36ch;
}

/* C6A.1 — content H1 on small screens; targeted wider splits */
.page-wine main > .wrap:has(.hero),
.page-wine .related-sec .wrap {
  width: min(var(--vde-wine-split), calc(100% - 40px)) !important;
  max-width: var(--vde-wine-split) !important;
}
.page-winery .wy-wrap {
  width: min(1320px, calc(100% - 40px)) !important;
  max-width: 1320px !important;
}

@media (max-width: 430px) {
  .vde-contact h1,
  body.vde-contact h1,
  .vde-b2b .hero h1,
  .page-shop .shop-intro h1,
  .page-about .op-hero h1,
  .page-winery .wy-hero h1,
  .page-tasting .set-hero h1,
  .page-prive .prive-gate h1,
  .page-prive.prive-unlocked .prive-hero h1,
  .page-wine .info h1 {
    font-size: clamp(2.4rem, 10.8vw, 2.7rem) !important;
    line-height: 1.08 !important;
    max-width: 16ch;
  }
  .vde-legal h1,
  .page-legal h1,
  body.page-gdpr h1 {
    font-size: clamp(1.95rem, 8.4vw, 2.25rem) !important;
    line-height: 1.12 !important;
  }
}


/* C6A.1 — legal readable measure (do not widen global wrap) */
.vde-legal .legal-body.wrap,
body.vde-legal main.legal-body {
  width: min(var(--vde-readable), calc(100% - 40px)) !important;
  max-width: var(--vde-readable) !important;
}


/* F2 — legal lists + EN/IT language notice */
.vde-legal .legal-body ul {
  margin: 0 0 1.1em;
  padding: 0 0 0 1.25em;
  list-style: disc;
  max-width: 100%;
}
.vde-legal .legal-body li {
  margin: 0.4em 0;
  padding: 0;
  line-height: inherit;
}
.vde-legal .legal-lang-notice {
  display: none;
  margin: 0 0 1.25em;
  padding: 0.85em 0 0.85em 0.95em;
  border-left: 2px solid rgba(217, 192, 138, 0.55);
  color: #d6c7a3;
  font-size: max(14px, 0.92em);
  line-height: 1.55;
  max-width: 100%;
  box-sizing: border-box;
}
.vde-legal .legal-lang-notice a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}
html[lang="en"] .vde-legal .legal-lang-notice--en,
html[lang="it"] .vde-legal .legal-lang-notice--it {
  display: block;
}
