/* ============================================================
   VELLINORE — Pages layer (Wunschliste · Warenkorb · Suche ·
   Sale · Journal · Bestellverfolgung) + Trust + BFSG-A11y
   Decoupled from site.css; safe to remove as a unit.
   ============================================================ */

/* ============================================================
   1 · ACCESSIBILITY (BFSG / WCAG 2.1 AA)
   ============================================================ */
.skip-link{ position:fixed; top:-64px; left:16px; z-index:100000; background:var(--espresso); color:var(--champagne);
  padding:13px 22px; font-family:var(--sans); font-size:13px; letter-spacing:.08em; transition:top .15s; }
.skip-link:focus{ top:16px; outline:2px solid var(--champagne); outline-offset:2px; }

:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:2px; }
.site-header.transparent:not(.solid) :focus-visible,
.doc-hero :focus-visible, .site-footer :focus-visible{ outline-color:var(--champagne); }

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
  html{ scroll-behavior:auto !important; }
}

/* ============================================================
   2 · HEADER / NAV ADDITIONS
   ============================================================ */
.util-count{ margin-left:3px; }
.util-count::before{ content:"("; }
.util-count::after{ content:")"; }
@media (max-width:1180px){ .nav-link[data-nav="journal"]{ display:none; } }
@media (max-width:1150px){ .nav-link[data-nav="sale"]{ display:none; } }

/* drawer → full cart page link */
.drawer-viewcart{ display:block; text-align:center; margin-top:13px; font-family:var(--sans); font-size:11.5px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); cursor:pointer; }
.drawer-viewcart:hover{ color:var(--ink); }

/* ============================================================
   3 · WUNSCHLISTE (Die Auswahl)
   ============================================================ */
.wl-item{ position:relative; }
.wl-item .pcard{ display:block; }
.wl-remove{ position:absolute; top:12px; right:12px; z-index:4; width:34px; height:34px; border:0; cursor:pointer;
  background:rgba(250,246,238,.94); color:var(--ink); font-size:13px; line-height:34px;
  box-shadow:0 1px 6px rgba(40,33,20,.14); transition:background .15s; }
.wl-remove:hover{ background:var(--cream-2); }
.wl-empty{ text-align:center; padding:50px 0 30px; }
.wl-empty .wl-empty-line{ font-family:var(--serif); font-size:clamp(26px,3vw,38px); font-weight:500; margin-bottom:12px; }
.wl-empty .wl-empty-sub{ font-family:var(--sans); font-size:15px; color:var(--ink-soft); margin-bottom:30px; }

/* ============================================================
   4 · WARENKORB (full page)
   ============================================================ */
.cartpg{ padding:36px 0 90px; }
.cp-head{ padding:18px 0 28px; border-bottom:1px solid var(--line); margin-bottom:38px; }
.cp-head h1{ font-family:var(--serif); font-weight:500; font-size:clamp(36px,4.4vw,56px); line-height:1.04; margin-top:12px; }
.cp-head .cp-count{ font-family:var(--sans); font-size:15px; color:var(--ink-soft); margin-left:12px; letter-spacing:.04em; }
.cp-layout{ display:grid; grid-template-columns:1.5fr .9fr; gap:54px; align-items:start; }
.cp-lines{ display:flex; flex-direction:column; }
.cp-line{ display:grid; grid-template-columns:110px 1fr auto; gap:22px; padding:24px 0; border-bottom:1px solid var(--line-soft); align-items:start; }
.cp-thumb{ aspect-ratio:3/4; background:var(--cream-3); overflow:hidden; }
.cp-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.cp-info{ display:flex; flex-direction:column; gap:6px; padding-top:4px; }
.cp-info .nm{ font-family:var(--serif); font-size:21px; font-weight:500; }
.cp-info .var{ font-family:var(--sans); font-size:12.5px; color:var(--ink-soft); letter-spacing:.04em; }
.cp-ctl{ display:flex; align-items:center; gap:20px; margin-top:12px; }
.cp-stepper{ display:flex; align-items:center; gap:0; border:1px solid var(--line); }
.cp-stepper button{ width:34px; height:34px; border:0; background:none; font-size:15px; color:var(--ink); cursor:pointer; }
.cp-stepper button:hover{ background:var(--cream-2); }
.cp-stepper span{ min-width:30px; text-align:center; font-family:var(--sans); font-size:13.5px; }
.cp-rm{ border:0; background:none; font-family:var(--sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-faint); cursor:pointer; padding:0; border-bottom:1px solid transparent; }
.cp-rm:hover{ color:var(--ink); border-bottom-color:var(--ink); }
.cp-price{ font-family:var(--serif); font-size:20px; padding-top:6px; text-align:right; }
.cp-summary{ position:sticky; top:calc(var(--header-h) + 24px); border:1px solid var(--line); padding:30px 28px 26px; background:var(--cream-2); }
.cp-summary h3{ font-family:var(--serif); font-size:24px; font-weight:500; margin-bottom:20px; }
.cp-summary .totrow{ display:flex; justify-content:space-between; font-family:var(--sans); font-size:14px; color:var(--ink-soft); padding:7px 0; }
.cp-summary .totrow .v{ color:var(--ink); }
.cp-summary .totrow.grand{ border-top:1px solid var(--line); margin-top:8px; padding-top:14px; font-size:16px; color:var(--ink); }
.cp-summary .totrow.grand .v{ font-family:var(--serif); font-size:21px; }
.cp-summary .note{ font-family:var(--sans); font-size:12px; color:var(--ink-faint); margin:10px 0 18px; }
.cp-continue{ display:block; text-align:center; margin-top:14px; font-family:var(--sans); font-size:11.5px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); }
.cp-continue:hover{ color:var(--ink); }
.cp-marks{ display:flex; gap:10px; justify-content:center; margin-top:20px; flex-wrap:wrap; }
.cp-empty{ text-align:center; padding:60px 0 40px; }
.cp-empty p{ font-family:var(--serif); font-size:clamp(24px,2.6vw,34px); font-weight:500; margin-bottom:28px; }
@media (max-width:980px){ .cp-layout{ grid-template-columns:1fr; gap:34px; } .cp-summary{ position:static; } }
@media (max-width:560px){ .cp-line{ grid-template-columns:84px 1fr; } .cp-price{ grid-column:2; text-align:left; padding-top:0; } }

/* ============================================================
   5 · SUCHE
   ============================================================ */
.su-hero{ padding:110px 0 56px; border-bottom:1px solid var(--line-soft); }
.su-hero .eyebrow{ color:var(--gold-deep); display:block; margin-bottom:22px; }
.su-input{ width:100%; border:0; border-bottom:1px solid var(--line-dark); background:none; padding:6px 0 18px;
  font-family:var(--serif); font-weight:500; font-size:clamp(32px,4.6vw,58px); line-height:1.1; color:var(--ink); border-radius:0; }
.su-input::placeholder{ color:var(--ink-faint); font-style:italic; font-weight:400; }
.su-input:focus{ outline:none; border-bottom-color:var(--gold-deep); }
.su-sugg{ display:flex; align-items:center; gap:12px; margin-top:24px; flex-wrap:wrap; }
.su-sugg-label{ font-family:var(--sans); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint); margin-right:6px; }
.su-chip{ border:1px solid var(--line); background:none; padding:8px 18px; font-family:var(--sans); font-size:13px;
  color:var(--ink); cursor:pointer; transition:.15s; }
