/*
Theme Name: Libra Vitae (GeneratePress Child)
Theme URI: https://libravitae.ro
Description: Temă copil GeneratePress pentru Libra Vitae. Homepage custom „Cartea Mea Astrală".
Author: Libra Vitae
Template: generatepress
Version: 1.0.0
Text Domain: generatepress-child
*/

/* ============================================================
   Libra Vitae — Design tokens
   ============================================================ */
:root {
  --lv-bg:        #fbf8f3;   /* page background */
  --lv-bg-warm:   #f4eee4;   /* section / card cream */
  --lv-bg-card:   #f6f1e9;   /* sidebar cards */
  --lv-cream-2:   #efe8db;
  --lv-gold:      #c3a15c;   /* primary gold accent */
  --lv-gold-dark: #b0894a;
  --lv-ink:       #423c33;   /* dark text */
  --lv-ink-soft:  #5b5347;
  --lv-muted:     #938a7b;   /* muted text */
  --lv-line:      #e4dccf;
  --lv-white:     #ffffff;
  --lv-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --lv-sans:  "Jost", "Helvetica Neue", Arial, sans-serif;
  --lv-script:"Dancing Script", cursive;
  --lv-maxw: 1300px;
}

/* ============================================================
   Reset within the Libra Vitae homepage
   ============================================================ */
.lv-home * { box-sizing: border-box; }
.lv-home {
  margin: 0;
  font-family: var(--lv-sans);
  color: var(--lv-ink);
  background: var(--lv-bg);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.lv-home img { max-width: 100%; display: block; }
.lv-home a { color: inherit; text-decoration: none; }
.lv-wrap { max-width: var(--lv-maxw); margin: 0 auto; padding: 0 24px; }

/* Elegant placeholder image blocks */
.lv-ph {
  position: relative;
  background:
    radial-gradient(120% 90% at 30% 20%, #fdfaf4 0%, #efe6d6 55%, #e3d5bd 100%);
  display: flex; align-items: center; justify-content: center;
  color: var(--lv-gold-dark);
  overflow: hidden;
}
.lv-ph::after {
  content: attr(data-label);
  font-family: var(--lv-sans);
  font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
  color: rgba(140,120,80,.55);
}
.lv-ph svg { position: absolute; opacity: .28; width: 34px; height: 34px; top: 14px; left: 14px; }

/* ============================================================
   Header
   ============================================================ */
.lv-header {
  background: var(--lv-bg);
  border-bottom: 1px solid var(--lv-line);
}
.lv-header .lv-wrap {
  display: flex; align-items: center; justify-content: space-between;
  height: 92px; gap: 24px;
}
.lv-brand { display: flex; align-items: center; gap: 12px; }
.lv-brand .lv-mark { width: 30px; height: 30px; color: var(--lv-gold); }
.lv-brand-txt .lv-name {
  font-family: var(--lv-serif); font-weight: 600;
  font-size: 26px; letter-spacing: .16em; line-height: 1; color: var(--lv-ink);
}
.lv-brand-txt .lv-tag {
  font-size: 8.5px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--lv-muted); margin-top: 4px;
}
.lv-nav { display: flex; align-items: center; gap: 30px; }
.lv-nav a {
  font-size: 14px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--lv-ink-soft); font-weight: 500; transition: color .3s ease;
}
.lv-nav a:hover, .lv-nav a.is-active { color: var(--lv-gold-dark); }
.lv-utils { display: flex; align-items: center; gap: 20px; color: var(--lv-ink-soft); }
.lv-utils .lv-lang { font-size: 12.5px; letter-spacing: .1em; display: flex; align-items: center; gap: 4px; }
.lv-utils svg { width: 19px; height: 19px; }
.lv-cart { position: relative; }
.lv-cart .lv-badge {
  position: absolute; top: -8px; right: -9px;
  background: var(--lv-gold); color: #fff; font-size: 10px; font-weight: 600;
  width: 17px; height: 17px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}

/* ============================================================
   Hero
   ============================================================ */
.lv-hero {
  background:
    radial-gradient(90% 120% at 85% 30%, #fbf3e4 0%, #f3e8d3 45%, #ece0c8 100%);
  position: relative; overflow: hidden;
}
.lv-hero .lv-wrap {
  display: grid; grid-template-columns: 1fr 1fr; align-items: center;
  gap: 40px; min-height: 500px; padding-top: 40px; padding-bottom: 40px;
}
.lv-hero-title {
  font-family: var(--lv-serif); font-weight: 500;
  font-size: 68px; line-height: 1.02; color: var(--lv-ink); margin: 0 0 8px;
}
.lv-hero-rule { width: 46px; height: 1px; background: var(--lv-gold); margin: 22px 0; }
.lv-hero-sub {
  font-family: var(--lv-serif); font-size: 22px; color: var(--lv-ink-soft);
  font-style: italic; max-width: 340px; margin: 0 0 32px; line-height: 1.4;
}
.lv-btn {
  display: inline-block; background: var(--lv-gold); color: #fff;
  font-size: 14px; letter-spacing: .16em; text-transform: uppercase; font-weight: 600;
  padding: 16px 34px; border: none; cursor: pointer; transition: background .2s;
  font-family: var(--lv-sans);
}
.lv-btn:hover { background: var(--lv-gold-dark); }
.lv-hero-art { display: flex; justify-content: center; }
.lv-book {
  width: 300px; height: 400px; border-radius: 4px 8px 8px 4px;
  background: radial-gradient(120% 100% at 40% 30%, #fdf8ee 0%, #f2e7d0 60%, #e7d6b6 100%);
  box-shadow: 0 30px 60px -20px rgba(120,95,50,.45), -14px 0 24px -18px rgba(120,95,50,.4);
  position: relative; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center;
  border: 1px solid rgba(180,150,90,.25);
}
.lv-book::before {
  content: ""; position: absolute; inset: 18px;
  border: 1px solid rgba(180,150,90,.35); border-radius: 3px;
}
.lv-book .lv-book-circle {
  width: 150px; height: 150px; border-radius: 50%;
  border: 1px solid rgba(170,140,80,.5); display: flex; align-items: center; justify-content: center;
  margin-bottom: 26px;
}
.lv-book .lv-book-title {
  font-family: var(--lv-serif); font-style: italic; font-size: 26px;
  color: var(--lv-gold-dark); line-height: 1.15;
}
.lv-book .lv-book-brand {
  position: absolute; bottom: 34px; font-size: 10px; letter-spacing: .28em;
  color: var(--lv-gold-dark); text-transform: uppercase;
}

/* ============================================================
   Main two-column layout
   ============================================================ */
.lv-main { padding: 60px 0 40px; }
.lv-main .lv-wrap {
  display: grid; grid-template-columns: 1fr 320px; gap: 56px; align-items: start;
}

/* Section headings */
.lv-sec-head {
  display: flex; align-items: center; justify-content: space-between; margin-bottom: 26px;
}
.lv-sec-title {
  font-size: 20px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--lv-ink); font-weight: 500;
}
.lv-sec-title::after {
  content: ""; display: block; width: 40px; height: 2px;
  background: var(--lv-gold); margin-top: 10px;
}
.lv-sec-link {
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--lv-gold-dark); font-weight: 600;
}

