.messages {
    position: fixed;
    z-index: 80;
    top: 120px;
    left: 50%;
    transform: translateX(-50%);
    width: min(520px,90vw)
}
.message {
    padding: 13px 18px;
    background: #fff;
    box-shadow: 0 8px 28px #0002;
    font-size: 14px
}
.message.success {
    border-left: 3px solid #28955d
}
.message.error {
    border-left: 3px solid #ef2636
}
.page-hero {
    min-height: 370px;
    background-color: #151515;
    background-image: linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.3)),url('https://images.unsplash.com/photo-1749559995884-a3731177edf7?auto=format&fit=crop&w=1800&q=85');
    background-size: cover;
    background-position: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: white;
    padding: 60px 10%
}
.page-hero h1,.simple-page h1,.article-page h1 {
    font-size: clamp(45px,7vw,88px);
    line-height: .92;
    letter-spacing: -.08em;
    margin: 0
}
.page-hero h1 em,.simple-page h1 em,.article-page h1 em {
    color: #ef2636;
    font-style: normal
}
.heading-brand {
    display: block;
    margin: 0 0 12px;
    color: var(--red, #ef2636);
    font-size: .22em;
    font-weight: 800;
    letter-spacing: .16em;
    line-height: 1.2;
}
.hero h1 .heading-brand {
    margin-bottom: 15px;
}
.hero h1 [data-slide-title] {
    display: block;
}
.page-hero>p:last-child {
    max-width: 560px;
    font-size: 14px;
    line-height: 1.8;
    color: #ddd
}
.listing-section {
    padding-top: 70px
}
.listing-sort {
    display: flex;
    align-items: center;
    gap: 9px
}
.listing-sort input,.listing-sort select {
    border: 1px solid #ccc;
    background: white;
    padding: 12px;
    font-size: 14px;
    min-width: 140px
}
.listing-sort .button {
    min-height: 44px;
    padding: 12px 20px;
}
#category-results[aria-busy="true"] {
    opacity: .55;
    pointer-events: none;
}
.ajax-feedback {
    position: fixed;
    z-index: 1000;
    right: 22px;
    bottom: 22px;
    max-width: min(420px, calc(100vw - 32px));
    padding: 14px 18px;
    border-radius: 4px;
    background: #171717;
    color: #fff;
    font-size: 14px;
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity .2s ease, transform .2s ease;
}
.ajax-feedback.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.ajax-feedback.is-error {
    background: #b51e2b;
}
.breadcrumbs {
    padding: 22px 8.5vw;
    font-size: 14px;
    color: #888
}
.breadcrumbs a {
    color: #111
}
.product-detail {
    padding: 35px 8.5vw 90px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8%;
    align-items: start
}
.detail-image img {
    width: 100%;
    max-height: 650px;
    object-fit: cover;
    background: #e8e7e3
}
.detail-copy {
    padding-top: 25px
}
.detail-copy h1 {
    font-size: clamp(36px,5vw,62px);
    line-height: 1;
    letter-spacing: -.075em;
    margin: 0 0 15px;
}
.detail-rating {
    font-size: 14px;
    color: #e9a922
}
.detail-rating span {
    font-size: 14px;
    color: #777
}
.detail-price {
    display: inline-block;
    font-size: 21px;
    margin: 14px 12px 0 0;
    color: var(--red);
}
.detail-description {
    font-size: 14px;
    color: #555;
    line-height: 1.9;
    margin: 23px 0
}
.stock-status {
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .1em;
    color: #238558
}
.stock-status.out {
    color: #ef2636
}
.detail-buy {
    display: flex;
    gap: 13px;
    align-items: center;
    margin: 21px 0
}
.detail-buy label {
    font-size: 14px;
    letter-spacing: .13em;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 8px
}
.detail-buy input {
    width: 52px;
    padding: 13px;
    border: 1px solid #ccc
}
.detail-assurance {
    border-top: 1px solid #ddd;
    padding-top: 12px
}
.detail-assurance p {
    font-size: 14px;
    letter-spacing: .07em
}
.description-section {
    background: #ecebe7;
    display: grid;
    grid-template-columns: .7fr 1.3fr;
    gap: 8%;
    align-items: center
}
.description-section h2,.related h2 {
    font-size: clamp(40px,5vw,65px);
    letter-spacing: -.08em;
    line-height: .95
}
.description-section h2 em,.related h2 em {
    color: #ef2636;
    font-style: normal
}
.description-section>p {
    font-size: 14px;
    line-height: 1.9;
    color: #555
}
.reviews-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 50px;
}
.reviews-grid > * {
    min-width: 0;
}
.review {
    padding: 20px 0;
    border-bottom: 1px solid #ddd
}
.review h3 {
    font-size: 15px
}
.review p {
    font-size: 14px;
    line-height: 1.7;
    color: #555
}
.review small {
    font-size: 14px;
    color: #777;
    letter-spacing: .1em
}
.review-form,.contact-form,.checkout-form {
    background: #fff;
    width: 100%;
    min-width: 0;
    padding: 28px;
    border: 1px solid #e5e4e0;
}
.review-form p {
    min-width: 0;
    margin-left: 0;
    margin-right: 0;
}
.review-form h3,.contact-form h2,.checkout-form h2 {
    margin-top: 0;
    font-size: 18px
}
.review-form p,.contact-form p,.checkout-form p {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 14px;
    font-weight: 700
}
.review-form input,.review-form textarea,.review-form select,.contact-form input,.contact-form textarea,.checkout-form input,.checkout-form textarea {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    border: 1px solid #ccc;
    padding: 12px;
    background: #fff;
    font-size: 14px
}
.review-form textarea {
    resize: vertical;
}
.related {
    background: #111;
    color: #fff
}
.related h2 {
    margin-bottom: 30px
}
.simple-page {
    padding: 80px 9vw;
    min-height: 430px
}
.simple-page>p:not(.eyebrow) {
    line-height: 1.8;
    color: #555;
    max-width: 680px
}
.cart-layout,.checkout-layout {
    display: grid;
    grid-template-columns: 1.5fr .8fr;
    gap: 8%;
    margin-top: 45px
}
.cart-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
    align-items: start;
    border-bottom: 1px solid #ddd;
    padding: 20px 0
}
.shopping-cart-line {
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 18px;
}
.shopping-cart-line > img {
    width: 100px;
    height: 100px;
    object-fit: cover;
    object-position: center;
    align-self: start;
    border-radius: 3px;
}
.cart-line-content {
    display: flex;
    min-width: 0;
    min-height: 100px;
    flex-direction: column;
    justify-content: space-between;
}
.cart-line-heading,
.cart-line-bottom {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}
.cart-line-description {
    min-width: 0;
}
.cart-line-description a {
    display: inline-block;
    color: inherit;
    text-decoration: none;
}
.cart-line-description a:hover {
    color: var(--red);
}
.cart-remove-form {
    flex: 0 0 auto;
}
.cart-remove-button {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    padding: 8px;
    border: 1px solid #dedede;
    border-radius: 50%;
    background: white;
    color: #555;
    cursor: pointer;
    transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}