.su-chip:hover{ border-color:var(--ink); }
.su-sect{ margin-bottom:26px; }
.su-articles{ display:flex; flex-direction:column; }
.su-art{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding:20px 0; border-top:1px solid var(--line-soft); }
.su-art:last-child{ border-bottom:1px solid var(--line-soft); }
.su-art .t{ font-family:var(--serif); font-size:23px; font-weight:500; }
.su-art .k{ font-family:var(--sans); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-deep); flex:none; }
.su-art:hover .t{ font-style:italic; }
.su-none{ text-align:center; padding:50px 0; }
.su-none .su-none-line{ font-family:var(--serif); font-size:clamp(24px,2.8vw,36px); font-weight:500; margin-bottom:14px; }
.su-none p{ font-family:var(--sans); font-size:15px; color:var(--ink-soft); }
.su-none a{ color:var(--gold-deep); border-bottom:1px solid var(--gold); padding-bottom:2px; }

/* ============================================================
   6 · SALE (Archiv-Verkauf)
   ============================================================ */
.sale-note{ max-width:62ch; margin-bottom:42px; }
.sale-note p{ font-family:var(--sans); font-size:14px; color:var(--ink-soft); line-height:1.6; }
.pcard .pr .was{ color:var(--ink-faint); font-weight:400; margin-right:7px; text-decoration-color:var(--ink-faint); }

/* ============================================================
   7 · JOURNAL
   ============================================================ */
.jr-grid{ display:flex; flex-direction:column; gap:0; }

/* ── Featured card (first article) ── */
.jr-card--featured{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:clamp(36px,5vw,86px);
  align-items:center;
  padding:clamp(56px,6vw,96px) 0;
  border-bottom:1px solid var(--line);
  text-decoration:none; color:inherit;
}
.jr-card--featured .jr-fig{
  position:relative;
  aspect-ratio:3/2;
  background:var(--cream-3);
  overflow:hidden;
}
.jr-card--featured .jr-fig img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  display:block; transition:transform 1.1s var(--ease);
}
.jr-card--featured:hover .jr-fig img{ transform:scale(1.04); }
.jr-card--featured .jr-body{ display:flex; flex-direction:column; gap:0; }
.jr-card--featured .jr-idx{
  font-family:var(--serif); font-style:italic; font-size:15px;
  color:var(--gold-deep); margin-bottom:20px;
}
.jr-card--featured .jr-kicker{
  font-family:var(--sans); font-size:11px;
  letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold-deep); margin-bottom:16px; display:block;
}
.jr-card--featured h2{
  font-family:var(--serif); font-weight:500;
  font-size:clamp(32px,3.4vw,52px); line-height:1.04;
  margin-bottom:20px; color:var(--ink);
}
.jr-card--featured:hover h2{ font-style:italic; }
.jr-card--featured .jr-ex{
  font-family:var(--sans); font-size:16px;
  color:var(--ink-soft); line-height:1.68;
  max-width:44ch; margin-bottom:24px;
}
.jr-card--featured .jr-meta{
  font-family:var(--sans); font-size:11.5px;
  letter-spacing:.10em; color:var(--ink-faint);
}
.jr-card--featured .jr-read{
  display:inline-block; margin-top:28px;
  font-family:var(--sans); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold-deep); border-bottom:1px solid var(--gold);
  padding-bottom:3px;
}

/* ── Secondary cards row ── */
.jr-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(28px,4vw,60px);
  padding:clamp(48px,5vw,80px) 0;
}
.jr-card{
  display:flex; flex-direction:column; gap:0;
  text-decoration:none; color:inherit;
}
.jr-card .jr-fig{
  position:relative;
  aspect-ratio:4/5; background:var(--cream-3);
  overflow:hidden; margin-bottom:22px;
}
.jr-card .jr-fig img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  display:block; transition:transform .8s var(--ease);
}
.jr-card:hover .jr-fig img{ transform:scale(1.04); }
.jr-card .jr-idx{
  font-family:var(--serif); font-style:italic; font-size:13px;
  color:var(--gold-deep); margin-bottom:12px; display:block;
}
.jr-card .jr-kicker{
  font-family:var(--sans); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-deep); margin-bottom:10px; display:block;
}
.jr-card h2{
  font-family:var(--serif); font-weight:500;
  font-size:clamp(22px,2vw,30px); line-height:1.1;
  margin-bottom:10px; color:var(--ink);
}
.jr-card:hover h2{ font-style:italic; }
.jr-card .jr-ex{
  font-family:var(--sans); font-size:14.5px;
  color:var(--ink-soft); line-height:1.6;
  margin-bottom:14px;
}
.jr-card .jr-meta{
  font-family:var(--sans); font-size:11.5px;
  letter-spacing:.10em; color:var(--ink-faint);
}

@media (max-width:900px){
  .jr-card--featured{ grid-template-columns:1fr; gap:28px; padding:44px 0; }
  .jr-card--featured .jr-fig{ aspect-ratio:16/10; }
  .jr-row{ grid-template-columns:1fr; gap:44px; }
}

/* article */
.jr-art-hero{ height:min(58vh,560px); background:var(--cream-3); overflow:hidden; }
.jr-art-hero img{ width:100%; height:100%; object-fit:cover; display:block; }
.jr-art-wrap{ max-width:760px; padding:46px 24px 90px; }
.jr-art-wrap .breadcrumb{ display:block; margin-bottom:34px; }
.jr-art-kicker{ color:var(--gold-deep); display:block; margin-bottom:16px; }
.jr-art-wrap h1{ font-family:var(--serif); font-weight:500; font-size:clamp(36px,5vw,60px); line-height:1.04; margin-bottom:16px; }
.jr-art-meta{ font-family:var(--sans); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:42px; }
.jr-art-body p{ font-family:var(--serif); font-size:20px; line-height:1.66; color:var(--ink); margin-bottom:26px; }
.jr-art-body blockquote{ margin:46px 0; padding:34px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); text-align:center; }
.jr-art-body blockquote p{ font-style:italic; font-size:clamp(24px,2.6vw,32px); line-height:1.3; margin:0; }
.jr-art-back{ display:inline-block; margin-top:26px; font-family:var(--sans); font-size:11.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold-deep); border-bottom:1px solid var(--gold); padding-bottom:3px; }

/* ============================================================
   8 · BESTELLVERFOLGUNG
   ============================================================ */
.tr-wrap{ max-width:760px; padding:64px 24px 100px; margin:0 auto; }
.tr-form{ display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:end; }
.tr-form .field{ display:flex; flex-direction:column; gap:8px; }
.tr-form label{ font-family:var(--sans); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.tr-form input{ border:1px solid var(--line); background:#fff; padding:13px 14px; font-family:var(--sans); font-size:14.5px; color:var(--ink); border-radius:0; }
.tr-form input:focus{ outline:none; border-color:var(--ink); }
.tr-form .btn{ grid-column:1 / -1; justify-self:start; margin-top:6px; }
.tr-result{ margin-top:54px; border-top:1px solid var(--line); padding-top:42px; }
.tr-head{ display:flex; justify-content:space-between; gap:30px; align-items:flex-start; flex-wrap:wrap; margin-bottom:8px; }
.tr-head h2{ font-family:var(--serif); font-weight:500; font-size:clamp(28px,3vw,40px); margin:8px 0 6px; }
.tr-items{ font-family:var(--sans); font-size:13.5px; color:var(--ink-soft); }
.tr-eta{ display:flex; flex-direction:column; gap:5px; text-align:right; }
.tr-eta .k{ font-family:var(--sans); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); }
.tr-eta .v{ font-family:var(--serif); font-size:21px; font-weight:500; color:var(--gold-deep); }
.tr-steps{ list-style:none; margin:38px 0 8px; padding:0; }
.tr-steps li{ position:relative; display:flex; gap:20px; padding:0 0 30px; }
.tr-steps li::before{ content:""; position:absolute; left:7px; top:20px; bottom:2px; width:1px; background:var(--line); }
.tr-steps li:last-child::before{ display:none; }
.tr-steps .dot{ width:15px; height:15px; border-radius:50%; border:1px solid var(--line-dark); background:var(--cream); flex:none; margin-top:3px; position:relative; z-index:1; }
.tr-steps li.done .dot{ background:var(--espresso); border-color:var(--espresso); }
.tr-steps li.now .dot{ background:var(--gold-deep); border-color:var(--gold-deep); box-shadow:0 0 0 4px rgba(140,110,58,.16); }
.tr-steps .t{ display:block; font-family:var(--sans); font-size:15px; color:var(--ink); }
.tr-steps li.now .t{ font-weight:500; color:var(--gold-deep); }
.tr-steps li:not(.done):not(.now) .t{ color:var(--ink-faint); }
.tr-steps .d{ display:block; font-family:var(--sans); font-size:12.5px; color:var(--ink-soft); margin-top:3px; }
.tr-actions{ display:flex; gap:28px; flex-wrap:wrap; margin-top:10px; }
.tr-actions a{ font-family:var(--sans); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-deep); border-bottom:1px solid var(--gold); padding-bottom:3px; }
.tr-demo{ font-family:var(--sans); font-size:11px; color:var(--ink-faint); margin-top:26px; letter-spacing:.06em; }
@media (max-width:600px){ .tr-form{ grid-template-columns:1fr; } .tr-eta{ text-align:left; } }