/* Gândul zilei */
.lv-quote {
  background: var(--lv-bg-warm); text-align: center;
  padding: 52px 40px; margin-bottom: 56px;
}
.lv-quote .lv-quote-mark {
  font-family: var(--lv-serif); font-size: 60px; color: var(--lv-gold);
  line-height: .4; margin-bottom: 6px;
}
.lv-quote .lv-quote-label {
  font-size: 14px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--lv-gold-dark); font-weight: 600; display: inline-block; margin-left: 8px;
}
.lv-quote .lv-quote-text {
  font-family: var(--lv-serif); font-size: 27px; font-style: italic;
  color: var(--lv-ink); max-width: 560px; margin: 22px auto 20px; line-height: 1.35;
}
.lv-quote .lv-heart { color: var(--lv-gold); width: 22px; height: 22px; margin: 0 auto; }

/* Recent posts */
.lv-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-bottom: 60px; }
.lv-card { background: var(--lv-white); border: 1px solid var(--lv-line); }
.lv-card .lv-ph { height: 150px; }
.lv-card-body { padding: 20px 20px 24px; }
.lv-card .lv-cat {
  font-size: 10px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--lv-gold-dark); font-weight: 600;
}
.lv-card h3 {
  font-family: var(--lv-serif); font-size: 21px; font-weight: 600;
  color: var(--lv-ink); margin: 10px 0 12px; line-height: 1.2;
}
.lv-card p { font-size: 14px; color: var(--lv-ink-soft); margin: 0 0 18px; line-height: 1.55; }
.lv-card .lv-more {
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--lv-gold-dark); font-weight: 600;
}

/* Instagram */
.lv-insta-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.lv-insta-grid .lv-ph { aspect-ratio: 1/1; }

/* ============================================================
   Sidebar
   ============================================================ */
.lv-side > * { margin-bottom: 26px; }
.lv-widget { background: var(--lv-bg-card); padding: 30px 28px; }
.lv-widget-title {
  text-align: center; font-size: 16px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--lv-ink); font-weight: 500; margin-bottom: 6px;
}
.lv-widget-title::after {
  content: ""; display: block; width: 34px; height: 2px; background: var(--lv-gold);
  margin: 10px auto 0;
}

/* About */
.lv-about { text-align: center; }
.lv-about .lv-avatar {
  width: 150px; height: 150px; border-radius: 50%; margin: 22px auto 20px;
  border: 3px solid #fff; box-shadow: 0 6px 20px -8px rgba(120,95,50,.4);
}
.lv-about p { font-size: 14px; color: var(--lv-ink-soft); margin: 0 0 14px; line-height: 1.6; }
.lv-about .lv-script {
  font-family: var(--lv-script); font-size: 22px; color: var(--lv-gold-dark);
  line-height: 1.3; margin-top: 18px;
}
.lv-about .lv-heart { display: inline-block; width: 16px; height: 16px; color: var(--lv-gold); }

/* Follow */
.lv-follow .lv-social { display: flex; justify-content: center; gap: 14px; margin-top: 20px; }
.lv-follow .lv-social a {
  width: 42px; height: 42px; border-radius: 50%; background: #fff;
  display: flex; align-items: center; justify-content: center; color: var(--lv-ink-soft);
  box-shadow: 0 3px 10px -6px rgba(120,95,50,.4); transition: color .2s, transform .2s;
}
.lv-follow .lv-social a:hover { color: var(--lv-gold-dark); transform: translateY(-2px); }
.lv-follow .lv-social svg { width: 19px; height: 19px; }

/* Newsletter */
.lv-news p.lv-news-sub {
  text-align: center; font-size: 13.5px; color: var(--lv-ink-soft);
  margin: 14px 0 20px; line-height: 1.55;
}
.lv-news input {
  width: 100%; padding: 13px 16px; margin-bottom: 12px; border: 1px solid var(--lv-line);
  background: #fff; font-family: var(--lv-sans); font-size: 14px; color: var(--lv-ink);
}
.lv-news input::placeholder { color: var(--lv-muted); }
.lv-news .lv-btn { width: 100%; text-align: center; }
.lv-news .lv-news-note {
  text-align: center; font-size: 12px; color: var(--lv-muted); margin: 16px 0 0;
}

/* ============================================================
   Footer
   ============================================================ */
