:root {
    --bs-ink: #111820;
    --bs-steel: #26313a;
    --bs-steel-2: #1a2229;
    --bs-paper: #f2f3f1;
    --bs-white: #ffffff;
    --bs-cyan: #00a9e8;
    --bs-signal: #ff6b2c;
    --bs-line: rgba(255, 255, 255, .2);
    --bs-shell: min(100% - 48px, 1360px);
    --bs-display: Impact, Haettenschweiler, "Arial Narrow", sans-serif;
    --bs-body: Inter, "Helvetica Neue", Arial, sans-serif;
    color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--bs-paper);
    color: var(--bs-ink);
    font-family: var(--bs-body);
    font-size: 16px;
    line-height: 1.55;
    overflow-x: hidden;
}

body img { max-width: 100%; }

body a { color: inherit; }

body button, body input, body select { font: inherit; }

.skip-link {
    position: fixed;
    z-index: 1000;
    top: 10px;
    left: 10px;
    padding: 10px 14px;
    background: #fff;
    color: var(--bs-ink);
    transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

.bs-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.bs-kicker {
    margin: 0 0 12px;
    color: var(--bs-cyan);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.bs-button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 12px 20px;
    border: 1px solid currentColor;
    border-radius: 0;
    font-size: .9rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}

.bs-button:hover { transform: translateY(-2px); }
.bs-button:focus-visible { outline: 3px solid var(--bs-cyan); outline-offset: 3px; }
.bs-button-signal { border-color: var(--bs-signal); background: var(--bs-signal); color: #fff; }
.bs-button-signal:hover { background: #e8531a; border-color: #e8531a; }
.bs-button-outline { border-color: var(--bs-ink); color: var(--bs-ink); }
.bs-button-outline:hover { background: var(--bs-ink); color: #fff; }
.bs-button-outline-light { border-color: #fff; color: #fff; }
.bs-button-outline-light:hover { background: #fff; color: var(--bs-ink); }
.bs-button-cyan { border-color: var(--bs-cyan); background: var(--bs-cyan); color: #051219; }

/* Header */
.bs-header {
    position: relative;
    z-index: 100;
    display: grid;
    width: 100%;
    min-height: 72px;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 28px;
    padding: 10px 28px;
    border-bottom: 1px solid rgba(0, 169, 232, .45);
    background: var(--bs-ink);
    color: #fff;
}

.bs-header a, .bs-header summary {
    font-size: .82rem;
    font-weight: 700;
    text-decoration: none;
}

.bs-header-left, .bs-header-right, .bs-header-pages {
    display: flex;
    align-items: center;
    gap: 24px;
}

.bs-header-right { justify-content: flex-end; }
.bs-header-pages { gap: 20px; }
.bs-header a:hover, .bs-header summary:hover { color: var(--bs-cyan); }

.bs-brand { display: flex; width: clamp(148px, 15vw, 220px); justify-content: center; }
.bs-brand img { display: block; width: 100%; height: 50px; object-fit: contain; }

.bs-nav-menu, .bs-language-menu { position: relative; }
.bs-nav-menu summary, .bs-language-menu summary { cursor: pointer; list-style: none; }
.bs-nav-menu summary::-webkit-details-marker, .bs-language-menu summary::-webkit-details-marker { display: none; }
.bs-nav-menu summary::after, .bs-language-menu summary::after { content: ""; display: inline-block; width: 7px; height: 7px; margin-left: 8px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.bs-nav-menu[open] summary::after, .bs-language-menu[open] summary::after { transform: rotate(225deg) translate(-2px, -1px); }

.bs-nav-menu-panel, .bs-language-panel {
    position: absolute;
    top: calc(100% + 22px);
    min-width: 220px;
    padding: 12px;
    border: 1px solid rgba(255,255,255,.12);
    background: var(--bs-steel-2);
    box-shadow: 0 20px 45px rgba(0,0,0,.28);
}

.bs-nav-menu-panel { left: -12px; }
.bs-language-panel { right: 0; min-width: 160px; }
.bs-nav-menu-panel a, .bs-language-panel a { display: block; padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,.08); }
.bs-nav-menu-panel a:last-child, .bs-language-panel a:last-child { border-bottom: 0; }
.bs-language-panel a[aria-current="page"] { color: var(--bs-cyan); }

.bs-commerce-actions .commerce-header-actions { display: flex; align-items: center; gap: 6px; }
.bs-commerce-actions .commerce-header-button { width: 34px; height: 34px; padding: 7px; color: #fff; }
.bs-commerce-actions .commerce-header-button span { display: none; }
.bs-commerce-actions svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.bs-mobile-toggle { display: none; }

/* Hero */
.bs-hero {
    position: relative;
    min-height: 620px;
    height: min(760px, calc(100vh - 72px));
    overflow: hidden;
    background: var(--bs-ink);
    color: #fff;
}

.bs-hero-track, .bs-hero-slide { position: absolute; inset: 0; }

.bs-hero-slide {
    visibility: hidden;
    opacity: 0;
    transition: opacity .55s ease, visibility .55s step-end;
}

.bs-hero-slide.is-active { visibility: visible; opacity: 1; transition: opacity .55s ease; }
.bs-hero-slide > img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.bs-hero-shade { position: absolute; inset: 0; background: rgba(8, 14, 18, .34); }
.bs-hero-copy {
    position: absolute;
    left: max(6vw, 36px);
    top: 50%;
    width: min(650px, 52vw);
    transform: translateY(-50%);
    text-shadow: 0 2px 18px rgba(0,0,0,.45);
}

.bs-hero-copy h1, .bs-band-copy h2, .bs-workflow h2, .bs-support h2, .bs-catalog-hero h1 {
    margin: 0;
    font-family: var(--bs-display);
    font-stretch: condensed;
    font-weight: 900;
    letter-spacing: 0;
    line-height: .95;
    text-transform: uppercase;
}

.bs-hero-copy h1 { max-width: 650px; color: #fff; font-size: clamp(3.1rem, 5.1vw, 5.45rem); }
.bs-hero-copy > p:not(.bs-kicker) { max-width: 530px; margin: 22px 0 28px; font-size: clamp(1rem, 1.3vw, 1.18rem); }
.bs-hero-kicker { display: flex; align-items: center; gap: 9px; }
.bs-hero-kicker-icon { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border: 1px solid rgba(255,255,255,.56); border-radius: 50%; background: rgba(9,20,27,.46); }
.bs-hero-kicker-icon img { width: 14px; height: 14px; filter: brightness(0) invert(1); }
.bs-hero-arrow {
    position: absolute;
    z-index: 4;
    top: 50%;
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(255,255,255,.26);
    background: rgba(10,16,21,.78);
    cursor: pointer;
}
.bs-hero-arrow:hover, .bs-hero-arrow:focus-visible { background: var(--bs-cyan); outline: none; }
.bs-hero-arrow img { width: 26px; filter: invert(1); }
.bs-hero-prev { left: 0; }
.bs-hero-next { right: 0; }

.bs-hero-state {
    position: absolute;
    z-index: 4;
    left: 50%;
    bottom: 24px;
    display: flex;
    gap: clamp(28px, 8vw, 110px);
    transform: translateX(-50%);
}
.bs-hero-state button { padding: 8px 2px; border: 0; background: transparent; color: rgba(255,255,255,.72); font-size: .78rem; font-weight: 900; letter-spacing: 0; text-transform: uppercase; cursor: pointer; }
.bs-hero-state button[aria-selected="true"] { color: var(--bs-cyan); }
.bs-hero-state button:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.bs-hero-progress { position: absolute; z-index: 4; right: 4%; bottom: 10px; left: 4%; height: 1px; background: rgba(255,255,255,.55); }
.bs-hero-progress span { display: block; width: 0; height: 1px; background: var(--bs-cyan); }

/* System rail */
.bs-system { background: var(--bs-steel); color: #fff; }
.bs-system-track { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr) 64px; align-items: stretch; border-bottom: 1px solid rgba(255,255,255,.12); }
.bs-system-rail { position: relative; display: grid; min-height: 174px; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.bs-system-rail::before { content: ""; position: absolute; z-index: 0; top: 108px; right: 10%; left: 10%; height: 2px; background: var(--bs-cyan); }
.bs-system-step { position: relative; z-index: 1; display: flex; min-width: 140px; align-items: center; flex-direction: column; gap: 3px; justify-content: center; padding: 16px 12px 20px; border: 0; border-right: 1px solid rgba(255,255,255,.09); background: transparent; color: #fff; text-align: center; text-transform: uppercase; cursor: pointer; }
.bs-system-number { order: 1; color: rgba(255,255,255,.68); font-size: .7rem; font-weight: 800; }
.bs-system-step strong { order: 2; margin-bottom: 7px; font-family: var(--bs-display); font-size: 1.06rem; letter-spacing: 0; }
.bs-system-icon { position: relative; z-index: 2; display: grid; width: 56px; height: 56px; order: 3; place-items: center; border: 2px solid rgba(255,255,255,.48); border-radius: 50%; background: var(--bs-steel); transition: border-color .2s ease, background-color .2s ease, transform .2s ease; }
.bs-system-icon img { width: 25px; height: 25px; filter: brightness(0) invert(1); opacity: .9; }
.bs-system-step.is-active strong { color: var(--bs-cyan); }
.bs-system-step.is-active .bs-system-icon { border-color: var(--bs-cyan); background: #153949; transform: scale(1.08); }
.bs-system-step.is-active .bs-system-icon img { opacity: 1; }
.bs-system-step:focus-visible { outline: 3px solid var(--bs-cyan); outline-offset: -4px; }
.bs-system-arrow { display: grid; width: 64px; place-items: center; padding: 0; border: 0; background: transparent; color: #fff; cursor: pointer; }
.bs-system-arrow:hover, .bs-system-arrow:focus-visible { background: rgba(0,169,232,.14); outline: none; }
.bs-system-arrow img { width: 23px; filter: brightness(0) invert(1); }
.bs-system-panels { width: var(--bs-shell); margin: 0 auto; }
.bs-system-panel { display: flex; min-height: 58px; align-items: center; justify-content: center; gap: 18px; font-size: .78rem; }
.bs-system-panel[hidden] { display: none !important; }
.bs-system-panel > span { color: rgba(255,255,255,.58); }
.bs-system-panel a { font-weight: 800; text-decoration-color: var(--bs-cyan); text-underline-offset: 4px; }

/* Product bands */
.bs-product-band { --bs-band-shift-x: 0px; --bs-band-shift-y: 0px; --bs-copy-shift-x: 0px; --bs-copy-shift-y: 0px; position: relative; display: grid; min-height: 672px; grid-template-columns: 1fr; grid-template-rows: minmax(clamp(620px, 50vw, 960px), 1fr) auto; overflow: hidden; isolation: isolate; }
.bs-band-light { background: #eef0ef; color: var(--bs-ink); }
.bs-band-dark { background: var(--bs-steel-2); color: #fff; }
.bs-product-band::before { content: ""; position: absolute; z-index: 1; inset: 0 0 52px; pointer-events: none; }
.bs-band-light::before { background: linear-gradient(90deg, rgba(238,240,239,.97) 0%, rgba(238,240,239,.88) 24%, rgba(238,240,239,.52) 43%, rgba(238,240,239,0) 67%); }
.bs-band-dark::before { background: linear-gradient(90deg, rgba(20,27,33,.97) 0%, rgba(20,27,33,.88) 24%, rgba(20,27,33,.52) 43%, rgba(20,27,33,0) 67%); }
.bs-band-light .bs-band-copy h2 { color: var(--bs-ink); }
.bs-band-dark .bs-band-copy h2 { color: #fff; }
.bs-band-copy { position: relative; z-index: 2; display: flex; width: min(48%, 720px); min-width: 560px; grid-row: 1; align-items: flex-start; justify-content: center; flex-direction: column; padding: clamp(42px, 4vw, 66px); background: transparent; transform: translate3d(var(--bs-copy-shift-x), var(--bs-copy-shift-y), 0); transition: transform .3s ease; }
.bs-band-copy > * { position: relative; z-index: 1; }
.bs-band-copy .bs-kicker { position: relative; width: max-content; margin-bottom: 18px; font-size: .86rem; }
.bs-band-copy .bs-kicker::after { content: ""; position: absolute; top: calc(100% + 8px); left: 0; width: 44px; height: 3px; background: var(--bs-cyan); }
.bs-band-copy h2 { max-width: 560px; color: inherit; font-size: clamp(2.45rem, 3.7vw, 4rem); }
.bs-band-copy > p:not(.bs-kicker) { max-width: 520px; margin: 22px 0 28px; color: currentColor; font-size: .98rem; line-height: 1.5; }
.bs-product-band figure { margin: 0; overflow: hidden; }
.bs-product-scene { position: absolute; z-index: 0; inset: 0 0 52px; background: #e8e9e7; }
.bs-product-scene img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: translate3d(var(--bs-band-shift-x), var(--bs-band-shift-y), 0) scale(1.025); transition: transform .55s cubic-bezier(.2,.7,.2,1), filter .55s ease; will-change: transform; }
.bs-product-band:hover .bs-product-scene img { transform: translate3d(var(--bs-band-shift-x), var(--bs-band-shift-y), 0) scale(1.045); filter: saturate(1.03) contrast(1.015); }
.bs-product-band .bs-product-cutout { display: grid; place-items: center; padding: clamp(24px, 4vw, 64px); background: #fff; }
.bs-product-band .bs-product-cutout img { width: min(100%, 720px); height: min(100%, 540px); object-fit: contain; mix-blend-mode: multiply; }
.bs-product-combo { display: grid; grid-template-columns: 1fr 1fr; background: #151c22; }
.bs-product-combo a { position: relative; min-width: 0; overflow: hidden; }
.bs-product-combo a + a { border-left: 1px solid rgba(255,255,255,.14); }
.bs-product-combo img { transition: transform .3s ease; }
.bs-product-combo a:hover img { transform: scale(1.025); }
.bs-band-tray { position: relative; z-index: 3; display: flex; grid-row: 2; min-height: 52px; align-items: center; gap: 30px; padding: 12px max(4vw, 24px); border-top: 1px solid rgba(255,255,255,.18); background: var(--bs-steel); color: #fff; }
.bs-band-tray a { font-size: .76rem; font-weight: 800; text-decoration: none; }
.bs-band-tray a:hover { color: var(--bs-cyan); }

/* Builder */
.bs-workflow { display: grid; grid-template-columns: minmax(320px, .72fr) minmax(0, 1.48fr); background: #142530; color: #fff; }
.bs-workflow-intro { position: relative; min-height: 270px; padding: 46px max(4vw, 32px); background-image: linear-gradient(90deg, rgba(5,21,20,.82), rgba(5,21,20,.34)), url("/assets/images/sites/viscount-llc/f7d23a6913ba5e89/assets/media/sections/builder-foliage-v2.png"); background-position: center; background-size: cover; }
.bs-workflow-intro h2 { max-width: 470px; color: #fff; font-size: clamp(1.75rem, 2.25vw, 2.35rem); }
.bs-workflow-intro > p:not(.bs-kicker) { max-width: 520px; margin-bottom: 0; }
.bs-workflow-form { display: grid; grid-template-columns: repeat(3, minmax(120px, 1fr)) minmax(160px, auto); gap: 16px; align-content: center; align-items: end; padding: 46px max(3vw, 28px) 30px; }
.bs-workflow-form label { display: grid; gap: 8px; font-size: .76rem; font-weight: 800; }
.bs-workflow-form select { width: 100%; min-height: 48px; padding: 10px 36px 10px 12px; border: 1px solid rgba(255,255,255,.34); border-radius: 0; background: var(--bs-steel-2); color: #fff; }
.bs-workflow-form .bs-button { width: 100%; min-height: 48px; font-family: var(--bs-body); font-size: .78rem; cursor: pointer; }
.bs-builder-result { display: flex; grid-column: 1 / -1; align-items: center; justify-content: center; gap: 20px; min-height: 58px; padding: 10px max(4vw, 32px); border-top: 1px solid rgba(255,255,255,.18); background: #101d25; }
.bs-builder-result > p { margin: 0; color: rgba(255,255,255,.62); font-size: .78rem; }
.bs-builder-result > span { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px; }
.bs-builder-result > span[hidden] { display: none; }
.bs-builder-result strong { color: #fff; font-size: .76rem; text-transform: uppercase; }
.bs-builder-result a { font-size: .78rem; font-weight: 800; color: var(--bs-cyan); text-underline-offset: 4px; }

/* Before / after */
.bs-compare { position: relative; height: min(56vw, 620px); min-height: 430px; overflow: hidden; background: #111; }
.bs-compare-before, .bs-compare-after { position: absolute; inset: 0; }
.bs-compare-before img, .bs-compare-after img { width: 100%; height: 100%; object-fit: cover; }
.bs-compare-before img { filter: grayscale(.88) brightness(.47) contrast(1.06); }
.bs-compare-after { clip-path: inset(0 0 0 var(--compare-position)); }
.bs-compare-before span, .bs-compare-after span { position: absolute; top: 22px; display: inline-flex; align-items: center; gap: 5px; padding: 8px 12px; background: var(--bs-steel-2); color: #fff; font-size: .72rem; font-weight: 900; letter-spacing: 0; text-transform: uppercase; }
.bs-compare-before span img, .bs-compare-after span img { width: 12px; height: 12px; filter: brightness(0) invert(1); }
.bs-compare-before span { left: 22px; }
.bs-compare-after span { right: 22px; background: var(--bs-cyan); color: #07131a; }
.bs-compare-control { position: absolute; inset: 0; z-index: 3; }
.bs-compare-control input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.bs-compare-control input:focus-visible + .bs-compare-handle { outline: 3px solid var(--bs-cyan); outline-offset: 4px; }
.bs-compare-handle { position: absolute; top: 0; bottom: 0; left: var(--compare-position); display: flex; width: 62px; align-items: center; justify-content: center; gap: 2px; transform: translateX(-50%); border-right: 1px solid #fff; border-left: 1px solid #fff; background: rgba(255,255,255,.14); pointer-events: none; }
.bs-compare-handle::before { content: ""; position: absolute; width: 62px; height: 62px; border-radius: 50%; background: #fff; }
.bs-compare-handle img { position: relative; z-index: 1; width: 17px; height: 17px; }

/* Support */
.bs-support { --bs-water-x: 0px; --bs-water-x-reverse: 0px; --bs-water-y: 0px; --bs-water-tilt: 0deg; --bs-water-tilt-reverse: 0deg; position: relative; isolation: isolate; display: flex; min-height: 138px; align-items: center; justify-content: space-between; gap: 30px; overflow: hidden; padding: 26px max(5vw, 28px); border-top: 1px solid rgba(0,169,232,.52); border-bottom: 1px solid rgba(255,255,255,.2); background-color: #081923; background-image: linear-gradient(90deg, rgba(4,14,21,.16), rgba(4,14,21,.84) 26%, rgba(4,14,21,.84) 74%, rgba(4,14,21,.16)), url("/assets/images/sites/viscount-llc/f7d23a6913ba5e89/assets/media/sections/support-water.png"); background-position: center; background-size: cover; color: #fff; perspective: 900px; }
.bs-support::before, .bs-support::after { content: ""; position: absolute; z-index: -1; top: -24%; bottom: -24%; width: 48%; background-image: url("/assets/images/sites/viscount-llc/f7d23a6913ba5e89/assets/media/sections/support-water.png"); background-repeat: no-repeat; background-size: 210% 132%; opacity: .3; filter: brightness(1.28) contrast(1.1) saturate(1.12); mix-blend-mode: screen; pointer-events: none; transform-style: preserve-3d; transition: opacity .45s ease, filter .45s ease; will-change: transform, filter; }
.bs-support::before { left: -4%; background-position: left center; -webkit-mask-image: linear-gradient(to right, #000 0%, #000 58%, transparent 100%); mask-image: linear-gradient(to right, #000 0%, #000 58%, transparent 100%); animation: bs-support-water-left 10.5s cubic-bezier(.42, 0, .25, 1) infinite alternate; }
.bs-support::after { right: -4%; background-position: right center; -webkit-mask-image: linear-gradient(to left, #000 0%, #000 58%, transparent 100%); mask-image: linear-gradient(to left, #000 0%, #000 58%, transparent 100%); animation: bs-support-water-right 12.5s cubic-bezier(.42, 0, .25, 1) infinite alternate; }
.bs-support > * { position: relative; z-index: 1; }
.bs-support-heading { display: flex; align-items: center; gap: 24px; }
.bs-support-icon { display: grid; width: 64px; height: 64px; flex: 0 0 64px; place-items: center; border: 2px solid var(--bs-cyan); border-radius: 50%; background: rgba(5,18,26,.62); }
.bs-support-icon img { width: 34px; height: 34px; filter: brightness(0) invert(1); }
.bs-support h2 { max-width: 850px; color: #fff; font-family: var(--bs-display); font-size: clamp(1.45rem, 2.2vw, 2.2rem); font-weight: 900; line-height: 1; text-transform: uppercase; }
.bs-support-heading p { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 9px 0 0; color: rgba(255,255,255,.8); font-size: .86rem; }
.bs-support-heading p span { width: 1px; height: 18px; background: rgba(255,255,255,.5); }
.bs-support-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 14px; }
.bs-support-actions a { padding: 11px 14px; border-bottom: 1px solid var(--bs-cyan); font-size: .82rem; font-weight: 800; text-decoration: none; }

@keyframes bs-support-water-left {
    0% { transform: translate3d(var(--bs-water-x), var(--bs-water-y), 8px) rotateX(1.2deg) rotateY(var(--bs-water-tilt)) scale(1.035); background-position: 0% 44%; }
    48% { transform: translate3d(var(--bs-water-x), var(--bs-water-y), 26px) rotateX(-1deg) rotateY(var(--bs-water-tilt)) scale(1.09); background-position: 4% 54%; }
    100% { transform: translate3d(var(--bs-water-x), var(--bs-water-y), 14px) rotateX(.7deg) rotateY(var(--bs-water-tilt)) scale(1.055); background-position: 1% 48%; }
}

@keyframes bs-support-water-right {
    0% { transform: translate3d(var(--bs-water-x-reverse), var(--bs-water-y), 18px) rotateX(-.8deg) rotateY(var(--bs-water-tilt-reverse)) scale(1.07); background-position: 100% 55%; }
    52% { transform: translate3d(var(--bs-water-x-reverse), var(--bs-water-y), 6px) rotateX(1.1deg) rotateY(var(--bs-water-tilt-reverse)) scale(1.035); background-position: 96% 45%; }
    100% { transform: translate3d(var(--bs-water-x-reverse), var(--bs-water-y), 30px) rotateX(-.6deg) rotateY(var(--bs-water-tilt-reverse)) scale(1.095); background-position: 99% 51%; }
}

@media (hover: hover) and (pointer: fine) {
    .bs-support:hover::before, .bs-support:hover::after { opacity: .55; filter: brightness(1.52) contrast(1.16) saturate(1.34); }
    .bs-support:hover::before { animation-duration: 5.8s; }
    .bs-support:hover::after { animation-duration: 6.6s; }
}

/* Footer */
.bs-footer { background-color: #0a161e; background-image: linear-gradient(180deg, rgba(10,22,30,.9) 0%, rgba(10,22,30,.82) 48%, rgba(8,17,23,.94) 100%), url("/assets/images/sites/viscount-llc/f7d23a6913ba5e89/assets/media/sections/builder-foliage-v2.png"); background-position: center; background-size: cover; color: #fff; }
.bs-footer-service { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid rgba(255,255,255,.16); background: rgba(29,42,50,.82); backdrop-filter: blur(5px); }
.bs-footer-service section { display: flex; gap: 20px; padding: 28px max(5vw, 32px); }
.bs-footer-service section:first-child { border-right: 1px solid rgba(255,255,255,.16); }
.bs-footer-service-icon { display: grid; width: 52px; height: 52px; flex: 0 0 52px; place-items: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; }
.bs-footer-service-icon img { width: 26px; height: 26px; filter: brightness(0) invert(1); }
.bs-footer h2 { margin: 0 0 8px; color: var(--bs-cyan); font-family: var(--bs-display); font-size: 1rem; letter-spacing: .06em; text-transform: uppercase; }
.bs-footer p { margin: 0; color: rgba(255,255,255,.7); font-size: .82rem; }
.bs-footer-service a { display: block; font-size: .82rem; }
.bs-footer-service .footer-contact-address { color: inherit; font-family: inherit; font-size: .82rem; font-style: normal; font-weight: inherit; line-height: 1.55; letter-spacing: 0; text-transform: none; }
.bs-footer-map { display: grid; width: var(--bs-shell); margin: 0 auto; grid-template-columns: minmax(190px, 1.4fr) repeat(5, minmax(120px, 1fr)); gap: 36px; padding: 54px 0; }
.bs-footer-brand img { width: 190px; height: auto; margin-bottom: 16px; filter: brightness(0) invert(1); }
.bs-footer-brand p { max-width: 210px; }
.bs-footer ul { margin: 0; padding: 0; list-style: none; }
.bs-footer li + li { margin-top: 7px; }
.bs-footer li a { color: rgba(255,255,255,.74); font-size: .76rem; text-decoration: none; }
.bs-footer li a:hover, .bs-footer li a[aria-current="page"] { color: var(--bs-cyan); }
.bs-footer-languages { display: flex; flex-wrap: wrap; gap: 10px; }
.bs-footer-languages li + li { margin-top: 0; }
.bs-footer-legal { display: flex; width: var(--bs-shell); margin: 0 auto; justify-content: space-between; gap: 20px; padding: 18px 0 24px; border-top: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.62); font-size: .72rem; }

/* Catalog */
.bs-catalog-hero { position: relative; display: grid; min-height: 290px; grid-template-columns: minmax(0, 1.16fr) minmax(320px, .84fr); align-items: end; gap: clamp(32px, 5vw, 72px); padding: clamp(38px, 4.2vw, 58px) max(5vw, 36px); overflow: hidden; background-color: var(--bs-steel-2); background-position: center; background-size: cover; color: #fff; isolation: isolate; }
.bs-catalog-hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(12,20,26,.96) 0%, rgba(12,20,26,.87) 42%, rgba(12,20,26,.58) 68%, rgba(12,20,26,.34) 100%); }
.bs-catalog-hero--split { background-image: url("/assets/images/sites/viscount-llc/f7d23a6913ba5e89/assets/media/sections/split-panorama-v2.png"); background-position: center 48%; }
.bs-catalog-hero--pressure { background-image: url("/assets/images/sites/viscount-llc/f7d23a6913ba5e89/assets/media/sections/pressure-panorama-v2.png"); }
.bs-catalog-hero--clean { background-image: url("/assets/images/sites/viscount-llc/f7d23a6913ba5e89/assets/media/sections/clean-panorama-v2.png"); }
.bs-catalog-hero--garden { background-image: url("/assets/images/sites/viscount-llc/f7d23a6913ba5e89/hero_campaigns/hero-1.webp"); }
.bs-catalog-hero .bs-kicker { color: #36c6ff; text-shadow: 0 1px 12px rgba(0,0,0,.72); }
.bs-catalog-hero h1 { max-width: 760px; color: #fff; font-size: clamp(2.65rem, 4.4vw, 4.8rem); text-shadow: 0 2px 22px rgba(0,0,0,.72); }
.bs-catalog-hero > div > p:last-child { max-width: 650px; margin: 16px 0 0; color: rgba(255,255,255,.9); line-height: 1.55; text-shadow: 0 1px 14px rgba(0,0,0,.78); }
.bs-catalog-search { align-self: end; padding: 18px; border: 1px solid rgba(255,255,255,.22); background: rgba(10,18,23,.58); backdrop-filter: blur(8px); }
.bs-catalog-search label { display: block; margin-bottom: 10px; color: #fff; font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.bs-catalog-search > div { display: flex; }
.bs-catalog-search input { min-width: 0; flex: 1; min-height: 52px; padding: 12px; border: 1px solid rgba(255,255,255,.32); border-radius: 0; background: transparent; color: #fff; }
.bs-catalog-search button { min-height: 52px; padding: 12px 22px; border: 0; background: var(--bs-cyan); color: var(--bs-ink); font-weight: 800; cursor: pointer; }
.bs-catalog-categories { display: flex; flex-wrap: wrap; gap: 10px; padding: 22px max(5vw, 36px); overflow: visible; border-bottom: 1px solid #ccd2d4; background: #fff; }
.bs-catalog-categories a { flex: 0 0 auto; padding: 9px 13px; border: 1px solid #c7cdcf; font-size: .75rem; font-weight: 800; text-decoration: none; }
.bs-catalog-categories a:hover, .bs-catalog-categories a[aria-current="page"] { border-color: var(--bs-ink); background: var(--bs-ink); color: #fff; }
.bs-catalog-grid { display: grid; width: min(100% - 48px, 1380px); margin: 0 auto; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; padding: 48px 0 80px; }
.bs-catalog-card { position: relative; border: 1px solid #d4d8d7; background: #fff; }
.bs-catalog-card-image { display: block; aspect-ratio: 1; overflow: hidden; background: #f4f5f3; }
.bs-catalog-card-image img { width: 100%; height: 100%; object-fit: contain; transition: transform .3s ease; }
.bs-catalog-card:hover .bs-catalog-card-image img { transform: scale(1.035); }
.bs-catalog-card-copy { position: relative; min-height: 148px; padding: 20px 58px 20px 20px; }
.bs-catalog-card-copy p { margin: 0 0 8px; color: #637077; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.bs-catalog-card-copy h2 { margin: 0; font-size: .98rem; line-height: 1.35; }
.bs-catalog-card-copy h2 a { text-decoration: none; }
.bs-card-arrow { position: absolute; right: 18px; bottom: 20px; display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid #b8c0c3; }
.bs-card-arrow img { width: 18px; }
.bs-catalog-empty { width: var(--bs-shell); margin: 48px auto 80px; padding: 40px; border: 1px solid #d4d8d7; background: #fff; text-align: center; }

/* Core page cohesion */
.content-page, .product-detail, .commerce-page, .cart-page, .account-page, .order-page { background: var(--bs-paper); }
.content-page .shell, .product-detail .shell, .commerce-page .shell { width: min(100% - 48px, 1240px); }
.content-page h1, .product-detail h1, .commerce-page h1 { font-family: var(--bs-display); font-weight: 900; letter-spacing: -.025em; text-transform: uppercase; }
.button-primary, .commerce-primary-button { border-radius: 0 !important; background: var(--bs-cyan) !important; color: var(--bs-ink) !important; }
.product-card, .commerce-card, .content-card { border-radius: 0 !important; box-shadow: none !important; }

@media (max-width: 1120px) {
    .bs-header { grid-template-columns: 1fr auto 1fr; gap: 16px; padding-inline: 18px; }
    .bs-header-pages { display: none; }
    .bs-product-band { min-height: 672px; grid-template-columns: 1fr; grid-template-rows: minmax(620px, 1fr) auto; }
    .bs-band-copy { padding: 56px; }
    .bs-workflow-form { grid-template-columns: repeat(2, minmax(140px, 1fr)); }
    .bs-workflow-form .bs-button { grid-column: 1 / -1; }
    .bs-footer-map { grid-template-columns: 1.4fr repeat(3, 1fr); }
}

@media (max-width: 820px) {
    :root { --bs-shell: min(100% - 32px, 720px); }
    .bs-header { position: relative; min-height: 64px; grid-template-columns: 40px 1fr auto; padding: 8px 14px; }
    .bs-mobile-toggle { display: grid; width: 38px; height: 38px; place-items: center; }
    .bs-mobile-toggle img { filter: invert(1); }
    .bs-brand { width: 160px; justify-self: center; }
    .bs-brand img { height: 46px; }
    .bs-header-left { position: absolute; top: 64px; left: 0; display: none; width: min(88vw, 360px); align-items: stretch; flex-direction: column; gap: 0; padding: 16px; background: var(--bs-steel-2); box-shadow: 0 24px 40px rgba(0,0,0,.35); }
    .bs-header-left:target { display: flex; }
    .bs-header-left > a, .bs-header-left summary { display: block; padding: 12px; }
    .bs-nav-menu-panel { position: static; margin-top: 4px; box-shadow: none; }
    .bs-language-menu { display: none; }
    .bs-commerce-actions .commerce-header-actions { gap: 2px; }
    .bs-commerce-actions .commerce-header-button { width: 30px; height: 30px; }
    .bs-hero { height: 690px; min-height: 690px; }
    .bs-hero-copy { top: auto; right: 24px; bottom: 92px; left: 24px; width: auto; transform: none; }
    .bs-hero-copy h1 { font-size: clamp(2.55rem, 11vw, 4.5rem); }
    .bs-hero-copy > p:not(.bs-kicker) { margin: 16px 0 22px; font-size: .94rem; }
    .bs-hero-slide[data-hero-slide="0"] > img { object-position: 72% center; }
    .bs-hero-slide[data-hero-slide="1"] > img { object-position: 78% center; }
    .bs-hero-slide[data-hero-slide="2"] > img { object-position: 78% center; }
    .bs-hero-shade { background: rgba(5, 10, 14, .30); }
    .bs-hero-arrow { top: 112px; width: 44px; height: 44px; }
    .bs-hero-state { bottom: 28px; gap: 18px; }
    .bs-hero-state button { font-size: .64rem; }
    .bs-system-track { grid-template-columns: 44px minmax(0, 1fr) 44px; }
    .bs-system-arrow { width: 44px; }
    .bs-system-rail { display: flex; min-height: 176px; overflow-x: auto; scroll-snap-type: x mandatory; }
    .bs-system-rail::before { top: 111px; right: 75px; left: 75px; }
    .bs-system-step { flex: 0 0 150px; scroll-snap-align: start; }
    .bs-system-panel { min-height: 72px; justify-content: flex-start; overflow-x: auto; }
    .bs-product-band { min-height: 682px; grid-template-rows: minmax(620px, 1fr) auto; }
    .bs-product-band::before { background: linear-gradient(90deg, rgba(238,240,239,.94) 0%, rgba(238,240,239,.72) 58%, rgba(238,240,239,.18) 100%); }
    .bs-band-dark::before { background: linear-gradient(90deg, rgba(20,27,33,.94) 0%, rgba(20,27,33,.72) 58%, rgba(20,27,33,.18) 100%); }
    .bs-band-copy { width: min(88%, 620px); min-width: 0; padding: 52px 24px; }
    .bs-band-copy h2 { font-size: clamp(2.5rem, 12vw, 4.7rem); }
    .bs-product-scene img { object-position: 64% center; }
    .bs-product-combo { width: 100%; grid-template-columns: 1fr 1fr; }
    .bs-band-tray { width: 100%; overflow-x: auto; }
    .bs-workflow { grid-template-columns: 1fr; }
    .bs-workflow-intro { min-height: 0; padding: 52px 24px; }
    .bs-workflow-form { padding: 42px 24px 24px; }
    .bs-workflow-form { grid-template-columns: 1fr; }
    .bs-workflow-form .bs-button { grid-column: 1; width: 100%; }
    .bs-builder-result { justify-content: flex-start; overflow-x: auto; }
    .bs-compare { height: 520px; }
    .bs-support { align-items: flex-start; flex-direction: column; }
    .bs-support-actions { justify-content: flex-start; }
    .bs-footer-service { grid-template-columns: 1fr; }
    .bs-footer-service section:first-child { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.16); }
    .bs-footer-map { grid-template-columns: 1.2fr 1fr; gap: 34px; }
    .bs-catalog-hero { min-height: 0; grid-template-columns: 1fr; gap: 28px; padding: 44px 24px; }
    .bs-catalog-hero h1 { font-size: clamp(2.55rem, 8.4vw, 4.25rem); }
    .bs-catalog-search { max-width: 620px; }
    .bs-catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
    .bs-header { grid-template-columns: 38px 1fr auto; }
    .bs-brand { width: 144px; }
    .bs-commerce-actions .commerce-header-button { width: 28px; padding: 5px; }
    .bs-hero { min-height: 650px; height: 650px; }
    .bs-hero-copy { bottom: 86px; }
    .bs-hero-copy h1 { font-size: 2.6rem; }
    .bs-hero-state { gap: 8px; }
    .bs-system-panel > span { display: none; }
    .bs-band-copy { padding-inline: 20px; }
    .bs-workflow-intro, .bs-workflow-form, .bs-builder-result { padding-inline: 20px; }
    .bs-compare { min-height: 430px; height: 430px; }
    .bs-support { padding-inline: 20px; }
    .bs-support-heading { align-items: flex-start; }
    .bs-support-icon { width: 54px; height: 54px; flex-basis: 54px; }
    .bs-support-icon img { width: 28px; height: 28px; }
    .bs-footer-map { grid-template-columns: 1fr 1fr; }
    .bs-footer-brand { grid-column: 1 / -1; }
    .bs-footer-legal { align-items: flex-start; flex-direction: column; }
    .bs-catalog-grid { width: calc(100% - 24px); grid-template-columns: 1fr; gap: 14px; }
}

@media (prefers-reduced-motion: reduce) {
    .bs-product-scene img, .bs-band-copy { transition: none; transform: none; }
    .bs-product-band:hover .bs-product-scene img { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
    .bs-compare { display: grid; height: auto; min-height: 0; grid-template-columns: 1fr 1fr; }
    .bs-compare-before, .bs-compare-after { position: relative; inset: auto; height: 420px; clip-path: none; }
    .bs-compare-control { display: none; }
    .bs-support::before, .bs-support::after { animation: none; transform: none; }
}
