/* A19 – produktside: galleri, lightbox, købsboks, specifikationer, anmeldelser, spørgsmål og sticky købsbar. */

.crumbs{font-size:.9rem;padding-block:18px 6px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.crumbs li{display:flex;gap:8px;align-items:center;color:var(--muted)}
.crumbs li+li::before{content:"›";color:var(--muted)}
.crumbs a{color:var(--ink);text-underline-offset:3px}

.pdp{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:48px;align-items:start;padding-block:12px 56px}

/* ---------- Galleri ---------- */
.gallery{display:grid;grid-template-columns:84px minmax(0,1fr);gap:14px;position:sticky;top:150px}
.gallery:not(:has(.thumbs)){grid-template-columns:minmax(0,1fr)}
.thumbs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.thumb-btn{position:relative;display:block;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;cursor:pointer;background:none;aspect-ratio:1/1;width:100%}
.thumb-btn img,.thumb-btn .ph{display:grid;width:100%;height:100%;object-fit:cover}
.thumb-btn .ph svg{width:55%}
.thumb-btn .dims-svg{width:80%}
.thumb-btn[aria-current="true"]{border-color:var(--forest)}
:root[data-theme="dark"] .thumb-btn[aria-current="true"]{border-color:var(--sun)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .thumb-btn[aria-current="true"]{border-color:var(--sun)}}
.thumb-btn .play{position:absolute;inset:0;display:grid;place-items:center}
.thumb-btn .play span{width:30px;height:30px;border-radius:50%;background:var(--forest);color:var(--on-forest);display:grid;place-items:center}
.thumb-btn .play svg{width:14px;height:14px}
.main-img{position:relative;border-radius:var(--radius);overflow:hidden;cursor:zoom-in;display:block;color:var(--ink)}
.main-img img,.main-img .ph,.main-img video{display:grid;width:100%;aspect-ratio:4/5;height:auto;object-fit:cover}
.main-img .zoom-hint{position:absolute;right:12px;bottom:12px;z-index:2;display:inline-flex;gap:6px;align-items:center;background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 14px;font-size:.85rem;font-weight:600;box-shadow:0 2px 10px rgba(0,0,0,.1)}
.main-img .zoom-hint svg{width:16px;height:16px}
.img-count{position:absolute;left:12px;bottom:12px;z-index:2;background:rgba(0,0,0,.55);color:#fff;border-radius:999px;padding:4px 10px;font-size:.8rem}
.dims-svg{width:80%;height:auto;color:var(--ink)}
.dims-svg text{font:600 11px var(--font-body);fill:currentColor}

/* ---------- Købsboks ---------- */
.buy h1{font-size:clamp(1.9rem,1.4rem + 1.6vw,2.6rem)}
.maker{font-size:.92rem;color:var(--muted);margin:0 0 8px}
.rating-link{display:inline-flex;gap:8px;align-items:center;margin-top:10px;color:var(--ink);font-size:.95rem;text-underline-offset:3px}
.benefits{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:8px}
.benefits li{display:flex;gap:10px}
.benefits svg{width:20px;height:20px;flex:none;color:var(--star);margin-top:2px}
.price-box{display:flex;align-items:baseline;gap:6px 12px;flex-wrap:wrap;margin:22px 0 4px}
.price-box .price{font-size:2rem;font-weight:700}
.price-box .before{font-size:.85rem;color:var(--muted)}
.price-box small{color:var(--muted);font-size:.88rem}
.opt{margin:22px 0 0;border:0;padding:0;min-width:0}
.opt legend{font-weight:600;margin-bottom:10px;padding:0}
.opt legend span{font-weight:400;color:var(--muted)}
.pers{display:grid;gap:16px;margin:22px 0 0}
.pers .fld input,.pers .fld select{min-height:48px}
.pers .hint{margin:0;font-size:.88rem;color:var(--muted)}
html:not(.js) .pers [data-pers-figure][hidden],html:not(.js) .pers [data-pers-need][hidden],html:not(.js) .pers [data-pers-place][hidden]{display:grid}
.pers fieldset.pick{border:0;margin:0;padding:0;min-width:0}
.pers .pick legend{font-weight:600;margin-bottom:10px;padding:0}
.pers .pick legend span{font-weight:400;color:var(--muted)}
.pers .pick .hint{margin:-4px 0 4px}
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pick-fig .tiles{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}
.tile{position:relative;display:grid;gap:4px;justify-items:center;align-content:start;min-height:44px;padding:6px;border:2px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;font-size:.85rem;text-align:center}
.tile img{display:block;width:100%;height:auto;border-radius:6px}
.pick-fig .tile{padding:4px}
.pick-fig .tile img{aspect-ratio:1;object-fit:contain}
.tile:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.tile:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
.pick.invalid .tile,.pick.invalid .seg-opt>span{border-color:var(--sale)}
.seg-opt.off{opacity:.45}
.seg-opt.off>span{cursor:not-allowed}
.check.addon{min-height:48px;padding:10px 14px;border:2px solid var(--line);border-radius:12px;background:var(--surface);font-size:.95rem}
.check.addon:has(input:checked){border-color:var(--ink)}
.check.addon small{margin-left:auto;color:var(--muted)}
.trust-mini .no-return{font-weight:600}
.swatches{display:flex;gap:10px;flex-wrap:wrap}
.sw{position:relative;display:block;width:48px;height:48px;border-radius:50%;border:2px solid var(--line);padding:3px;background:var(--surface);cursor:pointer}
.sw i{display:block;width:100%;height:100%;border-radius:50%;border:1px solid rgba(0,0,0,.12)}
.sw:has(input:checked){border-color:var(--ink)}
.sw:has(input:focus-visible),.seg-opt:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
.sw.out i{opacity:.45}
.sw.out::after{content:"";position:absolute;left:6px;right:6px;top:50%;height:2px;background:var(--ink);transform:rotate(-45deg)}
.seg{display:flex;gap:10px;flex-wrap:wrap}
.seg-opt>span{display:block;min-height:48px;padding:6px 18px;border-radius:12px;border:2px solid var(--line);background:var(--surface);cursor:pointer;font-weight:500}
.seg-opt small{display:block;color:var(--muted);font-size:.8rem;font-weight:400}
.seg-opt:has(input:checked)>span{border-color:var(--ink)}
.dims-quick{margin-top:18px;display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--tint);border-radius:12px;padding:12px 16px;font-size:.92rem;flex-wrap:wrap}
.dims-quick b{font-variant-numeric:tabular-nums}
.dims-quick a{font-weight:600;text-underline-offset:3px;white-space:nowrap}
.stock{display:grid;gap:6px;margin-top:20px;font-size:.95rem}
.stock>div{display:flex;gap:10px;align-items:flex-start}
.stock>div[hidden]{display:none}
.stock svg{width:20px;height:20px;flex:none;margin-top:2px}
.stock .ok svg{color:var(--star)}
.stock .warn svg,.stock .warn b{color:var(--sale)}
/* Er rækken for smal til antal, knap og hjerte på én linje (mobil og smal tablet), får knappen sin egen
   linje i fuld bredde, så »Læg i kurv«/»Lagt i kurven« aldrig brydes. */
.buy-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;container-type:inline-size}
.buy-row[hidden]{display:none}
.qty{display:flex;align-items:center;border:2px solid var(--line);border-radius:999px;flex:none}
.qty button{width:44px;height:48px;border:0;background:none;color:var(--ink);font-size:1.3rem;cursor:pointer;border-radius:999px}
.qty input{width:44px;min-height:44px;text-align:center;border:0;background:none;font-weight:700;font-variant-numeric:tabular-nums;-moz-appearance:textfield;appearance:textfield}
.qty input::-webkit-inner-spin-button,.qty input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.buy-row .btn-primary{flex:1;min-height:56px;font-size:1.08rem;white-space:nowrap}
.buy-row .btn-primary.done{background:var(--forest);color:var(--on-forest)}
.buy-row .fav-lg{width:56px;height:56px;flex:none;border-radius:50%;border:2px solid var(--line);background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:transform .15s}
.buy-row .fav-lg svg{width:22px;height:22px}
@container (max-width:400px){
  .buy-row .btn-primary{order:3;flex-basis:100%}
  .buy-row .fav-lg{margin-left:auto}
}
.notify{margin-top:20px;background:var(--tint);border-radius:12px;padding:16px;display:grid;gap:10px}
.notify[hidden]{display:none}
.notify p{margin:0}
.notify .field-row input{border:2px solid var(--line);min-height:48px}
.notify .btn{min-height:48px}
.trust-mini{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;font-size:.9rem}
.trust-mini li{display:flex;gap:8px;align-items:flex-start}
.trust-mini svg{width:20px;height:20px;flex:none;color:var(--forest)}
:root[data-theme="dark"] .trust-mini svg{color:var(--sun)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .trust-mini svg{color:var(--sun)}}
.ask-link{display:inline-flex;gap:8px;margin-top:16px;font-weight:600;text-underline-offset:3px}