.lv-footer { background: var(--lv-bg-warm); border-top: 1px solid var(--lv-line); padding: 56px 0 0; }
.lv-footer .lv-wrap {
  display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1.2fr; gap: 34px;
}
.lv-footer .lv-brand { align-items: flex-start; }
.lv-footer .lv-name { font-family: var(--lv-serif); font-size: 22px; letter-spacing: .16em; color: var(--lv-ink); }
.lv-footer .lv-tag { font-size: 8px; letter-spacing: .2em; text-transform: uppercase; color: var(--lv-muted); margin: 4px 0 16px; }
.lv-footer .lv-fdesc { font-size: 13px; color: var(--lv-ink-soft); line-height: 1.6; max-width: 240px; }
.lv-footer h4 {
  font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--lv-ink); font-weight: 600; margin: 4px 0 18px;
}
.lv-footer ul { list-style: none; padding: 0; margin: 0; }
.lv-footer li { margin-bottom: 12px; }
.lv-footer li a, .lv-footer .lv-fcontact p {
  font-size: 13.5px; color: var(--lv-ink-soft); transition: color .2s; margin: 0 0 12px;
}
.lv-footer a { text-decoration: none; }
.lv-footer li a:hover { color: var(--lv-gold-dark); }
.lv-footer .lv-fmoon {
  font-family: var(--lv-serif); font-style: italic; font-size: 19px;
  color: var(--lv-ink-soft); line-height: 1.4; position: relative;
}
.lv-footer .lv-fmoon svg { width: 44px; height: 44px; color: var(--lv-gold); opacity: .8; margin-top: 12px; }
.lv-footer .lv-copy {
  text-align: center; font-size: 12px; color: var(--lv-muted);
  border-top: 1px solid var(--lv-line); margin-top: 46px; padding: 22px 0;
}

/* ============================================================
   Icon sizing safety — constrain SVGs to their wrapper
   ============================================================ */
.lv-home .lv-heart { display: inline-block; }
.lv-home .lv-heart svg { width: 100%; height: 100%; display: block; }
.lv-home .lv-brand .lv-mark { display: inline-flex; }
.lv-home .lv-brand .lv-mark svg { width: 100%; height: 100%; }
.lv-home .lv-book-circle svg { width: 40px; height: 40px; color: var(--lv-gold-dark); }
.lv-home .lv-quote-mark { display: flex; align-items: baseline; justify-content: center; gap: 6px; }

/* ============================================================
   Header v2 — sticky, centered menu, utility dropdowns
   ============================================================ */
/* Site-wide scope (header/modal render on every page, not only .lv-home) */
.lv-header, .lv-header *, .lv-modal, .lv-modal *, .lv-dropdown, .lv-dropdown * { box-sizing: border-box; }
.lv-header, .lv-modal { font-family: var(--lv-sans); color: var(--lv-ink); }
.lv-header a, .lv-dropdown a, .lv-modal a { color: inherit; text-decoration: none; }
.lv-header img { max-width: 100%; display: block; }

.lv-header {
  position: -webkit-sticky; position: sticky; top: 0; z-index: 100;
  transition: box-shadow .25s ease, background .25s ease;
}
.lv-header.is-stuck {
  background: rgba(251,248,243,.96);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow: 0 6px 26px -16px rgba(120,95,50,.55);
}
body.admin-bar .lv-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .lv-header { top: 46px; } }

.lv-header .lv-header-inner {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  height: 88px; gap: 20px;
}
.lv-brand { justify-self: start; display: flex; align-items: center; gap: 12px; }
.lv-brand .lv-logo { height: 52px; width: auto; }
.lv-brand--full { gap: 0; }
.lv-brand .lv-logo-full { height: 60px; width: auto; display: block; }
.lv-brand .lv-name {
  font-family: var(--lv-serif); font-weight: 600; font-size: 23px;
  letter-spacing: .12em; line-height: 1; color: var(--lv-ink); white-space: nowrap;
}
.lv-nav { justify-self: center; display: flex; align-items: center; gap: 26px; }
/* Animated underline — same speed as the colour change, persists on active item. */
.lv-nav a { position: relative; padding-bottom: 6px; }
.lv-nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1.5px;
  background: var(--lv-gold); border-radius: 2px;
  transform: scaleX(0); transform-origin: center; transition: transform .3s ease;
}
.lv-nav a:hover::after, .lv-nav a.is-active::after { transform: scaleX(1); }
.lv-utils { justify-self: end; display: flex; align-items: center; gap: 6px; }

.lv-util { position: relative; display: flex; align-items: center; }
.lv-util-btn {
  -webkit-appearance: none; appearance: none;
  background: transparent; border: none; box-shadow: none; border-radius: 0;
  cursor: pointer; color: var(--lv-ink-soft);
  display: inline-flex; align-items: center; gap: 4px; padding: 8px;
  font-family: var(--lv-sans); font-size: 14px; letter-spacing: .1em;
  line-height: 1; transition: color .2s; position: relative;
}
/* Icons dark by default, gold on hover/focus/active (transparent bg — no theme button background). */
.lv-util-btn:hover, .lv-util-btn:focus, .lv-util-btn:active {
  background: transparent; box-shadow: none; color: var(--lv-gold-dark);
}
.lv-burger:hover { color: var(--lv-gold-dark); }
.lv-util-btn svg { width: 19px; height: 19px; }
.lv-lang-toggle svg { width: 13px; height: 13px; }
.lv-lang-toggle { text-transform: uppercase; }