/* ============================================================
   9 · CHECKOUT — Express-Zahlung + SEPA + trust
   ============================================================ */
body[data-co-express="off"] .co-express{ display:none; }
.co-express{ margin:24px 0 34px; }
.ce-label{ font-family:var(--sans); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); }
.ce-btns{ display:flex; gap:12px; margin-top:14px; }
.ce-btn{ flex:1; height:48px; font-family:var(--sans); font-size:14.5px; font-weight:500; letter-spacing:.02em;
  cursor:pointer; border:1px solid var(--line); background:#fff; color:var(--ink); transition:.15s; }
.ce-btn:hover{ filter:brightness(.97); }
.ce-paypal{ background:#FFC439; border-color:#FFC439; color:#1F2937; font-weight:600; font-style:italic; }
.ce-apple{ background:#101010; border-color:#101010; color:#fff; }
.ce-google{ background:#fff; }
.ce-btn.busy{ opacity:.6; pointer-events:none; }
.ce-sep{ display:flex; align-items:center; gap:16px; margin-top:30px; color:var(--ink-faint);
  font-family:var(--sans); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; white-space:nowrap; }
.ce-sep::before, .ce-sep::after{ content:""; flex:1; height:1px; background:var(--line); }
@media (max-width:560px){ .ce-btns{ flex-direction:column; } }

.sepa-fields{ display:none; grid-template-columns:1fr 1fr; gap:16px; padding:10px 2px 2px; }
.co-section:has(#pay-sepa:checked) .sepa-fields{ display:grid; }
.sepa-fields .span-2{ grid-column:1 / -1; }

/* ============================================================
   10 · FOOTER TRUST ROW (Tweak: data-trustrow)
   ============================================================ */
/* ============================================================
   11 · IMAGE FALLBACK — broken/missing images show cream bg
   ============================================================ */
img:not([src]):not([alt]),
img[src=""] {
  visibility: hidden;
}
.pcard .frame img,
.cp-thumb img,
.co-thumb img,
.thumb img,
.jr-fig img,
.pdp-thumb img,
.pdp-stage img,
.wl-item img {
  background: var(--cream-3);
}
.pcard .frame,
.cp-thumb,
.co-thumb,
.thumb,
.jr-fig {
  background: var(--cream-3);
}

/* ============================================================
   12 · VELLINORE SHOP PAGE — Hero, Filter Bar, Odoo Overrides
   ============================================================ */

/* ---- Shop Hero Banner ---- */
.vl-shop-hero{
  position: relative;
  width: 100% !important;
  margin-left: 0 !important;
  min-height: clamp(320px, 50vh, 520px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  margin-bottom: 0;
}



.vl-shop-hero__bg{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.vl-shop-hero__overlay{
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 20%, rgba(40,33,20,.62) 100%);
  z-index: 1;
}
.vl-shop-hero__content{
  position: relative;
  z-index: 2;
  padding-bottom: clamp(36px, 5vw, 64px);
  padding-left: 24px !important;
  padding-right: 24px !important;
  max-width: 1480px;
  width: 100%;
}
.vl-shop-hero__eyebrow{
  display: block;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--champagne);
  margin-bottom: 12px;
}
.vl-shop-hero__title{
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(40px, 6vw, 72px);
  line-height: 1.0;
  color: #FBF6EC;
  margin: 0 0 10px;
}
.vl-shop-hero__sub{
  font-family: var(--sans);
  font-size: clamp(14px, 1.6vw, 18px);
  font-weight: 300;
  color: rgba(251,246,236,.78);
  max-width: 46ch;
  line-height: 1.5;
}

/* ---- Filter / Sort Bar ---- */
.vl-filter-bar{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line-soft);
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.vl-filter-btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: none;
  border: 0;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ink);
  cursor: pointer;
  padding: 8px 0;
  transition: color .2s;
}
.vl-filter-btn:hover{ color: var(--gold-deep); }
.vl-filter-btn svg{ flex-shrink: 0; }
.vl-filter-spacer{ flex: 1; }

.vl-search-wrap{
  flex: 1;
  max-width: 420px;
  min-width: 180px;
}

/* ---- Odoo Shop Page Override Styles ---- */

/* Remove Odoo's default Bootstrap card styling from products */
.o_wsale_products_page .oe_product_cart.pcard{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Ensure the grid uses Vellinore spacing */
.o_wsale_products_grid_table.product-grid{
  grid-template-columns: repeat(12, 1fr) !important;
  gap: 22px !important;
}

/* Override Odoo sort dropdown styling */
.vl-filter-bar .o_wsale_products_header_sortby .dropdown-toggle,
.vl-filter-bar .o_pricelist_dropdown .dropdown-toggle{
  font-family: var(--sans) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 8px 0 !important;
}
.vl-filter-bar .o_wsale_products_header_sortby .dropdown-toggle:hover,
.vl-filter-bar .o_pricelist_dropdown .dropdown-toggle:hover{
  color: var(--gold-deep) !important;
}

/* Dropdown menus */
.vl-filter-bar .dropdown-menu{
  background: var(--cream) !important;
  border: 1px solid var(--line) !important;
  border-radius: 2px !important;
  box-shadow: 0 12px 40px -10px rgba(40,33,20,.25) !important;
  padding: 10px 0 !important;
}
.vl-filter-bar .dropdown-menu .dropdown-item{
  font-family: var(--sans) !important;
  font-size: 13px !important;
  letter-spacing: .06em !important;
  color: var(--ink) !important;
  padding: 9px 20px !important;
}
.vl-filter-bar .dropdown-menu .dropdown-item:hover,
.vl-filter-bar .dropdown-menu .dropdown-item.active{
  background: var(--cream-2) !important;
  color: var(--gold-deep) !important;
}

/* Odoo search bar inside the filter bar */
.vl-search-wrap .o_wsale_products_searchbar_form{
  border: 1px solid var(--line) !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.vl-search-wrap .o_wsale_products_searchbar_form input{
  font-family: var(--sans) !important;
  font-size: 13px !important;
  background: transparent !important;
  border: 0 !important;
  color: var(--ink) !important;
  padding: 10px 14px !important;
}
.vl-search-wrap .o_wsale_products_searchbar_form .btn{
  background: transparent !important;
  border: 0 !important;
  color: var(--ink-soft) !important;
}

/* Override Odoo container to remove excess padding at top */
.o_wsale_products_page #o_wsale_container{
  padding-top: 0 !important;
}
.o_wsale_products_page #o_wsale_products_header{
  padding-top: 0 !important;
}

/* Pager styling */
.o_wsale_products_page .products_pager .pagination .page-link{
  font-family: var(--sans) !important;
  font-size: 13px !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
  background: transparent !important;
}
.o_wsale_products_page .products_pager .pagination .page-item.active .page-link{
  background: var(--espresso) !important;
  color: var(--cream) !important;
  border-color: var(--espresso) !important;
}

/* Odoo offcanvas filter panel styling */
.o_wsale_offcanvas{
  background: var(--cream) !important;
  border-left: 1px solid var(--line) !important;
}
.o_wsale_offcanvas .offcanvas-header{
  border-bottom: 1px solid var(--line-soft) !important;
}
.o_wsale_offcanvas .offcanvas-title{
  font-family: var(--sans) !important;
  font-size: 12px !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
}

/* Price filter slider Vellinore styling */
.o_wsale_products_page .ui-slider{
  background: var(--cream-3) !important;
  border: 0 !important;
  height: 3px !important;
}
.o_wsale_products_page .ui-slider .ui-slider-range{
  background: var(--gold) !important;
}
.o_wsale_products_page .ui-slider .ui-slider-handle{
  background: var(--cream) !important;
  border: 2px solid var(--espresso) !important;
  width: 16px !important;
  height: 16px !important;
  top: -7px !important;
  border-radius: 50% !important;
}

@media (max-width: 760px) {
  .vl-shop-hero{ min-height: 260px; }
  .vl-filter-bar{ flex-direction: column; align-items: stretch; gap: 12px; }
  .vl-search-wrap{ max-width: 100%; }
}


/* ============================================================
   12 · EMBEDDED STYLES FROM STOREFRONT.HTML
   Lookbook, PDP, and Shop page layout styles
   ============================================================ */

.page{ display:block; } .page.active{ display:block; }

  /* shop */
  .cat-intro{ padding:64px 0 40px; text-align:center; }
  .cat-intro h1{ font-family:var(--serif); font-weight:500; font-size:clamp(40px,6vw,72px); line-height:1.0; margin:14px 0 18px; }
  .cat-intro p{ font-family:var(--serif); font-style:italic; color:var(--ink-soft); font-size:21px; max-width:48ch; margin:0 auto; }
  .breadcrumb{ font-family:var(--sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); }
  .breadcrumb a{ color:var(--gold-deep); }
  .toolbar{ display:flex; justify-content:space-between; align-items:center; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); position:sticky; top:var(--header-h); background:var(--cream); z-index:40; }
  .toolbar .tb-btn{ font-family:var(--sans); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); background:none; border:0; display:inline-flex; align-items:center; gap:9px; }
  .toolbar .count{ font-family:var(--sans); font-size:12px; letter-spacing:.10em; color:var(--ink-soft); }
  .ed-break{ grid-column:1 / -1; position:relative; min-height:360px; background:var(--cream-3); overflow:hidden; display:flex; align-items:flex-end; margin:8px 0; }
  .ed-break .ph-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .ed-break::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(40,33,20,.6)); z-index:1; }
  .ed-break .lbl{ position:relative; z-index:2; padding:34px 38px; color:#fff; }
  .ed-break .lbl .e{ font-family:var(--sans); font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--champagne); }
  .ed-break .lbl .t{ font-family:var(--serif); font-size:34px; margin-top:8px; }
  .loadmore{ display:flex; justify-content:center; padding:60px 0 10px; }

  /* product */
  .pdp{ display:grid; grid-template-columns:1.15fr .85fr; gap:54px; padding:48px 0 80px; }
  .pdp-gallery{ display:grid; grid-template-columns:88px 1fr; gap:16px; align-self:start; position:sticky; top:calc(var(--header-h) + 20px); }
  .pdp-thumbs{ display:flex; flex-direction:column; gap:12px; }
  .pdp-thumb{ aspect-ratio:3/4; background:var(--cream-3); border:0; padding:0; outline:1px solid var(--line); outline-offset:0; transition:outline-color .15s; position:relative; overflow:hidden; }
  .pdp-thumb.active{ outline:1.5px solid var(--ink); outline-offset:2px; }
  .pdp-stage{ position:relative; aspect-ratio:3/4; background:var(--cream-3); overflow:hidden; }
  .pdp-stage .zoom-note{ position:absolute; left:16px; bottom:14px; font-family:var(--sans); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:#fff; z-index:2; mix-blend-mode:difference; }
  .pdp-info{ display:flex; flex-direction:column; }
  .pdp-eyebrow{ font-family:var(--sans); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-deep); }
  .pdp-info h1{ font-family:var(--serif); font-weight:500; font-size:clamp(38px,4.4vw,56px); line-height:1.03; margin:10px 0 14px; }
  .pdp-price{ font-family:var(--serif); font-size:30px; }
  .pdp-price .tax{ font-family:var(--sans); font-size:13px; color:var(--ink-soft); letter-spacing:.02em; }
  .pdp-stock{ font-family:var(--sans); font-size:12px; letter-spacing:.06em; color:var(--gold-deep); margin-top:8px; }
  .pdp-divider{ height:1px; background:var(--line); margin:28px 0; }
  .opt-label{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:13px; }
  .lb-fullbleed .ph-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .lb-pair{ display:grid; grid-template-columns:1fr 1fr; }
  .lb-pair .cell{ position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--cream-3); }
  .lb-pair .cell .ph-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .lb-pair .cell.text{ background:var(--cream); display:flex; flex-direction:column; justify-content:center; gap:20px; padding:8% 12%; aspect-ratio:auto; }
  .lb-pair .cell.text .e{ font-family:var(--sans); font-size:12px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-deep); }
  .lb-pair .cell.text h2{ font-family:var(--serif); font-weight:500; font-size:clamp(30px,3vw,46px); line-height:1.06; }
  .lb-pair .cell.text p{ color:var(--ink-soft); font-size:16px; max-width:38ch; }
  .lb-quote{ background:var(--cream-2); padding:120px 0; text-align:center; }
  .lb-quote p{ font-family:var(--serif); font-style:italic; font-weight:500; font-size:clamp(32px,4.4vw,64px); line-height:1.16; max-width:18ch; margin:0 auto; }
  .lb-quote .by{ font-family:var(--sans); font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-deep); margin-top:30px; }
  .stl{ display:grid; grid-template-columns:1.2fr .8fr; gap:0; align-items:stretch; }
  .stl .media{ position:relative; aspect-ratio:4/5; background:var(--cream-3); overflow:hidden; }
  .stl .media .ph-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .stl .panel{ background:var(--espresso); color:var(--cream); padding:64px; display:flex; flex-direction:column; justify-content:center; gap:8px; }
  .stl .panel .e{ font-family:var(--sans); font-size:12px; letter-spacing:.28em; text-transform:uppercase; color:var(--champagne); margin-bottom:18px; }
  .stl .panel h2{ font-family:var(--serif); font-weight:500; font-size:42px; color:#F4ECDA; margin-bottom:24px; }


/* ============================================================
   12 · EMBEDDED STYLES FROM STOREFRONT.HTML
   Lookbook, PDP, and Shop page layout styles
   ============================================================ */

.page{ display:block; } .page.active{ display:block; }

  /* shop */
  .cat-intro{ padding:64px 0 40px; text-align:center; }
  .cat-intro h1{ font-family:var(--serif); font-weight:500; font-size:clamp(40px,6vw,72px); line-height:1.0; margin:14px 0 18px; }
  .cat-intro p{ font-family:var(--serif); font-style:italic; color:var(--ink-soft); font-size:21px; max-width:48ch; margin:0 auto; }
  .breadcrumb{ font-family:var(--sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); }
  .breadcrumb a{ color:var(--gold-deep); }
  .toolbar{ display:flex; justify-content:space-between; align-items:center; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); position:sticky; top:var(--header-h); background:var(--cream); z-index:40; }
  .toolbar .tb-btn{ font-family:var(--sans); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); background:none; border:0; display:inline-flex; align-items:center; gap:9px; }
  .toolbar .count{ font-family:var(--sans); font-size:12px; letter-spacing:.10em; color:var(--ink-soft); }
  .ed-break{ grid-column:1 / -1; position:relative; min-height:360px; background:var(--cream-3); overflow:hidden; display:flex; align-items:flex-end; margin:8px 0; }
  .ed-break .ph-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .ed-break::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(40,33,20,.6)); z-index:1; }
  .ed-break .lbl{ position:relative; z-index:2; padding:34px 38px; color:#fff; }
  .ed-break .lbl .e{ font-family:var(--sans); font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--champagne); }
  .ed-break .lbl .t{ font-family:var(--serif); font-size:34px; margin-top:8px; }
  .loadmore{ display:flex; justify-content:center; padding:60px 0 10px; }

  /* product */
  .pdp{ display:grid; grid-template-columns:1.15fr .85fr; gap:54px; padding:48px 0 80px; }
  .pdp-gallery{ display:grid; grid-template-columns:88px 1fr; gap:16px; align-self:start; position:sticky; top:calc(var(--header-h) + 20px); }
  .pdp-thumbs{ display:flex; flex-direction:column; gap:12px; }
  .pdp-thumb{ aspect-ratio:3/4; background:var(--cream-3); border:0; padding:0; outline:1px solid var(--line); outline-offset:0; transition:outline-color .15s; position:relative; overflow:hidden; }
  .pdp-thumb.active{ outline:1.5px solid var(--ink); outline-offset:2px; }
  .pdp-stage{ position:relative; aspect-ratio:3/4; background:var(--cream-3); overflow:hidden; }
  .pdp-stage .zoom-note{ position:absolute; left:16px; bottom:14px; font-family:var(--sans); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:#fff; z-index:2; mix-blend-mode:difference; }
  .pdp-info{ display:flex; flex-direction:column; }
  .pdp-eyebrow{ font-family:var(--sans); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-deep); }
  .pdp-info h1{ font-family:var(--serif); font-weight:500; font-size:clamp(38px,4.4vw,56px); line-height:1.03; margin:10px 0 14px; }
  .pdp-price{ font-family:var(--serif); font-size:30px; }
  .pdp-price .tax{ font-family:var(--sans); font-size:13px; color:var(--ink-soft); letter-spacing:.02em; }
  .pdp-stock{ font-family:var(--sans); font-size:12px; letter-spacing:.06em; color:var(--gold-deep); margin-top:8px; }
  .pdp-divider{ height:1px; background:var(--line); margin:28px 0; }
  .opt-label{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:13px; }
  .opt-label .k{ font-family:var(--sans); font-size:13px; letter-spacing:.04em; color:var(--ink); }
  .opt-label .help{ font-family:var(--sans); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-deep); border-bottom:1px solid var(--gold); padding-bottom:2px; background:none; border-top:0; border-left:0; border-right:0; cursor:pointer; }
  .swatches-row{ display:flex; gap:13px; align-items:center; }
  .swatch{ width:30px; height:30px; border-radius:50%; border:0; padding:0; outline:1px solid transparent; outline-offset:3px; cursor:pointer; transition:outline-color .15s; }
  .swatch.sel{ outline-color:var(--ink); }
  .sizes-row{ display:flex; gap:10px; flex-wrap:wrap; }
  .size-chip{ width:46px; height:46px; border:1px solid var(--line); background:none; font-family:var(--sans); font-size:14px; color:var(--ink); transition:.15s; cursor:pointer; }
  .size-chip:hover{ border-color:var(--ink); }
  .size-chip.sel{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
  .size-chip.sold{ color:#BCAF98; text-decoration:line-through; cursor:not-allowed; }
  .size-hint{ font-family:var(--sans); font-size:12px; color:var(--ink-soft); margin-top:11px; min-height:16px; }
  .buy-row{ display:flex; gap:14px; margin-top:28px; }
  .pdp-actions{ display:flex; flex-direction:column; gap:14px; margin-top:28px; }
  .wishlist{ display:inline-flex; align-items:center; justify-content:center; gap:10px; font-family:var(--sans); font-size:13px; letter-spacing:.10em; text-transform:uppercase; color:var(--ink-soft); background:none; border:0; padding:6px; cursor:pointer; }
  .wishlist:hover{ color:var(--ink); }
  .pdp-micro{ display:flex; gap:24px; flex-wrap:wrap; margin-top:26px; padding-top:24px; border-top:1px solid var(--line); }
  .pdp-micro .mi{ display:flex; flex-direction:column; gap:3px; }
  .pdp-micro .mi .t{ font-family:var(--sans); font-size:12px; color:var(--ink); letter-spacing:.04em; }
  .pdp-micro .mi .d{ font-family:var(--sans); font-size:11px; color:var(--ink-soft); }
  .acc{ margin-top:30px; border-top:1px solid var(--line); }
  .acc-item{ border-bottom:1px solid var(--line); }
  .acc-head{ width:100%; display:flex; justify-content:space-between; align-items:center; background:none; border:0; padding:20px 0; font-family:var(--serif); font-size:21px; color:var(--ink); text-align:left; cursor:pointer; }
  .acc-head .ic{ font-family:var(--sans); font-size:20px; color:var(--gold-deep); transition:transform .25s; }
  .acc-item.open .acc-head .ic{ transform:rotate(45deg); }
  .acc-body{ max-height:0; overflow:hidden; transition:max-height .3s var(--ease); }
  .acc-item.open .acc-body{ max-height:2000px; }
  .acc-body p{ font-size:15px; color:var(--ink-soft); line-height:1.65; padding:0 0 22px; max-width:54ch; }
  .sticky-bar{ position:fixed; left:0; right:0; bottom:0; z-index:70; background:var(--cream); border-top:1px solid var(--line); transform:translateY(100%); transition:transform .3s var(--ease); }
  .sticky-bar.show{ transform:none; }
  .sticky-inner{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px 0; }
  .sticky-inner .si-name{ font-family:var(--serif); font-size:22px; }
  .sticky-inner .si-price{ font-family:var(--sans); font-size:14px; color:var(--ink-soft); margin-left:14px; }
  @media (max-width:900px){
    .pdp{ grid-template-columns:1fr; gap:30px; padding-top:24px; }
    .pdp-gallery{ position:static; grid-template-columns:1fr; }
    .pdp-thumbs{ flex-direction:row; order:2; }
    .pdp-thumb{ width:72px; flex:none; }
    .pdp-stage{ order:1; }
  }

  /* lookbook */
  .lb-hero{ position:relative; height:96svh; min-height:600px; background:var(--espresso); overflow:hidden; }
  .lb-hero .ph-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .lb-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(40,33,20,.45),rgba(40,33,20,.18) 40%,rgba(40,33,20,.6)); z-index:1; }
  .lb-hero .cap{ position:absolute; z-index:2; left:0; right:0; bottom:64px; text-align:center; color:#FBF6EC; padding:0 24px; }
  .lb-hero .cap .e{ font-family:var(--sans); font-size:12px; letter-spacing:.32em; text-transform:uppercase; color:var(--champagne); }
  .lb-hero .cap h1{ font-family:var(--serif); font-style:italic; font-weight:500; font-size:clamp(48px,7vw,96px); line-height:1.0; margin-top:18px; }
  .lb-fullbleed{ position:relative; height:90svh; min-height:560px; overflow:hidden; background:var(--cream-3); }
  .lb-fullbleed .ph-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .lb-pair{ display:grid; grid-template-columns:1fr 1fr; }
  .lb-pair .cell{ position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--cream-3); }
  .lb-pair .cell .ph-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .lb-pair .cell.text{ background:var(--cream); display:flex; flex-direction:column; justify-content:center; gap:20px; padding:8% 12%; aspect-ratio:auto; }
  .lb-pair .cell.text .e{ font-family:var(--sans); font-size:12px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-deep); }
  .lb-pair .cell.text h2{ font-family:var(--serif); font-weight:500; font-size:clamp(30px,3vw,46px); line-height:1.06; }
  .lb-pair .cell.text p{ color:var(--ink-soft); font-size:16px; max-width:38ch; }
  .lb-quote{ background:var(--cream-2); padding:120px 0; text-align:center; }
  .lb-quote p{ font-family:var(--serif); font-style:italic; font-weight:500; font-size:clamp(32px,4.4vw,64px); line-height:1.16; max-width:18ch; margin:0 auto; }
  .lb-quote .by{ font-family:var(--sans); font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-deep); margin-top:30px; }
  .stl{ display:grid; grid-template-columns:1.2fr .8fr; gap:0; align-items:stretch; }
  .stl .media{ position:relative; aspect-ratio:4/5; background:var(--cream-3); overflow:hidden; }
  .stl .media .ph-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .stl .panel{ background:var(--espresso); color:var(--cream); padding:64px; display:flex; flex-direction:column; justify-content:center; gap:8px; }
  .stl .panel .e{ font-family:var(--sans); font-size:12px; letter-spacing:.28em; text-transform:uppercase; color:var(--champagne); margin-bottom:18px; }
  .stl .panel h2{ font-family:var(--serif); font-weight:500; font-size:42px; color:#F4ECDA; margin-bottom:24px; }
  .stl-item{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding:18px 0; border-top:1px solid var(--line-dark); }
  .stl-item:last-of-type{ border-bottom:1px solid var(--line-dark); margin-bottom:26px; }
  .stl-item .nm{ font-family:var(--serif); font-size:22px; }
  .stl-item .pr{ font-family:var(--sans); font-size:13px; color:#CDC2AC; }
  .stl-item a{ font-family:var(--sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--champagne); border-bottom:1px solid var(--champagne-2); padding-bottom:3px; cursor:pointer; }
  @media (max-width:820px){
    .lb-pair{ grid-template-columns:1fr; }
    .lb-pair .cell.text{ padding:54px 30px; }
    .stl{ grid-template-columns:1fr; }
    .stl .panel{ padding:48px 30px; }
    .lb-quote{ padding:80px 0; }
  }

/* ---- Price Filter Slider Vellinore Styling (Odoo 19 Native Range Slider) ---- */
.multirange-wrapper input[type="number"].invisible {
  display: none !important;
}
.multirange-wrapper small {
  position: relative !important;
  width: 100% !important;
  display: flex !important;
  justify-content: space-between !important;
  margin-top: 10px !important;
  height: 20px !important;
}
.multirange-wrapper input[type="range"] {
  background: transparent !important;
}
.multirange-wrapper input[type="range"]::-webkit-slider-runnable-track {
  background: var(--cream-3) !important;
  border-radius: 2px !important;
  height: 3px !important;
}
.multirange-wrapper input[type="range"].ghost::-webkit-slider-runnable-track {
  background: linear-gradient(to right, transparent var(--low), var(--espresso) var(--low) var(--high), transparent 0) no-repeat 50%/100% 100% !important;
}
.multirange-wrapper input[type="range"]::-webkit-slider-thumb {
  background: var(--cream) !important;
  border: 2px solid var(--espresso) !important;
  width: 16px !important;
  height: 16px !important;
  margin-top: -6px !important;
  border-radius: 50% !important;
  cursor: pointer !important;
  box-solid: none !important;
  transition: background 0.15s, border-color 0.15s !important;
}
.multirange-wrapper input[type="range"]::-webkit-slider-thumb:hover {
  background: var(--espresso) !important;
}

.multirange-wrapper input[type="range"]::-moz-range-track {
  background: var(--cream-3) !important;
  height: 3px !important;
}
.multirange-wrapper input[type="range"].ghost::-moz-range-track {
  background: linear-gradient(to right, transparent var(--low), var(--espresso) var(--low) var(--high), transparent 0) no-repeat 50%/100% 100% !important;
}
.multirange-wrapper input[type="range"]::-moz-range-thumb {
  background: var(--cream) !important;
  border: 2px solid var(--espresso) !important;
  width: 16px !important;
  height: 16px !important;
  border-radius: 50% !important;
  cursor: pointer !important;
}

/* ---- HIDE SHOP SIDEBAR AND EXPAND GRID ---- */
.o_wsale_products_page #products_grid_before {
  display: none !important;
}
.o_wsale_products_page #products_grid {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ---- RESTYLE ODOO PRODUCT PAGE (PDP) ---- */
#product_detail {
  padding: 48px 0 80px !important;
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
@media (min-width: 901px) {
  #product_detail > .row {
    display: grid !important;
    grid-template-columns: 1.15fr .85fr !important;
    gap: 54px !important;
  }
  #product_detail > .row > .col-lg-6 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    padding: 0 !important;
  }
  #product_detail > .row > .col-lg-6:first-child {
    position: sticky !important;
    top: calc(var(--header-h) + 20px) !important;
    align-self: start !important;
  }
}
#product_detail .carousel-outer {
  background: var(--cream-3) !important;
  border: 0 !important;
}
#product_details h1[itemprop="name"] {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  font-size: clamp(38px, 4.4vw, 56px) !important;
  line-height: 1.03 !important;
  color: var(--ink) !important;
  margin: 10px 0 14px !important;
}
#product_details .product_price {
  font-family: var(--serif) !important;
  font-size: 30px !important;
  color: var(--ink) !important;
  margin-top: 14px !important;
  margin-bottom: 28px !important;
}
#product_details .product_price .oe_price {
  font-weight: 500 !important;
}
#product_details .product_price .text-danger {
  color: var(--ink-faint) !important;
  font-size: 20px !important;
  text-decoration: line-through !important;
  margin-left: 10px !important;
}