/* ---------- Beskrivelse og specifikationer ---------- */
.desc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}
.desc h2{margin-bottom:14px}
.desc h3{font-family:var(--font-body);font-weight:700;font-size:1.05rem;margin:22px 0 6px}
.desc p{margin:0 0 10px;max-width:60ch}
.desc ul{margin:0 0 10px;padding-left:20px;max-width:60ch}
.pfaq{margin:0;max-width:60ch}
.pfaq dt{font-weight:600;margin:14px 0 2px}
.pfaq dd{margin:0;color:var(--muted)}
.specs details{border-bottom:1px solid var(--line)}
.specs details:first-of-type{border-top:1px solid var(--line)}
.specs summary{list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:60px;font-weight:600;font-size:1.05rem;cursor:pointer}
.specs summary::-webkit-details-marker{display:none}
.specs summary svg{width:20px;height:20px;transition:transform .2s}
.specs details[open] summary svg{transform:rotate(180deg)}
.specs dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:0;margin:0 0 18px}
.specs dt,.specs dd{margin:0;padding:9px 0;border-top:1px solid var(--line);font-size:.95rem}
.specs dt{color:var(--muted)}
.specs dd{font-variant-numeric:tabular-nums}
.specs .body{padding:0 0 18px;color:var(--ink);font-size:.95rem}
.specs .body p{margin:0 0 8px}

