/* Scoped Shop styling; product configurators and Alani are untouched. */
.acr-shop-main { width: min(1500px, calc(100% - 64px)); max-width: 1500px; margin: 0 auto; padding-block: 1rem 3rem; }
.acr-shop { color: #202428; font-family: Arial, sans-serif; }
.acr-shop-heading h1 { font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.15; letter-spacing: -.04em; margin: .3rem 0 .5rem; color: #000; }
.acr-shop-heading p { margin: 0; max-width: 740px; }
.acr-shop-preview { border-left: 3px solid #14c0df; border-radius: 0 10px 10px 0; background: #f1fafc; padding: .65rem .9rem; font-size: .8rem; margin: .75rem 0; }
.acr-shop input:not([type=checkbox]), .acr-shop select { border: 1px solid #b5bfc4; border-radius: 10px; background: #fff; color: #202428; min-height: 44px; padding: .6rem; font: inherit; max-width: 100%; }
.acr-shop .acr-shop-button { display: inline-flex; justify-content: center; align-items: center; gap: .75rem; background: #14c0df; border: 1px solid #14c0df; color: #000; border-radius: 12px; min-height: 44px; padding: .65rem 1rem; font: 700 .9rem/1.25 Arial, sans-serif; text-decoration: none; cursor: pointer; }
.acr-shop .acr-shop-button:hover { background: #000; color: #fff; border-color: #000; }
.acr-shop :is(a, button, input, select, summary):focus-visible { outline: 3px solid #000; outline-offset: 3px; }
.acr-shop-quick { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin: .65rem 0 .8rem; }
.acr-shop-quick > span { font-size: .85rem; font-weight: 700; margin-right: .4rem; }
.acr-shop-primary-sizes, .acr-shop-more-sizes > div { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.acr-shop-quick a, .acr-shop-more-sizes summary { display: inline-flex; align-items: center; justify-content: center; padding: .55rem .8rem; border: 1px solid #d4dfe3; border-radius: 14px; background: #fff; font-weight: 700; font-size: .8rem; text-decoration: none; min-height: 40px; cursor: pointer; }
.acr-shop-quick a:hover, .acr-shop-quick a[aria-current] { background: #e9fafd; border-color: #14c0df; }
.acr-shop-more-sizes { position: relative; }
.acr-shop-more-sizes summary { list-style: none; gap: .5rem; }
.acr-shop-more-sizes summary::-webkit-details-marker { display: none; }
.acr-shop-more-sizes[open] summary { border-color: #14c0df; background: #e9fafd; }
.acr-shop-more-sizes[open] summary span { transform: rotate(45deg); }
.acr-shop-more-sizes > div { position: absolute; z-index: 4; top: calc(100% + .4rem); left: 0; width: min(360px, calc(100vw - 2rem)); padding: .6rem; border: 1px solid #cbd9dd; border-radius: 16px; background: #fff; box-shadow: 0 12px 30px #172b3322; }
.acr-shop-quick .acr-accessories-jump { margin-left: auto; border-color: rgba(20, 192, 223, .52); background: #eafaff; color: #092a31; font-weight: 800; }
.acr-shop-quick .acr-accessories-jump:hover, .acr-shop-quick .acr-accessories-jump:focus-visible { background: #14c0df; border-color: #14c0df; color: #000; }
.acr-shop-layout { display: grid; grid-template-columns: 224px minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.acr-shop-mobile-actions { display: none; }
.acr-shop-filters { border: 1px solid #dce1e3; border-radius: 22px; background: #f8f7f3; overflow: hidden; box-shadow: 0 8px 24px #172b330c; }
.acr-shop-filters summary { cursor: pointer; padding: .85rem 1rem; font-weight: 700; min-height: 48px; }
.acr-shop-filters summary span { float: right; }
.acr-shop-filters form { padding: .9rem; }
.acr-shop-filters h2 { font: 700 1rem Arial, sans-serif; margin: 0 0 1rem; }
.acr-shop fieldset { border: 0; border-top: 1px solid #e5eaec; margin: 0 0 1rem; padding: .55rem 0 0; min-width: 0; }
.acr-shop legend { font-size: .85rem; font-weight: 700; padding-right: .5rem; }
.acr-filter-choice { display: flex; align-items: center; gap: .5rem; font-size: .85rem; min-height: 36px; cursor: pointer; }
.acr-filter-choice input { width: 17px; height: 17px; accent-color: #067b90; flex: 0 0 auto; }
.acr-filter-price { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.acr-filter-price label { font-size: .75rem; min-width: 0; }
.acr-filter-price input { width: 100%; margin-top: .3rem; }
.acr-filter-actions { display: flex; flex-direction: column; gap: .8rem; text-align: center; font-size: .85rem; }
.acr-filter-empty { color: #606970; font-size: .8rem; }
.acr-shop-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .7rem; margin-bottom: .75rem; }
.acr-shop-toolbar h2 { margin: 0; font: 700 1rem Arial, sans-serif; }
.acr-shop-sort { display: flex; align-items: center; gap: .5rem; font-size: .8rem; }
.acr-shop-sort select { width: 175px; }
.acr-shop-sort button { min-height: 44px; border: 1px solid #b5bfc4; background: #fff; border-radius: 10px; padding: .5rem; cursor: pointer; color: #000; }
.acr-active-filters { display: flex; flex-wrap: wrap; list-style: none; gap: .5rem; padding: 0; margin: 0 0 1rem; }
.acr-active-filters:empty { display: none; }
.acr-active-filters a { display: inline-flex; gap: .6rem; align-items: center; min-height: 40px; border-radius: 999px; background: #e9fafd; padding: .4rem .75rem; font-size: .8rem; text-decoration: none; }
.acr-shop-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
.acr-range-card { position: relative; display: flex; flex-direction: column; min-width: 0; border: 1px solid #dce1e3; border-radius: 22px; overflow: hidden; background: #fff; box-shadow: 0 8px 22px #172b330d; }
.acr-range-card:hover { border-color: #8ba5ae; }
.acr-range-image { display: grid; place-items: center; aspect-ratio: 16 / 8.5; background: linear-gradient(145deg, #f8f7f3, #eaf9fc); padding: .2rem; }
.acr-range-image img { width: 82%; height: 90%; max-height: 180px; object-fit: contain; }
.acr-range-body { display: flex; flex: 1; flex-direction: column; padding: .75rem .8rem .8rem; }
.acr-range-brand { text-transform: uppercase; font-size: .65rem; font-weight: 700; letter-spacing: .08em; margin: 0 0 .35rem; color: #4d6067; }
.acr-range-body h2 { font: 800 1rem/1.23 Arial, sans-serif; margin: 0 0 .35rem; color: #000; }
.acr-range-body h2 a { text-decoration: none; }
.acr-range-type, .acr-range-sizes { font-size: .74rem; line-height: 1.4; margin: 0 0 .35rem; }
.acr-range-sizes { color: #4d6067; }
.acr-range-sizes-compact, .acr-shop-cta-compact { display: none; }
.acr-range-bottom { margin-top: auto; }
.acr-range-price { margin: .5rem 0 .3rem; padding-top: .5rem; border-top: 1px solid #dce8ea; }
.acr-range-price > span { display: block; font-size: .75rem; color: #4d6067; margin-bottom: .25rem; }
.acr-range-price strong { font-size: clamp(1.25rem, 1.5vw, 1.55rem); line-height: 1.1; color: #000; }
.acr-range-stock { font-size: .7rem; line-height: 1.35; margin: .3rem 0 .55rem; }
.acr-range-bottom .acr-shop-button { width: 100%; justify-content: space-between; font-size: .82rem; }
.acr-shop-note { font-size: .8rem; color: #4d6067; margin: 1.3rem 0; }
.acr-shop-empty { padding: 1.5rem; border: 1px solid #dce1e3; border-radius: 22px; background: #f8fbfc; }
.acr-shop-accessories { margin-top: 2rem; padding: clamp(1rem, 2vw, 1.5rem); border-radius: 24px; background: linear-gradient(120deg, #eaf9fc, #f8f7f3); }
.acr-accessories-heading { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.acr-accessories-heading h2 { margin: .25rem 0 .35rem; font: 800 clamp(1.35rem, 2vw, 1.8rem)/1.2 Arial, sans-serif; }
.acr-accessories-heading p { max-width: 760px; margin: 0; }
.acr-accessory-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
.acr-accessory-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #d5e2e5; border-radius: 20px; background: #fff; box-shadow: 0 8px 22px #172b330d; }
.acr-accessory-image { display: grid; place-items: center; aspect-ratio: 4 / 3; padding: .5rem; background: #f8f7f3; }
.acr-accessory-image img { width: 100%; height: 100%; max-height: 160px; object-fit: contain; }
.acr-accessory-body { display: flex; flex: 1; flex-direction: column; padding: .85rem; }
.acr-draft-label { align-self: flex-start; margin-bottom: .4rem; padding: .2rem .4rem; border-radius: 999px; background: #f2f4f4; color: #566268; font-size: .62rem; font-weight: 800; }
.acr-accessory-card h3 { margin: 0 0 .4rem; font: 800 1rem/1.3 Arial, sans-serif; }
.acr-accessory-card h3 a { text-decoration: none; }
.acr-accessory-card p { margin: 0; color: #4d5a60; font-size: .75rem; line-height: 1.45; }
.acr-accessory-bottom { margin-top: auto; padding-top: .7rem; }
.acr-accessory-price { padding-top: .55rem; border-top: 1px solid #dce8ea; }
.acr-accessory-price > span { display: block; font-size: .7rem; }
.acr-accessory-price strong { display: block; margin-top: .15rem; color: #000; font-size: 1.4rem; line-height: 1.1; }
.acr-accessory-bottom .acr-shop-button { width: 100%; justify-content: space-between; margin-top: .65rem; }
@media (min-width: 901px) { .acr-shop-filters[open] > summary { display: none; } }
@media (max-width: 1280px) and (min-width: 901px) { .acr-shop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1100px) { .acr-accessory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) {
    .acr-shop-main { width: calc(100% - 2rem); }
    .acr-shop-main { padding-block: 1rem 2.5rem; }
    .acr-shop-layout { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .acr-shop-filters > summary { background: #effbfe; }
    .acr-shop-filters form { max-width: 600px; }
    .acr-shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .acr-shop-quick > span { width: 100%; }
    .acr-filter-choice { min-height: 44px; }
	.acr-shop-mobile-actions { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .55rem; align-items: center; margin: .7rem 0; }
	.acr-shop-mobile-actions > p, .acr-shop-sort-mobile > br { display: none; }
	.acr-shop-filter-trigger { display: none; align-items: center; justify-content: space-between; gap: .6rem; min-width: 96px; min-height: 44px; padding: .55rem .75rem; border: 1px solid #14c0df; border-radius: 10px; background: #effbfe; color: #000; font: 800 .82rem/1.2 Arial, sans-serif; }
	.acr-shop-js .acr-shop-filter-trigger { display: inline-flex; }
	.acr-shop-js .acr-shop-filters > summary { display: none; }
	.acr-shop-sort-mobile { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .4rem; }
	.acr-shop-sort-mobile label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.acr-shop-sort-mobile select { width: 100%; }
	.acr-shop-sort-desktop { display: none; }
	.acr-shop-toolbar { margin-bottom: .55rem; }
}
@media (max-width: 540px) {
	.acr-shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
	.acr-shop-main { width: calc(100% - 1.25rem); padding-block: .65rem 2rem; }
	.acr-shop-heading h1 { font-size: 1.7rem; margin-block: .15rem .35rem; }
	.acr-shop-heading > p:last-child { font-size: .84rem; line-height: 1.45; }
	.acr-shop-quick { gap: .4rem; margin-block: .55rem .6rem; }
	.acr-shop-primary-sizes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; gap: .4rem; }
	.acr-shop-primary-sizes a { width: 100%; min-height: 44px; padding: .45rem .35rem; font-size: .73rem; }
	.acr-shop-more-sizes { flex: 1 1 auto; }
	.acr-shop-more-sizes summary { min-height: 44px; }
	.acr-shop-more-sizes > div { position: static; margin-top: .4rem; }
    .acr-shop-quick .acr-accessories-jump { margin-left: 0; }
    .acr-shop-toolbar { align-items: flex-start; }
	.acr-shop-sort-mobile { min-width: 0; }
	.acr-shop-sort-mobile select { min-width: 0; font-size: .78rem; }
	.acr-shop-sort-mobile button { padding-inline: .55rem; font-size: .78rem; }
	.acr-range-card { border-radius: 16px; }
	.acr-range-image { aspect-ratio: 4 / 3; padding: .15rem; }
	.acr-range-image img { width: 86%; height: 88%; max-height: 132px; object-fit: contain; }
	.acr-range-body { padding: .55rem .55rem .6rem; }
	.acr-range-brand { margin-bottom: .25rem; font-size: .56rem; }
	.acr-range-body h2 { margin-bottom: .28rem; font-size: .84rem; line-height: 1.22; }
	.acr-range-type, .acr-range-sizes { margin-bottom: .28rem; font-size: .66rem; line-height: 1.35; }
	.acr-range-sizes-full, .acr-shop-cta-full { display: none; }
	.acr-range-sizes-compact, .acr-shop-cta-compact { display: inline; }
	.acr-range-price { margin-top: .38rem; padding-top: .4rem; }
	.acr-range-price > span { margin-bottom: .18rem; font-size: .65rem; }
	.acr-range-price strong { font-size: 1.02rem; }
	.acr-range-stock { min-height: 2.7em; margin: .25rem 0 .42rem; font-size: .62rem; line-height: 1.35; }
	.acr-range-bottom .acr-shop-button { justify-content: space-between; min-height: 44px; padding: .5rem .58rem; gap: .35rem; font-size: .74rem; white-space: nowrap; }
	.acr-shop-accessories { margin-top: 1.25rem; }
	.acr-accessory-grid { grid-template-columns: minmax(0, 1fr); }
	.acr-accessory-card { display: grid; grid-template-columns: 112px minmax(0, 1fr); grid-template-areas: "image body"; align-items: stretch; }
	.acr-accessory-image { grid-area: image; aspect-ratio: auto; min-height: 150px; }
	.acr-accessory-body { grid-area: body; min-width: 0; }
}
@media (max-width: 359px) {
	.acr-shop-grid { grid-template-columns: minmax(0, 1fr); }
	.acr-range-image { aspect-ratio: 16 / 8.2; }
	.acr-range-image img { width: 82%; height: 92%; max-height: 180px; }
}

/* Compact discovery links, independent of residential filters and card layout. */
.acr-shop-specialist { margin-block: .75rem 1rem; }
.acr-shop-specialist h2 { margin: 0 0 .5rem; font-size: 1rem; line-height: 1.3; }
.acr-shop-specialist > div { display: flex; flex-wrap: wrap; gap: .5rem; }
.acr-shop-specialist a { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem .75rem; border: 1px solid #d6e4e7; border-radius: .35rem; color: #000; background: #fff; font-size: .875rem; line-height: 1.3; text-decoration: none; }
.acr-shop-specialist a:hover { background: #14c0df; border-color: #14c0df; }
.acr-shop-specialist a:focus-visible { outline: 2px solid #000; outline-offset: 3px; }