/* Hide default Odoo extra PDP texts */
#product_details .text-muted.mt-3,
#product_details .o_not_editable.mt-3 {
  display: none !important;
}

/* Color swatches in Odoo PDP attributes */
.o_wsale_product_attribute .css_attribute_color {
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  border: 1px solid var(--line) !important;
  outline: 1px solid transparent !important;
  outline-offset: 3px !important;
  transition: outline-color 0.15s !important;
  cursor: pointer !important;
  margin-right: 8px !important;
  position: relative !important;
}
.o_wsale_product_attribute .css_attribute_color input[type="radio"] {
  display: none !important;
}
.o_wsale_product_attribute .css_attribute_color.active {
  outline-color: var(--ink) !important;
  border-color: var(--ink) !important;
}
.o_wsale_product_attribute .css_attribute_color:hover {
  outline-color: var(--gold) !important;
}

/* Size chips / Radio selectors in Odoo PDP */
.o_wsale_product_attribute .list-unstyled {
  padding-left: 0 !important;
  margin-bottom: 0 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}
.o_wsale_product_attribute .list-unstyled li.form-check {
  display: inline-block !important;
  padding-left: 0 !important;
  margin: 0 !important;
}
.o_wsale_product_attribute .list-unstyled li.form-check .form-check-label {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 46px !important;
  height: 46px !important;
  border: 1px solid var(--line) !important;
  background: transparent !important;
  font-family: var(--sans) !important;
  font-size: 14px !important;
  color: var(--ink) !important;
  cursor: pointer !important;
  transition: border-color 0.15s, background-color 0.15s, color 0.15s !important;
  padding: 0 !important;
  position: relative !important;
}
.o_wsale_product_attribute .list-unstyled li.form-check .form-check-label input[type="radio"] {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
}
.o_wsale_product_attribute .list-unstyled li.form-check .form-check-label:hover {
  border-color: var(--ink) !important;
}
.o_wsale_product_attribute .list-unstyled li.form-check .form-check-label:has(input:checked),
.o_wsale_product_attribute .list-unstyled li.form-check .form-check-label.active {
  background: var(--ink) !important;
  color: var(--cream) !important;
  border-color: var(--ink) !important;
}

