/* LunaVeil's existing Georgia / Arial, stone-grey surfaces and muted green. */
.single-product #main > :is(.ct-container,.ct-container-full):has(.lv-pdp2) { width:min(1380px,calc(100% - 80px)); margin-inline:auto; }
.single-product .lv-pdp2 { color:var(--lv-text-primary); width:100%; margin:0; }
.lv-pdp2 :is(figure,p,ul,ol,dl) { margin-top:0; }
.lv-pdp2 :is(h1,h2,h3) { color:var(--lv-text-primary); font-family:var(--lv-font-display); font-weight:400; text-wrap:balance; }
.lv-pdp2-top { display:grid; grid-template-columns:minmax(0,58fr) minmax(0,42fr); gap:clamp(38px,4vw,64px); align-items:start; }
.lv-pdp2-media,.lv-pdp2-info { min-width:0; }
.lv-pdp2-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 18px; }
.lv-pdp2-photo { margin:0; min-width:0; }
.lv-pdp2-photo.is-hero { grid-column:1/-1; }
.lv-pdp2-photo a { position:relative; display:block; width:100%; color:inherit; background:var(--lv-bg-secondary); }
body .lv-pdp2-photo img { display:block; width:100%; height:auto; object-fit:contain!important; transform:none!important; }
.lv-pdp2-photo.is-lifestyle img { object-fit:cover!important; }
.lv-pdp2-photo figcaption { display:flex; gap:12px; padding-top:10px; font:11px/1.6 var(--lv-font-body); color:var(--lv-text-secondary); }
.lv-pdp2-photo figcaption > span { opacity:.65; font-variant-numeric:tabular-nums; }
.lv-pdp2-zoom-cue { position:absolute; right:14px; bottom:14px; width:30px; height:30px; border:1px solid rgba(41,42,45,.3); background:rgba(243,244,241,.9); display:grid; place-content:center; font:20px/1 var(--lv-font-body); }
.lv-pdp2-pagination { display:none; }
.lv-pdp2-info { position:sticky; top:var(--lv-sticky-top,28px); padding-top:4px; align-self:start; }
.lv-pdp2-eyebrow { font:11px/1.6 var(--lv-font-body); letter-spacing:.055em; color:var(--lv-text-secondary); margin-bottom:14px; }
.lv-pdp2 .product_title { font-size:clamp(40px,3.6vw,54px); line-height:1.06; letter-spacing:-.035em; margin:0 0 13px; }
.lv-pdp2-price { font:23px/1.4 var(--lv-font-display); font-variant-numeric:lining-nums tabular-nums; margin-bottom:22px; color:var(--lv-text-primary); }
.lv-pdp2-statement { font:16px/1.72 var(--lv-font-body); color:var(--lv-text-secondary); max-width:45ch; margin:0 0 20px; }
.lv-pdp2-statement p { margin:0; }
.lv-pdp2-material-line { font:12px/1.75 var(--lv-font-body); color:var(--lv-text-secondary); margin:0 0 24px; }
.lv-pdp2-material-line > span { display:block; color:var(--lv-text-primary); font-size:10px; letter-spacing:.09em; text-transform:uppercase; margin-bottom:4px; }
.lv-pdp2 .lv-pdp2-wear h2 { font:11px/1.5 var(--lv-font-body); letter-spacing:.09em; text-transform:uppercase; margin:0 0 10px; }
.lv-pdp2-wear { margin:0 0 14px; }
.lv-pdp2-wear ul { list-style:none; padding:0; margin:0; color:var(--lv-text-secondary); font:13px/1.85 var(--lv-font-body); }
.lv-pdp2-wear li { display:inline; margin:0; }
.lv-pdp2-wear li:not(:last-child)::after { content:' · '; white-space:pre; color:#87908c; }
.lv-pdp2 :is(.lv-pdp2-style,.lv-pdp2-accordions details) { border:0; border-bottom:1px solid var(--lv-border); padding:0; }
.lv-pdp2 summary { display:flex; align-items:center; justify-content:space-between; gap:20px; cursor:pointer; list-style:none; min-height:49px; padding:12px 0; font:13px/1.6 var(--lv-font-body); }
.lv-pdp2 summary::-webkit-details-marker { display:none; }
.lv-pdp2 summary span { font-size:19px; font-weight:400; }
.lv-pdp2 details[open] > summary span { font-size:0; }
.lv-pdp2 details[open] > summary span::after { content:'−'; font-size:19px; }
.lv-pdp2 details > :not(summary) { font:13px/1.85 var(--lv-font-body); color:var(--lv-text-secondary); margin:0; padding:4px 0 22px; }
.lv-pdp2 details :is(p:last-child,ul:last-child) { margin-bottom:0; }
.lv-pdp2 details a,.lv-pdp2-fit a { text-decoration:underline; text-underline-offset:3px; }
.lv-pdp2-fit { font:12px/1.7 var(--lv-font-body); color:var(--lv-text-secondary); margin:18px 0 21px; }
.lv-pdp2-fit > span { color:var(--lv-text-primary); display:block; margin-bottom:4px; }
.lv-pdp2-fit p { margin:0; }
.single-product div.lv-pdp2 form.cart { margin:0; width:100%; }
.lv-pdp2-purchase { margin:0 0 14px; }
.lv-pdp2-purchase .button { min-height:52px; border-radius:0; background:var(--lv-bg-dark); color:var(--lv-text-light); font:13px/1.4 var(--lv-font-body); letter-spacing:.025em; }
.lv-pdp2-contact { width:100%; display:flex; align-items:center; justify-content:space-between; padding:17px 22px; }
.lv-pdp2-purchase .button:hover { background:var(--lv-accent); }
.lv-pdp2-service { display:flex; flex-wrap:wrap; gap:8px 22px; margin:0 0 28px; font:11px/1.6 var(--lv-font-body); color:var(--lv-text-secondary); }
.lv-pdp2-service a { color:inherit; text-decoration:underline; text-underline-offset:4px; }
.lv-pdp2-accordions { border-top:1px solid var(--lv-border); }
.lv-pdp2-stories { margin-top:clamp(85px,8vw,130px); }
.lv-pdp2-story { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(48px,7vw,110px); align-items:center; padding-block:0 120px; }
.lv-pdp2-story figure { margin:0; }
.lv-pdp2-story figure img { width:100%; height:auto; display:block; object-fit:contain; }
.lv-pdp2-story-copy { max-width:490px; }
.lv-pdp2 .lv-pdp2-kicker { font:11px/1.6 var(--lv-font-body); letter-spacing:.1em; text-transform:uppercase; color:var(--lv-text-secondary); margin:0 0 22px; }
.lv-pdp2-stories h2:not(.lv-pdp2-kicker) { font-size:clamp(34px,3.5vw,50px); line-height:1.12; letter-spacing:-.03em; margin:0 0 26px; }
.lv-pdp2-prose { font:16px/1.9 var(--lv-font-body); color:var(--lv-text-secondary); }
.lv-pdp2-prose p:last-child { margin-bottom:0; }
.lv-pdp2-life { padding-top:55px; border-top:1px solid var(--lv-border); }
.lv-pdp2-life-line { font:14px/1.7 var(--lv-font-body); color:var(--lv-text-secondary); }
.lv-pdp2-life ol { list-style:none; padding:0; margin:38px 0 0; counter-reset:lv-scene; }
.lv-pdp2-life li { display:grid; grid-template-columns:28px 1fr; gap:18px; align-items:baseline; counter-increment:lv-scene; border-top:1px solid var(--lv-border); padding:19px 0; font:clamp(19px,1.7vw,25px)/1.5 var(--lv-font-display); }
.lv-pdp2-life li::before { content:'0' counter(lv-scene); font:10px/1.5 var(--lv-font-body); color:var(--lv-text-secondary); }
.lv-pdp2-materials { padding-top:42px; border-top:1px solid var(--lv-border); }
.lv-pdp2-materials header { margin-bottom:42px; }
.lv-pdp2-material-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(48px,7vw,110px); align-items:center; }
.lv-pdp2-material-body figure { margin:0; }
.lv-pdp2-material-body img { width:100%; height:auto; object-fit:contain; display:block; }
.lv-pdp2-material-body figcaption { font:11px/1.6 var(--lv-font-body); color:var(--lv-text-secondary); padding-top:12px; }
.lv-pdp2-material-body dl { margin:0; }
.lv-pdp2-material-body dl > div { padding:28px 0; border-bottom:1px solid var(--lv-border); }
.lv-pdp2-material-body dt { font:27px/1.3 var(--lv-font-display); font-weight:400; margin-bottom:11px; }
.lv-pdp2-material-body dd { font:14px/1.8 var(--lv-font-body); color:var(--lv-text-secondary); margin:0; max-width:42ch; }
.lv-pdp2-meaning { display:grid; grid-template-columns:.7fr 1.3fr; gap:60px; border-block:1px solid var(--lv-border); margin-top:100px; padding:50px 0; }
.lv-pdp2-meaning > div { max-width:650px; color:var(--lv-text-secondary); }
.lv-pdp2-meaning p { font:17px/1.8 var(--lv-font-display); margin:0 0 12px; }
.lv-pdp2-meaning p:last-child { margin-bottom:0; }
.single-product .lv-pdp2-related section.related.products { margin:90px 0 0; width:100%; max-width:none; }
.single-product .lv-pdp2-related section.related.products ul.products { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; display:grid; overflow:visible; }
.single-product .lv-pdp2-related section.related.products ul.products li.product { width:auto; min-width:0; margin:0; }
.lv-pdp2-lightbox { padding:0; border:0; width:calc(100vw - 48px); max-width:1500px; height:calc(100dvh - 48px); max-height:none; background:var(--lv-bg-primary); color:var(--lv-text-primary); }
.lv-pdp2-lightbox::backdrop { background:rgba(30,32,33,.86); }
.lv-pdp2-lightbox-toolbar { height:58px; display:flex; align-items:center; gap:20px; padding:0 22px; border-bottom:1px solid var(--lv-border); }
.lv-pdp2-lightbox-count { margin-right:auto; font-size:12px; }
.lv-pdp2-lightbox button { font:12px/1.4 var(--lv-font-body); border:0; border-radius:0; color:var(--lv-text-primary); background:transparent; min-height:44px; padding:10px; }
.lv-pdp2-lightbox-stage { display:grid; place-items:center; height:calc(100% - 58px); overflow:auto; }
.lv-pdp2-lightbox-stage img { max-width:100%; max-height:calc(100dvh - 110px); width:auto; height:auto; object-fit:contain!important; transform:none!important; }
.lv-pdp2-lightbox-stage.is-zoomed { display:block; }
.lv-pdp2-lightbox-stage.is-zoomed img { max-width:none; max-height:none; }
.lv-pdp2-lightbox > button { position:absolute; top:50%; background:var(--lv-bg-primary); border:1px solid var(--lv-border); font-size:25px; width:46px; }
.lv-pdp2-lightbox [data-lightbox-action='prev'] { left:12px; }
.lv-pdp2-lightbox [data-lightbox-action='next'] { right:12px; }
@media (max-width:1023.98px) {
  .single-product #main > :is(.ct-container,.ct-container-full):has(.lv-pdp2) { width:calc(100% - 40px); }
  .lv-pdp2-top { display:block; }
  .lv-pdp2-info { position:static; padding:24px 0 0; max-width:650px; margin-inline:auto; }
  .lv-pdp2-gallery { display:flex; gap:0; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:none; }
  .lv-pdp2-gallery::-webkit-scrollbar { display:none; }
  .lv-pdp2-photo { flex:0 0 100%; scroll-snap-align:start; min-width:0; }
  .lv-pdp2-photo a { height:min(86vw,440px); background:transparent; }
  body .lv-pdp2-photo img { width:100%; height:100%; object-fit:contain!important; }
  .lv-pdp2-photo figcaption { display:none; }
  .lv-pdp2-zoom-cue { right:8px; bottom:8px; }
  .lv-pdp2-pagination { display:flex; align-items:center; justify-content:center; min-height:32px; gap:3px; margin-top:4px; }
  .lv-pdp2-pagination button { border:0; padding:0; margin:0; background:transparent; width:29px; min-height:29px; display:grid; place-items:center; }
  .lv-pdp2-pagination button span { width:5px; height:5px; border-radius:50%; background:var(--lv-border); }
  .lv-pdp2-pagination button[aria-current='true'] span { background:var(--lv-text-primary); }
  .lv-pdp2-counter { color:var(--lv-text-secondary); font:10px/1.5 var(--lv-font-body); margin-left:12px; font-variant-numeric:tabular-nums; }
  .lv-pdp2-story,.lv-pdp2-material-body { gap:35px; }
  .lv-pdp2-stories { margin-top:80px; }
  .lv-pdp2-story { padding-bottom:80px; }
  .lv-pdp2-meaning { margin-top:70px; gap:35px; }
}
@media (max-width:767.98px) {
  .single-product #main > :is(.ct-container,.ct-container-full):has(.lv-pdp2) { width:calc(100% - 32px); }
  .lv-pdp2-info { padding-top:18px; }
  .lv-pdp2-eyebrow { font-size:10px; margin-bottom:9px; }
  .lv-pdp2 .product_title { font-size:39px; margin-bottom:10px; }
  .lv-pdp2-price { font-size:21px; margin-bottom:18px; }
  .lv-pdp2-statement { font-size:14px; line-height:1.75; margin-bottom:17px; }
  .lv-pdp2-material-line { font-size:11px; margin-bottom:20px; }
  .lv-pdp2-wear ul { font-size:12px; line-height:1.9; }
  .lv-pdp2-fit { font-size:11px; }
  .lv-pdp2-story,.lv-pdp2-material-body { display:flex; flex-direction:column; gap:32px; align-items:stretch; }
  .lv-pdp2-story-copy { max-width:none; }
  .lv-pdp2-story figure { width:100%; }
  .lv-pdp2 .lv-pdp2-kicker { font-size:10px; margin-bottom:14px; }
  .lv-pdp2-stories h2:not(.lv-pdp2-kicker) { font-size:35px; margin-bottom:22px; }
  .lv-pdp2-prose { font-size:14px; }
  .lv-pdp2-life { padding-top:36px; }
  .lv-pdp2-life ol { margin-top:26px; }
  .lv-pdp2-materials header { margin-bottom:28px; }
  .lv-pdp2-material-body dl > div { padding:21px 0; }
  .lv-pdp2-material-body dt { font-size:23px; }
  .lv-pdp2-material-body dd { font-size:13px; }
  .lv-pdp2-meaning { display:block; padding-block:33px; }
  .lv-pdp2-meaning p { font-size:16px; }
  .single-product .lv-pdp2-related section.related.products { margin-top:65px; }
  .single-product .lv-pdp2-related section.related.products > h2 { font-size:32px; }
  .single-product .lv-pdp2-related section.related.products ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 14px; }
  .lv-pdp2-lightbox { width:100vw; height:100dvh; max-width:none; margin:0; }
  .lv-pdp2-lightbox-toolbar { padding-inline:10px; gap:10px; }
  .lv-pdp2-lightbox-stage img { max-height:calc(100dvh - 58px); }
}
