/* Three independent product-led directions, sharing the existing checkout. */
.variation { --paper:#faf9f6; --cream:#f1efe9; }
.variation .consumer-header { height:72px; }
.variation .shell { width:min(1240px,calc(100% - 80px)); }
.variation .hero-actions { display:flex; align-items:center; gap:24px; margin-top:28px; }
.variation .hero-actions .button { flex-shrink:0; }
.variation .hero-actions .text-link { font-weight:500; }
.variation .v-price { color:var(--muted); font-size:13px; line-height:1.7; }
.variation .v-price strong { color:var(--pine); font-weight:650; }
.variation .v-title { margin:0; color:var(--pine); font-size:clamp(48px,6vw,84px); font-weight:580; line-height:1.03; letter-spacing:-.055em; }
.variation .v-description { max-width:460px; color:var(--muted); font-size:17px; line-height:1.65; margin:24px 0 0; }
.variation .v-overline { color:var(--teal); text-transform:uppercase; font-size:11px; font-weight:650; letter-spacing:.13em; margin:0 0 24px; }
.variation .v-gallery { position:relative; margin:0; overflow:hidden; }
.variation .v-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.variation .v-gallery img[src*="denpod-home-kit-studio"] { object-fit:contain; }
[data-product-gallery]:not(.gallery-ready) .view-controls { display:none; }
.view-controls { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; }
.view-controls button { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 19px; font:inherit; font-size:12px; color:var(--muted); background:transparent; border:1px solid transparent; border-radius:999px; cursor:pointer; transition:background .15s,color .15s; }
.view-controls button[aria-pressed="true"] { background:var(--pine); color:white; }
.view-controls button:hover { border-color:var(--line); }
.v-stats { display:grid; grid-template-columns:repeat(3,1fr); margin-top:35px; padding:28px 0; border-top:1px solid var(--line); }
.v-stats div { display:flex; flex-direction:column; gap:7px; padding:0 26px; }
.v-stats div+div { border-left:1px solid var(--line); }
.v-stats strong { color:var(--pine); font-size:17px; letter-spacing:-.025em; font-weight:560; }
.v-stats span { color:var(--muted); font-size:12px; line-height:1.6; }

/* 1. Studio: large, quiet product stage with an inspectable gallery. */
.v-studio { --pine:#263831; --teal:#527565; --paper:#fbfaf7; --cream:#f1eee8; }
.studio-hero { padding:50px 0 0; text-align:center; }
.studio-hero .v-title { font-size:clamp(46px,5.8vw,79px); }
.studio-hero .v-title span { color:var(--teal); }
.studio-hero .v-description { margin:22px auto 0; max-width:470px; font-size:16px; }
.studio-hero .hero-actions { justify-content:center; margin-top:25px; }
.studio-hero .v-price { margin:17px 0 0; }
.studio-hero .v-gallery { margin:36px auto 0; height:clamp(330px,38vw,510px); max-width:1100px; border-radius:28px; background:#eae5df; }
.studio-hero .v-gallery img { object-position:50% 60%; }
.studio-hero .view-controls { margin-top:17px; }
.studio-hero .v-stats { max-width:900px; margin:30px auto 0; }
.studio-note { position:absolute; left:26px; bottom:23px; color:#4c574f; font-size:11px; letter-spacing:.025em; }
.studio-feature { padding:95px 0; background:#e9eee8; }
.studio-feature .shell { display:grid; grid-template-columns:.75fr 1.25fr; gap:70px; align-items:center; }
.studio-feature h2 { margin:0; color:var(--pine); font-size:clamp(36px,4vw,57px); font-weight:560; letter-spacing:-.05em; line-height:1.08; }
.studio-feature p { max-width:370px; font-size:16px; color:var(--muted); line-height:1.7; margin:22px 0; }
.studio-feature img { display:block; width:100%; border-radius:24px; }
.v-studio .kit-section { background:#ecebe5; }

/* 2. At home: an editorial split with a close-up, warm materials and type. */
.v-home { --pine:#423c2e; --teal:#7b7650; --paper:#faf7ef; --cream:#efeadc; --muted:#716c5f; --line:rgba(66,60,46,.17); }
.v-home .consumer-header { background:rgba(250,247,239,.92); box-shadow:0 0 0 100vmax rgba(250,247,239,.92); }
.home-hero { padding:28px 0 55px; }
.home-hero > .shell { display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:center; }
.home-copy { padding:45px 0; }
.home-hero .v-title { font-family:Georgia,'Times New Roman',serif; font-size:clamp(53px,5.5vw,77px); font-weight:400; line-height:1.04; letter-spacing:-.055em; }
.home-hero .v-title em { color:#827b56; font-weight:400; }
.home-hero .v-description { max-width:390px; font-size:16px; }
.home-hero .v-gallery { height:650px; border-radius:180px 180px 24px 24px; }
.home-hero .v-gallery img { object-position:52% 50%; }
.home-caption { position:absolute; left:25px; right:25px; bottom:25px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 20px; border-radius:14px; color:#493f2a; background:rgba(250,247,239,.92); backdrop-filter:blur(14px); font-size:12px; }
.home-caption strong { font-weight:650; }
.home-caption span { font-size:11px; }
.home-hero .v-price { margin:20px 0 0; }
.home-copy .v-stats { grid-template-columns:1fr; margin-top:30px; padding:15px 0 0; gap:13px; }
.home-copy .v-stats div { flex-direction:row; align-items:baseline; gap:14px; padding:0; border:0; }
.home-copy .v-stats strong { font-size:13px; }
.home-copy .v-stats span { font-size:12px; }
.home-moment { padding:60px 0 85px; }
.home-moment .shell { border-top:1px solid var(--line); padding-top:45px; display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.home-moment h2 { margin:0; font-family:Georgia,'Times New Roman',serif; font-size:clamp(32px,3.8vw,52px); font-weight:400; line-height:1.12; letter-spacing:-.04em; color:var(--pine); }
.home-moment p { max-width:480px; margin:5px 0; color:var(--muted); font-size:16px; line-height:1.75; }
.v-home .how-section { background:#efeadc; }
.v-home .room-gallery figure { background:#faf7ef; }
.v-home .section-heading h2,.v-home .how-heading h2,.v-home .kit-copy h2,.v-home .faq-heading h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.045em; }
.v-home .room-tabs { background:#e1dccd; }
.v-home .kit-section { background:#e9e5d6; }
.v-home .quiet-section { background:#faf7ef; }
.v-home .consumer-footer { background:#423c2e; }

/* 3. Shop: complete kit and a direct, detailed purchase decision. */
.v-shop { --pine:#202c28; --teal:#527365; --paper:#f9faf7; --cream:#edf0eb; }
.v-shop .consumer-header { background:rgba(249,250,247,.94); box-shadow:0 0 0 100vmax rgba(249,250,247,.94); }
.shop-banner { padding:11px 20px; text-align:center; background:#20392e; color:#edf2ea; font-size:11px; letter-spacing:.025em; line-height:1.5; }
.shop-hero { padding:45px 0 65px; }
.shop-hero > .shell { display:grid; grid-template-columns:1.3fr 1fr; align-items:start; gap:65px; }
.shop-hero .v-gallery { height:545px; background:#e9e3da; border-radius:20px; }
.shop-hero .v-gallery img { object-fit:cover; }
.shop-hero .view-controls { justify-content:flex-start; margin-top:17px; }
.shop-gallery-note { color:var(--muted); margin:17px 0 0; font-size:12px; }
.shop-copy { padding-top:14px; }
.shop-copy .v-overline { margin-bottom:15px; }
.shop-copy .v-title { font-size:clamp(42px,4.5vw,61px); }
.shop-copy .v-description { margin-top:17px; max-width:420px; font-size:16px; }
.shop-price { display:flex; align-items:baseline; flex-wrap:wrap; gap:12px; margin:25px 0 0; color:var(--pine); }
.shop-price strong { font-size:52px; font-weight:580; letter-spacing:-.05em; }
.shop-price span { color:var(--muted); font-size:12px; }
.shop-bundle { margin:22px 0; padding:18px 20px; border:1px solid #a9b8ab; border-radius:13px; background:#edf1e9; display:flex; gap:16px; align-items:center; }
.bundle-dot { width:16px; height:16px; border:5px solid var(--pine); border-radius:50%; flex-shrink:0; }
.shop-bundle strong { display:block; font-size:14px; color:var(--pine); font-weight:650; }
.shop-bundle small { display:block; margin-top:5px; font-size:12px; color:var(--muted); line-height:1.5; }
.shop-copy .button { width:100%; min-height:53px; }
.shop-fulfilment { margin:16px 0 22px; font-size:12px; line-height:1.7; color:var(--muted); }
.shop-fulfilment strong { color:var(--pine); font-weight:550; }
.shop-detail { border-top:1px solid var(--line); font-size:13px; line-height:1.7; }
.shop-detail:last-child { border-bottom:1px solid var(--line); }
.shop-detail summary { padding:16px 0; cursor:pointer; color:var(--pine); font-weight:550; }
.shop-detail p { margin:0 0 18px; color:var(--muted); }
.shop-detail a { text-decoration:underline; text-underline-offset:3px; }
.shop-proof { background:#20392e; padding:42px 0; }
.shop-proof .shell { display:grid; grid-template-columns:repeat(3,1fr); gap:35px; }
.shop-proof strong { display:block; font-weight:500; font-size:23px; letter-spacing:-.03em; color:white; }
.shop-proof p { font-size:13px; line-height:1.7; color:#c4d1c7; margin:10px 0 0; }
.shop-close { padding:65px 0; background:#20392e; color:white; }
.shop-close .shell { display:flex; justify-content:space-between; align-items:center; gap:40px; }
.shop-close h2 { font-size:38px; letter-spacing:-.04em; font-weight:500; margin:0 0 14px; }
.shop-close p { font-size:14px; color:#c4d1c7; line-height:1.6; margin:0; }
.shop-close .button { background:#edf2ea; color:#20392e; }

@media(max-width:1050px) {
  .variation .shell { width:calc(100% - 48px); }
  .home-hero > .shell,.shop-hero > .shell { gap:35px; }
  .home-hero .v-gallery { height:590px; }
  .home-hero .v-title { font-size:59px; }
  .shop-hero .v-gallery { height:490px; }
  .shop-hero > .shell { grid-template-columns:1.1fr 1fr; }
  .studio-feature .shell { gap:35px; }
}
@media(max-width:760px) {
  .variation .shell { width:calc(100% - 36px); }
  .variation .consumer-header { height:66px; }
  .variation .hero-actions { flex-direction:row; align-items:center; gap:18px; }
  .variation .hero-actions .button { width:auto; padding-inline:21px; font-size:13px; }
  .variation .hero-actions .text-link { font-size:13px; }
  .variation .v-price { font-size:12px; }
  .variation .v-overline { font-size:10px; margin-bottom:20px; }
  .studio-hero { padding-top:35px; }
  .studio-hero .v-title { font-size:44px; }
  .studio-hero .v-description { font-size:15px; max-width:330px; }
  .studio-hero .v-gallery { margin-top:28px; height:310px; border-radius:20px; }
  .studio-hero .v-gallery img { object-position:50% 60%; }
  .studio-note { display:none; }
  .view-controls { gap:1px; }
  .view-controls button { min-height:40px; padding-inline:14px; font-size:11px; }
  .v-stats { margin-top:25px; padding:23px 0; }
  .v-stats div { padding-inline:9px; }
  .v-stats strong { font-size:13px; line-height:1.4; }
  .v-stats span { font-size:11px; }
  .studio-feature { padding:65px 0; }
  .studio-feature .shell { grid-template-columns:1fr; gap:25px; }
  .studio-feature h2 { font-size:38px; }
  .studio-feature p { font-size:15px; }
  .home-hero { padding:15px 0 25px; }
  .home-hero > .shell { grid-template-columns:1fr; gap:28px; }
  .home-copy { padding:0; }
  .home-hero .v-title { font-size:46px; }
  .home-hero .v-title em br { display:none; }
  .home-hero .v-description { font-size:15px; margin-top:20px; }
  .home-hero .v-gallery { grid-row:1; height:280px; border-radius:110px 110px 20px 20px; }
  .home-copy .v-stats { display:none; }
  .home-caption { display:none; }
  .home-moment { padding:40px 0 65px; }
  .home-moment .shell { grid-template-columns:1fr; gap:22px; padding-top:32px; }
  .home-moment h2 { font-size:37px; }
  .home-moment p { font-size:15px; }
  .shop-banner { font-size:10px; padding-inline:16px; }
  .shop-hero { padding:22px 0 45px; }
  .shop-hero > .shell { grid-template-columns:1fr; gap:25px; }
  .shop-hero .v-gallery { height:310px; }
  .shop-hero .v-gallery img { object-fit:cover; }
  .shop-hero .view-controls { justify-content:center; margin-top:13px; }
  .shop-gallery-note { text-align:center; font-size:11px; margin-top:10px; }
  .shop-copy { padding-top:0; }
  .shop-copy .v-title { font-size:45px; }
  .shop-copy .v-description { font-size:15px; }
  .shop-price { margin-top:20px; }
  .shop-price strong { font-size:45px; }
  .shop-bundle { margin:18px 0; }
  .shop-proof .shell { grid-template-columns:1fr; gap:25px; }
  .shop-proof strong { font-size:23px; }
  .shop-close .shell { flex-direction:column; align-items:flex-start; gap:24px; }
  .shop-close h2 { font-size:34px; }
  .shop-close .button { width:100%; }
}
@media(prefers-reduced-motion:reduce) { .view-controls button { transition:none; } }
