@font-face {
    font-family:Archivo;
    src:url('../assets/fonts/archivo.ttf') format('truetype');
    font-style:normal;
    font-weight:400;
    font-display:swap
}

@font-face {
    font-family:Archivo;
    src:url('../assets/fonts/archivo-500.ttf') format('truetype');
    font-style:normal;
    font-weight:500;
    font-display:swap
}

@font-face {
    font-family:Archivo;
    src:url('../assets/fonts/archivo-600.ttf') format('truetype');
    font-style:normal;
    font-weight:600 650;
    font-display:swap
}

@font-face {
    font-family:Archivo;
    src:url('../assets/fonts/archivo-700.ttf') format('truetype');
    font-style:normal;
    font-weight:700 800;
    font-display:swap
}

:root {
    --red:#ba1726;
    --red-hover:#97121f;
    --ink:#22272b;
    --muted:#62696e;
    --line:#dce0e2;
    --paper:#fff;
    --wash:#f5f6f6;
    --green:#286440;
    --radius:5px;
    --max:1380px;
    --ease:cubic-bezier(.16,1,.3,1)
}

* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:170px;
    scrollbar-color:#9ca3a7 #f0f1f2
}
body {
    margin:0;
    font-family:Archivo,Arial,sans-serif;
    color:var(--ink);
    background:var(--paper);
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased
}
body:has(dialog[open]) {
    overflow:hidden
}
::selection {
    background:#f5cbd0;
    color:#55101a
}
a {
    color:inherit;
    text-decoration:none;
    text-underline-offset:5px
}
button,input,select {
    font:inherit
}
button,a,input,select,summary {
    -webkit-tap-highlight-color:transparent
}
button {
    cursor:pointer
}
input,select {
    accent-color:var(--red);
    caret-color:var(--red)
}
button:disabled {
    opacity:.55;
    cursor:not-allowed
}
img {
    max-width:100%;
    display:block
}
button,select,input {
    max-width:100%
}
a,button {
    touch-action:manipulation
}
h1,h2,h3,p {
    margin:0
}
h1,h2,h3 {
    text-wrap:balance;
    line-height:1.15
}
h2 {
    font-size:clamp(28px,2.4vw,36px);
    font-weight:650;
    letter-spacing:-.035em
}
h3 {
    font-size:19px;
    font-weight:600
}
p {
    color:var(--muted)
}
fieldset {
    min-width:0;
    border:0;
    margin:0;
    padding:0
}
svg {
    pointer-events:none
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {
    outline:3px solid #176b9b;
    outline-offset:4px
}
[hidden] {
    display:none!important
}
.container {
    width:min(calc(100% - 96px),var(--max));
    margin-inline:auto
}
.section {
    padding-block:72px
}
.icon-library {
    position:absolute;
    width:0;
    height:0;
    overflow:hidden
}
.icon {
    width:23px;
    height:23px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.65;
    stroke-linecap:round;
    stroke-linejoin:round;
    flex:none
}
.sr-only {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}
.skip-link {
    position:fixed;
    top:8px;
    left:8px;
    transform:translateY(-160%);
    z-index:100;
    background:#fff;
    padding:12px 18px
}
.skip-link:focus {
    transform:none
}
.button {
    min-height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    padding:12px 22px;
    border:1px solid var(--red);
    border-radius:var(--radius);
    background:var(--red);
    color:white;
    font-size:15px;
    font-weight:600;
    line-height:1.3;
    transition:background .18s,color .18s,border-color .18s
}
.button:hover {
    background:var(--red-hover);
    border-color:var(--red-hover)
}
.button-outline {
    background:transparent;
    border-color:#adb4b9;
    color:var(--ink)
}
.button-outline:hover {
    background:var(--wash);
    border-color:var(--ink)
}
.button-light {
    background:#fff;
    color:var(--ink);
    border-color:#fff
}
.button-light:hover {
    background:#f1f1f1;
    border-color:#f1f1f1
}
.icon-button {
    width:44px;
    height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:transparent;
    border:0;
    border-radius:var(--radius);
    color:var(--ink)
}
.icon-button:hover {
    background:var(--wash)
}
.text-link {
    display:inline-flex;
    gap:10px;
    align-items:center;
    font-size:14px;
    font-weight:600;
    line-height:1.5
}
.text-link:hover {
    text-decoration:underline;
    color:var(--red)
}
.text-link .icon {
    width:19px;
    height:19px
}
.text-button {
    border:0;
    background:none;
    padding:8px 0;
    font-size:14px;
    color:var(--red);
    text-decoration:underline;
    text-underline-offset:4px;
    min-height:40px
}

.announcement {
    background:var(--red);
    color:#fff;
    font-size:13px
}
.announcement-inner {
    min-height:36px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px
}
.announcement a {
    display:flex;
    align-items:center;
    gap:12px;
    font-weight:600
}
.announcement .icon {
    width:17px;
    height:17px
}
.site-header {
    background:#fff;
    position:sticky;
    top:0;
    z-index:30;
    box-shadow:0 1px 0 var(--line)
}
.masthead {
    min-height:103px;
    display:flex;
    align-items:center;
    gap:56px
}
.brand {
    width:192px;
    flex:none;
    display:block
}
.brand img {
    width:184px;
    height:67px;
    object-fit:contain
}
.brand span {
    display:block;
    font-size:11px;
    letter-spacing:.04em;
    margin-top:-3px;
    text-align:center
}
.header-search {
    position:relative;
    flex:1;
    max-width:550px;
    margin-inline:auto
}
.header-search input {
    width:100%;
    height:46px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:0 52px 0 17px;
    background:var(--wash);
    font-size:14px
}
.header-search button {
    position:absolute;
    right:0;
    top:0;
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    background:none;
    border:0;
    color:var(--ink)
}
input::placeholder {
    color:#70777b;
    opacity:1
}
.header-contact {
    display:flex;
    align-items:center;
    gap:12px;
    font-size:12px;
    color:var(--muted);
    white-space:nowrap
}
.header-contact>.icon {
    width:30px;
    height:30px;
    color:var(--red)
}
.header-contact strong {
    font-size:19px;
    color:var(--ink);
    display:block;
    line-height:1.5;
    font-weight:600
}
.header-contact:hover strong {
    color:var(--red)
}
.main-nav {
    border-top:1px solid #edf0f1
}
.nav-inner {
    display:flex;
    min-height:49px;
    align-items:center;
    justify-content:space-between;
    gap:24px
}
.nav-links {
    display:flex;
    align-self:stretch;
    gap:32px;
    font-size:14px;
    font-weight:500
}
.nav-links a {
    display:flex;
    align-items:center;
    position:relative
}
.nav-links a:hover {
    color:var(--red)
}
.nav-active:after {
    content:'';
    height:2px;
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    background:var(--red)
}
.nav-delivery {
    display:flex;
    align-items:center;
    gap:9px;
    font-size:12px;
    color:var(--muted)
}
.nav-delivery .icon {
    width:19px;
    height:19px
}
.menu-toggle {
    display:none
}

.hero {
    min-height:490px;
    position:relative;
    isolation:isolate;
    background:#38434a
}
.hero-image {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:65% center;
    z-index:-3
}
.hero-shade {
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(16,28,32,.92),rgba(16,28,32,.77) 24%,rgba(16,28,32,.3) 53%,rgba(16,28,32,0) 75%);
    z-index:-2
}
.hero-inner {
    min-height:490px;
    display:flex;
    align-items:center;
    padding-block:48px
}
.hero-copy {
    max-width:550px;
    color:#fff
}
.hero h1 {
    font-size:clamp(42px,4.2vw,62px);
    line-height:1.04;
    letter-spacing:-.04em;
    font-weight:650;
    margin-bottom:24px
}
.hero-copy>p {
    font-size:17px;
    line-height:1.75;
    color:#eef1f1;
    max-width:450px
}
.hero-actions {
    display:flex;
    align-items:center;
    gap:28px;
    margin-top:29px
}
.hero .button {
    padding:15px 24px;
    min-height:52px
}
.hero-contact-link {
    font-size:14px;
    font-weight:500;
    text-decoration:underline
}
.hero-contact-link:hover {
    color:#fff
}
.hero-proof {
    display:flex;
    align-items:center;
    gap:8px;
    font-size:12px;
    color:#e6ecec;
    margin-top:27px
}
.hero-proof .icon {
    width:16px;
    height:16px
}
.service-strip {
    border-bottom:1px solid var(--line);
    background:#fff
}
.service-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    padding-block:25px;
    gap:30px
}
.service-grid>div {
    display:flex;
    gap:15px;
    align-items:center;
    font-size:12px;
    line-height:1.7;
    color:var(--muted)
}
.service-grid .icon {
    width:30px;
    height:30px;
    color:var(--red)
}
.service-grid strong {
    display:block;
    color:var(--ink);
    font-size:14px;
    font-weight:600
}
.section-heading {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:30px
}
.section-heading p {
    margin-top:12px;
    font-size:15px
}
.section-heading>.text-link {
    flex:none;
    margin-bottom:3px
}
.section-note {
    font-size:13px;
    color:var(--muted);
    white-space:nowrap
}
.category-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px
}
.category {
    background:var(--wash);
    border-radius:var(--radius);
    overflow:hidden;
    position:relative
}
.category>img {
    width:100%;
    height:180px;
    object-fit:cover;
    transition:transform .5s var(--ease)
}
.category:hover>img {
    transform:scale(1.04)
}
.category>div {
    padding:18px 20px;
    position:relative;
    background:var(--wash)
}
.category span {
    display:block;
    font-weight:600;
    font-size:18px;
    line-height:1.25;
    padding-right:20px
}
.category small {
    display:block;
    font-size:13px;
    margin-top:8px;
    color:var(--muted)
}
.category .icon {
    position:absolute;
    right:16px;
    top:19px;
    width:19px;
    height:19px;
    color:var(--red)
}
.category:hover span {
    color:var(--red)
}
.featured-section {
    background:var(--wash)
}
.featured-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px
}
.product-card {
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
    display:flex;
    flex-direction:column;
    position:relative;
    min-width:0;
    transition:border-color .2s,box-shadow .2s
}
.product-card:hover {
    border-color:#aeb7bd;
    box-shadow:0 8px 24px #202b3610
}
.product-media {
    position:relative;
    background:#fff;
    padding:27px 22px 8px
}
.product-photo {
    border:0;
    padding:0;
    background:#fff;
    width:100%;
    display:block;
    cursor:pointer;
    border-radius:3px
}
.product-photo img {
    width:100%;
    aspect-ratio:1.24;
    object-fit:contain;
    transition:transform .5s var(--ease)
}
.product-photo:hover img {
    transform:scale(1.035)
}
.product-type {
    position:absolute;
    top:14px;
    left:16px;
    font-size:11px;
    line-height:1;
    background:#eff2f3;
    padding:6px 8px;
    border-radius:3px;
    color:#50595f;
    z-index:1;
    font-weight:600;
    letter-spacing:.02em
}
.product-body {
    padding:17px 22px 20px;
    display:flex;
    flex-direction:column;
    flex:1
}
.product-brand {
    color:var(--muted);
    font-size:11px;
    letter-spacing:.07em;
    text-transform:uppercase;
    margin-bottom:7px
}
.product-title {
    font-size:20px;
    letter-spacing:-.02em;
    line-height:1.3
}
.product-title button {
    border:0;
    padding:0;
    background:none;
    text-align:left;
    color:inherit;
    font:inherit
}
.product-title button:hover {
    color:var(--red)
}
.product-sku {
    font-size:12px;
    color:var(--muted);
    margin-top:5px
}
.specs {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 12px;
    margin:16px 0;
    padding:14px 0;
    border-top:1px solid #eceff0;
    border-bottom:1px solid #eceff0
}
.specs>div {
    display:flex;
    align-items:flex-start;
    gap:7px
}
.specs .icon {
    width:17px;
    height:17px;
    margin-top:3px;
    color:#747e84
}
.specs dt {
    font-size:11px;
    color:var(--muted);
    line-height:1.3
}
.specs dd {
    margin:4px 0 0;
    font-size:13px;
    font-weight:500;
    line-height:1.35
}
.price {
    margin-top:auto
}
.price-caption {
    display:block;
    font-size:11px;
    color:var(--muted)
}
.price strong {
    font-size:27px;
    line-height:1.4;
    letter-spacing:-.025em;
    font-weight:650;
    font-variant-numeric:tabular-nums;
    color:var(--ink)
}
.price .currency {
    font-size:12px;
    font-weight:500;
    letter-spacing:0;
    margin-left:4px
}
.product-credit {
    font-size:12px;
    color:var(--red);
    margin-top:2px;
    font-weight:500
}
.delivery {
    display:flex;
    align-items:center;
    gap:6px;
    margin-top:14px;
    font-size:12px;
    color:var(--muted)
}
.delivery .icon {
    width:15px;
    height:15px
}
.delivery.in-stock {
    color:var(--green)
}
.product-actions {
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px;
    margin-top:16px
}
.product-actions .button {
    min-height:44px;
    font-size:13px;
    padding:11px 13px;
    gap:7px
}
.product-actions .button .icon {
    height:17px;
    width:17px
}
.product-actions .details-button {
    padding-inline:12px;
    background:#fff;
    color:var(--ink);
    border-color:var(--line)
}
.product-actions .details-button:hover {
    background:var(--wash);
    border-color:#89949c
}
.featured-grid .product-photo img {
    aspect-ratio:1.55
}
.featured-grid .product-media {
    padding:24px 32px 0
}
.featured-grid .product-body {
    padding:22px 26px 24px
}
.featured-grid .product-title {
    font-size:22px
}

