/* Kinetic Cobalt Light ? foundation module. */
body {
    --heading-font: "Marcellus", Roboto, sans-serif;
    --heading-font-weight: 400;
    --heading-color: #111;
    --heading-line-height: 1.24;
    --swiper-theme-color: #8C907E;
    --bs-body-font-family: "Jost", Roboto, sans-serif;
    --bs-body-font-size: 18px;
    --bs-body-font-weight: 400;
    --bs-body-line-height: 1.5;
    --bs-body-color: #8f8f8f;
    --bs-body-color-rgb: 143, 143, 143;
    --bs-primary: #8C907E;
    --bs-secondary: #6c757d;
    --bs-black: #111;
    --bs-light: #F1F1F0;
    --bs-dark: #212529;
    --bs-gray: #9aa1a7;
    --bs-gray-dark: #51565b;
    --bs-primary-rgb: 140, 144, 126;
    --bs-secondary-rgb: 108, 117, 125;
    --bs-black-rgb: 17, 17, 17;
    --bs-light-rgb: 241, 241, 240;
    --bs-dark-rgb: 33, 37, 41;
    --bs-link-color: #111;
    --bs-link-color-rgb: 17, 17, 17;
    --bs-link-decoration: underline;
    --bs-link-hover-color: #111;
    --bs-link-hover-color-rgb: 17, 17, 17;
}

body {
    letter-spacing: 0.03rem;
}

h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
    font-family: "Inter", sans-serif;
    font-weight: var(--heading-font-weight);
    color: var(--heading-color);
    line-height: var(--heading-line-height);
}

h1.light,
.h1,
h2.light,
.h2,
h3.light,
.h3,
h4.light,
.h4,
h5.light,
.h5,
h6.light,
.h6 {
    color: var(--light-color);
}

h1,
h2,
h3 {
    margin: 25px 0;
}

h5,
h6 {
    letter-spacing: 1px;
}

h1,
.h1 {
    font-size: 4.5rem;
}

h2,
.h2 {
    font-size: 3.6rem;
}

h3,
.h3 {
    font-size: 2.8rem;
}

h4,
.h4 {
    font-size: 1.8rem;
}

h5,
.h5 {
    font-size: 1.4rem;
}

h6,
.h6 {
    font-size: 1rem;
}
.container-fluid {
    max-width: 1800px;
}
.dropdown-menu {
    --bs-dropdown-border-radius: 0;
    --bs-dropdown-border-width: 0;
}

.dropdown-item {
    --bs-dropdown-item-padding-y: 0.25rem;
    --bs-dropdown-item-padding-x: 1rem;
    --bs-dropdown-link-color: var(--bs-black);
    --bs-dropdown-item-border-radius: 0;
}

.dropdown-item.active,
.dropdown-item:active {
    --bs-dropdown-link-active-color: var(--bs-light);
    --bs-dropdown-link-active-bg: var(--bs-black);
}
.list-group-item {
    --bs-list-group-item-padding-x: 0;
    --bs-list-group-border-width: 0;
}
.btn {
    --bs-btn-border-radius: 0;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #8C907E;
    --bs-btn-border-color: #8C907E;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #5e624e;
    --bs-btn-hover-border-color: #5e624e;
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #5e624e;
    --bs-btn-active-border-color: #5e624e;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #8C907E;
    --bs-btn-disabled-border-color: #8C907E;
}

.btn-outline-primary {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--bs-primary);
    --bs-btn-active-border-color: var(--bs-primary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-primary);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-primary);
    --bs-gradient: none;
}

.pagination {
    --bs-pagination-active-bg: var(--bs-black);
    --bs-pagination-border-width: 0;
    --bs-pagination-border-radius: 0;
}
.breadcrumb {
    --bs-breadcrumb-item-padding-x: 1em;
}
.text-white {
    --heading-color: var(--bs-light);
    --bs-breadcrumb-item-active-color: var(--bs-light);
    --bs-breadcrumb-divider-color: var(--bs-light);
    --bs-link-color-rgb: var(--bs-light-rgb);
    --bs-link-hover-color-rgb: var(--bs-light-rgb);
}

.text-white .nav-link {
    --bs-nav-link-color: var(--bs-light);
    --bs-nav-link-hover-color: var(--bs-light);
    --bs-nav-link-active-color: var(--bs-light);
    --bs-navbar-active-color: var(--bs-light);
}
.accordion {
    --bs-accordion-border-width: 0;
    --bs-accordion-border-radius: 0;
    --bs-accordion-inner-border-radius: 0;
    --bs-accordion-btn-padding-x: 0;
    --bs-accordion-btn-padding-y: 0.1rem;
    --bs-accordion-btn-color: var(--bs-dark);
    --bs-accordion-btn-bg: transparent;
    --bs-accordion-btn-focus-border-color: var(--bs-dark);
    --bs-accordion-btn-focus-box-shadow: none;
    --bs-accordion-body-padding-x: 0;
    --bs-accordion-body-padding-y: 0.1rem;
    --bs-accordion-active-color: transparent;
    --bs-accordion-active-bg: transparent;
}
.form-control:focus {
    border-color: #ccc;
    box-shadow: 0 0 0 0.25rem rgba(200, 200, 200, .25);
}
[data-bs-theme=dark] body {
    color-scheme: dark;
    --heading-color: #fff;
    --bs-link-color: #fff;
    --bs-link-hover-color: #fff;
    --bs-link-color-rgb: 255, 255, 255;
    --bs-link-hover-color-rgb: 255, 255, 255;
    --bs-body-color: #d1d1d1;
    --bs-body-bg: #111;
    --bs-body-bg-rgb: 17, 17, 41;
}

[data-bs-theme=dark] .dropdown-item {
    --bs-dropdown-link-color: var(--bs-light);
    --bs-dropdown-link-hover-color: var(--bs-white);
}

[data-bs-theme=dark] .bg-white,
[data-bs-theme=dark] .bg-light {
    --bs-bg-opacity: 0.1;
}

[data-bs-theme=dark] .btn-link,
[data-bs-theme=dark] a {
    --bs-link-color: #fff;
    --bs-link-hover-color: #fff;
    --bs-link-color-rgb: 255, 255, 255;
    --bs-link-hover-color-rgb: 255, 255, 255;
}

[data-bs-theme=dark] h1,
[data-bs-theme=dark] h2,
[data-bs-theme=dark] h3,
[data-bs-theme=dark] h4,
[data-bs-theme=dark] h5,
[data-bs-theme=dark] h6 {
    --heading-color: #fff;
}
.preloader {
    position: fixed;
    z-index: 9999;
    background: #111;
    width: 100vw;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: height 0.8s cubic-bezier(0.075, 0.82, 0.165, 1);
}

.preloader.loaded {
    height: 0;
}
.navbar.fixed-top {
    transition: background-color 0.6s ease-out;
}
.slideshow {
    overflow: hidden;
}
.slideshow .swiper-slide {
    background-position: center;
    background-origin: padding-box;
    background-repeat: no-repeat;
    background-size: cover;
    transition: background-size 1s ease-in-out;
}
.slideshow.fade-in .swiper-slide .banner-content {
    opacity: 0;
    transition: opacity 0.3s ease-out;
    transition-delay: 600ms;
}

.slideshow.fade-in .swiper-slide.swiper-slide-active .banner-content {
    opacity: 1;
}
.slide-in .swiper-slide .banner-content h2,
.slide-in .swiper-slide .banner-content p,
.slide-in .swiper-slide .banner-content .btn {
    display: inline-block;
    opacity: 0;
    transform: translate3d(0, 50px, 0);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.slide-in .swiper-slide .banner-content h2 {
    transition-delay: 600ms;
}

.slide-in .swiper-slide .banner-content p {
    transition-delay: 800ms;
}

.slide-in .swiper-slide .banner-content .btn {
    transition-delay: 1000ms;
}

.slide-in .swiper-slide.swiper-slide-active .banner-content h2,
.slide-in .swiper-slide.swiper-slide-active .banner-content p,
.slide-in .swiper-slide.swiper-slide-active .banner-content .btn {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}
.slide-clip .swiper-slide .image-holder img {
    transform: scale(1.2);
    transition: transform 1s ease-in-out;
}

.slide-clip .swiper-slide.swiper-slide-active .image-holder img {
    transform: scale(1);
}

.slide-clip .swiper-slide .image-holder {
    clip-path: inset(100% 0 0 0);
    display: block;
}

.slide-clip .swiper-slide.swiper-slide-active .image-holder {
    animation: 1s slide-clip forwards;
}

.slide-clip .swiper-slide.swiper-slide-prev .image-holder,
.slide-clip .swiper-slide.swiper-slide-next .image-holder {
    animation: 1s slide-down;
}
.aos-animate.slide-clip-animation .image-holder {
    animation: 1s slide-clip forwards;
}

.slide-clip-animation .image-holder {
    clip-path: inset(100% 0 0 0);
}

@keyframes slide-clip {
    0% {
        clip-path: inset(100% 0 0 0);
    }

    100% {
        clip-path: inset(0 0 0 0);
    }
}

@keyframes slide-down {
    0% {
        clip-path: inset(0 0 0 0);
    }

    100% {
        clip-path: inset(100% 0 0 0);
    }
}
.swipe-up {
    clip-path: inset(0 0 100% 0);
    display: block;
}

.aos-animate .swipe-up {
    animation: 1s swipe-up forwards;
}
@keyframes swipe-up {
    0% {
        clip-path: inset(0 0 100% 0);
    }

    100% {
        clip-path: inset(0);
    }
}
.polygon {
    clip-path: polygon(0 0, 100% 0, 100% 20%, 100% 100%, 80% 100%, 20% 100%, 0 100%, 0% 20%);
}

.aos-animate .polygon {
    animation: 1s polygon forwards;
}

@keyframes polygon {
    0% {
        clip-path: polygon(0 0, 100% 0, 100% 20%, 100% 100%, 80% 100%, 20% 100%, 0 100%, 0% 20%);
    }

    100% {
        clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 0% 20%);
    }
}
.open-up {
    clip-path: inset(48% 34% 36% 35%);
}

.aos-animate.open-up {
    animation: 1s open-up forwards;
}

@keyframes open-up {
    0% {
        clip-path: inset(48% 34% 36% 35%);
    }

    100% {
        clip-path: inset(0% 0% 0% 0%);
    }
}
.swipe-up {
    --delay: 0.05s;
}

.swipe-up {
    animation-delay: 1s;
}
.txt-fx {
    overflow: hidden;
    line-height: 1;
}

.txt-fx.zoom {
    overflow: visible;
}

.txt-fx .word {
    overflow: hidden;
    transform-origin: 0 100%;
    display: inline-block;
    line-height: 1em;
}

.txt-fx .letter {
    transform-origin: 0 100%;
    display: inline-block;
    line-height: 1em;
}

.txt-fx {
    --delay: 50ms;
    --easing: cubic-bezier(.5, 0, .53, 1);
}
.txt-fx.fade-right .letter {
    transform: translate3d(-50px, 0, 0);
    opacity: 0;
    transition: transform 0.6s var(--easing), opacity 0.6s var(--easing);
}

.aos-animate .txt-fx.fade-right .letter {
    transform: translate3d(0, 0, 0);
    opacity: 1;
}
.txt-fx.slide-up .letter {
    transform: translate3d(0, 1.2em, 0);
    transition: transform 0.9s var(--easing);
}

.swiper-slide-active .txt-fx.slide-up .letter,
.aos-animate .txt-fx.slide-up .letter {
    transform: translate3d(0, 0, 0);
}
.txt-fx.domino .letter {
    transform-origin: 50% 0;
    transform: rotateY(90deg);
    transition: transform 0.9s var(--easing);
}

.swiper-slide-active .txt-fx.domino .letter,
.aos-animate .txt-fx.domino .letter {
    transform: rotateY(0);
}
.txt-fx.zoom .letter {
    transform-origin: 50% 0;
    transform: scale(3);
    transition: transform 0.9s var(--easing);
}

.swiper-slide-active .txt-fx.zoom .letter,
.aos-animate .txt-fx.zoom .letter {
    transform: scale(1);
}
.search-popup {
    background-color: #fff;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    z-index: 9999;
    -webkit-transition: opacity 0.3s 0s, visibility 0s 0.3s;
    -moz-transition: opacity 0.3s 0s, visibility 0s 0.3s;
    transition: opacity 0.3s 0s, visibility 0s 0.3s;
}

.search-popup.is-visible {
    opacity: 1;
    visibility: visible;
    cursor: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23000' d='M20 1l-1-1-9 9-9-9-1 1 9 9-9 9 1 1 9-9 9 9 1-1-9-9'/%3E%3C/svg%3E"), pointer;
    -webkit-transition: opacity 0.3s 0s, visibility 0s 0s;
    -moz-transition: opacity 0.3s 0s, visibility 0s 0s;
    transition: opacity 0.3s 0s, visibility 0s 0s;
}

.search-popup-container {
    background-color: transparent;
    position: relative;
    top: 50%;
    margin: 0 auto;
    padding: 0;
    width: 90%;
    max-width: 800px;
    text-align: center;
    box-shadow: none;
    cursor: default;
    -webkit-transform: translateY(-40px);
    transform: translateY(-40px);
    -webkit-backface-visibility: hidden;
    -webkit-transition-property: -webkit-transform;
    transition-property: transform;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
}

.is-visible .search-popup-container {
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}

.search-popup-form {
    position: relative;
    margin: 0 0 3em 0;
}

.search-popup-form .form-control {
    padding: 0 0 .375em 0;
    font-size: 2em;
}

.search-popup-form #search-popup-submit {
    display: none;
}

.search-popup .search-popup-close {
    display: block;
    position: absolute;
    top: 2em;
    right: 2em;
    margin: -0.5em;
    padding: 0.5em;
    line-height: 0;
}

.search-popup .search-popup-close:hover {
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
}

.search-popup .search-popup-close i {
    display: block;
    position: relative;
    width: 1em;
    height: 1em;
    fill: rgba(0, 0, 0, 0.5);
}

.search-popup .search-popup-close:hover i {
    fill: rgba(0, 0, 0, 1);
}

