/* 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: 74ch;
  --vde-standard: 1240px;
  --vde-wide: 1560px;
  --vde-content-max: var(--vde-wide); /* alias — keep Pass 1 name */
  --vde-wine-split: 1380px; /* wine detail main split — Pass 2B */

  --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 — editorial content box, no new image (photo pass later) */
.vde-b2b #sleep-sip .wrap {
  max-width: var(--vde-standard) !important;
  margin-left: max(20px, calc((100vw - min(100vw, var(--vde-wide))) / 2 + 20px)) !important;
  margin-right: auto !important;
  box-sizing: border-box;
}
.vde-b2b #sleep-sip .sleep-block {
  max-width: min(52rem, 100%);
  padding: clamp(12px, 2vw, 28px) 0;
}
/* Form module → standard width (~1240), LEFT-ALIGNED to wide axis — not full 1560 */
.vde-b2b #poptavka .wrap.contact-grid {
  /* required: overrides editorial.css .wrap max-width:1560px !important */
  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;
}

/* —— 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%;
}

/* —— Final micro polish: Degustační set H1 (text unchanged) —— */
.page-tasting .set-hero h1 {
  /* required: overrides editorial.css .page-tasting .set-hero h1 font shorthand */
  font-size: clamp(2.05rem, 3.55vw, 3.15rem) !important;
  line-height: 1.14 !important;
  max-width: min(48rem, 100%);
}

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