.catalog-layout {
    display:grid;
    grid-template-columns:226px minmax(0,1fr);
    gap:36px
}
.filters-host {
    border-top:1px solid var(--line);
    padding-top:7px
}
.filters-form {
    margin:0
}
.filter-title {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:8px 0 13px
}
.filter-title h3 {
    font-size:17px
}
.filter-group {
    padding:21px 0;
    border-bottom:1px solid var(--line)
}
.filter-group>label:not(.radio-label),.filter-group legend {
    display:block;
    font-size:13px;
    font-weight:600;
    margin-bottom:12px
}
.filter-group legend {
    padding:21px 0 0;
    float:left;
    width:100%
}
fieldset.filter-group {
    padding-top:0
}
.input-icon {
    position:relative
}
.input-icon .icon {
    position:absolute;
    width:17px;
    height:17px;
    top:13px;
    left:10px;
    color:var(--muted)
}
.input-icon input {
    width:100%;
    padding:10px 9px 10px 34px;
    border:1px solid #b9c1c6;
    border-radius:4px;
    font-size:13px;
    height:43px
}
.filter-group select,.sort-label select {
    height:43px;
    border:1px solid #b9c1c6;
    border-radius:4px;
    background:#fff;
    font-size:13px;
    padding:8px 30px 8px 11px;
    color:var(--ink);
    width:100%
}
.radio-label {
    display:flex;
    align-items:center;
    font-size:13px;
    gap:9px;
    min-height:40px;
    cursor:pointer
}
.radio-label input {
    width:16px;
    height:16px;
    margin:0;
    flex:none
}
.radio-label>span {
    margin-left:auto;
    color:var(--muted);
    font-size:12px
}
.filter-help {
    margin-top:28px;
    padding:20px;
    background:var(--wash);
    border-radius:var(--radius)
}
.filter-help>.icon {
    color:var(--red);
    margin-bottom:10px
}
.filter-help h3 {
    font-size:16px;
    line-height:1.4
}
.filter-help p {
    font-size:13px;
    line-height:1.65;
    margin:9px 0 16px
}
.filter-help .text-link {
    font-size:12px
}
.catalog-toolbar {
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    border-bottom:1px solid var(--line);
    margin-bottom:22px;
    padding-bottom:15px
}
.catalog-toolbar p {
    font-size:13px;
    color:var(--ink)
}
.sort-label {
    display:flex;
    align-items:center;
    gap:12px;
    font-size:12px;
    color:var(--muted);
    white-space:nowrap
}
.sort-label select {
    width:auto;
    min-width:155px
}
.filter-toggle,.apply-filters {
    display:none
}
.active-filters {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:18px
}
.active-filters:empty {
    display:none
}
.filter-chip {
    background:#f1f3f4;
    border:1px solid #dce0e2;
    border-radius:4px;
    font-size:12px;
    padding:7px 9px;
    display:flex;
    gap:7px;
    align-items:center;
    min-height:40px;
    color:var(--ink)
}
.filter-chip:hover {
    border-color:var(--red)
}
.filter-chip .icon {
    width:14px;
    height:14px
}
.product-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px
}
.product-grid .product-body {
    padding-inline:18px
}
.product-grid .product-media {
    padding-inline:18px
}
.product-grid .product-title {
    font-size:18px
}
.product-grid .price strong {
    font-size:25px
}
.product-grid .product-actions {
    grid-template-columns:1fr;
    gap:2px
}
.product-grid .details-button {
    border:0;
    padding:7px;
    min-height:36px;
    background:none
}
.load-more {
    text-align:center;
    margin-top:30px
}
.load-more p {
    font-size:13px;
    margin-bottom:13px
}
.load-more .button {
    min-width:215px
}
.catalog-note {
    font-size:12px;
    line-height:1.7;
    max-width:850px;
    margin-top:30px;
    padding-top:18px;
    border-top:1px solid var(--line)
}
.empty-state {
    text-align:center;
    padding:70px 20px;
    border:1px dashed #b9c1c6;
    background:var(--wash);
    border-radius:var(--radius)
}
.empty-state>.icon {
    width:35px;
    height:35px;
    color:var(--muted);
    margin-bottom:20px
}
.empty-state h3 {
    line-height:1.4
}
.empty-state p {
    margin:12px 0 20px;
    font-size:14px
}