.search-popup .cat-list-title {
    margin-top: 40px;
    margin-bottom: 10px;
    font-size: 0.6em;
    font-weight: normal;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.search-popup .cat-list {
    margin: 0;
    list-style-type: none;
}

.search-popup .cat-list-item {
    display: inline-block;
    margin-bottom: 0;
    letter-spacing: 0.015em;
    font-size: 2em;
}

.search-popup .cat-list-item a {
    position: relative;
}

.search-popup .cat-list-item a::after {
    background: none repeat scroll 0 0 #fff;
    content: "";
    height: 1px;
    border-bottom: 1px solid #ff9697;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 100%;
    width: 100%;
    -webkit-transition: height 0.3s, opacity 0.3s, -webkit-transform 0.3s;
    transition: height 0.3s, opacity 0.3s, transform 0.3s;
    -webkit-transform: translateY(-5px);
    transform: translateY(-5px);
}

.search-popup .cat-list-item a:hover::after {
    height: 1px;
    opacity: 1;
    -webkit-transform: translateY(2px);
    transform: translateY(2px);
}

.search-popup .cat-list-item::after {
    content: "/";
    padding: 0 5px;
    line-height: 1;
    color: rgba(0, 0, 0, 0.5);
    vertical-align: text-top;
}

.search-popup .cat-list-item:last-child::after {
    display: none;
}

@media only screen and (max-width: 991px) {

    .search-popup .cat-list-item,
.search-popup-form .form-control {
        font-size: 1.425em;
    }
}

@media only screen and (max-width: 767px) {
    .search-popup .search-popup-close {
        top: 1em;
        right: 1em;
    }
}

@media only screen and (max-width: 575px) {

    .search-popup .cat-list-item,
.search-popup-form .form-control {
        font-size: 1.125em;
    }

    .search-popup .search-popup-close {
        top: 1em;
        right: 1em;
    }
}

.search-popup input[type="search"] {
    font-size: 24px;
    height: 60px;
    padding: 26px;
}

.search-popup .search-form button {
    top: 12px;
    right: 15px;
}

.search-popup .search-form button svg {
    height: 28px;
    width: 28px;
}
.icon-arrow {
    position: absolute;
    top: 50%;
    font-size: 2em;
    color: var(--bs-dark);
    z-index: 8;
    border: 1px solid var(--bs-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0.2;
    transition: all 0.3s ease-out;
}

.icon-arrow:hover {
    opacity: 1;
    background: var(--bs-black);
    color: var(--bs-white);
}

.icon-arrow.icon-arrow-left {
    left: 30px;
}

.icon-arrow.icon-arrow-right {
    right: 30px;
}

@media (max-width: 991px) {

    .icon-arrow.icon-arrow-left,
.icon-arrow.icon-arrow-right {
        display: none;
    }

    .swiper-pagination {
        position: relative;
    }
}
.icon-arrow.no-outline {
    top: 40%;
    font-size: 1.7em;
    color: var(--grey-color);
    border: none;
}

.icon-arrow.no-outline:hover {
    background: none;
    color: var(--bs-dark);
}

.icon-arrow.light-arrow.no-outline {
    color: var(--light-color);
    opacity: 0.7;
}

.icon-arrow.light-arrow.no-outline:hover {
    opacity: 1;
}

.swiper-button-normal {
    background: transparent;
}

.swiper-button-normal .icon {
    font-size: 1.6em;
    color: var(--bs-dark);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
}
.icon-arrow {
    width: 90px;
    height: 90px;
    border-radius: 50%;
}
.image-zoom-effect {
    display: flex;
    flex-wrap: wrap;
}

.image-zoom-effect .image-holder {
    width: 100%;
    height: auto;
    overflow: hidden;
    transform: scale(1);
    transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.image-zoom-effect:hover .image-holder {
    transform: scale(0.95);
}

.image-zoom-effect img {
    transform: scale(1);
    will-change: transform;
    transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    z-index: 0;
}

.image-zoom-effect:hover img {
    transform: scale(1.1);
}
.border-animation a,
.border-animation a:after,
.border-animation a:before {
    transition: all .5s;
}

.border-animation a {
    position: relative;
}

.border-animation a:after {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 0;
    content: '.';
    color: transparent;
    background: var(--bs-primary);
    height: 2px;
}

.border-animation a:hover:after {
    width: 100%;
}

.content-light .border-animation a:hover:after,
.content-light .border-animation li.active a:after {
    background: var(--bs-primary);
}
.border-animation .no-effect a:after {
    background: none;
}
.border-animation-left .item-anchor {
    position: relative;
    margin-bottom: 20px;
}

.border-animation-left .item-anchor:after {
    content: "";
    position: absolute;
    width: 0;
    height: 1px;
    left: 0;
    bottom: 0;
    z-index: 9;
    background: var(--bs-dark);
    transition: all 0.5s ease;
}

.border-animation-left.light-border .item-anchor:after,
.border-animation-left .item-anchor:after {
    background: var(--bs-dark);
}

.border-animation-left .item-anchor:hover:after,
.border-animation-left .item-anchor:focus:after {
    width: 100%;
}
.background {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 100%;
    height: 600px;
}

.background.pattern-bg {
    background: url(images/pattern-bg.png) no-repeat;
}

.background.normal-bg {
    background: url(images/newsletter-image.jpg) no-repeat;
}
.title-xlarge {
    font-size: calc(2rem + 10vw);
    font-family: "Inter", sans-serif;
    color: var(--bs-gray-300);
    position: absolute;
    top: -40px;
    left: 0;
    z-index: 0;
}
.video .video-content {
    position: relative;
}

.video .video-player {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.video .video-player a {
    position: relative;
}

.video .video-player svg {
    color: #fff;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
}

@media (max-width: 600px) {
    .video .video-player img.text-pattern {
        width: 60%;
        display: flex;
        margin: 0 auto;
    }
}
.testimonials .section-title {
    font-size: 1em;
    font-weight: 700;
    line-height: 1;
}

.testimonial-swiper .testimonial-item blockquote {
    font-size: 2.5em;
}

.testimonial-swiper .testimonial-item blockquote>p {
    margin: 0;
}

.testimonials .review-title {
    font-size: 14px;
}

.testimonial-swiper .swiper-slide {
    opacity: 0.2;
    width: 42% !important;
}

.testimonial-swiper.swiper-3d .swiper-slide-shadow-left,
.testimonial-swiper.swiper-3d .swiper-slide-shadow-right {
    background-image: none;
}

.testimonial-swiper .swiper-slide-active {
    opacity: 1;
}

.testimonials .swiper-pagination {
    left: 0;
    right: 0;
}

.testimonials .swiper-pagination .swiper-pagination-bullet-active {
    background: #8C907E;
}

.swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    margin-right: 10px;
}

@media only screen and (max-width: 1199px) {
    .testimonial-swiper .testimonial-item blockquote {
        font-size: 1.8em;
    }
}

@media only screen and (max-width: 999px) {
    .testimonial-swiper .testimonial-item blockquote {
        font-size: 1.2em;
    }
}
.instagram .insta-item {
    position: relative;
}

.instagram .insta-item a:after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
    background-color: rgba(0, 0, 0, 0.4);
    opacity: 0;
    transition: 0.6s ease-out;
}
.link-effect a {
    position: relative;
    padding: 0;
    overflow: hidden;
    transition: transform 0.5s;
    display: block;
}

.link-effect a::after {
    content: attr(data-after);
    display: inline-block;
    transform: translateY(100%);
    position: absolute;
    left: 0;
    font-size: 1rem;
    text-align: inherit;
    text-transform: uppercase;
    transition: inherit;
}

.link-effect a>span {
    display: inline-block;
    transform: translateY(0%);
    transition: inherit;
}

.link-effect:hover a>span {
    transform: translateY(-100%);
}

.link-effect:hover a::after {
    transform: translateY(0%);
}
.product-item .btn-wishlist {
    display: block;
    z-index: 111;
    position: absolute;
    top: 5px;
    padding: 10px;
    color: var(--bs-black);
    background: var(--bs-white);
    right: 5px;
    opacity: 0;
    transition: opacity 0.3s ease-in;
}

.product-item:hover .btn-wishlist {
    opacity: 1;
}
.text-rotate {
    animation: rotation 50s infinite linear;
}

@keyframes rotation {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(359deg);
    }
}
.product-thumbnail-slider {
    height: 790px;
}

@media screen and (max-width:992px) {
    .product-thumbnail-slider {
        margin-top: 20px;
        height: auto;
    }
}

@media screen and (min-width:992px) {
    .product-thumbnail-slider {
        height: 590px;
    }
}

@media screen and (min-width:1200px) {
    .product-thumbnail-slider {
        height: 790px;
    }
}
.product-quantity .qty-number {
    margin-right: 20px;
}

.product-quantity .input-group .btn {
    height: 48px;
    border: 1px solid #ccc;
}

.qty-number .quntity-button {
    min-width: 40px;
    height: 40px;
    font-size: 1.8em;
    line-height: 1.5;
    text-align: center;
    cursor: pointer;
    background-color: var(--accent-dim-color);
    transition: .5s all ease-in-out;
}

.qty-number .quntity-button:hover {
    background-color: var(--accent-lit-color);
}

.qty-number input {
    font-size: 1.4em;
    width: 50px;
    height: 40px;
    text-align: center;
    border-radius: 0;
    border: 1px solid var(--bs-dark);
}

.qty-field .regular-price {
    display: none;
}
.single-product-template .breadcrumbs li {
    font-size: 1.5em;
    padding-right: 15px;
}

.single-product-template .breadcrumbs span {
    padding-left: 15px;
}

.product-preview .swiper-slide {
    padding-bottom: 15px;
}
.rating-container .rating {
    color: var(--bs-yellow);
    font-size: 1.4em;
}

.product-info .color-product-options .color-item {
    display: inline-block;
    vertical-align: top;
    width: 25px;
    height: 25px;
    cursor: pointer;
    border: 1px solid var(--bs-gray);
    padding: 1px;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
    margin: 0 3px;
}

.product-info .color-product-options .color-item span {
    border: 1px solid var(--bs-dark);
    display: block;
    width: 100%;
    height: 100%;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
}

.product-info .color-product-options .color-item:hover {
    border: 1px dotted var(--bs-gray-300);
}

.product-info .item-title {
    width: 100%;
}

.swatch-element .swatch-label {
    font-weight: 400;
    line-height: 32px;
    text-align: center;
    display: inline-block;
    margin-right: 10px;
    min-width: 50px;
    height: 50px;
    border: 2px solid var(--bs-gray-300);
    transition: all 0.3s;
    cursor: pointer;
    padding: 8px;
}

.swatch-element .swatch-input {
    display: none;
}

.swatch-element .swatch-input:checked+.swatch-label {
    border: 2px solid var(--bs-gray);
}
.review-style1 .review-item .rating-container .rating {
    font-size: 1em;
}

.review-style1 .review-item span.author-name {
    font-weight: 600;
}
.btn-link {
    font-size: 0.875rem;
    font-family: "Inter", sans-serif;
    letter-spacing: 0.0875rem;
    text-transform: uppercase;
    text-decoration: none;
}

a.btn-link,
a.btn-link:after {
    transition: all .5s;
}

a.btn-link {
    position: relative;
}

a.btn-link:before,
a.btn-link:after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    background-color: var(--bs-dark);
    height: 1px;
}

[data-bs-theme=dark] a.btn-link:after {
    background-color: var(--bs-white);
}

a.btn-link:before {
    background-color: var(--bs-gray);
    width: 100%;
}

a.btn-link.is-checked:after,
a.btn-link:hover:after {
    width: 100%;
}

a.btn-link.text-white:after {
    background-color: var(--bs-white);
}

a.btn-link.text-light:after {
    background-color: var(--bs-light);
}
.form-check {
    padding: 0;
}

.form-check-label {
    display: block;
    position: relative;
    padding-left: 35px;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
.form-check-label input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
}
.checkmark {
    position: absolute;
    top: 0;
    left: 0;
    height: 25px;
    width: 25px;
    background-color: #eee;
    border: 1px solid #111;
    border-radius: 50%;
}
.form-check-label:hover input~.checkmark {
    background-color: #ccc;
}
.form-check-label input:checked~.checkmark {
    background-color: #A226F3;
}
.checkmark:after {
    content: "";
    position: absolute;
    display: none;
}
.form-check-label input:checked~.checkmark:after {
    display: block;
}
.form-check-label .checkmark:after {
    top: 8px;
    left: 8px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #444;
}

.form-check-label.red input~.checkmark {
    background-color: #CA7A7A;
}

.form-check-label.brown input~.checkmark {
    background-color: #D5BB96;
}

.form-check-label.green input~.checkmark {
    background-color: #A5BC73;
}

.form-check-label.aqua input~.checkmark {
    background-color: #779B9D;
}
.product-info .accordion {
    --bs-accordion-btn-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M19 11h-6V5a1 1 0 0 0-2 0v6H5a1 1 0 0 0 0 2h6v6a1 1 0 0 0 2 0v-6h6a1 1 0 0 0 0-2Z"%2F%3E%3C%2Fsvg%3E');
    --bs-accordion-btn-active-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M19 11H5a1 1 0 0 0 0 2h14a1 1 0 0 0 0-2Z"%2F%3E%3C%2Fsvg%3E');
}

.product-filter .accordion {
    --bs-accordion-btn-color: var(--bs-body-color);
    --bs-accordion-btn-bg: var(--bs-accordion-bg);
    --bs-accordion-btn-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M19 11h-6V5a1 1 0 0 0-2 0v6H5a1 1 0 0 0 0 2h6v6a1 1 0 0 0 2 0v-6h6a1 1 0 0 0 0-2Z"%2F%3E%3C%2Fsvg%3E');
    --bs-accordion-btn-active-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M19 11H5a1 1 0 0 0 0 2h14a1 1 0 0 0 0-2Z"%2F%3E%3C%2Fsvg%3E');
    --bs-accordion-body-padding-x: 0;
    --bs-accordion-body-padding-y: 0;
    --bs-accordion-active-color: #8C907E;
}

.product-filter .accordion-body>div,
.product-filter .accordion-body a {
    display: block;
    padding: 10px;
    margin-bottom: 1.25rem;
    border: 1px solid #EBEBEA;
}

.product-filter .accordion-body a:hover {
    border: 1px solid #999;
}
.image-zoom {
    position: relative;
    float: left;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.photo {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    transition: transform .3s ease-out;
}
.swiper-pagination {
    position: relative;
    margin-top: 30px;
}
.image-inner {
    width: 100%;
    aspect-ratio: 1/1;
    overflow: hidden;
}

.product-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.product-item {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.product-content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.product-content h5 {
    min-height: 50px;
    overflow: hidden;
}

.product-description,
.post-description {
    line-height: 1.8;
    color: #333;
}

.product-description a,
.post-description a {
    color: #e492b1;
    font-weight: 500;
}

.product-description a:hover,
.post-description a:hover {
    color: #f45858;
    text-decoration: none;
}

.product-description p,
.post-description p {
    margin-bottom: 12px;
    font-family: "Inter", sans-serif;
}

.product-description h1,
.post-description h1 {
    font-weight: 600;
}

.product-description h2,
.post-description h2 {
    font-weight: 400;
}

.product-description h3,
.post-description h3 {
    font-weight: 200;
}

.product-description h1,
.product-description h2,
.product-description h3,
.post-description h1,
.post-description h2,
.post-description h3 {
    font-family: "Inter", sans-serif;
    margin-top: 20px;
    margin-bottom: 10px;
}

.product-description ul,
.post-description ul {
    padding-left: 20px;
    margin-bottom: 15px;
}

.product-description li,
.post-description li {
    margin-bottom: 6px;
}

.product-description img,
.post-description img {
    height: auto;
    margin: 15px 0;
}

.product-description table,
.post-description table {
    border-collapse: collapse;
    margin: 15px 0;
    font-family: "Inter", sans-serif;
}

.product-description table,
.product-description th,
.product-description td,
.post-description table,
.post-description th,
.post-description td {
    border: 1px solid #ddd;
    padding: 8px;
}

.product-description blockquote,
.post-description blockquote {
    position: relative;
    padding: 20px 20px 20px 40px;
    background: #f1f1f1;
    border-radius: 8px;
    font-size: 15px;
    font-style: italic;
}

.product-description blockquote::before,
.post-description blockquote::before {
    content: "“";
    position: absolute;
    left: 10px;
    top: 0;
    color: #999;
}

:root {
    --danger: #b42318;
    --max: 1360px;
    --ease: cubic-bezier(.16, 1, .3, 1)
}

*,
*:before,
*:after {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    font-family: "Inter", sans-serif;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased
}

a {
    color: inherit;
    text-decoration: none
}

img {
    display: block;
    max-width: 100%
}

button,
input {
    font: inherit
}

.skip-link {
    position: fixed;
    left: 16px;
    top: -80px;
    z-index: 100;
    background: var(--paper);
    padding: 12px 18px
}

.skip-link:focus {
    top: 16px
}

.store-notice {
    padding: 6px 24px;
    background: var(--dark);
    font-size: 11px;
    letter-spacing: .04em;
    text-align: center
}

.store-header {
    position: sticky;
    top: 0;
    z-index: 40;
    border-bottom: 1px solid var(--line)
}

.store-header-main {
    max-width: var(--max);
    min-height: 76px;
    margin: auto;
    padding: 0 28px;
    display: grid;
    grid-template-columns: auto minmax(260px, 680px) auto;
    gap: 40px;
    align-items: center
}

.store-search {
    height: 44px;
    display: grid;
    border: 1px solid transparent
}

.store-search:focus-within {
    background: var(--paper);
    border-color: var(--accent)
}

.store-search input {
    min-width: 0;
    padding: 0 16px;
    border: 0;
    outline: 0;
    background: transparent
}

.store-search button {
    border: 0;
    font-weight: 650
}

.store-contact {
    display: flex;
    flex-direction: column;
    line-height: 1.2
}

.store-contact small {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--muted)
}

.store-nav {
    max-width: var(--max);
    height: 46px;
    margin: auto;
    padding: 0 28px;
    display: flex;
    align-items: center;
    gap: 30px;
    white-space: nowrap;
    overflow-x: auto;
    font-size: 13px;
    font-weight: 600
}

.store-nav a {
    position: relative;
    padding: 13px 0
}

.store-nav a:after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: 7px;
    height: 2px;
    background: var(--accent);
    transition: right .35s var(--ease)
}

.store-nav a:hover:after {
    right: 0
}

.hero {
    display: grid
}

.hero__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start
}

.eyebrow {
    margin: 0 0 16px;
    color: var(--accent);
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .16em;
    text-transform: uppercase
}

.eyebrow>span {
    display: inline-block;
    width: 22px;
    height: 1px;
    margin: 0 9px 3px 0;
    background: currentColor
}

.hero h1 {
    max-width: 650px;
    margin: 0;
    font-size: clamp(48px, 5.3vw, 76px);
    line-height: .98;
    letter-spacing: -.06em;
    font-weight: 650
}

.hero__lead {
    margin: 25px 0 0
}

.hero__actions {
    display: flex;
    align-items: center
}

.button {
    min-height: 48px;
    padding: 0 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    border: 1px solid transparent;
    font-weight: 650;
    transition: transform .3s var(--ease), background .3s var(--ease)
}

.button:active {
    transform: scale(.98)
}

.button--primary {
    background: var(--accent);
    color: #fff
}

.button--primary:hover {
    background: var(--accent-dark);
    color: #fff
}

.button--light {
    background: var(--paper);
    color: var(--ink)
}

.text-link {
    font-weight: 650;
    border-bottom: 1px solid currentColor
}

.text-link:hover {
    color: var(--accent)
}

.hero__facts {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin: 56px 0 0;
    border-top: 1px solid var(--line)
}

.hero__facts div {
    display: flex;
    flex-direction: column
}

.hero__facts dt {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .1em
}

.hero__facts dd {
    margin: 2px 0 0;
    font-size: 12px;
    font-weight: 650
}

.hero__visual {
    position: relative;
    margin: 0
}

.hero__visual img {
    width: 100%;
    height: 100%;
    transition: transform .8s var(--ease)
}

.hero:hover .hero__visual img {
    transform: scale(1.018)
}

.hero__visual figcaption {
    position: absolute;
    min-width: 230px;
    display: flex;
    flex-direction: column
}

.hero__visual figcaption span {
    font-size: 10px;
    text-transform: uppercase
}

.section {
    max-width: var(--max);
    margin: auto;
    padding: 112px 28px
}

.section-head {
    display: grid;
    grid-template-columns: 1.3fr .7fr;
    gap: 70px;
    align-items: end
}

.section-head--row {
    grid-template-columns: 1fr auto
}

.section-head h2 {
    margin: 0;
    font-weight: 600
}

.section-head>p {
    max-width: 48ch;
    margin: 0;
    color: var(--muted)
}

.category-section {
    padding-bottom: 36px
}

.category-rail {
    border-top: 1px solid var(--line);
    display: grid;
    grid-template-columns: repeat(4, 1fr)
}

.category-rail a {
    position: relative;
    border-right: 1px solid var(--line);
    display: flex;
    flex-direction: column;
    transition: background .35s var(--ease), transform .35s var(--ease)
}

.category-rail a>span {
    font: 600 10px "Consolas", monospace;
    color: var(--accent);
    letter-spacing: .08em
}

.category-rail small {
    max-width: 27ch;
    font-size: 13px
}

.category-rail i {
    position: absolute;
    right: 24px;
    top: 25px;
    font-style: normal
}

.product-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 44px 18px
}

.product-tile__image {
    aspect-ratio: 1;
    overflow: hidden;
    background: #e7eaee
}

.product-tile__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .55s var(--ease)
}

.product-tile:hover img {
    transform: scale(1.035)
}