/* ---------- Anmeldelser ---------- */
.rev-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:40px;align-items:start}
.rev-sum{position:sticky;top:150px}
.rev-sum .score{font-family:var(--font-display);font-size:3.6rem;line-height:1}
.rev-sum .stars svg{width:22px;height:22px}
.rev-count{margin:6px 0 0;color:var(--muted)}
.dist{display:grid;gap:4px;margin-top:16px}
.dist button{display:grid;grid-template-columns:44px 1fr 32px;gap:10px;align-items:center;border:0;background:none;color:var(--ink);padding:6px 4px;border-radius:8px;cursor:pointer;font-size:.9rem;text-align:left;min-height:44px}
.dist button:hover:not(:disabled),.dist button[aria-pressed="true"]{background:var(--tint)}
.dist button:disabled{cursor:default;opacity:.6}
.dist .bar{height:8px}
.dist span:last-child{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}
.rev-write{display:inline-block;margin-top:16px;font-weight:600;text-underline-offset:3px}
.rev-list{display:grid;gap:14px}
.js .rev-list:not(.all) .rev-more{display:none}
.rev[hidden]{display:none!important}
.rev{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.rev-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.88rem;color:var(--muted)}
.rev-by{margin-top:10px}
.rev-by b{color:var(--ink)}
.rev h3{font-family:var(--font-body);font-weight:700;font-size:1.02rem;margin:8px 0 4px}
.rev p{margin:8px 0 0}
.verified{display:inline-flex;gap:4px;align-items:center;color:var(--star);font-weight:600}
.verified svg{width:14px;height:14px}
.reply{margin-top:12px;padding:12px 14px;background:var(--tint);border-radius:10px;font-size:.92rem}
.reply b{display:block;margin-bottom:2px}
.filter-note{display:flex;gap:10px;align-items:center;margin-bottom:12px;font-size:.92rem}
.filter-note[hidden]{display:none}
.filter-note button,.rev-more-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 14px;cursor:pointer;min-height:44px;font-weight:600}
.rev-more-btn{margin-top:16px}
.rev-form{margin-top:24px;background:var(--tint);border-radius:var(--radius);padding:0 20px}
.rev-form summary{min-height:56px;display:flex;align-items:center;font-weight:700;cursor:pointer}
.rev-form form{display:grid;gap:10px;padding-bottom:20px}
.rev-form label{font-weight:600;font-size:.92rem}
.rev-form input[type=text],.rev-form input[type=email],.rev-form textarea{width:100%;border:2px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface);color:var(--ink);font:inherit}
.rev-form textarea{min-height:110px;resize:vertical}
.rate{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 16px}
.rate legend{font-weight:600;font-size:.92rem;margin-bottom:6px}
.rate label{font-weight:400;display:inline-flex;gap:6px;align-items:center;min-height:40px}
.rate input{width:20px;height:20px;accent-color:var(--forest)}
.form-note{margin:0;font-size:.85rem;color:var(--muted)}