.finance-section {
    background:#252e32;
    color:#fff;
    padding:66px 0;
    position:relative;
    overflow:hidden
}
.finance-layout {
    display:grid;
    grid-template-columns:1fr 1.65fr;
    gap:90px;
    align-items:center;
    max-width:1180px
}
.finance-number {
    font-size:172px;
    font-weight:700;
    line-height:.9;
    letter-spacing:-.04em;
    text-align:center
}
.finance-number span {
    display:block;
    font-size:21px;
    font-weight:400;
    letter-spacing:-.01em;
    margin-top:20px;
    line-height:1.3
}
.finance-copy {
    border-left:1px solid #657176;
    padding-left:65px
}
.finance-copy h2 {
    font-size:34px;
    max-width:460px;
    letter-spacing:-.03em
}
.finance-copy p {
    color:#e0e7e9;
    font-size:15px;
    max-width:530px;
    line-height:1.7;
    margin:18px 0 26px
}
.finance-copy small {
    display:block;
    font-size:11px;
    color:#d8e0e2;
    line-height:1.65;
    margin-top:16px;
    max-width:410px
}
.support-section {
    display:grid;
    grid-template-columns:1fr 1.25fr;
    gap:120px;
    padding-block:88px
}
.support-intro h2 {
    font-size:42px;
    line-height:1.1
}
.support-intro p {
    margin:24px 0 28px;
    line-height:1.8;
    max-width:430px;
    font-size:15px
}
.support-list {
    display:grid;
    gap:26px
}
.support-list article {
    display:flex;
    align-items:flex-start;
    gap:20px
}
.support-list article>.icon {
    width:28px;
    height:28px;
    color:var(--red);
    margin-top:1px
}
.support-list h3 {
    font-size:18px;
    line-height:1.4;
    margin-bottom:7px
}
.support-list p {
    font-size:14px;
    line-height:1.7;
    max-width:490px
}
.faq-section {
    background:var(--wash)
}
.faq-layout {
    display:grid;
    grid-template-columns:1fr 1.7fr;
    gap:100px
}
.faq-layout>div>p {
    margin:19px 0 24px;
    font-size:15px;
    max-width:300px
}
.faq-list {
    border-top:1px solid #cfd5d8
}
.faq-list details {
    border-bottom:1px solid #cfd5d8
}
.faq-list summary {
    font-size:16px;
    font-weight:500;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:22px 0;
    list-style:none;
    line-height:1.4
}
.faq-list summary::-webkit-details-marker {
    display:none
}
.faq-list summary .icon {
    width:18px;
    height:18px
}
.faq-list details[open] summary {
    color:var(--red)
}
.faq-list details[open] summary .icon {
    transform:rotate(45deg)
}
.faq-list details>p {
    font-size:14px;
    line-height:1.8;
    padding:0 32px 22px 0
}
.contact-section {
    padding-block:64px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:40px
}
.contact-section h2 {
    font-size:31px
}
.contact-section p {
    font-size:15px;
    margin-top:13px
}
.contact-section .button {
    flex:none
}
.site-footer {
    background:#f3f4f4;
    border-top:1px solid var(--line)
}
.footer-grid {
    display:grid;
    grid-template-columns:1.2fr 1fr 1fr 1.25fr;
    gap:50px;
    padding-block:48px
}
.footer-brand>img {
    width:170px;
    height:71px;
    object-fit:contain;
    margin-top:-7px
}
.footer-brand>p {
    margin:12px 0;
    font-size:15px;
    color:var(--ink);
    line-height:1.6
}
.footer-brand>span {
    font-size:11px;
    color:var(--muted)
}
.footer-grid h2 {
    font-size:14px;
    font-weight:600;
    letter-spacing:0;
    margin:8px 0 20px
}
.footer-grid>div:not(.footer-brand)>a,.footer-contact>span {
    display:block;
    font-size:13px;
    color:var(--muted);
    margin-bottom:11px;
    line-height:1.6
}
.footer-grid a:hover {
    color:var(--red);
    text-decoration:underline
}
.footer-contact a {
    overflow-wrap:anywhere
}
.footer-bottom {
    display:flex;
    justify-content:space-between;
    gap:20px;
    font-size:11px;
    color:var(--muted);
    padding-block:22px;
    border-top:1px solid var(--line)
}
.floating-contact {
    position:fixed;
    bottom:24px;
    right:24px;
    display:flex;
    align-items:center;
    gap:10px;
    border-radius:30px;
    background:#fff;
    color:var(--ink);
    border:1px solid var(--line);
    box-shadow:0 4px 18px #1b29252b;
    z-index:35;
    min-height:50px;
    padding:11px 17px;
    font-size:13px;
    font-weight:500
}
.floating-contact>.icon {
    color:var(--green);
    width:26px;
    height:26px
}
.floating-contact:hover {
    border-color:var(--green)
}
.noscript {
    padding:24px;
    background:#fff2d1;
    color:#372b10
}