.product-tile__status {
    min-height: 18px;
    margin-top: 15px;
    display: flex;
    gap: 10px;
    color: var(--muted);
    font-size: 10px;
    text-transform: uppercase
}

.product-tile__status .is-stock {
    color: var(--accent)
}

.product-tile h3 {
    margin: 6px 0 2px;
    font-size: 16px;
    line-height: 1.35;
    font-weight: 650
}

.product-tile p {
    min-height: 20px;
    margin: 0;
    color: var(--muted);
    font-size: 12px
}

.product-tile>a>strong {
    display: block;
    margin-top: 6px
}

.empty-state {
    padding: 80px 24px;
    border-block: 1px solid var(--line);
    text-align: center
}

.empty-state>span {
    font: 600 10px "Consolas", monospace;
    color: var(--accent)
}

.empty-state h3 {
    font-size: 28px;
    margin: 12px 0 4px
}

.empty-state p {
    color: var(--muted);
    margin: 0 0 24px
}

.selector {
    padding: 0 28px;
    display: grid
}

.selector__intro h2 {
    margin: 0;
    font-size: clamp(38px, 4.2vw, 58px);
    line-height: 1.02;
    letter-spacing: -.05em;
    font-weight: 600
}

.selector__intro>p:not(.eyebrow) {
    color: #aeb8c4
}

.selector__intro .button {
    margin-top: 24px
}

.selector__options a {
    padding: 22px 30px;
    border-bottom: 1px solid #36404c;
    display: grid;
    grid-template-columns: 42px 1fr auto;
    gap: 20px;
    align-items: center;
    transition: background .3s var(--ease), padding .3s var(--ease)
}

.selector__options a:hover {
    padding-left: 36px
}

.selector__options>a>span {
    font: 500 11px "Consolas", monospace
}

.selector__options div {
    display: flex;
    flex-direction: column
}

.selector__options small {
    color: #aeb8c4
}

.selector__options i {
    font-style: normal
}

.service-strip {
    padding: 34px 28px;
    border-block: 1px solid var(--line);
    display: grid;
    grid-template-columns: repeat(4, 1fr)
}

.service-strip div {
    border-right: 1px solid var(--line);
    display: flex;
    flex-direction: column
}

.service-strip div:last-child {
    border: 0
}

.service-strip span {
    font: 600 10px "Consolas", monospace;
    color: var(--accent)
}

.service-strip small {
    color: var(--muted)
}

.editorial__grid {
    display: grid;
    grid-template-columns: 1.35fr 1fr 1fr
}

.editorial img {
    width: 100%;
    filter: saturate(.82);
    transition: transform .5s var(--ease)
}

.editorial article:hover img {
    transform: translateY(-3px)
}

.editorial article span {
    color: var(--accent);
    font-size: 10px;
    font-weight: 700
}

.editorial h3 {
    margin: 6px 0
}

.editorial p {
    color: var(--muted)
}

.consult {
    border-left: 3px solid var(--accent);
    display: grid;
    grid-template-columns: 1.2fr .8fr auto;
    gap: 48px;
    align-items: center
}

.consult h2 {
    margin: 0;
    font-size: clamp(30px, 3.4vw, 46px);
    line-height: 1.05;
    letter-spacing: -.04em
}

.consult>p {
    color: var(--muted);
    margin: 0
}

@media(max-width:1024px) {
    .store-header-main {
        grid-template-columns: auto 1fr auto;
        gap: 22px
    }

    .store-contact {
        display: none
    }

    .store-nav {
        display: none;
        height: auto;
        padding: 16px 28px;
        flex-direction: column;
        align-items: flex-start
    }

    .store-nav.is-open {
        display: flex
    }

    .hero {
        grid-template-columns: 1fr;
        padding: 0 18px
    }

    .hero__visual {
        min-height: 480px
    }

    .category-rail,
.product-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .selector {
        grid-template-columns: 1fr;
        margin-inline: 18px;
        padding: 0
    }

    .editorial__grid {
        grid-template-columns: 1fr 1fr
    }

    .editorial article:first-child {
        grid-column: 1/-1
    }

    .service-strip {
        grid-template-columns: 1fr 1fr
    }
}

@media(max-width:680px) {
    .store-header-main {
        min-height: 68px;
        padding: 10px 16px;
        grid-template-columns: 1fr auto
    }

    .store-search {
        grid-column: 1/-1;
        grid-row: 2
    }

    .hero {
        margin-top: 14px;
        padding: 0 12px
    }

    .hero__content {
        padding: 44px 24px
    }

    .hero h1 {
        font-size: 46px
    }

    .hero__actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 18px
    }

    .hero__facts {
        grid-template-columns: 1fr 1fr
    }

    .hero__visual {
        min-height: 330px
    }

    .hero__visual figcaption {
        display: none
    }

    .section {
        padding: 78px 16px
    }

    .section-head,
.section-head--row {
        grid-template-columns: 1fr;
        gap: 18px;
        align-items: start
    }

    .section-head h2 {
        font-size: 38px
    }

    .category-rail {
        grid-template-columns: 1fr
    }

    .category-rail a {
        min-height: 190px;
        border-right: 0;
        border-bottom: 1px solid var(--line)
    }

    .product-grid {
        grid-template-columns: 1fr 1fr;
        gap: 34px 10px
    }

    .product-tile h3 {
        font-size: 14px
    }

    .product-tile p {
        display: none
    }

    .selector {
        margin-inline: 12px
    }

    .selector__intro {
        padding: 46px 24px
    }

    .selector__options a {
        padding: 20px;
        grid-template-columns: 30px 1fr auto
    }

    .service-strip {
        margin-inline: 16px;
        padding-inline: 0;
        grid-template-columns: 1fr
    }

    .service-strip div {
        padding: 20px 0;
        border-right: 0;
        border-bottom: 1px solid var(--line)
    }

    .editorial__grid {
        grid-template-columns: 1fr
    }

    .editorial article:first-child {
        grid-column: auto
    }

    .consult {
        margin: 0 16px 70px;
        padding: 36px 26px;
        grid-template-columns: 1fr
    }
}

.store-notice {
    color: var(--dark-muted)
}

.store-notice span {
    color: #8ab4f8
}

.store-header {
    background: rgba(252, 253, 255, .97);
    transition: box-shadow .35s var(--ease)
}

.store-header.is-condensed {
    box-shadow: 0 12px 32px rgba(11, 18, 32, .08)
}

.store-header-main {
    transition: min-height .35s var(--ease)
}

.store-header.is-condensed .store-header-main {
    min-height: 62px
}

.hero__visual,
.product-tile__image {
    background: var(--image-bg)
}

.hero__visual figcaption span {
    color: var(--dark-muted)
}

.product-tile__status .is-out {
    color: var(--danger)
}

.selector__intro>p:not(.eyebrow),
.selector__options small {
    color: var(--dark-muted)
}

.selector__options>a>span {
    color: #8ab4f8
}

.page-progress {
    position: fixed;
    inset: 0 0 auto;
    height: 2px;
    z-index: 80;
    pointer-events: none
}

.page-progress span {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--accent);
    transform: scaleX(0);
    transform-origin: left center;
    will-change: transform
}

.store-search kbd {
    align-self: center;
    padding: 2px 7px;
    border: 1px solid var(--line);
    border-radius: 4px;
    background: var(--paper);
    color: var(--muted);
    font: 500 11px/1.5 "Consolas", monospace;
    box-shadow: none
}

.store-nav a[aria-current="page"] {
    color: var(--accent)
}

.store-nav a[aria-current="page"]:after {
    right: 0
}

.back-to-top {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 30;
    width: 46px;
    height: 46px;
    border: 1px solid var(--dark-line);
    background: var(--dark);
    color: #fff;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity .3s var(--ease), transform .3s var(--ease), visibility .3s
}

.back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: none
}

.back-to-top:active {
    transform: scale(.96)
}

.site-toast {
    position: fixed;
    left: 50%;
    bottom: 24px;
    z-index: 70;
    max-width: calc(100% - 32px);
    padding: 12px 18px;
    background: var(--dark);
    color: #fff;
    font-size: 13px;
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 12px);
    transition: opacity .3s var(--ease), transform .3s var(--ease), visibility .3s
}

.site-toast.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0)
}

.image-unavailable {
    object-fit: contain !important;
    padding: 18%;
    filter: grayscale(1);
    opacity: .32
}

.product-tile a:focus-visible,
.category-rail a:focus-visible,
.selector__options a:focus-visible,
.button:focus-visible,
.text-link:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--accent) 45%, transparent);
    outline-offset: 4px
}

@media(max-width:1024px) {
    html.menu-open {
        overflow: hidden
    }

    .store-nav {
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        z-index: 41;
        max-height: calc(100dvh - 108px);
        overflow-y: auto;
        background: var(--paper);
        border-top: 1px solid var(--line);
        box-shadow: 0 18px 42px rgba(11, 18, 32, .12)
    }

    .store-search kbd {
        display: none
    }
}

@media(max-width:680px) {
    .back-to-top {
        right: 14px;
        bottom: 14px
    }

    .site-toast {
        bottom: 14px
    }
}

.store-search {
    position: relative;
    grid-template-columns: auto 1fr auto auto;
    border-radius: 12px;
    background: var(--paper);
    border-color: var(--line);
    box-shadow: 0 8px 24px rgba(11, 18, 32, .05)
}

.search-icon {
    width: 44px;
    display: grid;
    place-items: center;
    color: var(--muted)
}

.search-icon svg {
    width: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7
}

.store-search button {
    margin: 5px;
    padding: 0 18px;
    border-radius: 8px;
    background: var(--dark);
    color: #fff
}

.store-search button:hover {
    background: var(--accent)
}

.search-empty {
    padding: 22px;
    display: flex;
    flex-direction: column;
    text-align: center
}

.search-empty span {
    color: var(--muted);
    font-size: 12px
}

.search-loading {
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px
}

.search-loading span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--accent);
    animation: searchPulse .8s ease-in-out infinite alternate
}

.search-loading span:nth-child(2) {
    animation-delay: .15s
}

.search-loading span:nth-child(3) {
    animation-delay: .3s
}

@keyframes searchPulse {
    to {
        opacity: .25;
        transform: translateY(-4px)
    }
}

.store-nav {
    overflow: visible
}

.nav-subnode {
    position: relative
}

.cms-page {
    max-width: 1120px;
    margin: 0 auto;
    padding: 96px 28px 120px
}

.cms-page__header {
    max-width: 850px;
    padding-bottom: 42px;
    border-bottom: 1px solid var(--line)
}

.cms-page__header h1 {
    margin: 0;
    font-size: clamp(42px, 6vw, 72px);
    line-height: 1;
    letter-spacing: -.055em
}

.cms-page__content {
    max-width: 820px;
    margin-top: 52px;
    font-size: 17px;
    line-height: 1.8
}

.cms-page__content h2,
.cms-page__content h3 {
    margin-top: 2em;
    line-height: 1.2
}

.cms-page__content img {
    height: auto;
    margin: 32px 0
}

.cms-page__content a {
    color: var(--accent);
    text-decoration: underline
}

@media(max-width:1024px) {

    .cms-page {
        padding: 68px 20px 88px
    }
}

.journal-hero {
    border-bottom: 1px solid var(--line)
}

.journal-breadcrumb {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 48px;
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .09em
}

.journal-breadcrumb a:hover {
    color: var(--accent)
}

.journal-hero h1 {
    max-width: 850px;
    margin: 0;
    font-size: clamp(48px, 7vw, 92px);
    line-height: .93;
    letter-spacing: -.065em;
    font-weight: 600
}

.journal-hero__copy>p:last-child {
    max-width: 61ch;
    margin: 28px 0 0;
    color: var(--muted);
    font-size: 17px
}

.journal-hero__mark {
    width: 190px;
    height: 190px;
    padding: 20px;
    border: 1px solid var(--line);
    display: flex;
    flex-direction: column;
    justify-content: space-between
}

.journal-hero__mark>span {
    font-size: 72px;
    line-height: .8;
    font-weight: 650;
    color: var(--accent)
}

.journal-hero__mark small {
    font: 600 9px/1.5 "Consolas", monospace;
    letter-spacing: .1em
}

.journal-categories {
    max-width: var(--max);
    margin: auto;
    padding: 0 28px;
    display: flex;
    gap: 28px;
    overflow-x: auto;
    border-bottom: 1px solid var(--line)
}

.journal-categories a {
    padding: 18px 0;
    white-space: nowrap;
    color: var(--muted);
    font-size: 12px;
    font-weight: 650
}

.journal-categories a.is-active {
    color: var(--ink);
    box-shadow: inset 0 -2px var(--accent)
}

.journal-index {
    max-width: var(--max);
    margin: auto;
    padding: 70px 28px 110px
}

.feature-story {
    display: grid;
    grid-template-columns: 1.2fr .8fr
}

.feature-story__image {
    overflow: hidden
}

.feature-story__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s var(--ease)
}

.feature-story:hover img {
    transform: scale(1.02)
}

.feature-story__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start
}

.story-meta {
    display: flex;
    gap: 14px;
    align-items: center;
    color: var(--muted);
    font: 600 10px/1.4 "Consolas", monospace;
    text-transform: uppercase;
    letter-spacing: .08em
}

.story-meta span:first-child {
    color: var(--accent)
}

.feature-story h2 {
    letter-spacing: -.05em;
    font-weight: 600
}

.feature-story__copy>p {
    color: var(--muted)
}

.story-link {
    margin-top: 24px;
    font-weight: 650;
    border-bottom: 1px solid var(--ink)
}

.story-link span {
    margin-left: 24px
}

.story-grid {
    display: grid
}

.story-card:nth-child(3n) {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: 1.25fr .75fr;
    column-gap: 38px
}

.story-card__image {
    display: block;
    overflow: hidden;
    margin-bottom: 18px
}

.story-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .55s var(--ease)
}

.story-card:hover img {
    transform: scale(1.025)
}

.story-card h2 {
    letter-spacing: -.035em
}

.story-card>p {
    max-width: 62ch;
    color: var(--muted);
    font-size: 14px
}

.journal-pagination {
    margin-top: 78px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
    display: flex;
    gap: 8px
}

.journal-pagination a {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line);
    font: 600 11px "Consolas", monospace
}

.journal-pagination a.is-current {
    background: var(--dark);
    border-color: var(--dark);
    color: #fff
}

.journal-empty {
    padding: 100px 20px;
    text-align: center
}

.journal-empty>span {
    color: var(--accent);
    font: 600 10px "Consolas", monospace
}

.journal-empty h2 {
    font-size: 36px;
    margin: 12px 0
}

.journal-empty p {
    color: var(--muted);
    margin-bottom: 25px
}

.article-toc{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

.article-toc strong{font-size:11px;text-transform:uppercase;letter-spacing:.08em}

.article-toc ol{padding-left:20px}

.article-toc li{color:var(--muted);font-size:13px}

.article-toc li.is-sub{margin-left:16px}

.article-toc a:hover{color:var(--accent)}

.related-journal__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px
}

@media(max-width:1024px) {
    .journal-hero__mark {
        display: none
    }

    .feature-story {
        grid-template-columns: 1fr
    }

    .feature-story__image {
        min-height: 430px
    }

    .related-journal__grid {
        grid-template-columns: 1fr 1fr
    }
}

@media(max-width:680px) {
    .journal-hero {
        padding: 58px 18px 44px
    }

    .journal-breadcrumb {
        margin-bottom: 32px
    }

    .journal-hero h1 {
        font-size: 48px
    }

    .journal-categories {
        padding: 0 18px
    }

    .journal-index {
        padding: 42px 14px 78px
    }

    .feature-story__image {
        min-height: 280px
    }

    .feature-story__copy {
        padding: 30px 24px
    }

    .story-grid {
        margin-top: 55px;
        grid-template-columns: 1fr;
        gap: 48px
    }

    .story-card:nth-child(3n) {
        grid-column: auto;
        display: block
    }

    .related-journal__grid {
        grid-template-columns: 1fr
    }
}

.catalog-hero {
    max-width: var(--max);
    margin: 24px auto 0;
    padding: 0 28px;
    display: grid;
    grid-template-columns: .82fr 1.18fr;
    min-height: 460px
}

.catalog-hero__copy {
    padding: 64px;
    background: var(--paper);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start
}

.catalog-hero__copy .journal-breadcrumb {
    margin-bottom: 38px
}

.catalog-hero h1 {
    margin: 0;
    font-size: clamp(48px, 6vw, 78px);
    line-height: .95;
    letter-spacing: -.06em
}

.catalog-hero__copy>p:last-child {
    max-width: 48ch;
    margin-top: 20px;
    color: var(--muted)
}

.catalog-hero figure {
    margin: 0;
    overflow: hidden;
    background: var(--image-bg)
}

.catalog-hero figure img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.catalog-shell {
    max-width: var(--max);
    margin: auto;
    display: grid
}

.catalog-filter__head {
    border-bottom: 1px solid var(--line);
    display: flex;
    justify-content: space-between
}

.catalog-filter__head>div {
    display: flex;
    flex-direction: column
}

.catalog-filter__head span {
    font: 600 9px "Consolas", monospace
}

.catalog-filter__head button {
    display: none;
    border: 0;
    background: transparent;
    font-size: 25px
}

.filter-group {
    padding: 22px 0;
    border-bottom: 1px solid var(--line);
    display: flex;
    flex-direction: column
}

.filter-group>strong,
.filter-group summary {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em
}

.filter-group summary {
    display: flex;
    justify-content: space-between;
    cursor: pointer;
    list-style: none
}

.filter-group summary span {
    transition: transform .25s
}

.filter-group>a {
    color: var(--muted);
    font-size: 13px
}

.filter-group>a:hover,
.filter-group>a.is-active {
    color: var(--accent)
}

.filter-group label {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 9px;
    align-items: center;
    cursor: pointer;
    font-size: 13px
}