.cart-remove-button:hover {
    color: var(--red);
    border-color: var(--red);
    background: #fff7f7;
}
.cart-remove-button svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.cart-line-bottom {
    align-items: center;
    margin-top: 14px;
}
.cart-line strong {
    font-size: 14px
}
.cart-line small {
    display: block;
    margin-top: 8px;
    color: #777;
    font-size: 14px
}
.cart-qty {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 0
}
.cart-update-button {
    padding: 8px 10px;
    border-radius: 2px;
    font-size: 12px;
    text-transform: uppercase;
}
.cart-qty input {
    width: 60px;
    padding: 7px;
    border: 1px solid #ccc
}
.secondary {
    background: #f1f2f4;
    border: 1px solid #ddd;
    padding: 8px 12px;
    font-size: 14px;
    font-weight: 800
}
.cart-line .cart-line-total {
    flex: 0 0 auto;
    color: var(--red);
    font-size: 17px;
    text-align: right;
    white-space: nowrap;
}
.cart-summary {
    background: #f0efeb;
    padding: 25px;
    height: max-content
}
.cart-summary h2 {
    font-size: 30px;
    line-height: .98;
    letter-spacing: -.07em;
    margin: 0 0 25px
}
.cart-summary h2 em {
    font-style: normal;
    color: #ef2636
}
.cart-summary>p {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 14px;
    border-bottom: 1px solid #d8d6d0;
    padding: 10px 0
}
.cart-summary .summary-total {
    font-size: 14px;
    font-weight: 800
}
.cart-summary>small {
    display: block;
    font-size: 14px;
    color: #777;
    line-height: 1.6;
    margin: 13px 0
}
.cart-summary .button {
    width: 100%;
    margin-top: 15px
}
.payment-callout {
    padding: 12px;
    background: #fff5db;
    color: #735719;
    line-height: 1.6
}
.checkout-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.checkout-form > input[type="hidden"] {
    display: none;
}
.checkout-step {
    min-width: 0;
    border: 1px solid #dededb;
    background: #fff;
}
.checkout-step-heading {
    display: grid;
    width: 100%;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    border: 0;
    padding: 18px;
    background: #f4f4f2;
    color: #171717;
    text-align: left;
}
.checkout-step-heading[aria-expanded="true"] {
    background: #101010;
    color: #fff;
}
.checkout-step-number {
    color: var(--red);
    font-size: 17px;
    font-weight: 800;
}
.checkout-step-title {
    font-size: 15px;
    font-weight: 800;
}
.checkout-step-state {
    color: #777;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .08em;
}
.checkout-step-heading[aria-expanded="true"] .checkout-step-state {
    color: #fff;
}
.checkout-step-panel {
    padding: 20px;
}
.checkout-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.checkout-fields label {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 7px;
    color: #353535;
    font-size: 14px;
    font-weight: 800;
}
.checkout-fields .checkout-field-wide {
    grid-column: 1 / -1;
}
.checkout-fields input,
.checkout-fields textarea {
    min-height: 48px;
    border: 1px solid #c9c9c7;
    border-radius: 3px;
    padding: 12px;
    color: #171717;
    font: inherit;
    font-size: 15px;
}
.checkout-fields textarea {
    resize: vertical;
}
.checkout-fields input:focus,
.checkout-fields textarea:focus {
    border-color: #171717;
    outline: 2px solid #171717;
    outline-offset: 1px;
}
.checkout-fields .errorlist,
.checkout-form > .errorlist,
.checkout-errors {
    grid-column: 1 / -1;
    margin: 0;
    padding: 10px 12px;
    color: #a51c29;
    background: #fff0f1;
    font-size: 14px;
}
.checkout-next {
    margin-top: 20px;
}
.quote-intro {
    display: block !important;
    margin: 0 0 18px;
    color: #5d5d5d;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.65;
}
.payment-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
}
.payment-choice-card {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 82px;
    align-items: center;
    gap: 11px;
    border: 1px solid #d6d6d4;
    border-radius: 4px;
    padding: 12px;
    background: #fff;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.payment-choice-card:has(input:checked) {
    border-color: var(--red);
    background: #fff7f7;
    box-shadow: 0 0 0 1px var(--red);
}
.payment-choice-card input[type="radio"] {
    width: 18px;
    min-width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--red);
}
.payment-card-mark {
    display: grid;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    place-items: center;
    border-radius: 4px;
    background: #171717;
    color: #fff;
    font-size: 19px;
    font-weight: 800;
}
.payment-card-copy {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: 4px;
}
.payment-card-copy strong {
    overflow-wrap: anywhere;
    color: #171717;
    font-size: 14px;
}
.payment-card-copy small {
    color: #737373;
    font-size: 14px;
}
.payment-quote-badge {
    align-self: flex-start;
    border-radius: 20px;
    padding: 4px 6px;
    background: #f1f1ef;
    color: #555;
    font-size: 14px;
    font-weight: 800;
}
.checkout-step-actions {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 20px;
}
.button-outline {
    min-height: 48px;
    border: 1px solid #bcbcb9;
    padding: 0 18px;
    background: #fff;
    color: #171717;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .06em;
}
.checkout-review-note {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-left: 3px solid var(--red);
    padding: 14px 16px;
    background: #f5f5f3;
    line-height: 1.6;
}
.checkout-review-note strong {
    font-size: 17px;
}
.checkout-review-note span {
    color: #5d5d5d;
    font-size: 14px;
}
.checkout-submit {
    min-height: 48px;
    flex: 1;
}
.checkout-summary {
    position: sticky;
    top: 24px;
}
.checkout-summary .eyebrow {
    margin: 0 0 14px;
    color: #666;
    font-size: 14px;
}
.checkout-summary h2 {
    margin: 0 0 14px;
}
.checkout-summary-items p:first-child {
    border-top: 1px solid #d8d6d0;
}
.checkout-summary > small {
    margin-top: 16px;
}
.quantity-control {
    display: inline-grid;
    width: max-content;
    grid-template-columns: 42px 60px 42px;
    overflow: hidden;
    border: 1px solid #c9c9c7;
    border-radius: 3px;
    background: #fff;
}
.quantity-control button {
    min-width: 42px;
    min-height: 44px;
    border: 0;
    background: #f2f2f0;
    color: #171717;
    font-size: 21px;
    font-weight: 700;
}
.quantity-control button:hover {
    background: #e7e7e4;
}
.quantity-control input[type="number"] {
    width: 60px;
    min-width: 0;
    border: 0;
    border-right: 1px solid #e1e1df;
    border-left: 1px solid #e1e1df;
    border-radius: 0;
    padding: 4px;
    color: #171717;
    font-size: 16px;
    font-weight: 800;
    text-align: center;
    appearance: textfield;
}
.quantity-control input[type="number"]::-webkit-inner-spin-button,
.quantity-control input[type="number"]::-webkit-outer-spin-button {
    margin: 0;
    appearance: none;
}
.quantity-label {
    white-space: nowrap;
}
.quantity-control-cart {
    grid-template-columns: 34px 48px 34px;
}
.quantity-control-cart button {
    min-width: 34px;
    min-height: 36px;
    font-size: 18px;
}
.quantity-control-cart input[type="number"] {
    width: 48px;
    font-size: 14px;
}
.order-confirmation {
    max-width: 850px
}
.contact-page {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8%;
    align-items: start
}
.contact-details {
    margin-top: 32px
}
.contact-details p {
    display: flex;
    flex-direction: column;
    gap: 5px
}
.contact-details small {
    font-size: 14px;
    color: #888;
    letter-spacing: .14em
}
.contact-details a,.contact-details span {
    font-size: 14px
}
.journal-grid article>a>img {
    display: block
}
.journal-grid article>p {
    font-size: 14px;
    color: #666;
    line-height: 1.7
}
.journal-image {
    width: 100%;
    object-fit: cover
}
.article-page {
    max-width: 950px;
    margin: 0 auto;
    padding: 30px 6vw 100px
}
.article-page .breadcrumbs {
    padding: 12px 0 32px
}
.article-page h1 {
    font-size: clamp(40px,6vw,74px);
    max-width: 850px
}
.article-excerpt {
    font-size: 17px;
    line-height: 1.7;
    color: #555;
    max-width: 700px
}
.article-cover {
    width: 100%;
    max-height: 560px;
    object-fit: cover;
    margin: 30px 0
}
.article-body {
    max-width: 720px;
    font-size: 14px;
    line-height: 2;
    color: #333;
    margin: 20px auto 55px
}
.policy-page {
    padding: 70px 10vw 110px;
    max-width: 1100px
}
.policy-page h1 {
    font-size: clamp(40px,6vw,70px);
    letter-spacing: -.08em;
    margin: 0
}
.policy-intro {
    font-size: 14px;
    color: #888
}
.policy-content {
    max-width: 760px;
    margin-top: 40px
}
.policy-content h2 {
    font-size: 18px;
    margin: 30px 0 8px
}
.policy-content p {
    font-size: 14px;
    line-height: 1.9;
    color: #555
}
.policy-content a {
    color: #ef2636;
    text-decoration: underline
}
.policy-note {
    border-left: 3px solid #ef2636;
    padding: 12px;
    background: #f0efeb;
    font-size: 14px!important
}
.value-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 15px;
    margin: 35px 0
}
.value-grid article {
    padding: 22px;
    background: #f0efeb
}
.value-grid strong {
    font-size: 14px
}
.value-grid p {
    font-size: 14px;
    color: #666;
    line-height: 1.8
}
.about-hero {
    min-height: 470px
}
.about-campaign {
    height: 520px
}
.header-search {
    display: flex;
    border-bottom: 1px solid #ddd
}
.header-search input {
    width: 110px;
    border: 0;
    background: transparent;
    font-size: 14px;
    outline: 0
}
.header-search button {
    border: 0;
    background: transparent;
    font-size: 18px
}
.category-card:before {
    background-image: var(--category-image)
}
.category-card[style*="--category-image"]:before {
    background-image: var(--category-image)
}
.category-card:not([style*="--category-image"]):nth-child(1):before {
    background-image: url('https://easton.rawlings.com/dw/image/v2/BBBJ_PRD/on/demandware.static/-/Sites-master-catalog/default/dwc976bcf3/products/EUT7DBDS-BG-1.jpg?bgcolor=ebebeb&sfrm=jpg&sw=900')
}
.category-card:not([style*="--category-image"]):nth-child(2):before {
    background-image: url('https://easton.rawlings.com/dw/image/v2/BBBJ_PRD/on/demandware.static/-/Sites-master-catalog/default/dwd5559b16/products/GNXFP115WM-5.jpg?bgcolor=ebebeb&sfrm=jpg&sw=900')
}
.category-card:not([style*="--category-image"]):nth-child(3):before {
    background-image: url('https://easton.rawlings.com/dw/image/v2/BBBJ_PRD/on/demandware.static/-/Sites-master-catalog/default/dw90976997/products/Z50MATMJG-RD-4.jpg?bgcolor=ebebeb&sfrm=png&sw=900')
}
.category-card:not([style*="--category-image"]):nth-child(4):before {
    background-image: url('https://easton.rawlings.com/dw/image/v2/BBBJ_PRD/on/demandware.static/-/Sites-master-catalog/default/dwab0c738d/products/WOETHOSBP-CB-1.jpg?bgcolor=ebebeb&sfrm=png&sw=900')
}
.hero-photo {
    background-image: url('https://images.unsplash.com/photo-1749559995884-a3731177edf7?auto=format&fit=crop&w=2200&q=85')
}
.campaign-image {
    background-image: url('https://images.unsplash.com/photo-1749559995884-a3731177edf7?auto=format&fit=crop&w=2200&q=85')
}
.story-photo {
    background-image: url('https://easton.rawlings.com/dw/image/v2/BBBJ_PRD/on/demandware.static/-/Sites-master-catalog/default/dwc976bcf3/products/EUT7DBDS-BG-1.jpg?bgcolor=ebebeb&sfrm=jpg&sw=1200')
}
.journal-one {
    background-image: url('https://easton.rawlings.com/dw/image/v2/BBBJ_PRD/on/demandware.static/-/Sites-master-catalog/default/dwc976bcf3/products/EUT7DBDS-BG-1.jpg?bgcolor=ebebeb&sfrm=jpg&sw=900')
}
.journal-two {
    background-image: url('https://easton.rawlings.com/dw/image/v2/BBBJ_PRD/on/demandware.static/-/Sites-master-catalog/default/dwd5559b16/products/GNXFP115WM-5.jpg?bgcolor=ebebeb&sfrm=jpg&sw=900')
}
.journal-three {
    background-image: url('https://easton.rawlings.com/dw/image/v2/BBBJ_PRD/on/demandware.static/-/Sites-master-catalog/default/dw90976997/products/Z50MATMJG-RD-4.jpg?bgcolor=ebebeb&sfrm=png&sw=900')
}
.category-card:not([style*="--category-image"]):nth-child(1):before {
    background-image: url('https://easton.rawlings.com/dw/image/v2/BBBJ_PRD/on/demandware.static/-/Sites-master-catalog/default/dwc976bcf3/products/EUT7DBDS-BG-1.jpg?bgcolor=ebebeb&sfrm=jpg&sw=900')
}
.category-card:not([style*="--category-image"]):nth-child(2):before {
    background-image: url('https://easton.rawlings.com/dw/image/v2/BBBJ_PRD/on/demandware.static/-/Sites-master-catalog/default/dwd5559b16/products/GNXFP115WM-5.jpg?bgcolor=ebebeb&sfrm=jpg&sw=900')
}
.category-card:not([style*="--category-image"]):nth-child(3):before {
    background-image: url('https://easton.rawlings.com/dw/image/v2/BBBJ_PRD/on/demandware.static/-/Sites-master-catalog/default/dw90976997/products/Z50MATMJG-RD-4.jpg?bgcolor=ebebeb&sfrm=png&sw=900')
}
.category-card:not([style*="--category-image"]):nth-child(4):before {
    background-image: url('https://easton.rawlings.com/dw/image/v2/BBBJ_PRD/on/demandware.static/-/Sites-master-catalog/default/dwab0c738d/products/WOETHOSBP-CB-1.jpg?bgcolor=ebebeb&sfrm=png&sw=900')
}
.category-background {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s;
    z-index: 0
}
.category-card:hover .category-background {
    transform: scale(1.06)
}
.category-pills {
    display: flex;
    gap: 9px;
    flex-wrap: wrap;
    margin: -15px 0 30px
}
.category-pills a {
    padding: 9px 13px;
    border: 1px solid #bbb;
    border-radius: 30px;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase
}
.category-pills a:hover {
    border-color: #ef2636;
    color: #ef2636
}
@media(max-width:650px) {
    .page-hero {
        min-height: 330px;
        padding: 45px 7%
    }
    .listing-sort {
        flex-direction: column;
        align-items: stretch;
        width: 100%
    }
    .listing-sort input,.listing-sort select {
        width: 100%
    }
    .product-detail {
        grid-template-columns: 1fr;
        padding: 15px 6vw 55px;
        gap: 20px
    }
    .detail-copy {
        padding-top: 5px
    }
    .detail-copy h1 {
        font-size: 42px
    }
    .description-section {
        grid-template-columns: 1fr;
        gap: 5px
    }
    .reviews-grid,.contact-page,.cart-layout,.checkout-layout {
        grid-template-columns: 1fr;
        gap: 25px
    }
    .simple-page {
        padding: 55px 7vw
    }
    .shopping-cart-line {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 12px
    }
    .shopping-cart-line > img {
        width: 72px;
        height: 72px
    }
    .cart-line-content {
        min-height: 72px;
    }
    .cart-line-heading,
    .cart-line-bottom {
        gap: 8px;
    }
    .cart-line-bottom {
        margin-top: 10px;
    }
    .cart-line .cart-line-total {
        font-size: 15px;
    }
    .cart-remove-button {
        width: 32px;
        height: 32px;
    }
    .cart-qty {
        gap: 5px;
    }
    .quantity-control-cart {
        grid-template-columns: 30px 40px 30px;
    }
    .quantity-control-cart button {
        min-width: 30px;
    }
    .quantity-control-cart input[type="number"] {
        width: 40px;
    }
    .cart-summary {
        padding: 20px
    }
    .contact-form,.checkout-form,.review-form {
        padding: 20px
    }
    .value-grid {
        grid-template-columns: 1fr
    }
    .article-page {
        padding: 20px 6vw 70px
    }
    .header-search input {
        display: none
    }
    .header-search:focus-within input {
        display: block;
        width: 90px
    }
}
/* Home banner: three separate campaign images with a soft cross-fade. */
.hero-slide {
    position: absolute;
    inset: 0;
    background-image: var(--hero-image);
    background-size: cover;
    background-position: center 38%;
    filter: saturate(.78);
    opacity: 0;
    transform: scale(1.02);
    transition: opacity .8s ease, transform 6.5s ease;
}
.hero-slide.is-active {
    opacity: 1;
    transform: scale(1.07);
}
.hero-dots {
    display: flex;
    gap: 9px;
    align-items: center;
}
.hero-dots button {
    width: 14px;
    height: 14px;
    padding: 0;
    border: 2px solid white;
    border-radius: 50%;
    background: transparent;
}
.hero-dots button.active {
    background: var(--red);
    border-color: var(--red);
}
/* Storefront icon sizing and accessible touch targets. */
.icon-button svg,
.cart-button svg,
.menu-toggle svg,
.header-search button svg,
.footer-contact svg,
.socials svg,
.newsletter form button svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.socials svg .fill,
.newsletter form button svg {
    fill: currentColor;
}
.icon-button,
.cart-button {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.menu-toggle svg,
.header-search button svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
/* Brand story headline and supporting copy. */
.story-copy h2.story-line {
    max-width: 100%;
    font-size: clamp(19px, 2.5vw, 34px);
    line-height: 1.2;
    letter-spacing: -.04em;
    white-space: nowrap;
}
.story-copy .story-line em {
    color: var(--red);
}
/* Footer contact, social links, and two-column gear navigation. */
.footer-gear-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 22px;
}
.footer-main .footer-gear-links a,
.footer-main .footer-contact a,
.footer-main .footer-description,
.footer-main .footer-slogan,
.footer-main h4,
.footer-main .site-address {
    font-size: 14px;
    line-height: 1.65;
}
.footer-brand .footer-slogan {
    color: white;
    font-weight: 800;
    letter-spacing: .035em;
    white-space: nowrap;
}
.footer-brand .footer-description {
    max-width: 450px;
    color: #ccc;
    letter-spacing: 0;
}
.footer-contact {
    display: grid;
    gap: 10px;
    margin-top: 16px;
}
.footer-main .footer-contact a {
    display: flex;
    align-items: center;
    gap: 10px;
}
.footer-contact svg {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
}
.socials a {
    width: 40px;
    height: 40px;
}
.socials svg {
    width: 21px;
    height: 21px;
}
/* Typography accessibility: all small text is raised to a 14px minimum. */
.announcement,
.announcement a,
.main-nav a,
.eyebrow,
.button,
.text-link,
.hero-side,
.hero-bottom,
.category-number,
.category-copy small,
.product-meta,
.product-buy,
.product-info h3,
.journal-grid small,
.footer-main > div > a,
.footer-bottom,
.payments small,
.payments strong,
.payment-list span,
.contact-details small,
.policy-intro,
.policy-content p,
.policy-note,
.contact-details a,
.contact-details span,
.header-search input,
.cart-line small,
.stock-status,
.detail-assurance p,
.review small {
    font-size: max(14px, 1em);
}
@media (max-width: 650px) {
    .footer-main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px 20px;
        padding: 42px 6% 36px;
    }
    .footer-brand,
    .footer-links--support {
        grid-column: 1 / -1;
    }
    .footer-brand {
        min-width: 0;
    }
    .footer-brand .brand {
        margin-bottom: 14px;
    }
    .footer-brand .footer-description {
        max-width: 100%;
    }
    .footer-contact a {
        min-width: 0;
        overflow-wrap: anywhere;
    }
    .footer-gear-links {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }
    .footer-main > div:not(.footer-brand) {
        min-width: 0;
        gap: 10px;
    }
    .footer-main h4 {
        margin: 0 0 8px;
    }
    .footer-main > div > a,
    .footer-main .site-address {
        line-height: 1.55;
        overflow-wrap: anywhere;
    }
    .footer-links--support {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: start;
        gap: 12px !important;
        padding-top: 4px;
        border-top: 1px solid #2c2c2c;
    }
    .footer-links--support h4 {
        grid-column: 1 / -1;
        margin: 12px 0 0;
    }
    .footer-links--support a {
        min-width: 0;
        line-height: 1.45;
        overflow-wrap: anywhere;
    }
    .payments {
        padding: 22px 6%;
        gap: 14px;
    }
    .payments > div:first-child {
        gap: 4px;
    }
    .payment-list {
        width: 100%;
        gap: 7px;
    }
    .payment-list span {
        padding: 7px 9px;
    }
    .footer-bottom {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 12px;
        padding: 16px 6%;
        letter-spacing: .06em;
    }
    .footer-bottom span:first-child {
        grid-column: 1 / -1;
        line-height: 1.5;
    }
    .footer-bottom a {
        justify-self: end;
        white-space: nowrap;
    }
    .hero-bottom {
        flex-wrap: wrap;
        gap: 10px;
        bottom: 18px;
    }
    .hero-dots {
        width: 100%;
        justify-content: center;
    }
    .footer-brand .footer-slogan {
        white-space: normal;
    }
    .story-copy h2.story-line {
        font-size: 22px;
        white-space: normal;
    }
}
/* Product configuration and structured information panels. */
.product-short-description {
    max-width: 620px;
    color: #555;
    font-size: 16px;
    line-height: 1.7;
}
.detail-price-row {
    display: flex;
    align-items: baseline;
    gap: 12px;
}
.detail-price-row del {
    color: #888;
    font-size: 16px;
}
.detail-buy {
    flex-wrap: wrap;
    color: #292929;
}
.detail-buy label {
    color: #373737;
}
.detail-buy select {
    min-width: 190px;
    min-height: 46px;
    border: 1px solid #c8c8c8;
    border-radius: 2px;
    padding: 0 12px;
    background: #fff;
    color: #171717;
    font: inherit;
    font-size: 14px;
}
.detail-buy button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.detail-buy button svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}
.detail-buy button:disabled {
    opacity: .55;
    cursor: not-allowed;
}
.detail-assurance p {
    display: flex;
    align-items: center;
    gap: 9px;
}
.product-information {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(260px, .7fr);
    gap: 8%;
    background: #f0efeb;
}
.product-description-panel h2,
.product-specifications h2 {
    margin: 10px 0 20px;
    font-size: clamp(32px, 4vw, 54px);
    letter-spacing: -.07em;
    line-height: .98;
}
.product-description-panel h2 em,
.product-specifications h2 em {
    color: var(--red);
    font-style: normal;
}
.long-description {
    color: #4f4f4f;
    font-size: 15px;
    line-height: 1.9;
}
.product-specifications dl {
    margin: 0;
    border-top: 1px solid #d0cfca;
}
.product-specifications dl > div {
    display: grid;
    grid-template-columns: minmax(100px, .8fr) minmax(120px, 1.2fr);
    gap: 18px;
    border-bottom: 1px solid #d0cfca;
    padding: 13px 0;
}
.product-specifications dt {
    color: #777;
    font-size: 14px;
    font-weight: 700;
}
.product-specifications dd {
    margin: 0;
    color: #202020;
    font-size: 14px;
    font-weight: 800;
    text-align: right;
}
.category-results-count,
.category-introduction {
    color: #676767;
    font-size: 15px;
    line-height: 1.7;
}
.category-introduction {
    max-width: 800px;
    margin: 0 0 28px;
}
.related-products-section {
    padding-top: 20px;
}
.related-products-title {
    margin: 0;
    font-size: clamp(22px, 2.5vw, 32px);
    line-height: 1.15;
    letter-spacing: -.05em;
    white-space: nowrap;
}
.related-products-title em {
    color: var(--red);
    font-style: normal;
}
.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: 42px;
}
.pagination-pages {
    display: flex;
    align-items: center;
    gap: 7px;
}
.pagination a,
.pagination-current {
    display: inline-grid;
    min-width: 42px;
    min-height: 42px;
    place-items: center;
    border: 1px solid #d3d3d3;
    border-radius: 2px;
    color: #222;
    font-size: 14px;
    font-weight: 800;
}
.pagination a:hover,
.pagination-current {
    border-color: var(--red);
    background: var(--red);
    color: #fff;
}
.pagination .pagination-arrow {
    padding: 0 12px;
}
@media (max-width: 760px) {
    .product-detail {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
        padding: 28px 6vw 60px;
    }
    .detail-image img {
        height: clamp(340px, 72vw, 560px);
        max-height: none;
    }
    .detail-copy {
        min-width: 0;
        padding-top: 0;
    }
    .product-information {
        grid-template-columns: 1fr;
        gap: 38px;
    }
    .detail-buy {
        align-items: stretch;
    }
    .detail-buy select {
        flex: 1 1 100%;
    }
}
@media (max-width: 650px) {
    .checkout-fields,
    .payment-choice-grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .checkout-step-heading {
        grid-template-columns: 36px minmax(0, 1fr) auto;
        gap: 9px;
        padding: 15px 12px;
    }
    .checkout-step-panel {
        padding: 15px 12px;
    }
    .checkout-step-title {
        font-size: 14px;
    }
    .checkout-next,
    .checkout-step-actions > button {
        min-height: 48px;
    }
    .checkout-step-actions {
        align-items: stretch;
    }
    .checkout-step-actions .button-outline {
        padding: 0 13px;
    }
    .checkout-summary {
        position: static;
    }
    .product-grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .listing-section .product-grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .related-products-section .product-grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .reviews-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }
    .review-form {
        padding: 18px;
    }
    .pagination {
        flex-wrap: wrap;
        gap: 10px;
        margin-top: 30px;
    }
    .pagination-pages {
        gap: 5px;
    }
    .pagination a,
    .pagination-current {
        min-width: 38px;
        min-height: 38px;
    }
    .product-detail {
        gap: 20px;
        padding: 20px 5vw 48px;
    }
    .detail-image img {
        height: min(112vw, 420px);
    }
    .detail-copy h1 {
        font-size: clamp(32px, 9vw, 42px);
        line-height: 1.05;
    }
    .product-short-description {
        font-size: 15px;
    }
    .detail-buy {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
    .detail-buy button {
        width: 100%;
        min-height: 50px;
    }
    .detail-assurance {
        flex-wrap: wrap;
        gap: 8px 14px;
    }
    .product-information {
        padding: 42px 6vw;
        gap: 30px;
    }
    .product-specifications dl > div {
        grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
        gap: 12px;
    }
    .product-specifications dd {
        overflow-wrap: anywhere;
    }
}

/* Live header search suggestions. */
.header-search {
    position: relative;
}
.search-suggestions {
    position: absolute;
    z-index: 1100;
    top: calc(100% + 10px);
    right: 0;
    display: none;
    width: min(380px, calc(100vw - 32px));
    overflow: hidden;
    border: 1px solid #e5e5e5;
    border-radius: 4px;
    background: #fff;
    box-shadow: 0 14px 35px #0002;
}
.search-suggestions.is-open {
    display: block;
}
.search-suggestion {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    color: #171717;
    text-decoration: none;
}
.search-suggestion + .search-suggestion {
    border-top: 1px solid #eee;
}
.search-suggestion:hover {
    background: #f6f6f6;
}
.search-suggestion img {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    object-fit: cover;
}
.search-suggestion-details {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: 3px;
}
.search-suggestion-details strong,
.search-suggestion > b {
    font-size: 14px;
}
.search-suggestion-details small {
    color: #777;
    font-size: 14px;
}
.search-suggestion > b {
    color: var(--red);
}
.search-suggestion-empty {
    margin: 0;
    padding: 16px;
    color: #555;
    font-size: 14px;
}