/* Dropdown shell */
.lv-dropdown {
  position: absolute; top: calc(100% + 14px); right: 0;
  background: #fff; border: 1px solid var(--lv-line);
  box-shadow: 0 20px 44px -22px rgba(120,95,50,.55);
  border-radius: 4px; padding: 8px; min-width: 190px;
  opacity: 0; visibility: hidden; transform: translateY(-10px) scale(.97); transform-origin: top right;
  transition: opacity .28s cubic-bezier(.16,1,.3,1), transform .36s cubic-bezier(.16,1,.3,1), visibility .36s; z-index: 130;
}
.lv-util.is-open .lv-dropdown { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.lv-dropdown::before {
  content: ""; position: absolute; top: -6px; right: 16px; width: 11px; height: 11px;
  background: #fff; border-left: 1px solid var(--lv-line); border-top: 1px solid var(--lv-line);
  transform: rotate(45deg);
}

/* Language menu */
.lv-lang-menu a {
  display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 3px;
  font-size: 14px; letter-spacing: .08em; text-transform: uppercase; color: var(--lv-ink-soft);
}
.lv-lang-menu a:hover { background: var(--lv-bg-warm); color: var(--lv-gold-dark); }
.lv-lang-menu .lv-lang-name { text-transform: none; letter-spacing: 0; color: var(--lv-ink-soft); font-size: 14px; }
/* Selected language: gold text only (NOT bold); background just on hover. */
.lv-lang-menu a.is-current { background: transparent; }
.lv-lang-menu a.is-current .lv-lang-name,
.lv-lang-menu a.is-current .lv-lang-code { color: var(--lv-gold-dark); font-weight: 400; }
.lv-lang-menu a.is-current:hover { background: var(--lv-bg-warm); }

/* Language selector: globe + RO/EN (no flags, no chevron) */
.lv-lang-toggle { gap: 6px; text-transform: uppercase; font-weight: 400; }
.lv-lang-toggle svg { width: 19px; height: 19px; }
.lv-lang-cur { font-size: 13px; letter-spacing: .08em; }
.lv-lang-menu .lv-lang-code { font-weight: 400; min-width: 26px; color: var(--lv-ink); }

/* Search menu */
.lv-search-menu { min-width: 340px; padding: 12px; }
.lv-search-menu form { display: flex; gap: 8px; }
.lv-search-field { position: relative; flex: 1; display: flex; }
.lv-search-menu input {
  width: 100%; padding: 12px 40px 12px 14px; border: 1px solid var(--lv-line); background: var(--lv-bg);
  font-family: var(--lv-sans); font-size: 15px; color: var(--lv-ink); border-radius: 3px;
}
.lv-search-menu input:focus { outline: none; border-color: var(--lv-gold); }
/* Hide the browser's native (often blue) clear button; use our gold one. */
.lv-search-menu input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.lv-search-menu input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

/* Custom gold clear (×) — only visible once something is typed. */
.lv-search-clear {
  position: absolute; right: 7px; top: 50%; transform: translateY(-50%);
  width: 26px; height: 26px; padding: 0; border: none; background: transparent;
  color: var(--lv-gold); cursor: pointer;
  display: flex; align-items: center; justify-content: center; border-radius: 50%;
  transition: color .2s, background .2s;
}
.lv-search-clear svg { width: 14px; height: 14px; display: block; }
.lv-search-clear:hover { color: var(--lv-gold-dark); background: var(--lv-bg-warm); }
.lv-search-field input:placeholder-shown ~ .lv-search-clear { display: none; }

/* Gold submit button with a large, clearly visible magnifier. */
.lv-search-submit {
  background: var(--lv-gold); border: none; color: #fff; width: 48px; height: 46px; border-radius: 3px;
  cursor: pointer; display: flex; align-items: center; justify-content: center; flex: 0 0 48px;
  padding: 0 !important; transition: background .2s;
}
.lv-search-submit:hover { background: var(--lv-gold-dark); }
.lv-search-submit svg { width: 24px !important; height: 24px !important; flex: 0 0 auto; display: block; }

/* Account menu */
.lv-account-menu a {
  display: block; padding: 11px 14px; border-radius: 3px; font-size: 14px; color: var(--lv-ink-soft);
}
.lv-account-menu a:hover { background: var(--lv-bg-warm); color: var(--lv-gold-dark); }
.lv-account-menu .lv-logout { border-top: 1px solid var(--lv-line); margin-top: 4px; padding-top: 12px; }

/* Cart badge */
.lv-cart.lv-util-btn { position: relative; }
.lv-cart-badge-frag { position: absolute; top: 0; right: 0; }
.lv-cart .lv-badge {
  background: var(--lv-gold); color: #fff; font-size: 10px; font-weight: 600;
  min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
}
.lv-cart .lv-badge[data-count="0"] { background: var(--lv-gold); }

/* Cart dropdown */
.lv-cart-menu { min-width: 340px; padding: 16px; right: 0; }
.lv-cart-empty { text-align: center; color: var(--lv-muted); font-size: 14px; padding: 18px 6px; margin: 0; }
.lv-cart-items { list-style: none; margin: 0 0 8px; padding: 0; max-height: 320px; overflow-y: auto; }
.lv-cart-item {
  display: grid; grid-template-columns: 18px 1fr auto; align-items: start; gap: 10px;
  padding: 14px 2px; border-bottom: 1px solid var(--lv-line);
}
.lv-cart-remove {
  color: var(--lv-muted); font-size: 18px; line-height: 1; text-decoration: none;
  width: 18px; height: 18px; display: flex; align-items: center; justify-content: center;
  border-radius: 50%; transition: color .2s, background .2s;
}
.lv-cart-remove:hover { color: #a5482f; background: var(--lv-bg-warm); }
.lv-cart-remove.is-removing { opacity: .4; pointer-events: none; }
.lv-cart-item-name { display: block; font-family: var(--lv-serif); font-size: 16px; font-weight: 600; color: var(--lv-ink); line-height: 1.25; }
.lv-cart-item-meta { display: block; font-size: 13px; color: var(--lv-muted); margin-top: 3px; line-height: 1.45; }
.lv-cart-item-meta p { margin: 0; }
.lv-cart-item-price { font-size: 15px; color: var(--lv-ink); white-space: nowrap; font-weight: 500; }
.lv-cart-total {
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--lv-serif); font-size: 18px; font-weight: 600; color: var(--lv-ink);
  padding: 14px 2px 16px;
}
.lv-cart-checkout { display: block; width: 100%; text-align: center; }

/* ============================================================
   Auth modal
   ============================================================ */
body.lv-modal-open { overflow: hidden; }
.lv-modal { position: fixed; inset: 0; z-index: 1000; display: none; }
.lv-modal.is-open { display: block; }
.lv-modal-overlay { position: absolute; inset: 0; background: rgba(60,50,35,.5); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.lv-modal-box {
  position: relative; z-index: 1; width: 92%; max-width: 420px; margin: 8vh auto 0;
  background: var(--lv-bg); border-radius: 6px; padding: 40px 36px 34px;
  box-shadow: 0 40px 90px -30px rgba(60,45,20,.6); animation: lvModalIn .25s ease;
}
@keyframes lvModalIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.lv-modal-close {
  position: absolute; top: 14px; right: 16px; background: none; border: none; cursor: pointer;
  font-size: 26px; line-height: 1; color: var(--lv-muted); transition: color .2s;
}
.lv-modal-close:hover { color: var(--lv-ink); }
.lv-modal-tabs { display: flex; gap: 6px; margin-bottom: 24px; border-bottom: 1px solid var(--lv-line); }
/* Reset every custom button inside header/modal — never inherit the theme's dark button background. */
.lv-header button, .lv-modal button, .lv-dropdown button { -webkit-appearance: none; appearance: none; }
.lv-tab, .lv-tab:hover, .lv-tab:focus, .lv-tab:active,
.lv-modal-close, .lv-modal-close:hover, .lv-modal-close:focus, .lv-modal-close:active,
.lv-search-clear, .lv-search-clear:focus, .lv-search-clear:active {
  background: transparent; box-shadow: none; border-radius: 0;
}
.lv-search-clear, .lv-search-clear:hover { border-radius: 50%; } /* keep the round hover for the clear button */

.lv-tab {
  background: transparent; border: none; cursor: pointer; padding: 10px 6px 14px; margin-right: 18px;
  font-family: var(--lv-sans); font-size: 14px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--lv-muted); position: relative; transition: color .25s ease;
}
.lv-tab:hover { color: var(--lv-ink-soft); }
.lv-tab.is-active { color: var(--lv-ink); }
.lv-tab.is-active::after { content: ""; position: absolute; left: 0; right: 18px; bottom: -1px; height: 2px; background: var(--lv-gold); }
.lv-modal-title { font-family: var(--lv-serif); font-size: 26px; font-weight: 600; color: var(--lv-ink); margin: 0 0 18px; }
.lv-auth-form { display: none; }
.lv-auth-form.is-active { display: block; }
.lv-auth-form input[type="text"],
.lv-auth-form input[type="email"],
.lv-auth-form input[type="password"] {
  width: 100%; padding: 13px 16px; margin-bottom: 12px; border: 1px solid var(--lv-line);
  background: #fff; font-family: var(--lv-sans); font-size: 14px; color: var(--lv-ink); border-radius: 3px;
}
.lv-auth-form input:focus { outline: none; border-color: var(--lv-gold); }
.lv-auth-form .lv-btn { width: 100%; text-align: center; margin-top: 6px; }
.lv-auth-form .lv-btn.is-loading { opacity: .6; pointer-events: none; }
/* General style for very small texts (checkbox labels, helper links). */
.lv-small, .lv-remember, .lv-forgot, .lv-check {
  font-size: 13px; color: var(--lv-ink-soft); line-height: 1.45;
}
.lv-remember { display: flex; align-items: center; gap: 8px; }
.lv-remember input { width: auto; margin: 0; }

/* Password show/hide */
.lv-pass-wrap { position: relative; display: block; margin-bottom: 12px; }
.lv-pass-wrap input { margin-bottom: 0 !important; padding-right: 46px !important; }
.lv-pass-toggle {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  width: 34px; height: 34px; display: flex; align-items: center; justify-content: center;
  background: transparent; border: none; cursor: pointer; color: var(--lv-ink-soft); border-radius: 50%;
  transition: color .2s, background .2s; z-index: 2;
}
.lv-pass-toggle:hover { color: var(--lv-gold-dark); background: var(--lv-bg-warm); }
.lv-pass-toggle svg { width: 19px; height: 19px; display: block; flex: 0 0 19px; }
.lv-login-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 2px 0 14px; }
/* "Ai uitat parola?" — identical to "Ține-mă minte", plus underline + hover. */
.lv-forgot { white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; }
.lv-forgot:hover { color: var(--lv-gold-dark); text-decoration: underline; }
.lv-form-row { display: flex; gap: 10px; }
.lv-form-row input { flex: 1; min-width: 0; }
.lv-check { display: flex; align-items: flex-start; gap: 9px; margin: 0 0 12px; }
.lv-check input { width: auto; margin: 2px 0 0; flex: 0 0 auto; }
.lv-check span { flex: 1; } /* keep the label text as one natural, inline flowing block */
.lv-modal input[type="checkbox"] { accent-color: var(--lv-gold); }
.lv-check a { color: var(--lv-gold-dark); text-decoration: underline; }
.lv-check a:hover { color: var(--lv-gold); }
.lv-modal-msg { display: none; background: #f6e5df; color: #9c3d24; font-size: 13px; padding: 10px 14px; border-radius: 3px; margin-bottom: 16px; }
.lv-modal-msg.is-visible { display: block; }
.lv-social-sep { text-align: center; position: relative; margin: 22px 0 16px; }
.lv-social-sep::before { content: ""; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: var(--lv-line); }
.lv-social-sep span { position: relative; background: var(--lv-bg); padding: 0 14px; font-size: 12px; color: var(--lv-muted); }
.lv-social-login { text-align: center; }

/* ============================================================
   Global brand theme (applies site-wide — inner pages, WooCommerce)
   The homepage keeps its own look via the more specific .lv-home rules.
   ============================================================ */
body {
  font-family: var(--lv-sans) !important;
  color: var(--lv-ink);
  background-color: var(--lv-bg);
  overflow-x: clip; /* prevent stray horizontal scroll without breaking sticky header */
}
/* Inner pages: same content width as the homepage (matches --lv-maxw). */
.site.grid-container.container,
.footer-widgets-container.grid-container,
.inside-site-info.grid-container { max-width: var(--lv-maxw); }
.site-main :is(h1, h2, h3, h4, h5, h6),
.entry-title, .page-header h1, .widget-title, .wp-block-heading {
  font-family: var(--lv-serif) !important;
  color: var(--lv-ink);
  font-weight: 600;
}
/* Content links in the brand gold */
.site-main a:not(.button):not(.wp-block-button__link),
.entry-content a:not(.button) {
  color: var(--lv-gold-dark);
}
.site-main a:not(.button):hover { color: var(--lv-gold); }

/* Buttons — theme, blocks and WooCommerce */
.wp-block-button__link, .button, button.button,
input[type="submit"], input[type="button"],
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce #respond input#submit {
  background-color: var(--lv-gold) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 3px !important;
  font-family: var(--lv-sans) !important;
  font-size: 14px !important;
  font-weight: 600;
  letter-spacing: .06em;
  padding: 13px 28px !important;
  transition: background-color .2s ease;
}
.wp-block-button__link:hover, .button:hover, button.button:hover,
input[type="submit"]:hover, input[type="button"]:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.woocommerce #respond input#submit:hover {
  background-color: var(--lv-gold-dark) !important;
}
/* Catch any remaining themed buttons (GeneratePress dark default) in content/WooCommerce. */
.site-main button:not(.show-password-input):not([class*="lv-"]),
.entry-content button:not([class*="lv-"]),
.woocommerce button:not(.show-password-input):not([class*="lv-"]) {
  background-color: var(--lv-gold) !important; color: #fff !important;
  border: none !important; border-radius: 3px !important; font-family: var(--lv-sans) !important;
}
.site-main button:not(.show-password-input):hover,
.woocommerce button:not(.show-password-input):hover { background-color: var(--lv-gold-dark) !important; }
.woocommerce .show-password-input { background: transparent !important; color: var(--lv-muted) !important; }