.filter-group input {
    appearance: none;
    width: 15px;
    height: 15px;
    border: 1px solid var(--line);
    background: var(--paper)
}

.filter-group input:checked {
    border: 4px solid var(--paper);
    background: var(--accent);
    outline: 1px solid var(--accent)
}

.filter-group small {
    color: var(--muted);
    font: 500 10px "Consolas", monospace
}

.filter-reset {
    margin-top: 20px;
    padding: 0;
    border: 0;
    border-bottom: 1px solid currentColor;
    background: transparent;
    color: var(--muted);
    font-size: 12px
}

.catalog-toolbar {
    padding-bottom: 16px;
    border-bottom: 1px solid var(--line);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px
}

.catalog-toolbar>div {
    display: flex;
    gap: 20px;
    align-items: center
}

.catalog-toolbar span {
    color: var(--muted);
    font-size: 12px
}

.filter-open {
    display: none;
    border: 0;
    background: transparent;
    font-weight: 650
}

.catalog-toolbar label {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--muted);
    font-size: 11px
}

.catalog-toolbar select {
    padding: 9px 30px 9px 10px;
    color: var(--ink);
    outline: 0
}

.catalog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr)
}

.catalog-product__image {
    position: relative;
    overflow: hidden
}

.catalog-product__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .55s var(--ease)
}

.catalog-product:hover img {
    transform: scale(1.025)
}

.catalog-product__image>span {
    position: absolute;
    left: 10px;
    top: 10px;
    padding: 5px 8px;
    background: var(--paper);
    font: 600 9px "Consolas", monospace;
    text-transform: uppercase
}

.catalog-product__image .in-stock {
    color: var(--accent)
}

.catalog-product__image .out-stock {
    color: var(--danger)
}

.catalog-product__meta {
    margin-top: 13px;
    display: flex;
    gap: 10px;
    color: var(--muted);
    font: 500 9px "Consolas", monospace;
    text-transform: uppercase
}

.catalog-product h2,
.catalog-product h3 {
    margin: 7px 0 2px;
    font-size: 16px;
    line-height: 1.35
}

.catalog-product p {
    margin: 0;
    color: var(--muted)
}

.catalog-product>a>strong {
    display: block;
    margin-top: 6px
}

.catalog-pagination {
    margin-top: 65px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
    display: flex;
    gap: 7px
}

.catalog-pagination button {
    width: 42px;
    height: 42px;
    border: 1px solid var(--line);
    background: transparent;
    font: 600 10px "Consolas", monospace
}

.catalog-pagination button.is-current {
    background: var(--dark);
    border-color: var(--dark);
    color: #fff
}

.catalog-empty {
    padding: 90px 20px;
    text-align: center;
    border-block: 1px solid var(--line)
}

.catalog-empty>span {
    color: var(--accent);
    font: 600 9px "Consolas", monospace
}

.catalog-empty h2 {
    font-size: 32px;
    margin: 10px 0
}

.catalog-empty p {
    color: var(--muted)
}

#product-container {
    transition: opacity .25s
}

.catalog-main:has(#product-container.is-loading) {
    pointer-events: none
}

#product-container.is-loading {
    opacity: .35
}

.filter-scrim {
    display: none
}

.catalog-description {
    margin: 0 auto 110px;
    border-top: 1px solid var(--line);
    display: grid;
    grid-template-columns: 260px minmax(0, 720px)
}

.catalog-description>div {
    font-size: 17px;
    line-height: 1.8
}

.catalog-description img {
    height: auto;
    margin: 25px 0
}

.product-promises {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px
}

.product-promises span {
    padding-top: 10px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 10px
}

.review-honeypot{position:absolute!important;left:-10000px!important}

.review-message{margin:0;padding:12px;border-left:3px solid}

.review-message.is-success{border-color:#287a4b;background:#edf7f1}

.review-message.is-error{border-color:#b42318;background:#fff1f0}

.content-author{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

.content-author__avatar{position:relative;width:64px;height:64px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:50%;background:var(--image-bg);color:var(--accent);font-size:20px;font-weight:750}

.content-author__avatar img{position:absolute;inset:0;width:100%;height:100%;padding:0;object-fit:cover;background:var(--image-bg)}

.content-author__avatar img.image-unavailable{opacity:0;padding:0}

.content-author__identity{min-width:0;display:flex;flex-direction:column;align-items:flex-start}

.content-author__identity>span{color:var(--accent);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}

.content-author__identity>a{margin-top:3px;color:var(--ink);font-size:17px;font-weight:700;line-height:1.25}

.content-author__identity small{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.4}

.content-author__profile{min-height:42px;padding:0 14px;display:inline-flex;align-items:center;gap:12px;border:1px solid var(--line);color:var(--ink);font-size:11px;font-weight:700;white-space:nowrap}

.content-author__profile:hover{border-color:var(--accent);color:var(--accent)}

.content-author__profile span{transition:transform .25s var(--ease)}

.content-author__profile:hover span{transform:translateX(3px)}

@media(max-width:560px){.content-author{grid-template-columns:52px minmax(0,1fr);gap:14px}.content-author__avatar{width:52px;height:52px}.content-author__profile{grid-column:1/-1;justify-content:space-between}}

@media(max-width:1024px) {
    .catalog-hero {
        grid-template-columns: 1fr;
        padding: 0 18px
    }

    .catalog-hero figure {
        min-height: 380px
    }

    .catalog-shell {
        grid-template-columns: 1fr;
        padding-inline: 18px
    }

    .catalog-filter {
        position: fixed;
        left: 0;
        top: 0;
        bottom: 0;
        z-index: 75;
        width: min(88vw, 360px);
        padding: 28px;
        background: var(--paper);
        overflow-y: auto;
        transform: translateX(-105%);
        transition: transform .35s var(--ease)
    }

    .filter-opened .catalog-filter {
        transform: none
    }

    .catalog-filter__head button,
.filter-open {
        display: block
    }

    .filter-scrim {
        position: fixed;
        inset: 0;
        z-index: 70;
        background: rgba(11, 18, 32, .52)
    }

    .filter-opened .filter-scrim {
        display: block
    }

    .filter-opened {
        overflow: hidden
    }
}

@media(max-width:680px) {
    .catalog-hero {
        margin-top: 12px;
        padding: 0 12px
    }

    .catalog-hero__copy {
        padding: 46px 24px
    }

    .catalog-hero h1 {
        font-size: 48px
    }

    .catalog-hero figure {
        min-height: 280px
    }

    .catalog-shell {
        padding: 48px 14px 75px
    }

    .catalog-toolbar>div>span {
        display: none
    }

    .catalog-toolbar label {
        font-size: 0
    }

    .catalog-grid {
        grid-template-columns: 1fr 1fr;
        gap: 38px 10px
    }

    .catalog-product h2,
.catalog-product h3 {
        font-size: 14px
    }

    .catalog-product p {
        display: none
    }

    .catalog-description {
        margin-bottom: 70px;
        padding: 50px 20px;
        grid-template-columns: 1fr;
        gap: 20px
    }

    .product-promises {
        grid-template-columns: 1fr
    }
}

@media(prefers-reduced-motion:reduce) {

    *,
*:before,
*:after {
        animation-duration: .01ms !important;
        transition-duration: .01ms !important
    }
}

@keyframes productShimmer {
    to {
        transform: translateX(100%)
    }
}

@keyframes dialogIn {
    from {
        opacity: 0;
        transform: scale(.97)
    }
}

.author-profile-hero {
    max-width: 1624px;
    margin: 32px auto 0;
    padding: clamp(52px, 7vw, 104px) clamp(20px, 6vw, 96px);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--paper);
}

.author-profile-hero .row,
.author-profile-hero .breadcrumb {
    justify-content: flex-start !important;
    text-align: left;
}

.author-profile-hero .page-title {
    max-width: 12ch;
    margin: 18px 0 0;
    color: var(--ink);
    font-size: clamp(42px, 6vw, 76px);
    line-height: .96;
    letter-spacing: -.055em;
}

.author-profile-card {
    padding: clamp(28px, 5vw, 64px);
    border-top: 1px solid var(--ink);
    border-bottom: 1px solid var(--line);
    background: var(--paper);
}

.author-profile-avatar {
    width: 170px;
    height: 170px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--image-bg);
}

.author-profile-avatar--fallback {
    color: var(--muted);
}

body:not(.author-storefront) .author-biography {
    max-width: 72ch;
    color: var(--muted);
    font-size: 16px;
    line-height: 1.8;
}

body:not(.author-storefront) .author-biography > :last-child {
    margin-bottom: 0;
}

body:not(.author-storefront) .author-biography img {
    max-width: 100%;
    height: auto;
}

@media (max-width: 767px) {
    .author-profile-hero {
        margin-top: 12px;
        padding: 44px 20px;
    }

    .author-profile-card {
        padding: 28px 0;
    }
}

body:not(.author-storefront) .author-page{max-width:1624px;margin:0 auto;padding:28px 32px 120px}

body:not(.author-storefront) .author-page__breadcrumb{margin-bottom:28px}

body:not(.author-storefront) .author-page__hero{display:grid;border-bottom:1px solid var(--line)}

body:not(.author-storefront) .author-page__portrait{overflow:hidden}

body:not(.author-storefront) .author-page__portrait img{width:100%;height:100%;object-fit:cover;filter:saturate(.82);transition:transform .6s var(--ease)}

body:not(.author-storefront) .author-page__hero:hover .author-page__portrait img{transform:scale(1.015)}

body:not(.author-storefront) .author-page__portrait-empty{height:100%;display:grid;place-items:center;background:var(--dark);color:var(--paper)}

body:not(.author-storefront) .author-page__portrait-empty span{font-size:clamp(100px,16vw,220px);font-weight:700;line-height:1}

body:not(.author-storefront) .author-page__identity{display:flex;flex-direction:column;align-items:flex-start}

body:not(.author-storefront) .author-page__identity h1{font-weight:700}

body:not(.author-storefront) .author-page__position{font-weight:700;text-transform:uppercase;letter-spacing:.08em}

body:not(.author-storefront) .author-page__stats{width:100%;padding-top:22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}

body:not(.author-storefront) .author-page__stats div{display:flex;justify-content:space-between;align-items:baseline}

body:not(.author-storefront) .author-page__stats dt{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}

body:not(.author-storefront) .author-page__stats dd{margin:0;font-weight:700}

body:not(.author-storefront) .author-page__links{display:flex;flex-wrap:wrap}

body:not(.author-storefront) .author-page__links a{align-items:center;gap:9px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;transition:border-color .25s var(--ease),color .25s var(--ease),transform .15s}

body:not(.author-storefront) .author-page__links a:active{transform:translateY(1px)}

body:not(.author-storefront) .author-page__about{padding:clamp(72px,9vw,136px) 0;display:grid;grid-template-columns:minmax(230px,.6fr) minmax(0,1.4fr);gap:clamp(48px,8vw,140px);border-bottom:1px solid var(--line)}

body:not(.author-storefront) .author-page__about h2,
body:not(.author-storefront) .author-page__section-head h2{margin:8px 0 0;font-size:clamp(34px,4vw,58px);line-height:1;letter-spacing:-.045em}

body:not(.author-storefront) .author-page__section{padding:clamp(72px,9vw,130px) 0;border-bottom:1px solid var(--line)}

body:not(.author-storefront) .author-page__section-head{margin-bottom:46px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}

body:not(.author-storefront) .author-page__section-head>span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}

body:not(.author-storefront) .author-page__empty{padding:64px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

body:not(.author-storefront) .author-page__empty strong{font-size:24px}

body:not(.author-storefront) .author-page__empty p{margin:8px 0 0;color:var(--muted)}

body:not(.author-storefront) .author-post-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 24px}

body:not(.author-storefront) .author-post-card__image{aspect-ratio:16/10;display:grid;place-items:center;overflow:hidden;background:var(--image-bg);color:var(--muted);font-size:11px}

body:not(.author-storefront) .author-post-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .45s var(--ease)}

body:not(.author-storefront) .author-post-card:hover .author-post-card__image img{transform:scale(1.025)}

body:not(.author-storefront) .author-post-card>div{padding-top:18px}

body:not(.author-storefront) .author-post-card time{color:var(--muted);font:11px Consolas,monospace}

body:not(.author-storefront) .author-post-card h3{margin:10px 0;font-size:clamp(22px,2.4vw,34px);line-height:1.08;letter-spacing:-.035em}

body:not(.author-storefront) .author-post-card p{max-width:58ch;color:var(--muted);line-height:1.65}

body:not(.author-storefront) .author-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:50px 16px}

body:not(.author-storefront) .author-product-card__image{aspect-ratio:1;display:grid;place-items:center;overflow:hidden;background:var(--image-bg);color:var(--muted);font-size:11px}

body:not(.author-storefront) .author-product-card__image img{width:100%;height:100%;padding:12px;object-fit:contain;transition:transform .4s var(--ease)}

body:not(.author-storefront) .author-product-card:hover img{transform:scale(1.025)}

body:not(.author-storefront) .author-product-card p{margin:14px 0 5px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}

body:not(.author-storefront) .author-product-card h3{margin:0 0 8px;font-size:16px;line-height:1.25}

body:not(.author-storefront) .author-product-card strong{font-size:14px}

body:not(.author-storefront) .author-product-card__action{margin-top:14px;padding-top:11px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:11px}

body:not(.author-storefront) .author-product-card__action i{font-style:normal;transition:transform .25s var(--ease)}

body:not(.author-storefront) .author-product-card:hover .author-product-card__action{color:var(--accent)}

body:not(.author-storefront) .author-product-card:hover .author-product-card__action i{transform:translateX(3px)}

@media(max-width:1024px){body:not(.author-storefront) .author-page__about{grid-template-columns:1fr;gap:34px}body:not(.author-storefront) .author-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(max-width:720px){body:not(.author-storefront) .author-page{padding:16px 16px 80px}body:not(.author-storefront) .author-page__hero{min-height:0}body:not(.author-storefront) .author-page__about,
body:not(.author-storefront) .author-page__section{padding:64px 0}body:not(.author-storefront) .author-page__section-head{align-items:flex-start;flex-direction:column}body:not(.author-storefront) .author-post-grid{grid-template-columns:1fr;gap:52px}body:not(.author-storefront) .author-product-grid{gap:40px 10px}body:not(.author-storefront) .author-product-card h3{font-size:14px}body:not(.author-storefront) .author-product-card__action{display:none}}

@media(prefers-reduced-motion:reduce){body:not(.author-storefront) .author-page__portrait img,
body:not(.author-storefront) .author-post-card__image img,
body:not(.author-storefront) .author-product-card__image img,
body:not(.author-storefront) .author-product-card__action i{transition:none}}

body:not(.author-storefront) .author-page__hero{min-height:0;grid-template-columns:minmax(260px,38%) minmax(0,62%);border:1px solid var(--line);border-top:3px solid var(--accent);background:var(--paper)}

body:not(.author-storefront) .author-page__portrait{min-height:430px;max-height:480px;border-right:1px solid var(--line)}

body:not(.author-storefront) .author-page__identity{position:relative;min-width:0;padding:clamp(38px,5vw,72px);justify-content:flex-start}

body:not(.author-storefront) .author-page__identity::before{content:"";width:44px;height:3px;margin-bottom:26px;background:var(--accent)}

body:not(.author-storefront) .author-page__identity .eyebrow{margin:0;color:var(--muted)}

body:not(.author-storefront) .author-page__identity h1{max-width:14ch;margin:10px 0 14px;font-size:clamp(42px,5vw,68px);line-height:.98;letter-spacing:-.052em}

body:not(.author-storefront) .author-page__position{margin:0;padding-left:14px;border-left:2px solid var(--accent);color:var(--ink);font-size:12px;line-height:1.5}

body:not(.author-storefront) .author-page__stats{max-width:540px;margin:30px 0 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:0}

body:not(.author-storefront) .author-page__stats div{padding-right:24px}

body:not(.author-storefront) .author-page__stats div+div{padding-left:24px;border-left:1px solid var(--line)}

body:not(.author-storefront) .author-page__stats dd{font-size:20px}

body:not(.author-storefront) .author-page__links{margin-top:24px;gap:8px}

body:not(.author-storefront) .author-page__links a{width:42px;height:42px;min-height:42px;padding:0;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink)}

body:not(.author-storefront) .author-page__links a:hover{border-color:var(--accent);background:var(--accent);color:#fff}

body:not(.author-storefront) .author-page__links svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

body:not(.author-storefront) .author-page__links .icon-fill{fill:currentColor;stroke:none}

@media(max-width:1024px){body:not(.author-storefront) .author-page__hero{grid-template-columns:minmax(250px,42%) minmax(0,58%);min-height:0}body:not(.author-storefront) .author-page__portrait{min-height:400px;max-height:440px}body:not(.author-storefront) .author-page__identity{padding:38px}}

@media(max-width:720px){body:not(.author-storefront) .author-page__hero{grid-template-columns:1fr;border-top-width:2px}body:not(.author-storefront) .author-page__portrait{min-height:0;max-height:none;aspect-ratio:16/11;border-right:0;border-bottom:1px solid var(--line)}body:not(.author-storefront) .author-page__portrait img{object-position:center 25%}body:not(.author-storefront) .author-page__identity{padding:30px 22px 34px}body:not(.author-storefront) .author-page__identity::before{width:34px;margin-bottom:20px}body:not(.author-storefront) .author-page__identity h1{font-size:clamp(38px,12vw,52px)}body:not(.author-storefront) .author-page__stats{margin-top:26px}}

:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 34%,transparent);outline-offset:3px}

:where(button,.button,[role="button"]):active{transform:translateY(1px)}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,
*::before,
*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid rgb(53 135 255 / 42%);
    outline-offset: 3px;
}

.hero__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    mix-blend-mode: color;
}

.hero__visual figcaption {
    z-index: 2;
}

.button.primary,
.product-card__action,
.catalog-apply,
.contact-submit {
    background: var(--cg-blue-700);
    color: #fff;
}