/* Odoo Add to Cart & Qty Row */
#add_to_cart_wrap {
  display: flex !important;
  gap: 14px !important;
  margin-top: 28px !important;
  align-items: center !important;
}
#add_to_cart_wrap .css_quantity {
  display: inline-flex !important;
  align-items: center !important;
  border: 1px solid var(--line) !important;
  background: transparent !important;
  height: 48px !important;
  margin: 0 !important;
  padding: 0 !important;
}
#add_to_cart_wrap .css_quantity a.js_add_cart_json {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 38px !important;
  height: 100% !important;
  border: 0 !important;
  background: none !important;
  font-size: 18px !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}
#add_to_cart_wrap .css_quantity a.js_add_cart_json:hover {
  background-color: var(--cream-2) !important;
}
#add_to_cart_wrap .css_quantity input.js_quantity {
  width: 44px !important;
  height: 100% !important;
  border: 0 !important;
  background: none !important;
  font-family: var(--sans) !important;
  font-size: 13.5px !important;
  text-align: center !important;
  color: var(--ink) !important;
  box-shadow: none !important;
  padding: 0 !important;
}
#add_to_cart_wrap #add_to_cart {
  flex: 1 !important;
  height: 48px !important;
  border-radius: 0 !important;
  border: 1px solid var(--espresso) !important;
  background: var(--espresso) !important;
  color: var(--cream) !important;
  font-family: var(--sans) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  transition: background 0.2s, border-color 0.2s !important;
  box-shadow: none !important;
  padding: 0 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