/* ---------- Spørgsmål og svar ---------- */
.qa-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:40px;align-items:start}
.qa-grid h2{margin-bottom:18px}
.qa{border-top:1px solid var(--line);padding:18px 0}
.qa:last-of-type{border-bottom:1px solid var(--line)}
.qa .q{font-weight:700;display:flex;gap:10px}
.qa .a{margin:8px 0 0 30px;color:var(--ink)}
.qa .a small{display:block;color:var(--muted);margin-top:4px}
.qa .mark{flex:none;width:20px;font-family:var(--font-display);font-size:1.2rem;line-height:1.2;color:var(--forest)}
:root[data-theme="dark"] .qa .mark{color:var(--sun)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .qa .mark{color:var(--sun)}}
.qa-empty{color:var(--muted)}
.ask-box{background:var(--tint);border-radius:var(--radius);padding:22px;display:grid;gap:12px}
.ask-box h3{font-family:var(--font-body);font-weight:700;font-size:1.05rem}
.ask-box label{font-weight:600;font-size:.92rem}
.ask-box textarea,.ask-box input{width:100%;border:2px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface);color:var(--ink);font:inherit}
.ask-box textarea{min-height:96px;resize:vertical}
.ask-box textarea:focus,.ask-box input:focus{outline:none;border-color:var(--forest)}
.ask-box .form-msg{font-size:.88rem;color:var(--muted)}
.ask-box .form-msg.ok{color:var(--star)}
.ask-box .form-msg.err{color:var(--sale)}

/* ---------- Sticky købsbar ---------- */
.sticky-buy{position:fixed;z-index:52;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(0,0,0,.08);transform:translateY(110%);visibility:hidden;transition:transform .25s,visibility .25s;padding:10px var(--gutter-r) calc(env(safe-area-inset-bottom,0px) + 10px) var(--gutter-l)}
.sticky-buy.show{transform:none;visibility:visible}
.sticky-buy .in{max-width:var(--max);margin-inline:auto;display:flex;gap:16px;align-items:center}
.sticky-buy .sb-img img,.sticky-buy .sb-img .ph{display:grid;width:52px;height:52px;border-radius:8px;object-fit:cover}
.sticky-buy .sb-img .ph svg{width:60%}
.sticky-buy .nm{min-width:0;flex:1}
.sticky-buy .nm b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sticky-buy .nm span{font-size:.88rem;color:var(--muted)}
.sticky-buy .btn{min-height:48px;flex:none}

/* ---------- Lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(10,20,16,.92);display:grid;grid-template-rows:auto 1fr auto;gap:10px;padding:calc(env(safe-area-inset-top,0px) + 12px) max(12px, env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 12px) max(12px, env(safe-area-inset-left,0px));color:#fff}
.lightbox[hidden]{display:none}
.lb-top{display:flex;justify-content:space-between;align-items:center}
.lb-stage{overflow:hidden;display:grid;place-items:center;min-height:0}
.lb-img{width:min(calc((100vh - 160px) * .8),92vw);max-width:100%;aspect-ratio:4/5;max-height:100%;border-radius:12px;overflow:hidden;cursor:zoom-in;transition:transform .25s}
.lb-img.zoomed{cursor:zoom-out;transform:scale(2.2)}
.lb-img img,.lb-img video,.lb-img .ph{display:grid;width:100%;height:100%;object-fit:cover}
.lb-img .dims-ph{background:var(--surface)}
.lb-nav{display:flex;justify-content:center;gap:12px;align-items:center}
.lb-btn{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff;cursor:pointer;display:grid;place-items:center}
.lb-btn svg{width:22px;height:22px}

.rel .products{grid-template-columns:repeat(4,1fr)}

@media (max-width:1080px){
  .pdp{gap:32px}
  .gallery{grid-template-columns:minmax(0,1fr);position:static}
  .thumbs{flex-direction:row;overflow-x:auto;order:2}
  .thumbs li{flex:none;width:72px}
  .rev-grid,.qa-grid,.desc-grid{grid-template-columns:minmax(0,1fr)}
  .rev-sum{position:static}
  .rel .products{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
  .pdp{grid-template-columns:minmax(0,1fr);padding-top:4px}
  .crumbs{padding-top:12px}
  .sticky-buy{bottom:calc(64px + env(safe-area-inset-bottom,0px));padding-bottom:10px;z-index:54}
  .sticky-buy .sb-img{display:none}
}
@media (max-width:520px){
  .trust-mini{grid-template-columns:1fr}
  .sticky-buy .nm span{display:none}
}
.gallery>*,.pdp>*,.rev-grid>*,.qa-grid>*,.desc-grid>*{min-width:0}