dialog {
    padding:0;
    border:0;
    border-radius:8px;
    background:#fff;
    color:var(--ink);
    max-height:calc(100dvh - 48px);
    box-shadow:0 24px 70px #18212644
}
dialog::backdrop {
    background:#17232d99
}
.dialog-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:22px 24px;
    border-bottom:1px solid var(--line)
}
.dialog-heading h2 {
    font-size:22px
}
.menu-dialog,.filter-dialog {
    width:min(420px,calc(100% - 28px))
}
.menu-dialog nav {
    padding:8px 24px
}
.menu-dialog nav>a {
    display:block;
    padding:16px 0;
    border-bottom:1px solid var(--line);
    font-size:16px
}
.menu-dialog>.button {
    margin:20px 24px 28px;
    display:flex
}
.filter-dialog .filters-form {
    padding:0 24px 24px
}
.filter-dialog .filter-title {
    padding-top:16px
}
.filter-dialog .filter-title h3 {
    display:none
}
.product-dialog {
    width:min(1020px,calc(100% - 48px));
    position:fixed
}
.detail-close {
    position:absolute;
    right:12px;
    top:12px;
    z-index:2;
    background:#f1f3f4
}
.detail-layout {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
    padding:56px 36px 32px
}
.detail-visual img {
    width:100%;
    aspect-ratio:1;
    object-fit:contain
}
.detail-visual>p {
    font-size:11px;
    margin:20px 8px 0;
    line-height:1.7
}
.detail-info h2 {
    font-size:29px;
    margin:8px 0 12px
}
.detail-info .product-sku {
    font-size:13px
}
.detail-info>p:not(.product-sku):not(.delivery):not(.detail-terms) {
    font-size:14px;
    line-height:1.7;
    margin:18px 0
}
.detail-specs {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px 20px;
    padding-block:20px;
    margin:20px 0;
    border-block:1px solid var(--line)
}
.detail-specs dt {
    font-size:11px;
    color:var(--muted)
}
.detail-specs dd {
    margin:5px 0 0;
    font-size:15px;
    font-weight:500
}
.detail-info .price strong {
    font-size:33px
}
.detail-info>.button {
    display:flex;
    margin-top:22px
}
.detail-terms {
    font-size:11px;
    line-height:1.7;
    margin-top:14px
}
.detail-services {
    display:flex;
    gap:16px;
    flex-wrap:wrap;
    margin-top:19px;
    font-size:11px;
    color:var(--muted)
}
.detail-services span {
    display:flex;
    gap:5px;
    align-items:center
}
.detail-services .icon {
    width:16px;
    height:16px
}