#add_to_cart_wrap #add_to_cart.d-none,
#add_to_cart_wrap #add_to_cart.css_not_available,
#add_to_cart_wrap #add_to_cart.o_hidden,
#add_to_cart_wrap #add_to_cart[style*="display: none"] {
  display: none !important;
}
#add_to_cart_wrap #add_to_cart:hover {
  background: var(--espresso-deep) !important;
  border-color: var(--espresso-deep) !important;
}

/* ============================================================
   13 · VELLINORE OVERRIDES: PDP CAROUSEL, VARIANT SELECTIONS,
   QUANTITY STEPPER, WISHLIST/COMPARE, TRUST POLICIES
   ============================================================ */

/* Style the Odoo product details page carousel to look like a premium Vellinore gallery */
#o-carousel-product {
  display: flex !important;
  flex-direction: row-reverse !important;
  gap: 16px !important;
}

#o-carousel-product .carousel-outer {
  flex: 1 !important;
  aspect-ratio: 3/4 !important;
  position: relative !important;
  overflow: hidden !important;
  background: var(--cream-3) !important;
  border: 0 !important;
}

#o-carousel-product .carousel-inner,
#o-carousel-product .carousel-item {
  height: 100% !important;
}

#o-carousel-product .carousel-item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

#o-carousel-product .carousel-indicators {
  position: static !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 88px !important;
  height: auto !important;
  justify-content: flex-start !important;
  background: transparent !important;
  opacity: 1 !important;
  overflow-y: auto !important;
}