.button.primary:hover,
.catalog-apply:hover,
.contact-submit:hover {
    background: #073477;
}

.category-rail > a:hover,
.product-card:hover,
.article-card:hover {
    border-color: #9fbae0;
    box-shadow: 0 18px 42px rgb(8 52 119 / 10%);
}

.category-rail > a > span,
.product-card__category,
.article-card__category {
    color: var(--cg-blue-700);
}

@media (prefers-reduced-motion: reduce) {
    .hero__visual img {
        transition: none;
    }
}

main#main-content :is(input, select, textarea) {
    background-color: #fbfdff;
}

main#main-content :is(input, select, textarea):focus {
    outline: 0;
}

.button,
.catalog-product__action,
.filter-actions .button {
    border-color: var(--accent);
    background: var(--accent);
    color: #fff;
}

.button:hover,
.catalog-product:hover .catalog-product__action,
.filter-actions .button:hover {
    border-color: var(--accent-dark);
    background: var(--accent-dark);
}

body:not(.author-storefront) .hero__content,
body:not(.author-storefront) .catalog-hero__copy,
body:not(.author-storefront) .journal-hero__copy,
body:not(.author-storefront) .author-page__hero {
    border-color: var(--line);
    background: linear-gradient(145deg, #fbfdff 12%, #e8f4ff 100%);
}

.hero__visual,
.catalog-hero figure,
.journal-hero figure {
    background: var(--image-bg);
}

.hero__visual figcaption {
    color: #fff;
}

.category-rail,
.section,
.editorial,
.consult {
    border-color: var(--line);
}

.category-rail a:hover,
.category-rail a:focus-visible {
    background: var(--blue-100);
    color: var(--accent-dark);
}

.product-tile__image,
.story-card__image,
.editorial__feature figure {
    background: var(--image-bg);
}

.product-tile:hover,
.story-card:hover {
    color: var(--accent-dark);
}

.selector {
    color: var(--ink);
}

.selector :is(small, p) {
    color: var(--muted);
}

.selector strong,
.selector__options b {
    color: var(--ink);
}

.selector__options span:first-child {
    color: var(--accent);
}

.service-strip,
.consult {
    background: #e7f3ff;
}

.consult__inner {
    border-color: var(--accent);
    background: linear-gradient(125deg, #fbfdff, #e5f2ff);
}

.catalog-shell,
.catalog-description {
    color: var(--ink);
}

.catalog-filter,
.catalog-filter__head,
.filter-group,
.filter-categories {
    border-color: var(--line);
}

.catalog-toolbar {
    backdrop-filter: none;
}

.active-filters button {
    border-color: #a9cceb;
    background: #e4f2ff;
    color: var(--accent-dark);
}

.catalog-product {
    box-shadow: 0 10px 32px rgba(12, 74, 135, .06);
}

.catalog-product:hover {
    border-color: #75ade1;
    box-shadow: var(--blue-shadow);
}

.catalog-product__brand,
.catalog-product p,
.catalog-product__price del {
    color: var(--muted);
}

.catalog-product__specs span,
.product-card-rating {
    background: #e6f2ff;
    color: #234f78;
}

.catalog-product__price strong,
.catalog-product h2 {
    color: var(--ink);
}

.pagination a,
.pagination span,
.catalog-pagination a,
.catalog-pagination span {
    border-color: var(--line);
    background: #fbfdff;
    color: var(--ink);
}

.pagination .active,
.catalog-pagination .active,
.pagination a:hover,
.catalog-pagination a:hover {
    border-color: var(--accent);
    background: var(--accent);
    color: #fff;
}

.product-rating-summary {
    border-color: #bad8f3;
}

.article-content {
    color: #173b5f;
}

.journal-categories,
.journal-index,
.article-related {
    border-color: var(--line);
}

.story-card,
.article-toc,
.article-related article {
    border-color: var(--line);
    background: #fbfdff;
}

.story-card:hover,
.article-related article:hover {
    border-color: #83b5e2;
    box-shadow: var(--blue-shadow);
}

.article-content :is(blockquote, pre) {
    border-color: #8bbbe5;
    background: #e9f4ff;
}

.article-content a {
    color: var(--accent-dark);
    text-decoration-color: #63a4df;
}

body:not(.author-storefront) .author-page__identity,
body:not(.author-storefront) .author-page__about,
body:not(.author-storefront) .author-page__article,
body:not(.author-storefront) .author-page__empty,
body:not(.author-storefront) main#main-content .card,
body:not(.author-storefront) main#main-content .accordion-item {
    border-color: var(--line);
    background: #fbfdff;
    box-shadow: 0 12px 36px rgba(12, 74, 135, .06);
}

body:not(.author-storefront) .author-page__portrait {
    border-color: #add0ee;
    background: var(--image-bg);
}

body:not(.author-storefront) .author-page__social a {
    border-color: var(--line);
    background: var(--blue-100);
    color: var(--accent-dark);
}

body:not(.author-storefront) .author-page__social a:hover {
    border-color: var(--accent);
    background: var(--accent);
    color: #fff;
}

main#main-content .accordion-button {
    background: #f7fbff;
    color: var(--ink);
}

main#main-content .accordion-button:not(.collapsed) {
    background: #e5f2ff;
    color: var(--accent-dark);
    box-shadow: inset 0 -1px 0 var(--line);
}

main#main-content .table {
    --bs-table-bg: #fbfdff;
    --bs-table-striped-bg: #edf6ff;
    --bs-table-border-color: var(--line);
    --bs-table-color: var(--ink);
}

@media (max-width: 900px) {
    .catalog-toolbar {
        background: #edf6ff;
    }

    .selector__intro,
.selector__options {
        background: #eaf5ff;
    }
}

@media (prefers-contrast: more) {
    :root {
        --line: #7daed8;
        --muted: #3d5f80;
    }
}

.catalog-shell {
    padding-top: 36px;
}

.filter-group {
    gap: 8px;
}

.filter-categories a,
.filter-group label {
    min-height: 32px;
    font-size: 13px;
    line-height: 1.45;
}

.catalog-toolbar select {
    min-height: 40px;
}

.catalog-product {
    border-radius: 12px;
}

.catalog-product__image {
    margin: 8px;
    border-radius: 8px;
}

.catalog-product__image img {
    padding: 8px;
}

.catalog-product h2 {
    min-height: 42px;
    margin: 8px 0 6px;
    line-height: 1.25;
}

.catalog-product .product-card-rating {
    min-height: 26px;
    margin: 0 0 8px;
    padding: 4px 7px;
    border-radius: 6px;
}

.catalog-product .product-card-rating + .catalog-product__specs {
    margin-top: 0;
}

.catalog-product p {
    min-height: 38px;
    margin-top: 8px;
    font-size: 12px;
    line-height: 1.5;
}

.catalog-product__purchase {
    padding-top: 12px;
}

.catalog-product__price {
    min-height: 34px;
}

.catalog-product__price strong {
    font-size: 19px;
}

.catalog-product__action {
    min-height: 40px;
    margin-top: 8px;
}

body:not(.author-storefront) main#main-content :is(.story-card, .article-related article, .author-page__article, .author-page__about) {
    background: #eef6ff;
}

.article-toc[hidden] {
    display: none;
}

.article-toc {
    margin: 0 0 24px;
    padding: 20px;
    border: 1px solid #aacbe7;
    border-radius: 12px;
    background: #e2f0ff;
    box-shadow: none;
}

.article-toc__toggle {
    width: 100%;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 9px;
    border: 0;
    background: transparent;
    color: var(--ink);
    cursor: pointer;
    text-align: left;
}

.article-toc__title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.article-toc__title::before {
    content: "";
    width: 24px;
    height: 2px;
    flex: 0 0 24px;
    border-radius: 2px;
    background: var(--accent);
}

.article-toc__state {
    margin-left: auto;
    color: #526f8d;
    font-size: 11px;
    font-weight: 650;
}

.article-toc__icon {
    width: 8px;
    height: 8px;
    margin-right: 3px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform .2s ease;
}

.article-toc__toggle[aria-expanded="false"] .article-toc__icon {
    transform: rotate(-135deg) translate(-1px, -1px);
}

.article-toc__toggle:hover .article-toc__state,
.article-toc__toggle:focus-visible .article-toc__state {
    color: var(--accent-dark);
}

.article-toc ol[hidden] {
    display: none;
}

.article-toc.is-collapsed {
    padding-block: 16px;
}

.article-toc ol {
    margin: 14px 0 0;
    padding: 0;
    display: grid;
    gap: 4px;
    list-style: none;
}

.article-toc li {
    min-width: 0;
}

.article-toc li a {
    min-height: 36px;
    padding: 7px 9px;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: center;
    border-radius: 7px;
    color: #315577;
    font-size: 13px;
    line-height: 1.45;
}

.article-toc li a::before {
    content: attr(data-toc-number);
    color: var(--accent);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .05em;
}

.article-toc li a:hover,
.article-toc li a[aria-current] {
    background: #cfe5fa;
    color: var(--accent-dark);
}

.article-toc .toc-level-3 a {
    padding-left: 24px;
    font-size: 12px;
}

.article-toc .toc-level-4 a {
    padding-left: 40px;
    color: var(--muted);
    font-size: 11px;
}

.product-toc {
    margin-bottom: 14px;
    background: #deedfc;
}

@media (max-width: 680px) {
    .article-toc {
        padding: 16px;
    }

    .article-toc li a {
        min-height: 40px;
    }

}

.hero {
    max-width: var(--max);
    min-height: 520px;
    margin: 28px auto 0;
    padding: 0 28px;
    grid-template-columns: minmax(390px, .88fr) minmax(0, 1.12fr);
}

.hero__content {
    padding: clamp(36px, 4.5vw, 62px);
    border: 1px solid #195994;
    border-right: 0;
    border-radius: 8px 0 0 8px;
    background: linear-gradient(145deg, #082e58, #0d579f);
    color: #fff;
}

.hero__content .eyebrow {
    color: #8dcbff;
}

.hero__content .eyebrow > span {
    background: #66b8ff;
}

main#main-content .hero h1 {
    max-width: 11ch;
    margin-top: 14px;
    color: #fff;
    font-size: clamp(44px, 5vw, 68px);
    line-height: .96;
    letter-spacing: -.06em;
}

.hero__lead {
    max-width: 48ch;
    margin-top: 22px;
    color: #d2e5f6;
    font-size: 15px;
    line-height: 1.68;
}

.hero__actions {
    margin-top: 26px;
    gap: 20px;
}

.hero__actions .button {
    min-height: 46px;
    border-color: #74c0ff;
    background: #e3f2ff;
    color: #093e75;
}

.hero__actions .button:hover {
    border-color: #fff;
    background: #fff;
    color: #082d57;
}

.hero__actions .text-link {
    color: #fff;
    border-bottom-color: rgba(255, 255, 255, .55);
}

.hero__facts {
    margin-top: 32px;
    padding-top: 18px;
    border-top-color: rgba(194, 221, 246, .28);
}

.hero__facts dt {
    color: #8fc5ee;
}

.hero__facts dd {
    color: #fff;
}

.hero__visual {
    min-height: 520px;
    overflow: hidden;
    border: 1px solid #195994;
    border-left: 0;
    border-radius: 0 8px 8px 0;
    background: #cfe3f7;
}

.hero__visual::after {
    background: linear-gradient(90deg, rgba(8, 46, 88, .22), transparent 34%);
}

.hero__visual img {
    object-fit: cover;
}

.hero__visual figcaption {
    right: 20px;
    bottom: 20px;
    left: auto;
    width: min(280px, calc(100% - 40px));
    padding: 14px 16px;
    border: 1px solid rgba(190, 222, 250, .38);
    border-radius: 10px;
    background: rgba(7, 43, 82, .88);
}

.section {
    padding-top: 62px;
    padding-bottom: 62px;
}

.section-head {
    margin-bottom: 28px;
}

.section-head h2 {
    max-width: 14ch;
    margin-top: 7px;
    font-size: clamp(34px, 3.5vw, 48px);
    line-height: 1.05;
    letter-spacing: -.045em;
}

.section-head > p {
    max-width: 48ch;
    font-size: 14px;
    line-height: 1.65;
}

.category-section {
    padding-top: 58px;
}

.category-rail {
    gap: 12px;
    border: 0;
    background: transparent;
}

.category-rail a {
    min-height: 190px;
    padding: 22px;
    border: 1px solid #b4d1ea;
    border-radius: 13px;
    background: #eaf4ff;
    box-shadow: 0 10px 30px rgba(12, 74, 135, .05);
}

.category-rail a:last-child {
    border-right: 1px solid #b4d1ea;
}

.category-rail a:hover {
    border-color: #6fa6d7;
    background: #dceeff;
    box-shadow: 0 16px 38px rgba(12, 74, 135, .1);
    transform: translateY(-3px);
}

.category-rail strong {
    margin-top: 26px;
    font-size: 19px;
}

.category-rail small {
    margin-top: 8px;
    color: var(--muted);
    line-height: 1.55;
}

.home-product-section .product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.home-product-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #afcde7;
    border-radius: 14px;
    background: #edf6ff;
    box-shadow: 0 12px 34px rgba(12, 74, 135, .07);
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.home-product-card:hover {
    border-color: #70a8da;
    box-shadow: 0 18px 46px rgba(12, 74, 135, .13);
    transform: translateY(-3px);
}

.home-product-card__link {
    height: 100%;
    display: flex;
    flex-direction: column;
    color: inherit;
}

.home-product-card__image {
    position: relative;
    aspect-ratio: 4 / 3;
    margin: 8px;
    overflow: hidden;
    border-radius: 9px;
    background: #d4e7f8;
}

.home-product-card__image img {
    width: 100%;
    height: 100%;
    padding: 8px;
    object-fit: contain;
    transition: transform .35s ease;
}

.home-product-card:hover .home-product-card__image img {
    transform: scale(1.035);
}

.home-product-card__empty {
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 8px;
    color: var(--muted);
    font-size: 12px;
}

.home-product-card__empty i {
    color: var(--accent);
    font-size: 28px;
}

.home-product-card__body {
    min-height: 236px;
    padding: 11px 14px 14px;
    display: flex;
    flex: 1;
    flex-direction: column;
}

.home-product-card__meta {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.home-product-card__meta .in-stock {
    color: #176b43;
}

.home-product-card__meta .out-stock {
    color: #a52a2a;
}

.home-product-card h3 {
    min-height: 44px;
    margin: 9px 0 8px;
    color: var(--ink);
    font-size: 17px;
    line-height: 1.28;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-product-card .product-card-rating {
    min-height: 26px;
    margin: 0 0 8px;
    padding: 4px 7px;
    border-radius: 6px;
}

.home-product-card__specs {
    min-height: 24px;
    display: flex;
    gap: 6px;
    overflow: hidden;
}

.home-product-card__specs span {
    padding: 4px 7px;
    border-radius: 6px;
    background: #d9eaff;
    color: #294e73;
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
}

.home-product-card__footer {
    margin-top: auto;
    padding-top: 14px;
    display: grid;
    gap: 10px;
}

.home-product-card__footer strong {
    color: var(--ink);
    font-size: 20px;
}

.home-product-card__footer > span {
    min-height: 40px;
    padding: 0 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-radius: 8px;
    background: #125daf;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.selector {
    max-width: calc(var(--max) - 56px);
    margin: 12px auto;
    overflow: hidden;
    grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr);
    border: 1px solid #a9c9e5;
    border-radius: 8px;
    background: #d4e8fa;
}

.selector__intro {
    padding: clamp(34px, 4vw, 54px);
    border: 0;
    border-right: 1px solid #aac9e4;
    background: #0b427c;
    color: #fff;
}

.selector__intro .eyebrow {
    color: #8dccff;
}

main#main-content .selector__intro h2 {
    max-width: 10ch;
    color: #fff;
    font-size: clamp(36px, 3.8vw, 52px);
    line-height: 1.02;
}

.selector__intro > p:not(.eyebrow) {
    color: #c9e0f4;
}

.selector__intro .button {
    border-color: #7bc4ff;
    background: #e2f1ff;
    color: #0a3f76;
}

.selector__options {
    border: 0;
    background: #e4f1ff;
}

.selector__options a {
    min-height: 116px;
    padding-inline: 28px;
    border-color: #b4d0e9;
}

.selector__options a:hover {
    background: #d4e8fb;
}

.selector__options strong {
    font-size: 17px;
}

.service-strip {
    max-width: calc(var(--max) - 56px);
    margin: 62px auto 0;
    overflow: hidden;
    border: 1px solid #aac9e4;
    border-radius: 14px;
    background: #e6f2ff;
}

.service-strip div {
    min-height: 150px;
    padding: 24px;
    border-color: #b7d1e8;
}

.service-strip strong {
    margin-top: 18px;
    font-size: 15px;
}

.editorial__grid {
    gap: 18px;
}

.editorial article {
    overflow: hidden;
    border: 1px solid #afcde7;
    border-radius: 14px;
    background: #edf6ff;
    box-shadow: 0 12px 34px rgba(12, 74, 135, .06);
}

.editorial article > a {
    display: block;
    padding-bottom: 20px;
}