@media(min-width:1700px) {
    .hero,.hero-inner {
    min-height:555px
}
.hero-image {
    object-position:center 55%
}
.hero-copy {
    max-width:590px
}
.hero h1 {
    font-size:66px
}
.hero-copy>p {
    font-size:18px
}
.category>img {
    height:200px
}

}

@media(max-width:1199px) {
    .container {
    width:calc(100% - 64px)
}
.masthead {
    gap:30px
}
.nav-links {
    gap:24px;
    font-size:13px
}
.nav-delivery {
    display:none
}
.category>img {
    height:155px
}
.category>div {
    padding:16px
}
.category span {
    font-size:16px
}
.category small {
    font-size:12px
}
.catalog-layout {
    grid-template-columns:195px minmax(0,1fr);
    gap:24px
}
.product-grid {
    gap:14px;
    grid-template-columns:repeat(2,minmax(0,1fr))
}
.service-grid {
    gap:20px
}
.service-grid>div {
    gap:10px;
    font-size:11px
}
.service-grid strong {
    font-size:12px
}
.featured-grid {
    gap:18px
}
.featured-grid .product-body {
    padding:20px
}
.featured-grid .product-actions {
    grid-template-columns:1fr
}
.featured-grid .product-title {
    font-size:20px
}
.featured-grid .product-media {
    padding-inline:22px
}
.support-section {
    gap:65px
}
.faq-layout {
    gap:60px
}
.footer-grid {
    gap:28px
}
.finance-layout {
    gap:50px
}
.finance-copy {
    padding-left:45px
}
.contact-section h2 {
    font-size:28px
}

}