#o-carousel-product .carousel-indicators button,
#o-carousel-product .carousel-indicators li {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 3/4 !important;
  background: var(--cream-3) !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  outline: 1px solid var(--line) !important;
  outline-offset: 0 !important;
  transition: outline-color .15s !important;
  opacity: 0.7 !important;
}

#o-carousel-product .carousel-indicators button.active,
#o-carousel-product .carousel-indicators li.active {
  outline: 1.5px solid var(--ink) !important;
  outline-offset: 2px !important;
  opacity: 1 !important;
}

#o-carousel-product .carousel-control-prev,
#o-carousel-product .carousel-control-next {
  display: none !important; /* Hide arrows on desktop to match minimalist styling */
}

@media (max-width: 900px) {
  #o-carousel-product {
    flex-direction: column !important;
  }
  #o-carousel-product .carousel-indicators {
    flex-direction: row !important;
    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
  }
  #o-carousel-product .carousel-indicators button,
  #o-carousel-product .carousel-indicators li {
    width: 72px !important;
  }
}

/* Style Odoo PDP Wishlist and Compare Buttons */
#product_details #product_option_block {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  gap: 20px !important;
  width: auto !important;
  margin-top: 16px !important;
  padding-top: 12px !important;
  border-top: 1px solid var(--line-soft) !important;
}

#product_details .o_add_wishlist_dyn,
#product_details .o_add_compare_dyn,
#product_details .o_add_wishlist,
#product_details .o_add_compare {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  font-family: var(--sans) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--ink-soft) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 8px 0 !important;
  cursor: pointer !important;
  transition: color 0.2s !important;
  width: auto !important;
  flex: none !important;
}

#product_details .o_add_wishlist_dyn:hover,
#product_details .o_add_compare_dyn:hover,
#product_details .o_add_wishlist:hover,
#product_details .o_add_compare:hover {
  color: var(--ink) !important;
}

/* Force compare button text to be visible on desktop */
#product_details .o_add_compare_dyn .d-lg-none,
#product_details .o_add_compare .d-lg-none {
  display: inline !important;
}

/* Quantity selector custom styling */
#add_to_cart_wrap {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

#add_to_cart_wrap .css_quantity {
  display: inline-flex !important;
  align-items: center !important;
  border: 1px solid var(--line) !important;
  background: transparent !important;
  height: 48px !important;
  box-sizing: border-box !important;
  border-radius: 0px !important; /* Sharp luxury corners */
}

#add_to_cart_wrap .css_quantity a.js_add_cart_json {
  width: 38px !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  background: none !important;
  color: var(--ink-soft) !important;
  font-size: 16px !important;
  cursor: pointer !important;
  transition: color 0.15s !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

#add_to_cart_wrap .css_quantity a.js_add_cart_json:hover {
  color: var(--ink) !important;
  background: var(--cream-2) !important;
}

#add_to_cart_wrap .css_quantity input.js_quantity {
  width: 40px !important;
  height: 100% !important;
  border: 0 !important;
  background: none !important;
  color: var(--ink) !important;
  font-family: var(--sans) !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  text-align: center !important;
  padding: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Style all dropdown selects */
select.form-select,
.o_wsale_product_attribute select {
  width: 100% !important;
  background-color: var(--cream) !important;
  border: 1px solid var(--line) !important;
  border-radius: 0px !important; /* Sharp corners */
  padding: 12px 16px !important;
  font-family: var(--sans) !important;
  font-size: 13px !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
  appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239C8F77' stroke-width='1.2' fill='none'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  box-shadow: none !important;
  outline: none !important;
  transition: border-color 0.15s !important;
}