/* Form fields */
.site-main input[type="text"], .site-main input[type="email"],
.site-main input[type="password"], .site-main input[type="search"],
.site-main input[type="tel"], .site-main input[type="number"],
.site-main textarea, .site-main select,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea {
  border: 1px solid var(--lv-line);
  border-radius: 3px;
  font-family: var(--lv-sans);
}
.site-main input:focus, .site-main textarea:focus, .site-main select:focus,
.woocommerce form .form-row input.input-text:focus {
  outline: none;
  border-color: var(--lv-gold);
  box-shadow: 0 0 0 2px rgba(195, 161, 92, .18);
}

/* WooCommerce accents */
.woocommerce span.onsale,
.woocommerce div.product .price, .woocommerce ul.products li.product .price { color: var(--lv-gold-dark); }
.woocommerce-message, .woocommerce-info { border-top-color: var(--lv-gold); }
::selection { background: rgba(195, 161, 92, .25); }

/* ---- WooCommerce: My Account page ---- */
.woocommerce-account .woocommerce { max-width: 980px; margin: 0 auto; }

/* Logged-out: login + register — keep WooCommerce's native 2-column layout,
   just wrap each form in a brand card. */
.woocommerce-account #customer_login h2 { margin: 0 0 18px; font-size: 24px; }
.woocommerce form.login, .woocommerce form.register {
  border: 1px solid var(--lv-line); background: #fff; border-radius: 6px;
  padding: 30px 28px;
}
.woocommerce form.login label, .woocommerce form.register label { color: var(--lv-ink-soft); font-size: 14px; }