.editorial img {
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

.editorial article span,
.editorial h3,
.editorial p {
    margin-right: 20px;
    margin-left: 20px;
}

.editorial article span {
    display: block;
    margin-top: 18px;
}

.editorial h3 {
    margin-top: 9px;
    font-size: 21px;
    line-height: 1.25;
}

.editorial p {
    margin-top: 9px;
    font-size: 13px;
    line-height: 1.6;
}

.consult {
    max-width: calc(var(--max) - 56px);
    margin: 0 auto 72px;
    padding: clamp(32px, 4vw, 50px);
    border: 1px solid #1a5795;
    border-radius: 8px;
    background: linear-gradient(120deg, #093664, #0e61ae);
    color: #fff;
}

main#main-content .consult h2 {
    max-width: 13ch;
    color: #fff;
    font-size: clamp(32px, 3.4vw, 46px);
}

.consult .eyebrow {
    color: #8dccff;
}

.consult > p {
    color: #cbe1f4;
}

.consult .button {
    border-color: #83c9ff;
    background: #e4f2ff;
    color: #093e75;
}

@media (max-width: 1100px) {
    .hero {
        grid-template-columns: 1fr 1fr;
    }

    .home-product-section .product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .category-rail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .hero {
        min-height: 0;
        padding-inline: 16px;
        grid-template-columns: 1fr;
    }

    .hero__content {
        padding: 30px 24px;
        border-right: 1px solid #195994;
        border-bottom: 0;
        border-radius: 14px 14px 0 0;
    }

    main#main-content .hero h1 {
        font-size: clamp(40px, 12vw, 54px);
    }

    .hero__visual {
        min-height: 300px;
        border-top: 0;
        border-left: 1px solid #195994;
        border-radius: 0 0 14px 14px;
    }

    .hero__facts {
        grid-template-columns: 1fr 1fr;
    }

    .section {
        padding: 48px 16px;
    }

    .section-head--row {
        align-items: end;
    }

    .category-rail {
        grid-template-columns: 1fr;
    }

    .category-rail a {
        min-height: 160px;
    }

    .home-product-section .product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .home-product-card__body {
        min-height: 208px;
        padding: 9px 10px 10px;
    }

    .home-product-card__meta span:last-child {
        display: none;
    }

    .home-product-card h3 {
        min-height: 38px;
        font-size: 14px;
    }

    .home-product-card__specs span:nth-child(n + 2) {
        display: none;
    }

    .home-product-card__footer strong {
        font-size: 16px;
    }

    .home-product-card__footer > span {
        min-height: 36px;
        font-size: 11px;
    }

    .selector {
        margin: 0 16px;
        grid-template-columns: 1fr;
    }

    .selector__intro {
        border-right: 0;
        border-bottom: 1px solid #aac9e4;
    }

    main#main-content .selector__intro h2 {
        max-width: 12ch;
    }

    .selector__options a {
        min-height: 104px;
        padding-inline: 20px;
    }

    .service-strip {
        margin: 48px 16px 0;
        grid-template-columns: 1fr 1fr;
    }

    .service-strip div {
        min-height: 140px;
    }

    .consult {
        margin: 0 16px 56px;
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

.product-rating-summary {
    min-width: 0;
    padding: 18px;
    border: 1px solid #aacbe7;
    border-radius: 12px;
    background: #eaf4ff;
}

.product-rating-summary > strong {
    color: var(--ink);
    font-size: 40px;
}

@media (max-width: 680px) {

    .product-rating-summary {
        width: 100%;
    }
}

.journal-hero {
    max-width: var(--max);
    min-height: 430px;
    margin: 28px auto 0;
    padding: 0 28px;
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
    gap: 0;
    align-items: stretch;
    border: 0;
}

.journal-hero__copy {
    max-width: none;
    padding: clamp(34px, 4vw, 58px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: 1px solid #1a5796;
    border-right: 0;
    border-radius: 8px 0 0 8px;
    background: linear-gradient(145deg, #082d57, #0d579f);
    color: #fff;
}

.journal-hero .journal-breadcrumb {
    margin-bottom: 28px;
    color: #b9d6ef;
}

.journal-hero .journal-breadcrumb a:hover {
    color: #fff;
}

.journal-hero .eyebrow {
    color: #8dcaff;
}

main#main-content .journal-hero h1 {
    max-width: 12ch;
    margin: 10px 0 0;
    color: #fff;
    font-size: clamp(40px, 4.7vw, 64px);
    line-height: .98;
    letter-spacing: -.055em;
}

.journal-hero__copy > p:last-of-type {
    max-width: 52ch;
    margin: 22px 0 0;
    color: #d1e4f5;
    font-size: 15px;
    line-height: 1.65;
}

.journal-hero__cta {
    width: max-content;
    min-height: 44px;
    margin-top: 26px;
    padding: 0 16px;
    display: inline-flex;
    align-items: center;
    gap: 18px;
    border: 1px solid #83c5ff;
    border-radius: 8px;
    background: #e0f0ff;
    color: #093d75;
    font-size: 12px;
    font-weight: 800;
}

.journal-hero__cta:hover {
    background: #fff;
    color: #082d57;
}

.journal-hero__visual {
    position: relative;
    min-height: 430px;
    margin: 0;
    overflow: hidden;
    border: 1px solid #1a5796;
    border-left: 0;
    border-radius: 0 8px 8px 0;
    background: #cfe3f7;
}

.journal-hero__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(8, 45, 87, .28), transparent 34%);
}

.journal-hero__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s var(--ease);
}

.journal-hero:hover .journal-hero__visual img {
    transform: scale(1.015);
}

.journal-hero__mark {
    align-self: center;
    border-radius: 14px;
    background: #e2f0ff;
}

.journal-categories {
    margin-top: 24px;
}

.journal-index {
    padding-top: 42px;
}

.feature-story {
    min-height: 440px;
    overflow: hidden;
    border: 1px solid #b8d4ed;
    border-radius: 8px;
    background: #edf6ff;
    box-shadow: 0 18px 48px rgba(12, 74, 135, .1);
}

.feature-story__copy {
    padding: clamp(30px, 4vw, 52px);
}

.feature-story h2 {
    margin: 18px 0 12px;
    font-size: clamp(30px, 3vw, 44px);
    line-height: 1.08;
}

.story-grid {
    margin-top: 42px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.story-card,
.story-card:nth-child(3n) {
    min-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    grid-column: auto;
    border: 1px solid #bcd7ef;
    border-radius: 14px;
    background: #edf6ff;
    box-shadow: 0 12px 34px rgba(12, 74, 135, .07);
}

.story-card:nth-child(3n) .story-card__image {
    grid-row: auto;
}

.story-card__image {
    aspect-ratio: 16 / 10;
    margin: 0;
    background: #cfe3f7;
}

.story-card__body {
    flex: 1;
    padding: 20px;
    display: flex;
    flex-direction: column;
}

.story-card h2 {
    margin: 12px 0 9px;
    font-size: clamp(19px, 1.6vw, 24px);
    line-height: 1.22;
}

.story-card__body > p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.6;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.story-card__link {
    margin-top: auto;
    padding-top: 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--accent-dark);
    font-size: 12px;
    font-weight: 800;
}

.story-card__link i {
    transition: transform .2s ease;
}

.story-card:hover .story-card__link i {
    transform: translateX(3px);
}

@media (max-width: 1100px) {
    .journal-hero {
        grid-template-columns: 1fr 1fr;
    }

    .story-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .journal-hero {
        min-height: 0;
        padding-inline: 16px;
        grid-template-columns: 1fr;
    }

    .journal-hero__copy {
        padding: 30px 24px;
        border-right: 1px solid #1a5796;
        border-bottom: 0;
        border-radius: 14px 14px 0 0;
    }

    main#main-content .journal-hero h1 {
        font-size: clamp(36px, 11vw, 48px);
    }

    .journal-hero__visual {
        min-height: 260px;
        border-top: 0;
        border-left: 1px solid #1a5796;
        border-radius: 0 0 14px 14px;
    }

    .journal-hero__visual::after {
        background: linear-gradient(180deg, rgba(8, 45, 87, .2), transparent 35%);
    }

    .journal-categories {
        margin-top: 16px;
        padding-inline: 16px;
    }

    .journal-index {
        padding: 32px 16px 70px;
    }

    .feature-story {
        min-height: 0;
        grid-template-columns: 1fr;
    }

    .feature-story__image {
        aspect-ratio: 16 / 10;
    }

    .story-grid {
        grid-template-columns: 1fr;
    }
}

.catalog-hero--refined {
    max-width: var(--max);
    min-height: 400px;
    margin: 28px auto 0;
    padding: 0 28px;
    grid-template-columns: minmax(360px, .82fr) minmax(0, 1.18fr);
}

.catalog-hero--refined .catalog-hero__copy {
    padding: clamp(32px, 4vw, 54px);
    border: 1px solid #1b5b9c;
    border-right: 0;
    border-radius: 8px 0 0 8px;
    background: linear-gradient(145deg, #0a3768, #1164b5);
    color: #fff;
}

.catalog-hero--refined .journal-breadcrumb {
    margin-bottom: 24px;
    color: #bdd8f0;
}

.catalog-hero--refined .journal-breadcrumb a:hover {
    color: #fff;
}

.catalog-hero--refined .eyebrow {
    color: #8dcbff;
}

main#main-content .catalog-hero--refined h1 {
    max-width: 12ch;
    margin-top: 8px;
    color: #fff;
    font-size: clamp(38px, 4.3vw, 60px);
    line-height: 1;
    letter-spacing: -.05em;
}

.catalog-hero--refined .catalog-hero__copy > p:last-of-type {
    max-width: 48ch;
    margin: 18px 0 0;
    color: #d5e7f7;
    font-size: 15px;
    line-height: 1.65;
}

.catalog-hero--refined .catalog-hero__facts {
    margin-top: 24px;
    padding-top: 16px;
    border-top-color: rgba(195, 221, 245, .3);
    gap: 36px;
}

.catalog-hero--refined .catalog-hero__facts dt {
    color: #9dc9ed;
}

.catalog-hero--refined .catalog-hero__facts dd {
    color: #fff;
}

.catalog-hero__cta {
    width: max-content;
    min-height: 42px;
    margin-top: 22px;
    padding: 0 15px;
    display: inline-flex;
    align-items: center;
    gap: 18px;
    border: 1px solid #8bcbff;
    border-radius: 8px;
    background: #e4f2ff;
    color: #0a427e;
    font-size: 12px;
    font-weight: 800;
}

.catalog-hero__cta:hover {
    background: #fff;
    color: #082d57;
}

.catalog-hero--refined .catalog-hero__visual {
    position: relative;
    min-height: 400px;
    overflow: hidden;
    border: 1px solid #1b5b9c;
    border-left: 0;
    border-radius: 0 8px 8px 0;
    background: #cfe3f7;
}

.catalog-hero--refined .catalog-hero__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    border: 0;
    background: linear-gradient(90deg, rgba(10, 55, 104, .24), transparent 30%);
}

.catalog-hero--refined .catalog-hero__visual img {
    object-fit: cover;
    transition: transform .5s var(--ease);
}

.catalog-hero--refined:hover .catalog-hero__visual img {
    transform: scale(1.015);
}

.catalog-shell {
    padding: 42px 28px 84px;
    grid-template-columns: 236px minmax(0, 1fr);
    gap: 28px;
}

.catalog-filter {
    position: sticky;
    top: 112px;
    max-height: calc(100vh - 132px);
    padding: 18px;
    overflow-y: auto;
    align-self: start;
    border: 1px solid #b5d1ea;
    border-radius: 14px;
    background: #eaf4ff;
    scrollbar-width: thin;
    scrollbar-color: #8db8df transparent;
}

.catalog-filter__head {
    padding-bottom: 16px;
}

.catalog-filter__head span {
    color: var(--accent);
    font-family: "Inter", sans-serif;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.catalog-filter__head strong {
    font-size: 17px;
}

.catalog-filter__head small {
    margin-top: 3px;
    font-size: 11px;
}

.filter-group {
    padding-block: 16px;
}

.filter-group > strong,
.filter-group summary,
.filter-price legend {
    color: var(--ink);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
}

.filter-group summary span {
    width: 18px;
    height: 18px;
    position: relative;
    overflow: hidden;
    color: transparent;
    font-size: 0;
    transform: none;
}

.filter-group summary span::before {
    content: "";
    position: absolute;
    left: 5px;
    top: 4px;
    width: 6px;
    height: 6px;
    border-right: 1.5px solid var(--accent-dark);
    border-bottom: 1.5px solid var(--accent-dark);
    transform: rotate(45deg);
    transition: transform .2s ease, top .2s ease;
}

.filter-group[open] summary span {
    transform: none;
}

.filter-group[open] summary span::before {
    top: 7px;
    transform: rotate(225deg);
}

.filter-group > a {
    min-height: 34px;
    padding: 7px 9px;
    border-radius: 7px;
    display: flex;
    align-items: center;
}

.filter-group > a:hover,
.filter-group > a.is-active {
    background: #d5eaff;
    color: var(--accent-dark);
}

.filter-group label {
    min-height: 32px;
    padding: 3px 4px;
    border-radius: 6px;
}

.filter-group label:hover {
    background: #dceeff;
}

.filter-group input[type="checkbox"] {
    width: 17px;
    height: 17px;
    border: 1px solid #93b9dc;
    border-radius: 4px;
    background: #f6fbff;
}

.filter-group input[type="checkbox"]:checked {
    border: 4px solid #eaf4ff;
    background: var(--accent);
    outline: 1px solid var(--accent);
}

.filter-price > div {
    width: 100%;
    margin-top: 12px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
}

.filter-price label {
    min-width: 0;
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    color: #526f8d;
    font-size: 11px;
    font-weight: 650;
    line-height: 1.35;
}

.filter-price label::after {
    content: "₫";
    position: absolute;
    right: 12px;
    bottom: 12px;
    color: #6b86a1;
    font-size: 12px;
    font-weight: 750;
    pointer-events: none;
}

.filter-price input[type="number"] {
    width: 100%;
    min-width: 0;
    height: 42px;
    padding: 0 32px 0 12px;
    border: 1px solid #b5d1ea;
    border-radius: 8px;
    background: #f8fbff;
    color: var(--ink);
    font: 650 13px/1 inherit;
    appearance: textfield;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.filter-price input[type="number"]::-webkit-inner-spin-button,
.filter-price input[type="number"]::-webkit-outer-spin-button {
    margin: 0;
    appearance: none;
}

.filter-price input[type="number"]::placeholder {
    color: #8299b1;
    opacity: 1;
}

.filter-price input[type="number"]:hover {
    border-color: #82b2dc;
    background: #fff;
}

.filter-price input[type="number"]:focus {
    border-color: var(--accent);
    background: #fff;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(13, 91, 189, .13);
}

.filter-actions {
    padding-top: 16px;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 12px;
}

.filter-actions .button {
    min-height: 40px;
    border-radius: 8px;
    font-size: 12px;
}

.filter-reset {
    margin: 0;
    white-space: nowrap;
}

.catalog-toolbar {
    top: 104px;
    min-height: 58px;
    margin-bottom: 18px;
    padding: 8px 12px;
    border: 1px solid #b8d4ed;
    border-radius: 12px;
    background: #eaf4ff;
    box-shadow: 0 9px 26px rgba(12, 74, 135, .06);
}

.catalog-toolbar label {
    text-transform: none;
    letter-spacing: 0;
}

.catalog-toolbar select {
    min-width: 176px;
    border: 1px solid #b5d1ea;
    border-radius: 8px;
    background: #f5faff;
}

.catalog-grid {
    gap: 18px;
}

.catalog-product {
    border-color: #b9d4ec;
    background: #edf6ff;
}

.catalog-product__image {
    aspect-ratio: 4 / 3;
    background: #d6e9fa;
}

.catalog-product__body {
    padding: 12px 14px 14px;
}

.catalog-product h2 {
    font-size: 17px;
}

.catalog-product__specs span {
    background: #d9eaff;
}

.catalog-product__action {
    background: #125daf;
}

.catalog-description {
    max-width: var(--max);
    margin-bottom: 80px;
    padding: 42px;
    gap: 48px;
    border: 1px solid #b8d4ed;
    border-radius: 8px;
    background: #eaf4ff;
}

.catalog-description header h2 {
    font-size: clamp(30px, 3vw, 42px);
}

.catalog-description > div {
    font-size: 15px;
    line-height: 1.72;
}

@media (max-width: 1024px) {
    .catalog-hero--refined {
        grid-template-columns: 1fr 1fr;
    }

    .catalog-shell {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .catalog-filter {
        position: fixed;
        top: 0;
        max-height: none;
        border-radius: 0 14px 14px 0;
    }

    .filter-open {
        display: inline-flex;
    }
}

@media (max-width: 680px) {
    .catalog-hero--refined {
        min-height: 0;
        margin-top: 16px;
        padding-inline: 16px;
        grid-template-columns: 1fr;
    }

    .catalog-hero--refined .catalog-hero__copy {
        padding: 28px 22px;
        border-right: 1px solid #1b5b9c;
        border-bottom: 0;
        border-radius: 14px 14px 0 0;
    }

    main#main-content .catalog-hero--refined h1 {
        max-width: none;
        font-size: clamp(36px, 11vw, 48px);
    }

    .catalog-hero--refined .catalog-hero__visual {
        min-height: 250px;
        border-top: 0;
        border-left: 1px solid #1b5b9c;
        border-radius: 0 0 14px 14px;
    }

    .catalog-shell {
        padding: 28px 16px 64px;
    }

    .catalog-toolbar {
        top: 86px;
        padding: 8px 10px;
    }

    .catalog-toolbar select {
        min-width: 0;
        max-width: 140px;
    }

    .catalog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .catalog-description {
        margin: 0 16px 64px;
        padding: 28px 22px;
        grid-template-columns: 1fr;
        gap: 22px;
    }
}

:root {
    color-scheme: light;
    --cg-navy-950: #0f172a;
    --cg-navy-900: #213145;
    --cg-navy-800: #334155;
    --cg-blue-800: #0c66e4;
    --cg-blue-700: #0052cc;
    --cg-blue-600: #0052cc;
    --cg-blue-500: #0052cc;
    --cg-blue-200: #cfe5fa;
    --cg-blue-100: #dcecff;
    --cg-blue-50: #eef6ff;
    --cg-blue-700-rgb: 0, 82, 204;
    --cg-canvas: #f8fafc;
    --cg-surface: #ffffff;
    --cg-surface-soft: #f1f5f9;
    --cg-line: #e2e8f0;
    --cg-line-strong: #cbd5e1;
    --cg-muted: #64748b;
    --cg-success: #176b45;
    --cg-danger: #ba1a1a;
    --cg-on-dark-muted: #c2ddf7;
    --cg-accent: var(--cg-blue-700);
    --cg-font-sans: "Inter", "Segoe UI", Arial, sans-serif;
    --cg-font-mono: "JetBrains Mono", Consolas, monospace;
    --cg-reading-width: 72ch;
    --cg-radius-control: 4px;
    --cg-radius-card: 8px;
    --cg-radius-shell: 12px;
    --cg-space-section: clamp(24px, 4vw, 40px);
    --cg-container-wide: 1630px;
    --cg-container-content: 1360px;
    --cg-shadow-sm: 0 1px 3px rgba(15, 23, 42, .04);
    --cg-shadow-md: 0 8px 24px -4px rgba(15, 23, 42, .06), 0 2px 6px -1px rgba(15, 23, 42, .03);
    --cg-motion-fast: .18s;
    --cg-motion-base: .24s;

    --bg: var(--cg-canvas);
    --paper: var(--cg-surface);
    --ink: var(--cg-navy-950);
    --muted: var(--cg-muted);
    --line: var(--cg-line);
    --accent: var(--cg-blue-700);
    --accent-dark: var(--cg-blue-800);
    --dark: var(--cg-navy-950);
    --dark-2: var(--cg-navy-900);
    --dark-line: var(--cg-line-strong);
    --dark-muted: var(--cg-on-dark-muted);
    --image-bg: var(--cg-blue-50);
    --blue-50: var(--cg-blue-50);
    --blue-100: var(--cg-blue-100);
    --blue-200: var(--cg-blue-200);
    --blue-500: var(--cg-blue-500);
    --blue-700: var(--cg-blue-700);
    --blue-shadow: var(--cg-shadow-md);
    --bs-body-bg: var(--cg-canvas);
    --bs-body-color: var(--cg-navy-900);
    --bs-primary: var(--cg-blue-700);
    --bs-primary-rgb: var(--cg-blue-700-rgb);
    --bs-border-color: var(--cg-line);
}

html { background: var(--cg-canvas); }

body {
    color: var(--cg-navy-900);
    background:
        radial-gradient(circle at 92% 0, rgba(36, 118, 212, .08), transparent 26rem),
        linear-gradient(180deg, #f8fbff 0, var(--cg-canvas) 32rem, #f2f6fb 100%);
}

main#main-content {
    color: var(--cg-navy-900);
}

main#main-content :is(h1, h2, h3, h4, h5, h6) {
    color: var(--cg-navy-950);
}

::selection {
    color: var(--cg-navy-950);
    background: #b9d8ff;
}

main#main-content :is(input, select, textarea) {
    color: var(--cg-navy-900);
    background: var(--cg-surface);
    border-color: var(--cg-line-strong);
}

