/* Shared controls, transparent product compositions and customer reviews. */
.choice { position:relative; width:100%; }
.choice-native { display:none !important; }
.choice-trigger { width:100%; min-height:62px; padding:13px 16px; display:flex; align-items:center; gap:13px; text-align:left; background:var(--bg-card-subtle); color:var(--text-primary); border:1px solid var(--border-card); border-radius:14px; box-shadow:inset 0 1px 0 #ffffff07; cursor:pointer; transition:border-color .2s, box-shadow .2s; }
.choice-trigger:hover { border-color:var(--border-highlight); }
.choice-trigger[aria-expanded="true"], .choice-trigger:focus-visible { outline:none; border-color:var(--linkeo-cyan); box-shadow:0 0 0 3px #229cff18; }
.choice-trigger[aria-readonly="true"] { cursor:default; }
.choice-trigger:disabled { opacity:.6; }
.choice-icon { width:34px; height:34px; flex-shrink:0; border-radius:10px; border:1px solid var(--border-subtle); display:grid; place-items:center; font-size:17px; background:var(--bg-pill); }
.swatch-black { background:linear-gradient(135deg,#4a4a50,#111114); }
.swatch-blue { background:linear-gradient(135deg,#297afb 60%,#fff 61%); }
.swatch-white { background:linear-gradient(135deg,#fff,#ccd3da); }
.swatch-multi { background:conic-gradient(#4285f4 0 25%,#34a853 25% 50%,#fbbc05 50% 75%,#ea4335 75%); }
.choice-text { min-width:0; flex:1; display:grid; gap:3px; }
.choice-text strong { font-size:13.5px; font-weight:700; line-height:1.4; color:var(--text-primary-pure); }
.choice-text small { font-size:11px; line-height:1.35; color:var(--text-muted); }
.choice-chevron { color:var(--text-muted); font-size:18px; }
.choice-list { position:absolute; top:calc(100% + 8px); left:0; right:0; max-height:285px; overflow-y:auto; overscroll-behavior:contain; z-index:60; padding:6px; border:1px solid var(--border-highlight); border-radius:16px; background:var(--bg-surface); box-shadow:0 20px 45px #0005; transform-origin:top; animation:choice-in .18s var(--ease-spring); }
.choice-list[hidden] { display:none; }
.choice-option { display:flex; gap:12px; align-items:center; padding:12px 10px; border-radius:10px; cursor:pointer; }
.choice-option:hover, .choice-option.is-active { background:var(--bg-pill); }
.choice-option[aria-selected="true"] { background:#229cff12; }
.choice-option[aria-disabled="true"] { opacity:.5; cursor:not-allowed; }
.choice-check { color:var(--linkeo-cyan); width:18px; }
@keyframes choice-in { from { opacity:0; transform:translateY(-6px) scale(.98); } to { opacity:1; transform:none; } }
.product-visual > img, .model-art-img, .img-3d { filter:drop-shadow(0 18px 22px #0004); }
.pack-render { width:100%; height:100%; min-height:120px; position:relative; display:block; }
.pack-render img { position:absolute; width:60%; height:90%; object-fit:contain; filter:drop-shadow(0 10px 10px #0004); }
.pack-render img:first-child { left:1%; top:0; transform:rotate(-7deg); }
.pack-render img:last-child { right:0; bottom:0; transform:rotate(7deg); }
.pack-render.pack-three img { width:48%; }
.pack-render.pack-three img:first-child { left:26%; top:0; height:87%; transform:none; }
.pack-render.pack-three img:nth-child(2) { left:0; bottom:0; height:65%; transform:rotate(-9deg); }
.pack-render.pack-three img:last-child { right:0; bottom:0; height:72%; transform:rotate(8deg); }
.product-visual > .pack-render { aspect-ratio:1/1; height:auto; margin-block:18px; }
.preview-img-container .pack-render { min-height:90px; }
.preview-img-container img[hidden] { display:none; }
.reviews-section .product-fine { font-size:12px; line-height:1.6; color:var(--text-muted); }
.reviews-section { padding:90px 0; border-top:1px solid var(--border-subtle); background:var(--bg-surface); }
.reviews-container { width:min(1180px,calc(100% - 64px)); margin:auto; }
.reviews-heading { display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px; margin-bottom:38px; }
.reviews-kicker { font-size:11px; font-weight:800; letter-spacing:.16em; color:var(--linkeo-cyan); display:block; margin-bottom:8px; }
.reviews-heading h2 { font-size:clamp(32px,4vw,52px); line-height:1.05; letter-spacing:-.04em; text-align:center; }
.reviews-heading h2 em { font-family:'Instrument Serif',serif; font-weight:400; }
.reviews-heading p { max-width:580px; margin:0 auto; text-align:center; color:var(--text-muted); font-size:15px; line-height:1.6; }
.reviews-layout { display:flex; flex-direction:column; gap:36px; max-width:760px; margin:0 auto; width:100%; }
.reviews-empty { padding:32px 24px; border:1px solid var(--border-subtle); border-radius:20px; background:var(--bg-card); text-align:center; color:var(--text-muted); font-size:14px; line-height:1.8; }
.reviews-empty strong { color:var(--text-primary); display:block; margin-bottom:8px; font-size:20px; }
.review-entry { padding:22px 0; border-bottom:1px solid var(--border-subtle); display:flex; flex-direction:column; gap:10px; }
.review-entry:last-child { border-bottom:none; }
.review-entry header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.review-user-col { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.review-author { font-size:15px; font-weight:700; color:var(--text-primary-pure); }
.review-verified { display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:700; color:var(--linkeo-green); background:rgba(16,185,129,0.1); border:1px solid rgba(16,185,129,0.25); padding:2px 8px; border-radius:20px; }
.review-entry time { font-size:12px; color:var(--text-muted); }
.review-stars-row { display:flex; align-items:center; gap:8px; }
.review-entry .review-stars { color:var(--linkeo-gold); letter-spacing:.12em; font-size:15px; margin:0; }
.review-score { font-size:12.5px; font-weight:800; color:var(--linkeo-gold); }
.review-comment-text { font-size:14px; line-height:1.65; color:var(--text-primary); margin:0; overflow-wrap:anywhere; }
.review-meta-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:2px; }
.review-prod-pill { font-size:11.5px; font-weight:600; color:var(--linkeo-cyan); background:rgba(7,101,233,0.1); border:1px solid rgba(34,156,255,0.25); padding:3px 10px; border-radius:20px; }
.review-biz-pill { font-size:11.5px; color:var(--text-muted); background:var(--bg-pill); border:1px solid var(--border-subtle); padding:3px 10px; border-radius:20px; }
.review-form { padding:28px; border:1px solid var(--border-card); border-radius:24px; background:var(--bg-card); display:grid; gap:18px; }
.review-form h3 { font-size:23px; letter-spacing:-.03em; }
.review-form .form-group { margin:0; min-width:0; }
.review-form fieldset { border:0; min-width:0; }
.review-form legend { font-size:13px; margin-bottom:10px; }
.rating-options { display:flex; gap:8px; }
.rating-options label { position:relative; cursor:pointer; }
.rating-options input { position:absolute; opacity:0; width:100%; height:100%; cursor:pointer; }
.rating-options span { display:grid; place-items:center; width:44px; height:44px; border-radius:12px; color:var(--text-muted); background:var(--bg-pill); border:1px solid var(--border-subtle); font-size:24px; }
.rating-options label.is-lit span { color:var(--linkeo-gold); background:#f59e0b10; }
.rating-options input:checked + span { border-color:var(--linkeo-gold); }
.rating-options input:focus-visible + span { outline:2px solid var(--linkeo-cyan); outline-offset:3px; }
.rating-caption { font-size:11px; color:var(--text-muted); margin-top:8px; }
.review-private { border-top:1px solid var(--border-subtle); padding-top:18px; display:grid; gap:18px; }
.review-private > p { color:var(--text-muted); font-size:12px; line-height:1.6; }
.review-consent { display:flex; gap:10px; align-items:flex-start; font-size:11px; color:var(--text-muted); line-height:1.65; }
.review-consent input { margin-top:3px; accent-color:var(--linkeo-blue); flex-shrink:0; width:16px; height:16px; }
.review-form button[type="submit"]:disabled { opacity:.55; cursor:wait; }
.review-status { font-size:13px; line-height:1.7; color:var(--text-muted); }
.review-status[data-state="error"] { color:#e37979; }
.review-status[data-state="success"] { color:var(--linkeo-green); }
.review-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@media(max-width:760px) {
 .reviews-container { width:calc(100% - 36px); }
 .reviews-section { padding:56px 0; }
 .reviews-heading { display:block; }
 .reviews-heading p { margin-top:20px; }
 .reviews-layout { grid-template-columns:1fr; gap:26px; }
 .review-form { padding:20px; }
 .choice-list { max-height:240px; }
}
@media(prefers-reduced-motion:reduce) { .choice-list { animation:none; } }