/* Logged-in: navigation + content as a 2-column card layout */
body.woocommerce-account.logged-in .woocommerce {
  display: grid; grid-template-columns: 250px 1fr; gap: 34px; align-items: start;
}
.woocommerce-MyAccount-navigation { width: auto !important; float: none !important; }
.woocommerce-MyAccount-navigation ul {
  list-style: none; margin: 0; padding: 0; background: #fff;
  border: 1px solid var(--lv-line); border-radius: 6px; overflow: hidden;
}
.woocommerce-MyAccount-navigation li { margin: 0; border-bottom: 1px solid var(--lv-line); }
.woocommerce-MyAccount-navigation li:last-child { border-bottom: none; }
.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: block; padding: 13px 20px; color: var(--lv-ink-soft); font-size: 14px;
  text-decoration: none; transition: background .2s, color .2s;
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover { background: var(--lv-bg-warm); color: var(--lv-gold-dark); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--lv-gold); color: #fff !important; }
.woocommerce-MyAccount-content { width: auto !important; float: none !important; }
.woocommerce-MyAccount-content > p:first-child { margin-top: 0; }
.woocommerce-MyAccount-content mark { background: var(--lv-cream-2); color: var(--lv-ink); }

/* Account tables (orders, addresses) */
.woocommerce-account .woocommerce table.shop_table {
  border: 1px solid var(--lv-line); border-radius: 6px; border-collapse: separate; overflow: hidden;
}
.woocommerce-account .woocommerce table.shop_table th { background: var(--lv-bg-warm); }

@media (max-width: 768px) {
  .woocommerce-account #customer_login.u-columns { grid-template-columns: 1fr; }
  body.woocommerce-account.logged-in .woocommerce { grid-template-columns: 1fr; }
}

/* ============================================================
   Landing page — „Cartea Mea Astrală"
   ============================================================ */
.lv-lp-hero {
  background: radial-gradient(90% 120% at 80% 30%, #fbf3e4 0%, #f3e8d3 45%, #ece0c8 100%);
}
.lv-lp-hero-inner {
  display: grid; grid-template-columns: 420px 1fr; gap: 56px; align-items: center;
  padding: 70px 24px;
}
.lv-lp-hero-art { display: flex; justify-content: center; }
.lv-lp-eyebrow {
  font-size: 12px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--lv-gold-dark); font-weight: 600;
}
.lv-lp-title { font-family: var(--lv-serif); font-size: 58px; line-height: 1.05; color: var(--lv-ink); margin: 14px 0 18px; }
.lv-lp-lead { font-size: 17px; color: var(--lv-ink-soft); line-height: 1.6; max-width: 460px; margin: 0 0 22px; }
.lv-lp-price { font-family: var(--lv-serif); font-size: 22px; color: var(--lv-ink); margin-bottom: 26px; }
.lv-lp-price strong { color: var(--lv-gold-dark); font-size: 30px; }

.lv-lp-h2 { font-family: var(--lv-serif); font-size: 34px; color: var(--lv-ink); text-align: center; margin: 0 0 8px; }
.lv-lp-h2::after { content: ""; display: block; width: 46px; height: 2px; background: var(--lv-gold); margin: 14px auto 0; }

.lv-lp-benefits { padding: 70px 0; }
.lv-lp-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 44px; }
.lv-lp-benefit { text-align: center; padding: 12px; }
.lv-lp-benefit-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 62px; height: 62px; border-radius: 50%; background: var(--lv-bg-warm);
  color: var(--lv-gold-dark); margin-bottom: 18px;
}
.lv-lp-benefit-icon svg { width: 28px; height: 28px; }
.lv-lp-benefit h3 { font-family: var(--lv-serif); font-size: 21px; color: var(--lv-ink); margin: 0 0 8px; }
.lv-lp-benefit p { font-size: 14px; color: var(--lv-ink-soft); line-height: 1.55; margin: 0; }