@media(max-width:899px) {
    html {
    scroll-padding-top:155px
}
.container {
    width:calc(100% - 40px)
}
.section {
    padding-block:52px
}
.masthead {
    min-height:90px;
    gap:20px
}
.brand {
    width:160px
}
.brand img {
    width:156px;
    height:58px
}
.brand span {
    font-size:9px
}
.header-contact span {
    display:none
}
.header-contact .icon {
    height:26px;
    width:26px
}
.header-search {
    max-width:none
}
.header-search input {
    font-size:12px
}
.nav-links {
    gap:25px;
    font-size:12px
}
.hero,.hero-inner {
    min-height:440px
}
.hero h1 {
    font-size:46px
}
.hero-copy {
    max-width:430px
}
.hero-copy>p {
    font-size:16px;
    max-width:375px
}
.hero-image {
    object-position:63% center
}
.hero-shade {
    background:linear-gradient(90deg,rgba(16,28,32,.9),rgba(16,28,32,.68) 40%,rgba(16,28,32,.08) 100%)
}
.service-grid {
    grid-template-columns:1fr 1fr;
    gap:22px
}
.service-grid>div {
    justify-content:center;
    font-size:12px
}
.service-grid strong {
    font-size:13px
}
.category-grid {
    grid-template-columns:repeat(2,1fr);
    gap:18px
}
.category>img {
    height:190px
}
.section-heading {
    align-items:flex-start
}
.section-heading>.text-link,.section-note {
    display:none
}
.featured-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px
}
.featured-grid .product-media {
    padding:28px 12px 0
}
.featured-grid .product-photo img {
    aspect-ratio:1
}
.featured-grid .product-body {
    padding:14px
}
.featured-grid .product-title {
    font-size:18px
}
.featured-grid .specs {
    grid-template-columns:1fr
}
.featured-grid .price strong {
    font-size:23px
}
.featured-grid .product-credit {
    font-size:11px
}
.featured-grid .product-actions .button {
    padding-inline:8px;
    font-size:12px
}
.featured-grid .product-actions .icon {
    display:none
}
.catalog-layout {
    display:block
}
.filters-host {
    display:none
}
.catalog-toolbar {
    gap:15px;
    flex-wrap:wrap
}
.filter-toggle {
    display:inline-flex;
    min-height:43px;
    padding:9px 14px;
    font-size:13px;
    gap:7px
}
.filter-toggle .icon {
    width:17px;
    height:17px
}
.filter-toggle span:empty {
    display:none
}
.catalog-toolbar>p {
    margin-right:auto
}
.product-grid {
    gap:20px;
    grid-template-columns:repeat(2,minmax(0,1fr))
}
.product-grid .product-actions {
    grid-template-columns:1fr auto;
    gap:7px
}
.product-grid .details-button {
    border:1px solid var(--line);
    padding:11px 13px
}
.product-grid .product-title {
    font-size:20px
}
.product-grid .product-photo img {
    aspect-ratio:1.3
}
.apply-filters {
    display:flex;
    width:100%;
    margin-top:20px
}
.finance-layout {
    grid-template-columns:1fr 1.6fr;
    gap:35px
}
.finance-number {
    font-size:135px
}
.finance-number span {
    font-size:17px
}
.finance-copy {
    padding-left:30px
}
.finance-copy h2 {
    font-size:29px
}
.finance-copy p {
    font-size:14px
}
.support-section {
    gap:40px;
    grid-template-columns:1fr 1.3fr
}
.support-intro h2 {
    font-size:34px
}
.support-list h3 {
    font-size:16px
}
.support-list p {
    font-size:13px
}
.support-list article {
    gap:13px
}
.faq-layout {
    grid-template-columns:1fr;
    gap:30px
}
.faq-layout>div>p {
    max-width:none;
    margin:15px 0 18px
}
.contact-section {
    padding-block:48px;
    gap:25px
}
.contact-section h2 {
    font-size:27px
}
.contact-section p {
    font-size:14px
}
.contact-section .button {
    max-width:225px
}
.footer-grid {
    grid-template-columns:1fr 1fr;
    gap:36px
}
.footer-bottom {
    font-size:10px
}
.detail-layout {
    padding:54px 25px 25px;
    gap:25px
}
.detail-info h2 {
    font-size:25px
}
.detail-info .price strong {
    font-size:28px
}
.detail-specs {
    gap:14px
}
.detail-specs dd {
    font-size:13px
}

}

