.shop-main {
  padding-bottom: 120px;
}

.shop-hero {
  display: grid;
  grid-template-columns: minmax(360px, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(44px, 7vw, 100px);
  align-items: start;
  padding: 70px 0 110px;
}

.shop-preview-wrap { position: sticky; top: 28px; }
.shop-preview { min-height: 640px; display: grid; place-items: center; align-content: center; gap: 24px; padding: 54px 30px; border-radius: 34px; background: #1c211b; overflow: hidden; }
.preview-note { margin: 0; color: rgba(245,240,230,.58); font-size: .86rem; letter-spacing: .02em; }
.shop-config h1 { font-size: clamp(3.5rem,6vw,6.1rem); }
.shop-intro { max-width:620px; margin:26px 0 0; color:var(--muted); font-size:1.12rem; line-height:1.65; }
.price-row { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:34px; }
.shop-price { font-size:2rem; font-weight:760; letter-spacing:-.04em; }
.shop-status { padding:7px 11px; border-radius:999px; background:var(--surface); color:var(--muted); font-size:.82rem; font-weight:700; }

.variant-picker { margin-top:30px; }
.variant-heading { display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:14px; }
.variant-heading h2 { font-size:1.15rem; letter-spacing:-.03em; }
.variant-heading span { color:var(--muted); font-size:.86rem; }
.variant-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.variant-card { display:flex; justify-content:space-between; align-items:center; gap:14px; min-height:88px; padding:17px 18px; border:1px solid var(--border); border-radius:19px; background:rgba(255,255,255,.12); color:var(--text); text-align:left; cursor:pointer; }
.variant-card.is-selected { border-color:var(--text); box-shadow:inset 0 0 0 1px var(--text); }
.variant-card span { display:flex; flex-direction:column; gap:5px; }
.variant-card strong { font-size:.95rem; }
.variant-card small { color:var(--muted); font-size:.76rem; line-height:1.3; }
.variant-card b { white-space:nowrap; font-size:.95rem; }
.variant-description { margin:11px 2px 0; color:var(--muted); font-size:.84rem; line-height:1.5; }

.config-block { margin-top:48px; padding-top:34px; border-top:1px solid var(--border); }
.config-heading-row { display:flex; justify-content:space-between; gap:18px; align-items:baseline; margin-bottom:20px; }
.config-heading-row h2 { font-size:1.35rem; letter-spacing:-.035em; }
.config-heading-row span { color:var(--muted); font-size:.9rem; }
.flavour-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.flavour-card { min-height:126px; display:grid; grid-template-columns:62px minmax(0,1fr); align-items:center; gap:16px; padding:16px; border:1px solid var(--border); border-radius:20px; background:rgba(255,255,255,.12); color:var(--text); text-align:left; cursor:pointer; }
.flavour-card.is-selected { border-color:var(--text); box-shadow:inset 0 0 0 1px var(--text); }
.flavour-card strong { font-size:.95rem; line-height:1.3; }
.mini-device { position:relative; width:54px; height:54px; }
.mini-device i { position:absolute; inset:4px 4px 14px; border-radius:14px; background:var(--mini-lid); box-shadow:0 12px 0 -2px var(--mini-base); }
.mini-device i::before,.mini-device i::after { content:""; position:absolute; top:16px; width:11px; height:11px; border-radius:50%; background:var(--mini-button); }
.mini-device i::before { left:10px; } .mini-device i::after { right:10px; }
.custom-block { margin-top:42px; }
.part-row { display:grid; grid-template-columns:150px minmax(0,1fr); align-items:center; gap:20px; padding:18px 0; border-bottom:1px solid var(--border); }
.part-row > div:first-child { display:flex; flex-direction:column; gap:4px; }
.part-row > div:first-child span { color:var(--muted); font-size:.86rem; }
.swatch-row { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.swatch { position:relative; width:38px; height:38px; padding:0; border:2px solid var(--background); border-radius:50%; background:var(--swatch); box-shadow:0 0 0 1px rgba(32,37,31,.16); cursor:pointer; }
.swatch.is-selected { box-shadow:0 0 0 2px var(--background),0 0 0 4px var(--text); }
.buy-summary { margin-top:42px; padding:28px; border-radius:24px; background:var(--surface); }
.buy-summary > div { display:flex; flex-wrap:wrap; gap:8px 18px; margin-bottom:22px; color:var(--muted); font-size:.88rem; }
.buy-button { width:100%; border:0; opacity:.72; cursor:not-allowed; }
.buy-summary p { margin:14px 0 0; color:var(--muted); font-size:.82rem; line-height:1.5; text-align:center; }
.shop-details { display:grid; grid-template-columns:1fr .85fr; gap:clamp(50px,8vw,120px); padding:80px 0 20px; }
.shop-details-copy { padding-top:24px; }
.shop-details-copy p { color:var(--muted); line-height:1.7; }

@media(max-width:980px){.shop-hero{display:block;padding-top:28px}.shop-details{grid-template-columns:1fr}.shop-preview-wrap{position:sticky;top:8px;z-index:30;margin-bottom:28px}.shop-preview{min-height:0;height:210px;padding:12px 20px;border-radius:26px;box-shadow:0 12px 34px rgba(28,33,27,.18)}.preview-note{display:none}.shop-config{max-width:760px;margin-inline:auto}}
@media(max-width:640px){.shop-hero{padding:16px 0 70px}.shop-preview-wrap{top:6px;margin-bottom:22px}.shop-preview{height:154px;padding:8px 14px;border-radius:22px}.shop-config h1{font-size:clamp(3rem,16vw,4.5rem)}.shop-intro{margin-top:18px}.price-row{margin-top:24px}.variant-grid{grid-template-columns:1fr}.variant-card{min-height:72px}.config-block{margin-top:34px;padding-top:26px}.flavour-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.flavour-card{min-height:94px;grid-template-columns:44px minmax(0,1fr);gap:10px;padding:12px;border-radius:17px}.mini-device{width:42px;height:42px}.mini-device i{inset:3px 3px 11px;border-radius:11px;box-shadow:0 9px 0 -2px var(--mini-base)}.mini-device i::before,.mini-device i::after{top:12px;width:9px;height:9px}.mini-device i::before{left:7px}.mini-device i::after{right:7px}.flavour-card strong{font-size:.84rem}.part-row{grid-template-columns:1fr;gap:12px;padding:16px 0}.swatch-row{justify-content:flex-start;gap:12px}.swatch{width:40px;height:40px}.config-heading-row{align-items:flex-start;flex-direction:column;gap:4px}.buy-summary{margin-top:32px;padding:22px}.shop-details{padding-top:48px}}
