/* Shared icon geometry, sizing and alignment. No icon fonts or generated glyphs. */
.svg-icon{--icon-size:18px;display:inline-block;width:var(--icon-size);height:var(--icon-size);flex:0 0 auto;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;overflow:visible;pointer-events:none}
.svg-icon.is-filled{fill:currentColor}
.header-actions .svg-icon{--icon-size:22px}
.heart-btn{display:grid;place-items:center;padding:0}
.heart-btn .svg-icon{--icon-size:18px}
.btn>.svg-icon,.btn>span>.svg-icon,.text-link>.svg-icon,.text-link>span>.svg-icon{--icon-size:17px}
.btn>span:has(>.svg-icon),.text-link>span:has(>.svg-icon){display:inline-flex;align-items:center;justify-content:center}
.compare-btn{display:inline-flex;align-items:center;gap:5px}
.compare-btn .svg-icon{--icon-size:12px}
.qty button{display:grid;place-items:center}
.qty .svg-icon{--icon-size:14px}
.close .svg-icon{--icon-size:19px}
.round-link>span{display:flex;align-items:center;justify-content:center}
.round-link .svg-icon{--icon-size:32px}
.tile-arrow .svg-icon{--icon-size:22px}
.ticker-inner{align-items:center}
.ticker i{display:inline-flex;align-items:center}
.ticker .svg-icon{--icon-size:20px}
.value>span{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.value .svg-icon{--icon-size:32px}
.rating-icons{display:inline-flex;align-items:center;gap:3px;line-height:1}
.rating-icons .svg-icon{--icon-size:12px;stroke-width:1.5}
.testimonials .rating-icons{gap:5px}
.testimonials .rating-icons .svg-icon{--icon-size:14px}
.empty>span{display:flex;align-items:center;justify-content:center}
.empty>span>.svg-icon{--icon-size:52px}
.success>span:first-child>.svg-icon{--icon-size:31px}
.breadcrumbs>.svg-icon{--icon-size:10px;color:var(--muted)}
summary>.svg-icon{--icon-size:18px;align-self:center}
.icon-vertical{transform-origin:12px 12px;transition:transform .25s}
details[open]>summary .icon-vertical{transform:scaleY(0)}
#mobileNav>button .svg-icon{margin-left:7px;--icon-size:16px}
.footer-bottom a>.svg-icon{--icon-size:12px;margin-left:3px}
select{appearance:none;-webkit-appearance:none;background-image:url('icons/chevron-down.svg');background-repeat:no-repeat;background-position:right 10px center;background-size:14px 14px}
.field select,.filter-select{padding-right:32px;background-image:url('icons/chevron-down.svg');background-repeat:no-repeat;background-position:right 10px center;background-size:14px 14px}
@media(max-width:800px){.value .svg-icon{--icon-size:26px}.round-link .svg-icon{--icon-size:28px}.hero-bottom .rating-icons{gap:2px}.hero-bottom .rating-icons .svg-icon{--icon-size:10px}}
@media(max-width:550px){.header-actions .svg-icon{--icon-size:21px}.round-link .svg-icon{--icon-size:23px}.tile-arrow .svg-icon{--icon-size:19px}.value .svg-icon{--icon-size:30px}.quick-add .svg-icon{--icon-size:14px}}
@media(prefers-reduced-motion:reduce){.icon-vertical{transition:none}}