main#main-content :is(input, select, textarea):focus {
    border-color: var(--cg-blue-500);
    box-shadow: 0 0 0 4px rgba(36, 118, 212, .14);
}

main#main-content :is(a, button, input, select, textarea):focus-visible {
    outline: 3px solid rgba(36, 118, 212, .34);
    outline-offset: 3px;
}

main#main-content :is(.catalog-product, .story-card, .article-related article):hover {
    border-color: #9bbde4;
    box-shadow: var(--cg-shadow-md);
}

main#main-content :is(.catalog-product__specs span, .product-card-rating, .active-filters button) {
    color: var(--cg-navy-800);
    background: #e7f1ff;
    border-color: #c4d9f2;
}

main#main-content :is(.pagination .active, .catalog-pagination .active),
main#main-content :is(.pagination a, .catalog-pagination a):hover {
    color: #fff;
    background: var(--cg-blue-700);
    border-color: var(--cg-blue-700);
}

main#main-content a:not(.button):not(.catalog-product__link):not(.story-card > a) {
    text-decoration-color: rgba(13, 71, 161, .34);
}

:root {
    --store-ink: var(--cg-navy-950);
    --store-copy: var(--cg-navy-800);
    --store-blue: var(--cg-blue-700);
    --store-blue-hover: var(--cg-blue-800);
    --store-blue-bright: var(--cg-blue-500);
    --store-blue-soft: var(--cg-blue-50);
    --store-canvas: var(--cg-canvas);
    --store-surface: var(--cg-surface);
    --store-line: var(--cg-line);
    --store-success: var(--cg-success);
    --store-shadow: var(--cg-shadow-md);
}

body:has(#main-content) {
    color: var(--store-copy);
    background: var(--store-canvas);
    overflow-x: clip;
}

body:has(#main-content) #main-content {
    min-height: 60vh;
    overflow-x: clip;
}

body:has(#main-content) img,
body:has(#main-content) video,
body:has(#main-content) iframe {
    max-width: 100%;
}

body:has(#main-content) #main-content :is(h1, h2, h3, h4) {
    color: var(--store-ink);
    text-wrap: balance;
}

body:not(.author-storefront):has(#main-content) :is(
    .catalog-product__image,
    .home-product-card__image,
    .author-product-card__image
) {
    padding: 0;
    overflow: hidden;
}

body:not(.author-storefront):has(#main-content) :is(
    .catalog-product__image,
    .home-product-card__image,
    .author-product-card__image
) > img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    padding: 0;
    object-fit: cover;
    object-position: center;
}

body:has(.home-refresh) .home-refresh .section {
    margin-top: clamp(64px, 7vw, 96px);
}

body:has(.home-refresh) .home-refresh .section-head {
    margin-bottom: 30px;
}

body:has(.home-refresh) .home-refresh .section-head h2 {
    max-width: 15ch;
    margin: 0;
    font-size: clamp(2.15rem, 3.7vw, 3.65rem);
    line-height: 1.02;
    letter-spacing: -.045em;
}

body:has(.home-refresh) .home-refresh .section-head > p {
    max-width: 58ch;
    margin-top: 12px;
    color: var(--store-copy);
    line-height: 1.65;
}

body:has(.home-refresh) .home-refresh .home-product-card {
    color: var(--store-copy);
    background: var(--store-surface);
    border-color: var(--store-line);
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(8, 47, 94, .06);
}

body:has(.home-refresh) .home-refresh .home-product-card:hover {
    border-color: #92b8e4;
    box-shadow: var(--store-shadow);
    transform: translateY(-3px);
}

body:has(.home-refresh) .home-refresh .home-product-card h3 {
    min-height: 2.6em;
    color: var(--store-ink);
    font-size: 1.06rem;
    line-height: 1.3;
}

body:has(.home-refresh) .home-refresh .home-product-card__footer {
    min-height: 62px;
    align-items: center;
}

body:has(.home-refresh) .home-refresh .home-product-card__footer strong {
    color: var(--store-ink);
    font-size: clamp(1.08rem, 1.5vw, 1.3rem);
}

body:has(.home-refresh) .home-refresh .home-product-card__footer > span {
    min-width: 118px;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 14px;
    color: #ffffff;
    background: var(--store-blue);
    border-radius: 9px;
    font-size: .78rem;
    font-weight: 750;
}

body:has(.home-refresh) .home-refresh .home-product-card:hover .home-product-card__footer > span {
    color: #ffffff;
    background: var(--store-blue-hover);
}

body:has(.home-refresh) .home-refresh .selector {
    color: #ffffff;
    background: var(--store-surface);
    border: 1px solid #aac7e6;
    border-radius: 8px;
    box-shadow: var(--store-shadow);
}

body:has(.home-refresh) .home-refresh .selector__intro {
    color: #ffffff;
    background: linear-gradient(145deg, #082d61 0%, var(--cg-blue-700) 100%);
}

body:has(.home-refresh) .home-refresh .selector__intro h2 {
    max-width: 11ch;
    color: #ffffff;
    font-size: clamp(2.25rem, 3.8vw, 3.8rem);
    line-height: 1.02;
}

body:has(.home-refresh) .home-refresh .selector__intro > p:not(.eyebrow) {
    color: #d8e9fb;
}

body:has(.home-refresh) .home-refresh .selector__options {
    background: #ffffff;
    border-left-color: var(--store-line);
}

body:has(.home-refresh) .home-refresh .selector__options a {
    min-height: 112px;
    color: var(--store-copy);
    border-bottom-color: var(--store-line);
}

body:has(.home-refresh) .home-refresh .selector__options a:hover,
body:has(.home-refresh) .home-refresh .selector__options a:focus-visible {
    background: var(--store-blue-soft);
}

body:has(.home-refresh) .home-refresh .selector__options > a > span,
body:has(.home-refresh) .home-refresh .selector__options i {
    color: var(--store-blue-bright);
}

body:has(.home-refresh) .home-refresh .selector__options strong {
    color: var(--store-ink);
    font-size: 1.05rem;
}

body:has(.home-refresh) .home-refresh .selector__options small {
    color: var(--store-copy);
}

@media (max-width: 1024px) {

    body:has(#main-content) .nav-subnode.has-children > a {
        color: var(--store-ink);
        font-weight: 750;
    }

    html.menu-open body {
        overflow: hidden;
    }

    body:has(.home-refresh) .home-refresh .selector { grid-template-columns: 1fr; }
    body:has(.home-refresh) .home-refresh .selector__options { border-top: 1px solid var(--store-line); border-left: 0; }
}

@media (max-width: 680px) {

    body:has(.home-refresh) .home-refresh .section { margin-top: 54px; }
    body:has(.home-refresh) .home-refresh .section-head { margin-bottom: 22px; }
    body:has(.home-refresh) .home-refresh .section-head h2 { font-size: clamp(1.9rem, 10vw, 2.7rem); }

    body:has(.home-refresh) .home-refresh .selector__intro { padding: 34px 24px; }
    body:has(.home-refresh) .home-refresh .selector__options a {
        min-height: 92px;
        grid-template-columns: 26px minmax(0, 1fr) auto;
        gap: 12px;
        padding: 18px 20px;
    }

    body:has(.home-refresh) .home-refresh .home-product-card__footer {
        min-height: 0;
        align-items: stretch;
        flex-direction: column;
    }

    body:has(.home-refresh) .home-refresh .home-product-card__footer > span { width: 100%; }
}

@media (max-width: 520px) {

    body:has(#main-content) .catalog-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    body:has(#main-content) .catalog-product__image {
        aspect-ratio: 4 / 3;
        margin: 8px;
    }

    body:has(#main-content) .catalog-product__stock { display: inline; }
    body:has(#main-content) .catalog-product h2 { min-height: 0; font-size: 1rem; }
    body:has(#main-content) .catalog-product p { display: -webkit-box; }
    body:has(#main-content) .catalog-product__price strong { font-size: 1.15rem; }
    body:has(#main-content) .catalog-product__action { min-height: 42px; }
    body:has(#main-content) .content-author { grid-template-columns: 52px minmax(0, 1fr); padding: 18px; }
    body:has(#main-content) .content-author__avatar { width: 52px; height: 52px; }
}

@media (prefers-reduced-motion: reduce) {
    body:has(.home-refresh) .home-refresh .home-product-card { transition: none; }
}

.storefront-v2 {
    --ui-canvas: var(--cg-canvas);
    --ui-surface: var(--cg-surface);
    --ui-surface-soft: var(--cg-surface-soft);
    --ui-surface-strong: var(--cg-blue-100);
    --ui-ink: var(--cg-navy-950);
    --ui-copy: var(--cg-navy-800);
    --ui-muted: var(--cg-muted);
    --ui-line: var(--cg-line);
    --ui-line-strong: var(--cg-line-strong);
    --ui-accent: var(--cg-blue-700);
    --ui-accent-hover: var(--cg-blue-800);
    --ui-accent-soft: var(--cg-blue-100);
    --ui-success: var(--cg-success);
    --ui-danger: var(--cg-danger);
    --ui-focus: var(--cg-blue-500);
    --ui-radius-control: var(--cg-radius-control);
    --ui-radius-card: var(--cg-radius-card);
    --ui-shadow-subtle: var(--cg-shadow-sm);
    --ui-shadow-raised: var(--cg-shadow-md);
    --ui-brand: var(--ui-accent);
    --ui-brand-soft: var(--ui-accent-soft);
    --ui-radius-sm: var(--ui-radius-control);
    --ui-radius-md: var(--ui-radius-card);
    --ui-radius-lg: var(--cg-radius-shell);
    --ui-shadow-sm: var(--ui-shadow-subtle);
    --ui-shadow-lg: var(--ui-shadow-raised);
    --ui-motion-fast: var(--cg-motion-fast);
    --ui-motion-base: var(--cg-motion-base);
    --ui-container: var(--cg-container-wide);
    --ui-content: var(--cg-container-content);
    --ui-reading: var(--cg-reading-width);
    --ui-section-gap: var(--cg-space-section);
    color: var(--ui-copy);
    background: var(--ui-canvas);
    font-family: "Inter", sans-serif;
    font-size: 16px;
    line-height: 1.6;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

.storefront-v2 *,
.storefront-v2 *::before,
.storefront-v2 *::after {
    box-sizing: border-box;
}

.storefront-v2 main#main-content {
    min-width: 0;
    color: var(--ui-copy);
    background: transparent;
}

.storefront-v2 main#main-content :is(h1, h2, h3, h4, h5, h6) {
    color: var(--ui-ink);
    font-family: "Geist", "Inter", sans-serif;
    font-weight: 600;
    text-wrap: balance;
}

.storefront-v2 main#main-content :is(p, li, dd) {
    text-wrap: pretty;
}

.storefront-v2 main#main-content :is(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid color-mix(in srgb, var(--ui-focus) 42%, transparent);
    outline-offset: 3px;
}

.storefront-v2 main#main-content :is(button, .button, [class*="__action"]) {
    touch-action: manipulation;
}

.storefront-v2 main#main-content :is(button, .button, [class*="__action"]):active {
    transform: translateY(1px);
}

.storefront-v2 main#main-content :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]) {
    min-height: 44px;
    color: var(--ui-ink);
    background: var(--ui-surface);
    border-color: var(--ui-line-strong);
    border-radius: var(--ui-radius-control);
}

.storefront-v2 main#main-content :is(input, select, textarea)::placeholder {
    color: var(--ui-muted);
    opacity: 1;
}

.storefront-v2 main#main-content :is(input, select, textarea):focus {
    border-color: var(--ui-focus);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--ui-focus) 14%, transparent);
}

.storefront-v2 .home-refresh {
    --home-ink: var(--ui-ink);
    --home-muted: var(--ui-copy);
    --home-accent: var(--ui-accent);
    --home-accent-strong: var(--ui-accent-hover);
    --home-accent-soft: var(--ui-accent-soft);
    --home-canvas: var(--ui-canvas);
    --home-surface: var(--ui-surface);
    --home-line: var(--ui-line);
    --home-success: var(--ui-success);
    --home-radius: var(--ui-radius-card);
    --home-shadow: var(--ui-shadow-raised);
    --home-section-space: var(--ui-section-gap);
    color: var(--ui-copy);
    background: var(--ui-canvas);
}

.storefront-v2 .home-refresh :is(.hero, .section, .selector, .service-strip, .consult) {
    width: min(calc(100% - 40px), var(--ui-content));
}

.storefront-v2 .home-refresh .section-head h2 {
    max-width: 18ch;
    color: var(--ui-ink);
    font-size: clamp(2rem, 3.5vw, 3.35rem);
    line-height: 1.06;
    letter-spacing: -.04em;
}

.storefront-v2 .home-refresh .section-head__description {
    max-width: 62ch;
    color: var(--ui-copy);
    line-height: 1.65;
}

.storefront-v2 .home-refresh .selector {
    color: var(--ui-copy);
    background: var(--ui-surface);
    border-color: var(--ui-line-strong);
    border-radius: var(--ui-radius-card);
    box-shadow: var(--ui-shadow-raised);
}

.storefront-v2 .home-refresh .selector__intro {
    color: #ffffff;
    background: linear-gradient(145deg, var(--ui-ink), var(--ui-accent));
}

.storefront-v2 .home-refresh .selector__intro :is(h2, .eyebrow) {
    color: #ffffff;
}

.storefront-v2 .home-refresh .selector__intro > p:not(.eyebrow) {
    color: #dbeaff;
}

.storefront-v2 .home-refresh .selector__options {
    color: var(--ui-copy);
    background: var(--ui-line);
}

.storefront-v2 .home-refresh .selector__options a {
    color: var(--ui-copy);
    background: var(--ui-surface);
    border-color: var(--ui-line);
}

.storefront-v2 .home-refresh .selector__options a:hover,
.storefront-v2 .home-refresh .selector__options a:focus-visible {
    color: var(--ui-ink);
    background: var(--ui-accent-soft);
}

.storefront-v2 .home-refresh .selector__options strong {
    color: var(--ui-ink);
}

.storefront-v2 .home-refresh .selector__options small {
    color: var(--ui-copy);
}

.storefront-v2 .home-refresh .selector__options > a > span,
.storefront-v2 .home-refresh .selector__options i {
    color: var(--ui-accent);
}

.storefront-v2 main#main-content :is(.in-stock, .status--success, .badge--success) {
    color: var(--ui-success);
}

@media (max-width: 991.98px) {
    .storefront-v2 .home-refresh :is(.hero, .section, .selector, .service-strip, .consult) {
        width: min(calc(100% - 28px), var(--ui-content));
    }

    .storefront-v2 .home-refresh .section-head h2 {
        max-width: 22ch;
    }
}

@media (max-width: 575.98px) {
    .storefront-v2 {
        --ui-section-gap: 56px;
    }

    .storefront-v2 .home-refresh :is(.hero, .section, .selector, .service-strip, .consult) {
        width: min(calc(100% - 24px), var(--ui-content));
    }

    .storefront-v2 .home-refresh .section-head h2 {
        max-width: none;
        font-size: clamp(1.85rem, 9vw, 2.5rem);
    }
}