@media(max-width:599px) {
    html {
    scroll-padding-top:136px
}
.container {
    width:calc(100% - 32px)
}
.announcement-inner {
    min-height:32px;
    justify-content:center
}
.announcement-inner>span {
    display:none
}
.announcement {
    font-size:11px
}
.announcement a {
    gap:10px
}
.masthead {
    display:grid;
    grid-template-columns:1fr auto auto;
    gap:4px 13px;
    min-height:115px;
    padding-block:8px 10px
}
.brand {
    width:140px
}
.brand img {
    width:134px;
    height:48px
}
.brand span {
    font-size:8px;
    text-align:left;
    margin-top:-4px;
    padding-left:7px
}
.header-contact {
    grid-column:2;
    grid-row:1
}
.header-contact .icon {
    width:25px;
    height:25px
}
.menu-toggle {
    display:inline-flex;
    grid-column:3;
    grid-row:1
}
.header-search {
    grid-column:1/-1;
    grid-row:2;
    width:100%;
    margin-top:4px
}
.header-search input {
    height:38px;
    padding-left:12px;
    font-size:12px
}
.header-search button {
    height:38px;
    width:42px
}
.header-search .icon {
    width:18px;
    height:18px
}
.main-nav {
    display:none
}
.hero,.hero-inner {
    min-height:475px
}
.hero-inner {
    align-items:flex-start;
    padding-block:35px
}
.hero-image {
    object-position:65% center
}
.hero-shade {
    background:linear-gradient(90deg,rgba(14,28,34,.84),rgba(14,28,34,.37)),linear-gradient(180deg,rgba(14,28,34,.35),transparent 90%)
}
.hero-copy {
    max-width:335px
}
.hero h1 {
    font-size:42px;
    line-height:1.08;
    letter-spacing:-.04em;
    margin-bottom:20px
}
.hero-copy>p {
    font-size:14px;
    line-height:1.75;
    max-width:305px
}
.hero-actions {
    margin-top:24px;
    gap:19px
}
.hero .button {
    padding:13px 17px;
    min-height:47px;
    font-size:13px;
    gap:10px
}
.hero-contact-link {
    font-size:12px
}
.hero-proof {
    font-size:11px;
    gap:5px;
    margin-top:20px
}
.hero-proof .icon {
    width:14px;
    height:14px
}
.service-grid {
    padding-block:22px;
    gap:22px 15px
}
.service-grid>div {
    justify-content:flex-start;
    gap:9px;
    align-items:flex-start;
    font-size:11px;
    line-height:1.55
}
.service-grid strong {
    font-size:12px;
    line-height:1.5;
    margin-bottom:3px
}
.service-grid .icon {
    width:24px;
    height:24px;
    margin-top:2px
}
.section {
    padding-block:42px
}
h2 {
    font-size:28px
}
.section-heading {
    margin-bottom:24px
}
.section-heading p {
    font-size:13px;
    line-height:1.7;
    margin-top:12px
}
.category-grid {
    gap:12px
}
.category>img {
    height:126px
}
.category>div {
    padding:13px 12px 15px
}
.category span {
    font-size:14px;
    line-height:1.25;
    padding-right:15px;
    max-width:145px
}
.category small {
    font-size:11px;
    line-height:1.5;
    margin-top:6px
}
.category .icon {
    width:15px;
    height:15px;
    right:9px;
    top:13px
}
.featured-grid {
    grid-template-columns:1fr;
    gap:20px
}
.featured-grid .product-media {
    padding:28px 25px 0
}
.featured-grid .product-photo img {
    aspect-ratio:1.4
}
.featured-grid .product-body {
    padding:18px 22px 22px
}
.featured-grid .product-title {
    font-size:22px
}
.featured-grid .specs {
    grid-template-columns:1fr 1fr
}
.featured-grid .price strong {
    font-size:29px
}
.featured-grid .product-credit {
    font-size:12px
}
.featured-grid .product-actions {
    grid-template-columns:1fr auto
}
.featured-grid .product-actions .button {
    font-size:13px;
    padding:11px 13px
}
.featured-grid .product-actions .icon {
    display:block
}
.catalog-toolbar {
    gap:12px
}
.catalog-toolbar>p {
    font-size:12px;
    margin-left:auto;
    margin-right:0
}
.sort-label {
    width:100%;
    justify-content:space-between;
    font-size:12px
}
.sort-label select {
    width:67%;
    font-size:12px;
    height:40px
}
.product-grid {
    grid-template-columns:1fr;
    gap:20px
}
.product-grid .product-photo img {
    aspect-ratio:1.45
}
.product-grid .product-media {
    padding:28px 22px 0
}
.product-grid .product-body {
    padding:18px 22px 20px
}
.product-grid .product-title {
    font-size:21px
}
.product-grid .price strong {
    font-size:28px
}
.product-grid .product-actions {
    grid-template-columns:1fr auto
}
.product-grid .details-button {
    border:1px solid var(--line);
    padding:11px 13px
}
.specs dd {
    font-size:14px
}
.specs dt {
    font-size:11px
}
.catalog-note {
    font-size:11px
}
.finance-section {
    padding:42px 0
}
.finance-layout {
    grid-template-columns:1fr;
    gap:29px
}
.finance-number {
    font-size:104px;
    text-align:left;
    display:flex;
    align-items:center;
    gap:23px;
    line-height:1
}
.finance-number span {
    font-size:19px;
    letter-spacing:0;
    margin:0;
    max-width:125px;
    line-height:1.4
}
.finance-copy {
    border-left:0;
    border-top:1px solid #657176;
    padding:28px 0 0
}
.finance-copy h2 {
    font-size:30px;
    max-width:300px
}
.finance-copy p {
    font-size:14px
}
.finance-copy small {
    font-size:11px
}
.support-section {
    display:block;
    padding-block:48px
}
.support-intro h2 {
    font-size:34px
}
.support-intro p {
    font-size:14px;
    line-height:1.75;
    margin:19px 0 20px
}
.support-intro {
    margin-bottom:34px
}
.support-list {
    gap:26px
}
.support-list h3 {
    font-size:17px
}
.support-list p {
    font-size:14px
}
.support-list article {
    gap:17px
}
.support-list article>.icon {
    width:25px;
    height:25px
}
.faq-layout {
    gap:27px
}
.faq-list summary {
    font-size:14px;
    padding-block:20px
}
.faq-list details>p {
    font-size:13px;
    padding-right:15px
}
.faq-layout>div>p {
    font-size:14px
}
.contact-section {
    display:block;
    padding-block:42px
}
.contact-section h2 {
    font-size:30px
}
.contact-section p {
    font-size:14px;
    margin-block:17px 24px;
    line-height:1.7
}
.contact-section .button {
    max-width:none
}
.footer-grid {
    grid-template-columns:1fr 1fr;
    gap:30px 20px;
    padding-block:36px
}
.footer-brand {
    grid-column:1/-1
}
.footer-brand>img {
    width:156px;
    height:65px
}
.footer-brand>p {
    font-size:14px
}
.footer-grid h2 {
    font-size:13px;
    margin-top:0;
    line-height:1.4;
    margin-bottom:16px
}
.footer-grid>div:not(.footer-brand)>a,.footer-contact>span {
    font-size:12px
}
.footer-contact {
    grid-column:1/-1
}
.footer-bottom {
    display:block;
    font-size:11px;
    padding-bottom:90px
}
.footer-bottom>span {
    display:block;
    margin:5px 0
}
.floating-contact {
    right:16px;
    bottom:16px;
    width:50px;
    height:50px;
    padding:11px;
    justify-content:center
}
.floating-contact span {
    display:none
}
.product-dialog {
    width:calc(100% - 24px);
    max-height:calc(100dvh - 24px)
}
.detail-layout {
    display:block;
    padding:50px 22px 25px
}
.detail-visual img {
    aspect-ratio:1.2
}
.detail-visual>p {
    display:none
}
.detail-info {
    margin-top:24px
}
.detail-info h2 {
    font-size:27px
}
.detail-info .price strong {
    font-size:32px
}
.detail-specs dd {
    font-size:14px
}
.detail-close {
    position:sticky;
    top:10px;
    float:right;
    margin-bottom:-44px
}
.dialog-heading {
    padding:16px 20px
}
.dialog-heading h2 {
    font-size:19px
}
.filter-dialog .filters-form {
    padding-inline:20px
}

}

/* Verified image sizing and legibility across the catalog and detail gallery. */
.product-photo img,.detail-visual img {
    height:auto
}

.radio-label {
    clear:both
}

input::placeholder {
    color:#60686d
}

.brand span {
    font-size:11px
}

.header-contact {
    min-width:44px;
    min-height:44px;
    justify-content:center
}

.product-credit {
    min-height:32px;
    display:inline-flex;
    align-items:center
}

.detail-terms,.detail-visual>p,.finance-copy small,.catalog-note {
    font-size:12px
}

.floating-contact {
    border:0
}

@media(max-width:599px) {
    .brand span {
    font-size:10px;
    letter-spacing:0;
    padding-left:0
}
.header-search input {
    height:44px
}
.header-search button {
    height:44px
}
.masthead {
    min-height:125px
}
.hero-proof {
    font-size:11px
}
.brand {
    width:150px
}
.filter-group select {
    min-height:44px
}

}

@media(prefers-reduced-motion:reduce) {
    html {
    scroll-behavior:auto
}
*,*:before,*:after {
    transition:none!important;
    animation:none!important
}

}