select.form-select:focus,
.o_wsale_product_attribute select:focus {
  border-color: var(--ink) !important;
}

/* Size chips / Radio selectors / active states */
.o_wsale_product_attribute .list-unstyled li.form-check .form-check-label {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 46px !important;
  height: 46px !important;
  padding: 0 12px !important;
  border: 1px solid var(--line) !important;
  background: transparent !important;
  font-family: var(--sans) !important;
  font-size: 13px !important;
  color: var(--ink) !important;
  cursor: pointer !important;
  transition: all 0.15s !important;
  border-radius: 0px !important; /* Sharp corners */
}

/* Pills selections style (e.g. size pills) */
.o_wsale_product_attribute .nav-pills .nav-link,
.o_wsale_product_attribute .o_variant_pills {
  border: 1px solid var(--line) !important;
  background-color: transparent !important;
  color: var(--ink) !important;
  font-family: var(--sans) !important;
  font-size: 12px !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  border-radius: 0px !important; /* Sharp chips */
  padding: 10px 18px !important;
  transition: all 0.2s !important;
  cursor: pointer !important;
}

.o_wsale_product_attribute .nav-pills .nav-link.active,
.o_wsale_product_attribute .nav-pills .nav-link:hover,
.o_wsale_product_attribute .o_variant_pills.active,
.o_wsale_product_attribute .o_variant_pills:hover {
  background-color: var(--espresso) !important;
  color: var(--cream) !important;
  border-color: var(--espresso) !important;
}

/* Color Attribute Swatches */
.o_wsale_product_attribute .css_attribute_color {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  border: 1px solid var(--line) !important;
  box-shadow: none !important;
  transition: transform 0.2s, border-color 0.2s !important;
}

.o_wsale_product_attribute .css_attribute_color.active,
.o_wsale_product_attribute .css_attribute_color:has(input:checked) {
  border: 2px solid var(--espresso) !important;
  transform: scale(1.1) !important;
  box-shadow: 0 0 0 2px var(--cream) inset !important; /* Luxury double ring */
}

/* Header link sliding line on hover */
.nav-link::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 14px !important;
  height: 1px !important;
  background: var(--gold) !important;
  transform: scaleX(0) !important;
  transform-origin: right !important;
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
.nav-link:hover::after,
.nav-link.active::after {
  transform: scaleX(1) !important;
  transform-origin: left !important;
}
.nav-link.active::after {
  background: var(--gold) !important;
}

/* Hamburger / Mobile drawer styling */
.mnav {
  background: var(--cream) !important;
  padding: 24px 28px !important;
}

.mnav a.mlink {
  font-family: var(--serif) !important;
  font-size: 21px !important; /* Elegant sizes */
  padding: 12px 0 !important;
  border-bottom: 1px solid var(--line-soft) !important;
  color: var(--ink) !important;
  text-decoration: none !important;
  transition: color 0.2s !important;
  display: block !important;
}

.mnav a.mlink:hover {
  color: var(--gold-deep) !important;
}

.mnav .mnav-parent-row {
  border-bottom: 1px solid var(--line-soft) !important;
}

.mnav .mnav-parent-row a.mlink {
  border-bottom: 0 !important;
  padding: 12px 0 !important;
}

.mnav .mnav-toggle-btn {
  color: var(--ink-soft) !important;
  font-size: 18px !important;
  padding: 12px 8px !important;
}

.mnav .mnav-child-links {
  padding-left: 18px !important;
  border-bottom: 1px solid var(--line-soft) !important;
}

.mnav .mnav-child-links a.mlink {
  font-size: 15px !important;
  font-family: var(--sans) !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  padding: 8px 0 !important;
  border-bottom: 0 !important;
  color: var(--ink-soft) !important;
}

.mnav .mutil {
  border-top: 1px solid var(--line-soft) !important;
  margin-top: 32px !important;
  padding-top: 24px !important;
}

.mnav .mutil a {
  font-family: var(--sans) !important;
  font-size: 12px !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--ink-soft) !important;
}

/* Style PDP policies / trust section */
#product_details small.text-muted,
#product_details .o_wsale_product_security_text {
  display: block !important;
  font-family: var(--sans) !important;
  font-size: 11px !important;
  line-height: 1.8 !important;
  letter-spacing: .08em !important;
  color: var(--ink-soft) !important;
  text-transform: uppercase !important;
  margin-top: 24px !important;
  border-top: 1px solid var(--line-soft) !important;
  padding-top: 16px !important;
}

#product_details small.text-muted a,
#product_details small.text-muted u,
#product_details .o_wsale_product_security_text a {
  text-decoration: none !important;
  color: var(--ink) !important;
  font-weight: 500 !important;
}

#product_details small.text-muted a:hover,
#product_details .o_wsale_product_security_text a:hover {
  color: var(--gold-deep) !important;
}

/* ============================================================
   13 · VELLINORE ROUND 2 FIXED STYLES
   ============================================================ */

/* Hide empty PDP sections and accordions dynamically */
.acc:empty,
.acc-item:empty,
.acc-item:not(:has(.acc-body p:not(:empty))):not(:has(.acc-body div:not(:empty))),
.acc:not(:has(.acc-body p:not(:empty))):not(:has(.acc-body div:not(:empty))),
.oe_structure:empty,
.oe_structure > :only-child:empty,
#product_details_extra:empty {
  display: none !important;
}

/* Quantity indicator and wishlist badges styling */
.my_cart_quantity,
.o_wsale_wishlist_quantity {
  background-color: var(--gold-deep) !important;
  color: var(--cream) !important;
  font-family: var(--sans) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  padding: 3px 6px !important;
  border-radius: 10px !important;
  line-height: 1 !important;
  margin-left: 4px !important;
  display: inline-block !important;
  vertical-align: middle !important;
}

/* Style native Odoo CRM contact form */
.s_website_form {
  max-width: 680px;
  margin: 0 auto;
  padding: 40px 0;
}
.s_website_form label.col-form-label {
  font-family: var(--sans) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--ink-soft) !important;
  margin-bottom: 8px !important;
}
.s_website_form input,
.s_website_form textarea,
.s_website_form select {
  border: 1px solid var(--line) !important;
  background: var(--cream-2) !important;
  padding: 14px 16px !important;
  font-family: var(--sans) !important;
  font-size: 14px !important;
  color: var(--ink) !important;
  border-radius: 0 !important;
  transition: border-color 0.2s, background-color 0.2s !important;
  box-shadow: none !important;
}
.s_website_form input:focus,
.s_website_form textarea:focus,
.s_website_form select:focus {
  outline: none !important;
  border-color: var(--gold-deep) !important;
  background: #fff !important;
}
.s_website_form button[type="submit"],
.s_website_form .o_website_form_send {
  background: var(--espresso) !important;
  color: var(--cream) !important;
  border: 1px solid var(--espresso) !important;
  padding: 14px 38px !important;
  font-family: var(--sans) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  transition: background 0.2s, border-color 0.2s !important;
}
.s_website_form button[type="submit"]:hover,
.s_website_form .o_website_form_send:hover {
  background: var(--gold-deep) !important;
  border-color: var(--gold-deep) !important;
  color: var(--cream) !important;
}

/* Fix hero CTA buttons and scroll text overlap */
.hero:not([data-hero-scroll="off"]) .hero-content {
  padding-bottom: 90px !important;
}

@media (max-height: 780px) {
  .scroll-hint {
    display: none !important;
  }
  .hero:not([data-hero-scroll="off"]) .hero-content {
    padding-bottom: 24px !important;
  }
}