.storefront-v2 {
    --ui-type-label: clamp(.75rem, .72rem + .08vw, .8rem);
    --ui-type-body: clamp(1rem, .96rem + .12vw, 1.06rem);
    --ui-type-lead: clamp(1.05rem, .98rem + .28vw, 1.2rem);
    --ui-type-title-sm: clamp(1.75rem, 1.5rem + .8vw, 2.35rem);
    --ui-type-title-md: clamp(2.15rem, 1.72rem + 1.35vw, 3.2rem);
    --ui-type-title-lg: clamp(2.65rem, 2.02rem + 2vw, 4.15rem);
    --ui-rhythm-section: clamp(4rem, 6.5vw, 6.5rem);
    --ui-rhythm-section-compact: clamp(2.75rem, 4.5vw, 4.5rem);
    --ui-rhythm-heading: clamp(1.25rem, 2vw, 1.75rem);
    --ui-copy-measure: 64ch;
}

.storefront-v2 .home-refresh .hero h1 {
    max-width: 13ch;
    font-size: var(--ui-type-title-lg);
    line-height: 1.01;
    letter-spacing: -.045em;
}

.storefront-v2 .home-refresh .hero__lead {
    max-width: 54ch;
    margin-top: 1.25rem;
    font-size: var(--ui-type-lead);
    line-height: 1.65;
}

.storefront-v2 .home-refresh .section {
    margin-top: 0;
    padding-top: var(--ui-rhythm-section);
}

.storefront-v2 .home-refresh .section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: clamp(1rem, 2.5vw, 2rem);
    margin-bottom: clamp(1.35rem, 2.4vw, 2rem);
}

.storefront-v2 .home-refresh :is(.section-head h2, .category-feature__content h2, .selector h2, .consult h2) {
    max-width: 24ch;
    margin: 0;
    font-size: var(--ui-type-title-md);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.storefront-v2 .home-refresh :is(.section-head__description, .category-feature__content > p:not(.eyebrow)) {
    max-width: var(--ui-copy-measure);
    margin: .65rem 0 0;
    font-size: var(--ui-type-body);
    line-height: 1.65;
}

.storefront-v2 .home-refresh .section-head > div {
    min-width: 0;
}

.storefront-v2 .home-refresh .section-head .eyebrow {
    margin: 0 0 .55rem;
}

.storefront-v2 .home-refresh .section-head > .text-link {
    min-height: 44px;
    padding: 0 1rem;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    color: var(--ui-accent);
    background: var(--ui-surface);
    border: 1px solid var(--ui-line-strong);
    border-radius: var(--ui-radius-control);
    box-shadow: var(--ui-shadow-subtle);
    font-weight: 750;
    line-height: 1.2;
    text-decoration: none;
    transition:
        color var(--ui-motion-fast) ease,
        background-color var(--ui-motion-fast) ease,
        border-color var(--ui-motion-fast) ease,
        box-shadow var(--ui-motion-fast) ease,
        transform var(--ui-motion-fast) ease;
}

.storefront-v2 .home-refresh .section-head > .text-link:hover {
    color: #ffffff;
    background: var(--ui-accent);
    border-color: var(--ui-accent);
    box-shadow: var(--ui-shadow-raised);
}

.storefront-v2 .home-refresh .section-head > .text-link i {
    transition: transform var(--ui-motion-fast) ease;
}

.storefront-v2 .home-refresh .section-head > .text-link:hover i {
    transform: translateX(3px);
}

.storefront-v2 .catalog-hero--refined {
    min-height: clamp(300px, 26vw, 380px);
}

.storefront-v2 .catalog-hero--refined .catalog-hero__copy {
    padding: clamp(2rem, 4vw, 4rem);
}

.storefront-v2 .catalog-hero--refined h1 {
    max-width: 16ch;
    margin-block: .75rem 1rem;
    font-size: var(--ui-type-title-lg);
    line-height: 1.02;
    letter-spacing: -.045em;
}

.storefront-v2 .catalog-hero--refined .catalog-hero__copy > p:last-of-type {
    max-width: 60ch;
    font-size: var(--ui-type-lead);
    line-height: 1.62;
}

.storefront-v2 .catalog-shell {
    gap: clamp(1.75rem, 3vw, 3rem);
    padding-block: var(--ui-rhythm-section-compact) var(--ui-rhythm-section);
}

@media (max-width: 767.98px) {
    .storefront-v2 {
        --ui-rhythm-section: 3.5rem;
        --ui-rhythm-section-compact: 2.5rem;
    }

    .storefront-v2 .home-refresh .hero h1,
.storefront-v2 .catalog-hero--refined h1 {
        max-width: none;
    }

    .storefront-v2 .home-refresh :is(.section-head h2, .category-feature__content h2, .selector h2, .consult h2) {
        max-width: none;
    }

    .storefront-v2 .home-refresh .section-head {
        display: grid;
        align-items: start;
        gap: 1rem;
        margin-bottom: 1.35rem;
    }

    .storefront-v2 .home-refresh .section-head > .text-link {
        width: fit-content;
    }

    .storefront-v2 .catalog-hero--refined .catalog-hero__copy {
        padding: 1.5rem 1.25rem;
    }
}

@media (max-width: 479.98px) {
    .storefront-v2 .home-refresh .section-head > .text-link {
        width: 100%;
    }
}

.storefront-v2 {
    --control-h: 48px;
    --control-radius: var(--cg-radius-control);
    --control-border: var(--ui-line-strong, #b9cbe0);
    --control-shadow: 0 1px 2px rgb(15 42 75 / 6%);
}

.storefront-v2 main#main-content :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]) {
    width: 100%;
    min-height: var(--control-h);
    padding: .72rem .95rem;
    border: 1px solid var(--control-border);
    border-radius: var(--control-radius);
    background: var(--ui-surface, #fff);
    color: var(--ui-ink, #102a43);
    box-shadow: var(--control-shadow);
    font: inherit;
    line-height: 1.4;
    transition: border-color var(--ui-motion-fast, 160ms) ease, box-shadow var(--ui-motion-fast, 160ms) ease, background-color var(--ui-motion-fast, 160ms) ease;
}

.storefront-v2 main#main-content textarea { min-height: 128px; resize: vertical; }

.storefront-v2 main#main-content select { padding-right: 2.75rem; cursor: pointer; }

.storefront-v2 main#main-content :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):hover:not(:disabled) {
    border-color: color-mix(in srgb, var(--ui-accent, #0d57b8) 42%, var(--control-border));
}

.storefront-v2 main#main-content :is(input, select, textarea):focus-visible {
    outline: 0;
    border-color: var(--ui-accent, #0d57b8);
    box-shadow: 0 0 0 1px var(--ui-focus, #0052cc);
}

.storefront-v2 main#main-content :is(input, select, textarea):disabled {
    cursor: not-allowed;
    background: color-mix(in srgb, var(--ui-surface, #fff) 78%, var(--ui-line, #d9e4f0));
    color: var(--ui-muted, #627d98);
    opacity: .72;
}

.storefront-v2 main#main-content :is(input[type="checkbox"], input[type="radio"]) {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--ui-accent, #0d57b8);
    cursor: pointer;
}

.storefront-v2 main#main-content :is(input[type="checkbox"], input[type="radio"]):focus-visible {
    outline: 3px solid var(--ui-focus, rgb(13 87 184 / 18%));
    outline-offset: 3px;
}

.storefront-v2 main#main-content :is(.field-validation-error, .validation-message) {
    display: block;
    margin-top: .45rem;
    color: #b42318;
    font-size: .875rem;
    font-weight: 650;
}

.storefront-v2 main#main-content :is(.button--secondary, .button--ghost, .copy-link, .filter-reset, .filter-open) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: var(--control-h);
    padding: .72rem 1rem;
    border: 1px solid var(--control-border);
    border-radius: var(--control-radius);
    background: var(--ui-surface, #fff);
    color: var(--ui-ink, #102a43);
    box-shadow: var(--control-shadow);
    font-weight: 720;
    text-decoration: none;
}

.storefront-v2 main#main-content :is(.button--secondary, .button--ghost, .copy-link, .filter-reset, .filter-open):hover:not([aria-disabled="true"]) {
    border-color: var(--ui-accent, #0d57b8);
    background: color-mix(in srgb, var(--ui-accent, #0d57b8) 7%, var(--ui-surface, #fff));
    color: var(--ui-accent-hover, #09438f);
    box-shadow: 0 7px 18px rgb(15 42 75 / 9%);
}

.storefront-v2 main#main-content :is(button, .button, [class*="btn-"]):focus-visible,
.storefront-v2 main#main-content :is(.filter-reset, .filter-open, .copy-link):focus-visible {
    outline: 3px solid var(--ui-focus, rgb(13 87 184 / 22%));
    outline-offset: 3px;
}

.storefront-v2 main#main-content :is(button, .button, [class*="btn-"]):active:not(:disabled):not([aria-disabled="true"]) { box-shadow: none; transform: none; }

.storefront-v2 main#main-content :is(button, .button, [class*="btn-"]):disabled,
.storefront-v2 main#main-content :is(button, .button, [class*="btn-"])[aria-disabled="true"] { cursor: not-allowed; opacity: .56; box-shadow: none; transform: none; }

.storefront-v2 main#main-content :is(button, .button, [class*="btn-"]).is-loading {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    pointer-events: none;
}

.storefront-v2 main#main-content :is(button, .button, [class*="btn-"]).is-loading::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(105deg, transparent 20%, rgb(255 255 255 / 24%) 46%, transparent 72%);
    transform: translateX(-110%);
    animation: storefront-control-loading 1.1s ease-in-out infinite;
}

.storefront-v2 main#main-content :is(input, select, textarea)[aria-invalid="true"] {
    border-color: #b42318;
    box-shadow: 0 0 0 3px rgb(180 35 24 / 12%);
}

@keyframes storefront-control-loading {
    to { transform: translateX(110%); }
}

.storefront-v2 main#main-content .catalog-toolbar select { min-width: 190px; }

.storefront-v2 main#main-content .filter-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .75rem; }

.storefront-v2 main#main-content .filter-actions > :first-child { width: 100%; }

@media (max-width: 720px) {
    .storefront-v2 { --control-h: 46px; }
    .storefront-v2 main#main-content .catalog-toolbar select { min-width: 0; }
    .storefront-v2 main#main-content .filter-actions { grid-template-columns: 1fr; }
    .storefront-v2 main#main-content .filter-actions > * { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .storefront-v2 main#main-content :is(button, .button, [class*="btn-"], input, select, textarea) { transition: none; }
    .storefront-v2 main#main-content :is(button, .button, [class*="btn-"]).is-loading::after { animation: none; }
}

.storefront-v2 :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--cg-accent, var(--cg-blue-700)) 72%, white);
  outline-offset: 3px;
}

.storefront-v2 .skip-link {
  position: fixed; z-index: 10000; inset: 12px auto auto 12px; translate: 0 -160%;
  padding: .7rem 1rem; border-radius: .7rem; background: #082b62; color: #fff; font-weight: 700;
  transition: translate .18s ease;
}

.storefront-v2 .skip-link:focus { translate: 0; }

.storefront-v2 :where(button, [type="submit"])[aria-busy="true"] { cursor: wait; opacity: .78; }

.storefront-v2 .site-toast {
  position: fixed; z-index: 9999; right: clamp(1rem, 3vw, 2rem); bottom: clamp(1rem, 3vw, 2rem);
  width: min(28rem, calc(100vw - 2rem)); padding: .9rem 1rem;
  border: 1px solid color-mix(in srgb, #fff 22%, transparent); border-radius: .85rem;
  background: #082b62; box-shadow: 0 18px 50px rgb(5 33 73 / 24%); color: #fff;
  font-weight: 650; line-height: 1.5; opacity: 0; pointer-events: none; translate: 0 1rem;
  transition: opacity .18s ease, translate .18s ease;
}

.storefront-v2 .site-toast.is-visible { opacity: 1; translate: 0; }

.storefront-v2 .site-toast.is-error { background: #9f1d1d; }

.storefront-v2 .search-loading { display: grid; gap: .65rem; padding: 1rem; }

.storefront-v2 .search-loading span {
  display: block; height: .75rem; border-radius: 999px;
  background: linear-gradient(90deg, #e5edf8 20%, #f8fbff 50%, #e5edf8 80%);
  background-size: 220% 100%; animation: storefront-skeleton 1.2s ease-in-out infinite;
}

.storefront-v2 .search-loading span:nth-child(2) { width: 76%; }

.storefront-v2 .search-loading span:nth-child(3) { width: 54%; }

.storefront-v2 .search-empty { display: grid; gap: .25rem; padding: 1rem; color: #49627f; }

.storefront-v2 .search-empty strong { color: #09294f; }

.storefront-v2 .image-unavailable { background: #e8f0fa; color: transparent; object-fit: contain !important; }

.storefront-v2 :where(input, select, textarea):user-invalid {
  border-color: #b42318; box-shadow: 0 0 0 3px rgb(180 35 24 / 10%);
}

.storefront-v2 :where(.field-validation-error, .validation-summary-errors) { color: #9f1d1d; font-weight: 650; }

@keyframes storefront-skeleton { to { background-position: -220% 0; } }

@keyframes storefront-cart-pulse { 50% { scale: 1.22; } }

@media (prefers-reduced-motion: reduce) {
  .storefront-v2 *,
.storefront-v2 *::before,
.storefront-v2 *::after {
    scroll-behavior: auto !important; animation-duration: .01ms !important;
    animation-iteration-count: 1 !important; transition-duration: .01ms !important;
  }
}

@media (forced-colors: active) {
  .storefront-v2 :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 2px solid Highlight; }
  .storefront-v2 .site-toast { border: 2px solid CanvasText; }
}

body:not(.author-storefront) .storefront-v2 main#main-content :is(
    .catalog-empty,
    .journal-empty,
    .support-empty,
    .empty-state,
    .cart-empty,
    .author-page__empty
) {
    display: grid;
    justify-items: center;
    gap: .75rem;
    width: min(100%, 760px);
    margin: clamp(1.5rem, 4vw, 3.5rem) auto;
    padding: clamp(2rem, 5vw, 4rem);
    border: 1px solid color-mix(in srgb, var(--ui-accent, #0d57b8) 22%, #d7e3f2);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgb(255 255 255 / 96%), rgb(247 251 255 / 94%));
    box-shadow: 0 18px 44px rgb(28 79 135 / 9%);
    color: var(--ui-ink, #102a43);
    text-align: center;
}

body:not(.author-storefront) .storefront-v2 main#main-content :is(
    .catalog-empty,
    .journal-empty,
    .support-empty,
    .empty-state,
    .cart-empty,
    .author-page__empty
)::before {
    content: "";
    width: 46px;
    height: 3px;
    margin-bottom: .25rem;
    border-radius: 999px;
    background: var(--ui-accent, #0d57b8);
}

body:not(.author-storefront) .storefront-v2 main#main-content :is(
    .catalog-empty,
    .journal-empty,
    .support-empty,
    .empty-state,
    .cart-empty,
    .author-page__empty
) > :is(span, strong):first-of-type {
    color: var(--ui-accent-hover, #09438f);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.35;
    text-transform: uppercase;
}

body:not(.author-storefront) .storefront-v2 main#main-content :is(
    .catalog-empty,
    .journal-empty,
    .support-empty,
    .empty-state,
    .cart-empty,
    .author-page__empty
) :is(h2, h3) {
    max-width: 34ch;
    margin: 0;
    color: var(--ui-ink, #102a43);
    font-size: clamp(1.5rem, 3vw, 2.15rem);
    font-weight: 780;
    letter-spacing: -.025em;
    line-height: 1.15;
    text-wrap: balance;
}

body:not(.author-storefront) .storefront-v2 main#main-content :is(
    .catalog-empty,
    .journal-empty,
    .support-empty,
    .empty-state,
    .cart-empty,
    .author-page__empty
) > i {
    color: var(--ui-accent, var(--cg-blue-700));
    font-size: 1.65rem;
    line-height: 1;
}

body:not(.author-storefront) .storefront-v2 main#main-content :is(
    .catalog-empty,
    .journal-empty,
    .support-empty,
    .empty-state,
    .cart-empty,
    .author-page__empty
) p {
    max-width: 52ch;
    margin: 0;
    color: var(--ui-muted, #526b86);
    font-size: 1rem;
    line-height: 1.65;
    text-wrap: pretty;
}

body:not(.author-storefront) .storefront-v2 main#main-content :is(
    .catalog-empty,
    .journal-empty,
    .support-empty,
    .empty-state,
    .cart-empty,
    .author-page__empty
) > :is(a, button) {
    margin-top: .65rem;
}

.storefront-v2 main#main-content :is(
    .commerce-error,
    .validation-summary-errors,
    .review-message.is-error
):not(:empty) {
    display: grid;
    gap: .35rem;
    margin: 0 0 1rem;
    padding: .9rem 1rem;
    border: 1px solid rgb(180 35 24 / 24%);
    border-left: 3px solid #b42318;
    border-radius: 12px;
    background: #fff5f4;
    color: #8f1d15;
    font-size: .92rem;
    font-weight: 650;
    line-height: 1.5;
}

.storefront-v2 main#main-content :is(
    .commerce-notice,
    .review-message.is-success
) {
    margin: 0 0 1rem;
    padding: .9rem 1rem;
    border: 1px solid rgb(24 121 74 / 24%);
    border-left: 3px solid #18794a;
    border-radius: 12px;
    background: #f1faf5;
    color: #11623b;
    font-size: .92rem;
    font-weight: 650;
    line-height: 1.5;
}

.storefront-v2 main#main-content [aria-busy="true"].catalog-products,
.storefront-v2 main#main-content [aria-busy="true"].product-grid {
    min-height: 320px;
    cursor: wait;
}

@media (max-width: 720px) {
    body:not(.author-storefront) .storefront-v2 main#main-content :is(
        .catalog-empty,
        .journal-empty,
        .support-empty,
        .empty-state,
        .cart-empty,
        .author-page__empty
    ) {
        width: 100%;
        margin-block: 1.25rem;
        padding: 2rem 1.25rem;
        border-radius: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .storefront-v2 main#main-content [aria-busy="true"] {
        scroll-behavior: auto;
    }
}