/* Sample previews */
.lv-lp-preview { padding: 70px 0; text-align: center; }
.lv-lp-preview-note { font-size: 15px; color: var(--lv-ink-soft); margin: 14px 0 0; }
.lv-samples { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; max-width: 620px; margin: 40px auto 0; }
.lv-sample-card {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  background: transparent; border: none; cursor: pointer; padding: 0;
}
.lv-sample-cover {
  display: flex; align-items: center; justify-content: center; width: 100%;
  aspect-ratio: 760 / 1078; border-radius: 6px; overflow: hidden; background: var(--lv-bg-warm);
  box-shadow: 0 24px 52px -28px rgba(120,95,50,.55); transition: transform .25s ease, box-shadow .25s ease;
}
.lv-sample-cover img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.lv-sample-cover svg { width: 40px; height: 40px; color: var(--lv-gold-dark); opacity: .5; }
.lv-sample-card:hover .lv-sample-cover { transform: translateY(-5px); box-shadow: 0 32px 64px -28px rgba(120,95,50,.6); }
.lv-sample-label { font-family: var(--lv-serif); font-size: 21px; color: var(--lv-ink); }
.lv-sample-cta { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--lv-gold-dark); font-weight: 600; }

/* Sample lightbox (scrollable stack of images) */
.lv-sample-modal { position: fixed; inset: 0; z-index: 1100; display: none; }
.lv-sample-modal.is-open { display: block; }
.lv-sample-overlay { position: absolute; inset: 0; background: rgba(60,50,35,.6); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.lv-sample-box {
  position: relative; z-index: 1; width: 92%; max-width: 640px; margin: 5vh auto; max-height: 90vh;
  background: #fff; border-radius: 8px; overflow: hidden; display: flex; flex-direction: column;
  box-shadow: 0 40px 90px -30px rgba(60,45,20,.6); animation: lvModalIn .25s ease;
}
.lv-sample-bar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 20px; border-bottom: 1px solid var(--lv-line); background: var(--lv-bg); flex: 0 0 auto;
}
.lv-sample-bar span { font-family: var(--lv-serif); font-size: 18px; color: var(--lv-ink); }
.lv-sample-close {
  background: transparent; border: none; cursor: pointer; color: var(--lv-ink-soft);
  width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 50%;
  transition: color .2s, background .2s;
}
.lv-sample-close:hover { color: var(--lv-gold-dark); background: var(--lv-bg-warm); }
.lv-sample-close svg { width: 20px; height: 20px; display: block; }
.lv-sample-scroll { overflow-y: auto; padding: 18px; background: var(--lv-bg-warm); -webkit-overflow-scrolling: touch; }
.lv-sample-scroll img {
  display: block; width: 100%; max-width: 520px; margin: 0 auto 16px;
  border: 1px solid var(--lv-line); box-shadow: 0 12px 26px -16px rgba(120,95,50,.5);
}
.lv-sample-scroll img:last-child { margin-bottom: 0; }

/* Order / configurator */
.lv-lp-order { background: var(--lv-bg-warm); padding: 70px 0; }
.lv-lp-order-inner { display: grid; grid-template-columns: 1fr 1.2fr; gap: 56px; align-items: start; }
.lv-lp-order-side .lv-lp-h2 { text-align: left; }
.lv-lp-order-side .lv-lp-h2::after { margin-left: 0; }
.lv-lp-order-note { font-size: 15px; color: var(--lv-ink-soft); line-height: 1.6; margin: 16px 0 30px; }
.lv-book--sm { width: 200px; height: 268px; }
.lv-book--sm::before { inset: 12px; }
.lv-book--sm .lv-book-circle { width: 92px; height: 92px; margin-bottom: 16px; }
.lv-book--sm .lv-book-circle svg { width: 26px; height: 26px; }
.lv-book--sm .lv-book-title { font-size: 18px; }

.lv-lp-config { background: #fff; border: 1px solid var(--lv-line); border-radius: 8px; padding: 34px 32px; box-shadow: 0 24px 60px -34px rgba(120,95,50,.5); }
.lv-field { margin-bottom: 22px; }
.lv-field-label { display: block; font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--lv-ink); font-weight: 600; margin-bottom: 10px; }
.lv-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.lv-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lv-opt { position: relative; display: block; cursor: pointer; }
.lv-opt input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.lv-opt-box {
  display: flex; flex-direction: column; gap: 3px; padding: 14px 16px;
  border: 1px solid var(--lv-line); border-radius: 5px; background: var(--lv-bg);
  transition: border-color .2s, background .2s, box-shadow .2s;
}
.lv-opt-box strong { font-size: 15px; color: var(--lv-ink); font-weight: 600; }
.lv-opt-box em { font-style: normal; font-size: 12px; color: var(--lv-muted); }
.lv-opt input:checked + .lv-opt-box {
  border-color: var(--lv-gold); background: #fff;
  box-shadow: 0 0 0 2px rgba(195,161,92,.35) inset;
}
.lv-opt input:focus-visible + .lv-opt-box { border-color: var(--lv-gold); }
.lv-lp-form input[type="text"], .lv-lp-form input[type="date"], .lv-lp-form input[type="time"] {
  width: 100%; padding: 12px 14px; border: 1px solid var(--lv-line); border-radius: 5px;
  background: var(--lv-bg); font-family: var(--lv-sans); font-size: 15px; color: var(--lv-ink);
}
.lv-lp-form input:focus { outline: none; border-color: var(--lv-gold); }
.lv-lp-total {
  display: flex; justify-content: space-between; align-items: baseline;
  border-top: 1px solid var(--lv-line); margin-top: 26px; padding-top: 20px;
  font-family: var(--lv-serif); font-size: 18px; color: var(--lv-ink); font-weight: 600;
}
.lv-lp-total-val { font-size: 26px; color: var(--lv-gold-dark); }
.lv-lp-submit { width: 100%; text-align: center; margin-top: 18px; }

@media (max-width: 900px) {
  .lv-lp-hero-inner { grid-template-columns: minmax(0, 1fr); text-align: center; }
  .lv-lp-hero-art { order: -1; }
  .lv-lp-lead { margin-left: auto; margin-right: auto; }
  .lv-lp-order-inner { grid-template-columns: minmax(0, 1fr); }
  .lv-lp-order-side { text-align: center; }
  .lv-lp-order-side .lv-lp-h2, .lv-lp-order-side .lv-lp-h2::after { text-align: center; margin-left: auto; margin-right: auto; }
  .lv-lp-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .lv-lp-title { font-size: 42px; }
  .lv-lp-grid { grid-template-columns: 1fr; }
  .lv-field-row, .lv-opts { grid-template-columns: 1fr; }
}

/* ============================================================
   Mobile menu (hamburger) — base hidden on desktop
   ============================================================ */
.lv-burger { display: none; }
.lv-mobile-menu { display: none; }

/* ============================================================
   Responsive (mobile-first polish)
   ============================================================ */

/* --- Header: shrink the logo before the mobile switch (avoid crowding ~1013px) --- */
@media (max-width: 1080px) {
  .lv-brand .lv-logo-full { height: 48px; }
  .lv-nav { gap: 20px; }
  .lv-nav a { font-size: 13px; }
}

/* --- Header / mobile (≤960): language + icons stay in the bar, burger in the corner --- */
@media (max-width: 960px) {
  .lv-header .lv-header-inner { height: 72px; display: flex; justify-content: space-between; align-items: center; }
  .lv-nav { display: none; }              /* desktop nav → moves into the corner dropdown */
  .lv-utils { gap: 0; }
  .lv-util-btn { padding: 6px; }
  .lv-util-btn svg { width: 20px; height: 20px; }
  .lv-lang-toggle { font-size: 13px; }
  .lv-brand .lv-logo-full { height: 38px; }
  .lv-brand .lv-logo { height: 36px; }
  .lv-brand .lv-name { font-size: 19px; }

  .lv-burger {
    display: inline-flex; align-items: center; justify-content: center;
    background: transparent; border: none; cursor: pointer; color: var(--lv-ink-soft); padding: 6px;
  }
  .lv-burger svg { width: 26px; height: 26px; }

  /* Compact nav dropdown anchored to the corner (right), not full width */
  .lv-mobile-menu {
    display: block; position: absolute; top: calc(100% + 6px); right: 12px; left: auto;
    width: 230px; max-width: calc(100vw - 24px);
    background: #fff; border: 1px solid var(--lv-line); border-radius: 6px;
    box-shadow: 0 22px 44px -22px rgba(120,95,50,.55); padding: 6px; z-index: 125;
    opacity: 0; visibility: hidden; transform: translateY(-10px) scale(.97); transform-origin: top right;
    transition: opacity .28s cubic-bezier(.16,1,.3,1), transform .36s cubic-bezier(.16,1,.3,1), visibility .36s;
  }
  body.lv-mm-open .lv-mobile-menu { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }

  .lv-mm-nav { display: flex; flex-direction: column; }
  .lv-mm-nav a {
    padding: 12px 14px; border-radius: 4px; color: var(--lv-ink);
    font-size: 14px; letter-spacing: .08em; text-transform: uppercase; font-weight: 500;
  }
  .lv-mm-nav a + a { border-top: 1px solid var(--lv-line); border-radius: 0; }
  .lv-mm-nav a:hover { background: var(--lv-bg-warm); color: var(--lv-gold-dark); }
  .lv-mm-nav a.is-active { color: var(--lv-gold-dark); }

  /* Narrow dropdowns (language, account) stay under their icon.
     Wide ones (search, cart) anchor to the header's right edge so they always fit.
     On mobile none of them show the little arrow — keep them consistent. */
  .lv-dropdown { max-width: calc(100vw - 24px); }
  .lv-search-wrap, .lv-cart-wrap { position: static; }
  .lv-search-menu, .lv-cart-menu {
    top: calc(100% + 8px); right: 12px; left: auto;
    width: min(340px, calc(100vw - 24px)); min-width: 0;
  }
  .lv-dropdown::before { display: none; }
}

/* --- Section polish on tablets / phones --- */
@media (max-width: 640px) {
  .lv-wrap { padding: 0 18px; }
  .lv-hero .lv-wrap { min-height: auto; padding-top: 40px; padding-bottom: 40px; }
  .lv-hero-title { font-size: 38px; word-break: break-word; }
  .lv-main { padding: 44px 0 20px; }
  .lv-quote { padding: 38px 22px; }
  .lv-quote .lv-quote-text { font-size: 22px; }
  .lv-sec-title { font-size: 17px; }
  .lv-book { width: 240px; height: 320px; }

  .lv-lp-title { font-size: 34px; }
  .lv-lp-h2 { font-size: 27px; }
  .lv-lp-benefits, .lv-lp-order, .lv-lp-preview { padding: 46px 0; }
  .lv-lp-config { padding: 26px 20px; }
  .lv-samples { gap: 16px; }
  .lv-sample-label { font-size: 18px; }
  .lv-sample-box { width: 96%; margin: 3vh auto; max-height: 94vh; }

  .lv-modal-box { margin-top: 6vh; padding: 30px 20px; }
  .lv-footer { padding: 44px 0 0; }
  .lv-footer .lv-fdesc { max-width: none; }
}

@media (max-width: 430px) {
  .lv-hero-title { font-size: 32px; }
  .lv-lp-title { font-size: 29px; }
  .lv-lp-h2, .lv-lp-order-side .lv-lp-h2 { font-size: 24px; }
  .lv-hero-sub { font-size: 19px; }
  .lv-book { width: 210px; height: 280px; }
}

/* ============================================================
   Legacy responsive (kept)
   ============================================================ */
@media (max-width: 960px) {
  .lv-main .lv-wrap { grid-template-columns: minmax(0, 1fr); }
  .lv-hero .lv-wrap { grid-template-columns: minmax(0, 1fr); text-align: center; }
  .lv-hero-art { order: -1; }
  .lv-hero-sub { margin-left: auto; margin-right: auto; }
  .lv-hero-rule { margin-left: auto; margin-right: auto; }
  .lv-footer .lv-wrap { grid-template-columns: 1fr 1fr; }
  .lv-nav { display: none; }
}
@media (max-width: 640px) {
  .lv-posts { grid-template-columns: 1fr; }
  .lv-insta-grid { grid-template-columns: repeat(3, 1fr); }
  .lv-footer .lv-wrap { grid-template-columns: 1fr; }
}
