/* Fine Mobiles storefront components */

.fm-main {
    min-height: 52vh;
    background: #fff;
}

.fm-section {
    padding: 72px 0;
}

.fm-section:nth-of-type(even) {
    background: #fbfbfa;
}

.fm-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}

.fm-section-head h2 {
    margin: 0;
    font-size: clamp(28px,3vw,38px);
    font-weight: 760;
    letter-spacing: -.045em;
}

.fm-section-head p {
    max-width: 620px;
    margin: 7px 0 0;
    color: var(--fm-muted);
    font-size: 15px;
}

.fm-section-head--editorial {
    width: min(var(--fm-max),calc(100% - 48px));
    margin: 0 auto 26px;
}

.fm-empty-state {
    padding: 72px 0;
    text-align: center;
}

/* HERO */

.fm-hero {
    position: relative;
    background: #101011;
    overflow: hidden;
}

.fm-hero__viewport {
    position: relative;
    min-height: 610px;
}

.fm-hero__slide {
    position: absolute;
    inset: 0;
    display: grid;
    align-items: stretch;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .4s ease,visibility .4s ease;
    background: linear-gradient(90deg,#101011 0%,#101011 48%,var(--fm-hero-bg,#eee) 48%,var(--fm-hero-bg,#eee) 100%);
}

.fm-hero__slide.is-active {
    position: relative;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.fm-hero__grid {
    min-height: 610px;
    display: grid;
    grid-template-columns: minmax(0,.96fr) minmax(0,1.04fr);
    align-items: stretch;
}

.fm-hero__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 620px;
    padding: 76px 72px 76px 0;
    color: #fff;
}

.fm-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
    color: #ffb6b6;
    font-size: 13px;
    font-weight: 850;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.fm-hero__eyebrow:before {
    content: "";
    width: 30px;
    height: 2px;
    background: var(--fm-red);
}

.fm-hero__content h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(50px,5.2vw,74px);
    font-weight: 760;
    line-height: .98;
    letter-spacing: -.06em;
    max-width: 700px;
}

.fm-hero__content p {
    max-width: 560px;
    margin: 22px 0 0;
    color: #ceced0;
    font-size: 15px;
    line-height: 1.7;
}

.fm-hero__actions {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-top: 30px;
}

.fm-button--hero {
    background: var(--fm-red) !important;
    border-color: var(--fm-red) !important;
}

.fm-button--hero:hover {
    background: #fff !important;
    border-color: #fff !important;
    color: #111 !important;
}

.fm-hero__text-link {
    color: #fff;
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
    border-bottom: 1px solid #777;
    padding-bottom: 3px;
}

.fm-hero__visual {
    position: relative;
    display: grid;
    place-items: center;
    min-width: 0;
    overflow: hidden;
    background: var(--fm-hero-bg,#eee);
}

.fm-hero__visual:after {
    content: "";
    position: absolute;
    inset: 9% 10%;
    border-radius: 50%;
    background: radial-gradient(circle,rgba(255,255,255,.75),rgba(255,255,255,0) 68%);
    pointer-events: none;
}

.fm-hero__visual img {
    position: relative;
    z-index: 2;
    width: min(77%,650px);
    max-height: 535px;
    object-fit: contain;
    filter: drop-shadow(0 30px 30px rgba(0,0,0,.12));
    transition: transform .5s var(--fm-ease);
}

.fm-hero__slide.is-active .fm-hero__visual img {
    transform: translateY(0);
}

.fm-hero__arrow {
    position: absolute;
    top: 50%;
    z-index: 8;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    margin-top: -20px;
    border: 1px solid rgba(255,255,255,.5);
    border-radius: 50%;
    background: rgba(255,255,255,.9);
    color: #111;
    font-size: 22px;
    line-height: 1;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.fm-hero__arrow--prev {
    left: 16px;
}

.fm-hero__arrow--next {
    right: 16px;
}

.fm-hero__dots {
    position: absolute;
    left: 50%;
    bottom: 18px;
    z-index: 8;
    display: flex;
    gap: 6px;
    transform: translateX(-50%);
}

.fm-hero__dots button {
    width: 22px;
    height: 3px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: rgba(255,255,255,.45);
}

.fm-hero__dots button.is-active {
    width: 38px;
    background: var(--fm-red);
}

/* Home intro */

.fm-home-intro {
    border-bottom: 1px solid var(--fm-line);
    background: #fff;
}

.fm-home-intro__inner {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 40px;
    align-items: center;
    min-height: 78px;
}

.fm-home-intro__inner>div {
    display: grid;
    gap: 2px;
}

.fm-home-intro__inner span {
    color: var(--fm-red);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.fm-home-intro__inner strong {
    font-size: 14px;
}

.fm-home-intro .search-form,
.fm-home-search,
.fm-inline-product-search {
    display: flex;
    align-items: center;
    border: 1px solid var(--fm-line);
    border-radius: 999px;
    overflow: hidden;
    background: #fafafa;
}

.fm-home-intro .search-form input,
.fm-home-search input[type="search"],
.fm-inline-product-search input[type="search"] {
    flex: 1;
    min-width: 0;
    height: 38px;
    padding: 0 14px;
    border: 0;
    background: transparent;
    outline: 0;
    font-size: 13px;
}

.fm-home-intro .search-form button,
.fm-home-search button,
.fm-inline-product-search button {
    width: 40px;
    height: 38px;
    border: 0;
    background: transparent;
}

/* Brand finder */

.fm-brand-finder {
    padding: 58px 0 62px;
    background: #fff;
    border-bottom: 1px solid #f0f0f0;
}

.fm-brand-finder__heading {
    max-width: 720px;
    margin: 0 auto 27px;
    text-align: center;
}

.fm-brand-finder__heading small {
    color: var(--fm-red);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.fm-brand-finder__heading :is(h1,
h2) {
    margin: 7px 0 8px;
    font-size: clamp(28px,3vw,38px);
    letter-spacing: -.045em;
}

.fm-brand-finder__heading p {
    margin: 0;
    color: var(--fm-muted);
    font-size: 14px;
}

.fm-brand-grid {
    display: grid;
    grid-template-columns: repeat(12,minmax(0,1fr));
    gap: 7px;
}

.fm-brand-card {
    appearance: none;
    min-width: 0;
    min-height: 106px;
    padding: 12px 5px;
    border: 1px solid var(--fm-line);
    border-radius: 7px;
    background: #fff;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 8px;
    transition: border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}

.fm-brand-card:hover,
.fm-brand-card.is-active {
    border-color: #bbb;
    box-shadow: 0 8px 22px rgba(0,0,0,.055);
    transform: translateY(-2px);
}

.fm-brand-card__device {
    position: relative;
    display: block;
    width: 28px;
    height: 51px;
    border: 1.7px solid #2a2a2a;
    border-radius: 6px;
    background: linear-gradient(145deg,#fff,#efefef);
}

.fm-brand-card__camera {
    position: absolute;
    left: 4px;
    top: 4px;
    width: 8px;
    height: 8px;
    border: 1px solid #333;
    border-radius: 3px;
    background: #fff;
}

.fm-brand-card strong {
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.fm-model-panel {
    max-width: 900px;
    margin: 24px auto 0;
    padding: 18px;
    border: 1px solid var(--fm-line);
    border-radius: 8px;
    background: #fafafa;
}

.fm-model-panel[hidden] {
    display: none;
}

.fm-model-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.fm-model-panel__head h3 {
    margin: 0;
    font-size: 19px;
}

.fm-model-search {
    width: 100%;
    height: 44px;
    padding: 0 13px;
    border: 1px solid var(--fm-line-strong);
    border-radius: 6px;
    background: #fff;
}

.fm-model-results {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 7px;
    margin-top: 12px;
}

.fm-model-results a {
    padding: 10px 11px;
    border: 1px solid var(--fm-line);
    border-radius: 5px;
    background: #fff;
    font-size: 13px;
    text-decoration: none;
}

.fm-model-results a:hover {
    border-color: var(--fm-red);
    color: var(--fm-red);
}

/* Collections */

.fm-collections-section {
    padding-top: 68px;
}

.fm-collection-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 14px;
}

.fm-collection-card {
    display: block;
    min-width: 0;
    text-decoration: none;
}

.fm-collection-card__media {
    position: relative;
    aspect-ratio: 1.08/1;
    overflow: hidden;
    border-radius: 8px;
    background: #f0f0f0;
}

.fm-collection-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .32s var(--fm-ease);
}

.fm-collection-card:hover .fm-collection-card__media img {
    transform: scale(1.035);
}

.fm-collection-card h3 {
    margin: 10px 0 2px;
    font-size: 16px;
    letter-spacing: -.025em;
}

.fm-collection-card>span {
    color: var(--fm-muted);
    font-size: 13px;
}

/* Editorial campaigns */

.fm-campaign-section {
    width: min(var(--fm-max),calc(100% - 48px));
    margin: 0 auto;
    padding: 72px 0;
}

.fm-campaign-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    grid-template-rows: repeat(2,230px);
    gap: 12px;
}

.fm-campaign-card {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 8px;
    background: #d8d8d8;
    color: #fff;
    text-decoration: none;
}

.fm-campaign-card--large {
    grid-row: 1/3;
}

.fm-campaign-card__media {
    position: absolute;
    inset: 0;
}

.fm-campaign-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .42s var(--fm-ease);
}

.fm-campaign-card:hover .fm-campaign-card__media img {
    transform: scale(1.035);
}

.fm-campaign-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,rgba(0,0,0,.03) 22%,rgba(0,0,0,.68) 100%);
}

.fm-campaign-card__content {
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 20px;
    z-index: 2;
    display: grid;
    gap: 4px;
}

.fm-campaign-card__content small {
    font-size: 12px;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: #ddd;
}

.fm-campaign-card__content strong {
    font-size: 23px;
    line-height: 1.05;
    letter-spacing: -.035em;
}

.fm-campaign-card__content em {
    margin-top: 4px;
    font-size: 13px;
    font-style: normal;
    font-weight: 750;
    text-transform: uppercase;
}

/* Retail product card */

ul.products,
.fm-products-grid {
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 30px 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.woocommerce ul.products li.product,
.fm-products-grid li.product {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

.fm-retail-card {
    min-width: 0;
}

.fm-retail-card__inner {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.fm-retail-card__media {
    position: relative;
    aspect-ratio: 1/1.08;
    overflow: hidden;
    border-radius: 7px;
    background: #f3f3f3;
}

.fm-retail-card__image-link {
    display: block;
    width: 100%;
    height: 100%;
}

.fm-retail-card__image {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
    transition: opacity .28s ease,transform .35s var(--fm-ease) !important;
}

.fm-retail-card__image--secondary {
    opacity: 0;
}

.fm-retail-card:hover .fm-retail-card__image--primary {
    transform: scale(1.025);
}

.fm-retail-card:hover .fm-retail-card__image--secondary {
    opacity: 1;
    transform: scale(1.025);
}

.fm-retail-card__badges {
    position: absolute;
    top: 10px;
    left: 10px;
    right: 10px;
    z-index: 3;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    pointer-events: none;
}

.fm-retail-card__sale,
.fm-retail-card__stock {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    color: #fff;
    font-size: 12px;
    font-weight: 850;
    text-transform: uppercase;
}

.fm-retail-card__sale {
    background: var(--fm-red);
}

.fm-retail-card__stock {
    margin-left: auto;
    background: #444;
}

.fm-retail-card__view {
    position: absolute;
    right: 10px;
    bottom: 10px;
    z-index: 3;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #fff;
    color: #111;
    text-decoration: none;
    box-shadow: var(--fm-shadow-sm);
    opacity: 0;
    transform: translateY(5px);
    transition: .2s;
}

.fm-retail-card:hover .fm-retail-card__view {
    opacity: 1;
    transform: none;
}

.fm-retail-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 12px 1px 0;
}

.fm-retail-card__title {
    min-height: 40px;
    margin: 0 0 6px;
    font-size: 16px;
    line-height: 1.35;
    letter-spacing: -.015em;
}

.fm-retail-card__title a {
    text-decoration: none;
}

.fm-retail-card__rating {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 18px;
    color: #858585;
    font-size: 13px;
}

.fm-retail-card__stars .star-rating {
    float: none !important;
    width: 5.4em !important;
    margin: 0 !important;
    color: #f4a300 !important;
    font-size: 13px !important;
}

.fm-retail-card__review-count,
.fm-retail-card__review-empty {
    color: #858585;
    font-size: 12px;
}

.fm-retail-card__price {
    min-height: 24px;
    margin-top: 4px;
    color: var(--fm-red);
    font-size: 16px;
    font-weight: 800;
}

.fm-retail-card__price del {
    color: #8c8c8c;
    font-size: 13px;
    font-weight: 500;
    opacity: 1;
}

.fm-retail-card__price ins {
    text-decoration: none;
}

.fm-retail-card__options {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    min-height: 24px;
    margin-top: 6px;
}

.fm-retail-card__options.is-placeholder {
    visibility: hidden;
    pointer-events: none;
}

.fm-retail-card__option {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 0 6px;
    border: 1px solid #e1e1e1;
    border-radius: 999px;
    color: #696969;
    font-size: 11px;
    white-space: nowrap;
}

.fm-retail-card__actions {
    margin-top: auto;
    padding-top: 9px;
}

.fm-retail-card__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 36px;
    padding: 0 11px;
    border: 1px solid #dadada;
    border-radius: 5px;
    background: #fff;
    color: #171717;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    transition: .18s;
}

.fm-retail-card__cta:hover {
    border-color: #111;
    background: #111;
    color: #fff;
}

.fm-retail-card__cta.is-secondary {
    justify-content: center;
}

.fm-quick-add.fm-retail-card__cta {
    justify-content: center;
}

.fm-product-row-layout--rail .fm-products-grid {
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    overflow: visible !important;
}

.fm-product-section {
    padding: 66px 0;
}

.fm-product-section:nth-of-type(even) {
    background: #fbfbfa;
}

/* Feature products */

.fm-feature-product {
    padding: 70px 0;
    background: #faf9f7;
}

.fm-feature-product__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    min-height: 470px;
    background: #fff;
}

.fm-feature-product__visual {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 470px;
    overflow: hidden;
    background: #f2f2f0;
}

.fm-feature-product__visual img {
    width: 75%;
    max-height: 400px;
    object-fit: contain;
    filter: drop-shadow(0 18px 26px rgba(0,0,0,.08));
}

.fm-feature-product__content {
    max-width: 550px;
    padding: 60px;
}

.fm-feature-product__content h2 {
    font-size: clamp(32px,4vw,52px);
}

.fm-feature-product__content p {
    color: var(--fm-muted);
    font-size: 16px;
    line-height: 1.7;
}

.fm-feature-price {
    margin: 18px 0;
    color: var(--fm-red);
    font-size: 18px;
    font-weight: 850;
}

.fm-feature-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.fm-feature-actions .fm-text-link {
    color: var(--fm-red);
}

/* Reviews */

.fm-customer-love {
    width: min(var(--fm-max),calc(100% - 48px));
    margin: 0 auto;
    padding: 72px 0;
}

.fm-customer-love__head {
    max-width: 760px;
    margin: 0 auto 30px;
    text-align: center;
}

.fm-customer-love__head .fm-eyebrow {
    justify-content: center;
}

.fm-customer-love__head h2 {
    margin-top: 10px;
    font-size: clamp(30px,3.5vw,44px);
}

.fm-customer-love__head p {
    color: var(--fm-muted);
    font-size: 14px;
}

.fm-review-grid,
.fm-review-rail {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 14px;
}

.fm-review-card {
    overflow: hidden;
    border: 1px solid var(--fm-line);
    border-radius: 8px;
    background: #fff;
}

.fm-review-card__visual {
    display: block;
    aspect-ratio: 1.1/1;
    overflow: hidden;
    background: #f5f5f4;
}

.fm-review-card__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fm-review-card__body,
.fm-product-reviews-showcase .fm-review-card {
    padding: 18px;
}

.fm-review-stars,
.fm-review-card__rating {
    color: #f4a300;
    font-size: 15px;
}

.fm-review-card__body p,
.fm-review-card blockquote {
    margin: 10px 0 14px;
    color: #444;
    font-size: 14px;
    line-height: 1.65;
}

.fm-review-card__author,
.fm-review-card footer {
    display: grid;
    gap: 2px;
}

.fm-review-card__author strong,
.fm-review-card footer strong {
    font-size: 13px;
}

.fm-review-card__author small,
.fm-review-card footer span {
    color: #888;
    font-size: 12px;
}

/* Archive */

.fm-catalog-archive {
    padding: 0 0 84px;
}

.fm-catalog-archive__header {
    display: grid;
    place-items: center;
    min-height: 250px;
    padding: 58px 0 42px;
    text-align: center;
    border-bottom: 1px solid var(--fm-line);
}

.fm-catalog-archive__eyebrow,
.fm-catalog-archive__heading>span {
    color: var(--fm-red);
    font-size: 13px;
    font-weight: 850;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.fm-catalog-archive__header h1 {
    margin: 9px 0 8px;
    font-size: clamp(38px,4.6vw,58px);
}

.fm-catalog-archive__description {
    max-width: 720px;
    color: var(--fm-muted);
    font-size: 15px;
}

.fm-catalog-archive__description p {
    margin: 0;
}

.fm-archive-tools {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    align-items: center;
    padding: 18px 0;
    border-bottom: 1px solid var(--fm-line);
}

.fm-archive-tools__filters,
.fm-archive-tools__utility {
    display: flex;
    align-items: center;
    gap: 7px;
}

.fm-filter-chip {
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid var(--fm-line-strong);
    border-radius: 5px;
    background: #fff;
    color: #222;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.fm-filter-chip.is-active {
    border-color: #111;
    background: #111;
    color: #fff;
}

.fm-filter-chip span {
    margin-left: 5px;
    color: inherit;
    font-size: 11px;
}

.fm-collection-search {
    position: relative;
    width: 260px;
}

.fm-collection-search input {
    width: 100%;
    height: 36px;
    padding: 0 40px 0 12px;
    border: 1px solid var(--fm-line-strong);
    border-radius: 5px;
    background: #fff;
    font-size: 13px;
    outline: 0;
}

.fm-collection-search button {
    position: absolute;
    right: 2px;
    top: 2px;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 0;
    background: transparent;
    color: #111;
}

.fm-archive-tools select {
    height: 36px;
    padding: 0 32px 0 10px;
    border: 1px solid var(--fm-line-strong);
    border-radius: 5px;
    background: #fff;
    font-size: 13px;
}

.fm-filter-panel {
    display: none;
    padding: 15px;
    border-bottom: 1px solid var(--fm-line);
    background: #fafafa;
}

.fm-filter-panel.is-open {
    display: block;
}

.fm-filter-form {
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    gap: 10px;
    align-items: end;
}

.fm-filter-form label {
    display: grid;
    gap: 5px;
    color: #555;
    font-size: 12px;
    font-weight: 700;
}

.fm-filter-form :is(input,
select) {
    height: 38px;
    padding: 0 10px;
    border: 1px solid var(--fm-line-strong);
    border-radius: 5px;
    background: #fff;
    font-size: 13px;
}

.fm-catalog-results {
    padding-top: 34px;
}

.fm-catalog-results ul.products {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap: 42px 24px !important;
}

.fm-catalog-results .fm-retail-card__media {
    aspect-ratio: 1/1.03;
}

.fm-catalog-results .fm-retail-card__title {
    font-size: 14px;
}

.fm-load-more-wrap {
    text-align: center;
    padding: 48px 0 0;
}

.fm-load-count {
    display: block;
    margin-bottom: 12px;
    color: #888;
    font-size: 12px;
}

.fm-load-more {
    min-height: 42px !important;
    padding: 0 22px !important;
}

/* Single product */

.single-product .fm-main>.fm-container {
    width: min(1300px,calc(100% - 48px));
}

.single-product .fm-product-page {
    padding: 48px 0 0;
}

.fm-product-main {
    display: grid;
    grid-template-columns: minmax(0,1.08fr) minmax(420px,.92fr);
    gap: 52px;
    align-items: start;
}

.fm-product-gallery-column {
    min-width: 0;
}

.single-product div.product .woocommerce-product-gallery {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    position: sticky !important;
    top: 128px;
}

.single-product .woocommerce-product-gallery__wrapper {
    margin: 0 !important;
}

.single-product .woocommerce-product-gallery__image {
    overflow: hidden;
    border-radius: 8px;
    background: #f3f3f2;
}

.single-product .woocommerce-product-gallery__image img {
    width: 100%;
    height: auto;
    max-height: 690px;
    object-fit: contain;
    padding: 20px;
    background: #f3f3f2;
}

.single-product .flex-control-thumbs {
    display: grid !important;
    grid-template-columns: repeat(5,1fr);
    gap: 8px;
    margin: 10px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.single-product .flex-control-thumbs li {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

.single-product .flex-control-thumbs img {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    border: 1px solid transparent;
    border-radius: 5px;
    background: #f3f3f3;
}

.single-product .flex-control-thumbs img.flex-active {
    border-color: #111;
}

.single-product .woocommerce-product-gallery__trigger {
    top: 12px !important;
    right: 12px !important;
    left: auto !important;
    display: grid !important;
    place-items: center !important;
    width: 38px !important;
    height: 38px !important;
    border: 1px solid #ddd !important;
    border-radius: 50% !important;
    background: #fff !important;
    box-shadow: var(--fm-shadow-sm) !important;
    text-indent: -9999px !important;
}

.single-product .woocommerce-product-gallery__trigger:before {
    content: "+" !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    border: 0 !important;
    color: #111 !important;
    font-size: 22px !important;
    text-indent: 0 !important;
    transform: none !important;
}

.single-product .woocommerce-product-gallery__trigger:after {
    display: none !important;
}

.fm-product-buybox {
    padding: 28px;
    border: 1px solid var(--fm-line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 18px 50px rgba(0,0,0,.05);
}

.fm-product-delivery-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 14px;
    padding: 6px 9px;
    border-radius: 999px;
    background: var(--fm-red-soft);
    color: var(--fm-red);
    font-size: 12px;
    font-weight: 750;
}

.single-product .product_title {
    margin: 0 0 8px !important;
    font-size: clamp(36px,4vw,54px) !important;
    line-height: 1.01 !important;
}

.fm-product-rating-summary {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    color: #777;
    font-size: 13px;
}

.fm-product-rating-summary .star-rating {
    float: none;
    margin: 0;
    color: #f4a300;
    font-size: 13px;
}

.fm-product-price-block {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 18px;
}

.fm-product-price-block .price,
.single-product .summary .price {
    margin: 0 !important;
    color: var(--fm-red) !important;
    font-size: 23px !important;
    font-weight: 850 !important;
}

.fm-product-price-block .price del,
.single-product .summary .price del {
    color: #999 !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    opacity: 1 !important;
}

.fm-discount-pill {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    background: var(--fm-red);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
}

.single-product .summary .woocommerce-product-details__short-description {
    margin: 0 0 15px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--fm-line);
    color: #656565;
    font-size: 14px;
    line-height: 1.7;
}

.single-product .stock {
    margin: 0 0 16px !important;
    color: var(--fm-success) !important;
    font-size: 13px !important;
    font-weight: 700;
}

.single-product form.cart {
    display: grid !important;
    grid-template-columns: 126px 1fr;
    gap: 10px !important;
    margin: 0 !important;
    padding-top: 15px;
    border-top: 1px solid var(--fm-line);
}

.fm-product-options {
    grid-column: 1/-1;
    display: grid;
    gap: 14px;
    margin-bottom: 2px;
}

.fm-option-group {
    display: grid;
    gap: 7px;
}

.fm-option-group>label,
.fm-option-group__label {
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fm-brand-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.fm-brand-pills button {
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid var(--fm-line-strong);
    border-radius: 5px;
    background: #fff;
    font-size: 12px;
    font-weight: 700;
}

.fm-brand-pills button:hover,
.fm-brand-pills button.is-active {
    border-color: var(--fm-red);
    background: var(--fm-red);
    color: #fff;
}

.fm-product-options select,
.single-product .variations select {
    width: 100%;
    height: 42px;
    padding: 0 12px;
    border: 1px solid var(--fm-line-strong);
    border-radius: 5px;
    background: #fff;
    font-size: 13px;
}

.single-product table.variations {
    grid-column: 1/-1;
    width: 100% !important;
    margin: 0 !important;
}

.single-product table.variations tr {
    display: grid;
    gap: 6px;
    margin-bottom: 10px;
}

.single-product table.variations th,
.single-product table.variations td {
    display: block !important;
    padding: 0 !important;
}

.single-product table.variations label {
    font-size: 12px;
    text-transform: uppercase;
}

.single-product .quantity {
    display: grid !important;
    grid-template-columns: 36px 50px 36px;
    align-items: center;
    width: max-content;
    border: 1px solid var(--fm-line-strong);
    border-radius: 5px;
    overflow: hidden;
}

.single-product .quantity .qty {
    width: 50px !important;
    height: 44px !important;
    border: 0 !important;
    border-inline: 1px solid var(--fm-line) !important;
    text-align: center !important;
    appearance: textfield;
    -moz-appearance: textfield;
}

.fm-qty-btn {
    display: grid;
    place-items: center;
    width: 36px;
    height: 44px;
    border: 0;
    background: #fff;
    font-size: 16px;
}

.single-product .single_add_to_cart_button {
    width: 100% !important;
    min-height: 46px !important;
    border-radius: 5px !important;
    background: #111 !important;
    border-color: #111 !important;
}

.single-product .single_add_to_cart_button:hover {
    background: var(--fm-red) !important;
    border-color: var(--fm-red) !important;
}

.fm-buy-now {
    grid-column: 1/-1;
    width: 100%;
    min-height: 44px;
    border: 1px solid #111;
    border-radius: 5px;
    background: #fff;
    color: #111;
    font-size: 13px;
    font-weight: 850;
    text-transform: uppercase;
}

.fm-buy-now:hover {
    background: #111;
    color: #fff;
}

.fm-purchase-reassurance {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 8px;
    padding: 11px 0 2px;
    color: #777;
    font-size: 11px;
    text-align: center;
}

.fm-delivery-timeline {
    margin-top: 18px;
    padding-top: 17px;
    border-top: 1px solid var(--fm-line);
}

.fm-delivery-timeline h3 {
    font-size: 14px;
    margin-bottom: 12px;
}

.fm-delivery-steps {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    position: relative;
}

.fm-delivery-steps:before {
    content: "";
    position: absolute;
    left: 16%;
    right: 16%;
    top: 12px;
    height: 1px;
    background: #d9d9d9;
}

.fm-delivery-steps>div {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
    gap: 4px;
    text-align: center;
}

.fm-delivery-steps>div>span {
    display: grid;
    place-items: center;
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background: var(--fm-red);
    color: #fff;
    font-size: 12px;
}

.fm-delivery-steps strong {
    font-size: 11px;
    text-transform: uppercase;
}

.fm-delivery-steps small {
    color: #888;
    font-size: 11px;
}

.fm-product-meta-compact {
    margin-top: 14px;
    border-top: 1px solid var(--fm-line);
}

.fm-product-meta-compact summary {
    padding: 13px 0;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    cursor: pointer;
}

.fm-product-meta-compact__body p {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin: 0;
    padding: 7px 0;
    color: #777;
    font-size: 12px;
}

.fm-product-after-main {
    margin-top: 62px;
}

.fm-product-details-section {
    padding-top: 42px;
    border-top: 1px solid var(--fm-line);
}

.single-product .woocommerce-tabs {
    margin: 0 !important;
}

.single-product .woocommerce-tabs ul.tabs {
    display: flex !important;
    gap: 30px;
    margin: 0 0 30px !important;
    padding: 0 !important;
    border-bottom: 1px solid var(--fm-line) !important;
    list-style: none !important;
}

.single-product .woocommerce-tabs ul.tabs:before,
.single-product .woocommerce-tabs ul.tabs li:before,
.single-product .woocommerce-tabs ul.tabs li:after {
    display: none !important;
}

.single-product .woocommerce-tabs ul.tabs li {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.single-product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 0 0 12px !important;
    color: #888 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
}

.single-product .woocommerce-tabs ul.tabs li.active a {
    color: #111 !important;
    border-bottom: 2px solid var(--fm-red) !important;
}

.single-product .woocommerce-tabs .panel {
    max-width: 900px;
    margin: 0 !important;
    padding: 0 !important;
    color: #444;
    font-size: 15px;
    line-height: 1.75;
}

.single-product .woocommerce-tabs .panel h2 {
    font-size: 25px;
}

.single-product .woocommerce-tabs .panel ul {
    padding-left: 18px;
}

.fm-compatibility-list {
    display: grid;
    gap: 8px;
    margin: 18px 0;
}

.fm-compatibility-list>strong {
    font-size: 13px;
}

.fm-compatibility-list>div {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.fm-compatibility-list span {
    padding: 6px 9px;
    border: 1px solid var(--fm-line);
    border-radius: 999px;
    background: #fafafa;
    font-size: 12px;
}

.fm-mobile-product-tab {
    display: none;
}

.fm-product-reviews-showcase {
    padding: 70px 0 20px;
}

.fm-section-head--reviews {
    margin-bottom: 22px;
}

.fm-people-also-bought {
    padding: 62px 0 78px;
}

.fm-people-also-bought .related.products>h2 {
    margin-bottom: 24px;
    font-size: 30px;
}

.fm-people-also-bought .related.products ul.products {
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
}

/* Mini cart */

.fm-cart-drawer-count {
    padding: 10px 20px 0;
    color: #777;
    font-size: 13px;
}

.fm-drawer--right[data-fm-drawer="cart"] .fm-shipping-progress {
    margin: 10px 20px 8px;
}

.fm-mini-cart-items {
    padding: 2px 20px 4px;
}

.fm-mini-cart-item {
    display: grid;
    grid-template-columns: 78px 1fr;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid var(--fm-line);
}

.fm-mini-cart-item__media img {
    width: 78px;
    height: 88px;
    object-fit: cover;
    border-radius: 5px;
    background: #f3f3f3;
}

.fm-mini-cart-item__body {
    min-width: 0;
}

.fm-mini-cart-item__top {
    display: flex;
    justify-content: space-between;
    gap: 10px;
}

.fm-mini-cart-item__name {
    display: block;
    font-size: 14px;
    font-weight: 750;
    text-decoration: none;
}

.fm-mini-cart-item__meta {
    margin-top: 5px;
    color: #777;
    font-size: 12px;
    line-height: 1.45;
}

.fm-mini-cart-item__meta dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 4px;
    margin: 0;
}

.fm-mini-cart-item__meta dt,
.fm-mini-cart-item__meta dd {
    margin: 0;
}

.fm-mini-cart-item__remove {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    color: #777;
    text-decoration: none;
}

.fm-mini-cart-item__remove:hover {
    background: #f2f2f2;
    color: var(--fm-red);
}

.fm-mini-cart-item__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 10px;
}

.fm-mini-qty {
    display: grid;
    grid-template-columns: 30px 30px 30px;
    border: 1px solid var(--fm-line-strong);
    border-radius: 5px;
    overflow: hidden;
}

.fm-mini-qty button {
    height: 30px;
    border: 0;
    background: #fff;
    font-size: 16px;
}

.fm-mini-qty>span {
    display: grid;
    place-items: center;
    border-inline: 1px solid var(--fm-line);
    font-size: 13px;
}

.fm-mini-cart-item__bottom>strong {
    font-size: 13px;
}

.fm-mini-cart-summary {
    padding: 14px 20px;
    border-top: 1px solid var(--fm-line);
    background: #fafafa;
}

.fm-mini-cart-summary>div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 15px;
}

.fm-mini-cart-summary small {
    display: block;
    margin-top: 4px;
    color: #888;
    font-size: 12px;
}

.fm-mini-cart-buttons {
    position: sticky;
    bottom: 0;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 8px;
    padding: 14px 20px 18px;
    background: #fff;
    border-top: 1px solid var(--fm-line);
}

/* The cart drawer lives outside WooCommerce's .woocommerce content wrapper,
   so its actions must be fully styled here instead of inheriting the scoped
   .woocommerce a.button foundation rules. */
.fm-mini-cart-buttons .button,
.fm-mini-cart-empty .button {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px !important;
    padding: 0 14px !important;
    border: 1px solid var(--fm-ink) !important;
    border-radius: 6px !important;
    box-shadow: none !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.2;
    letter-spacing: .035em;
    text-align: center;
    text-decoration: none !important;
    text-transform: uppercase;
}

.fm-mini-cart-view-cart {
    background: #fff !important;
    border-color: var(--fm-line-strong) !important;
    color: #111 !important;
}

.fm-mini-cart-view-cart:hover {
    background: #f6f6f6 !important;
    border-color: #111 !important;
    color: #111 !important;
}

.fm-mini-cart-checkout,
.fm-mini-cart-empty .button {
    background: var(--fm-red) !important;
    border-color: var(--fm-red) !important;
    color: #fff !important;
}

.fm-mini-cart-checkout:hover,
.fm-mini-cart-empty .button:hover {
    background: #741216 !important;
    border-color: #741216 !important;
    color: #fff !important;
}

.fm-mini-cart-empty {
    display: grid;
    place-items: center;
    padding: 60px 24px;
    text-align: center;
}

.fm-mini-cart-empty__icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: #f3f3f3;
}

.fm-mini-cart-empty h3 {
    margin: 14px 0 6px;
    font-size: 20px;
}

.fm-mini-cart-empty p {
    max-width: 270px;
    color: #777;
    font-size: 13px;
}

.fm-cart-recommendation {
    margin: 0 20px;
    padding: 15px 0;
    border-top: 1px solid var(--fm-line);
}

.fm-cart-recommendation__head {
    display: flex;
    justify-content: space-between;
    margin-bottom: 9px;
    font-size: 13px;
}

.fm-cart-recommendation__head a {
    color: var(--fm-red);
    font-size: 12px;
    text-decoration: none;
}

.fm-cart-recommendation__item {
    display: grid;
    grid-template-columns: 56px 1fr 16px;
    gap: 9px;
    align-items: center;
    text-decoration: none;
}

.fm-cart-recommendation__item img {
    width: 56px;
    height: 64px;
    object-fit: cover;
    border-radius: 5px;
    background: #f4f4f4;
}

.fm-cart-recommendation__item strong {
    display: block;
    font-size: 13px;
}

.fm-cart-recommendation__item small {
    display: block;
    color: var(--fm-red);
    font-size: 12px;
    margin-top: 2px;
}

.fm-cart-recommendation__item small del {
    color: #8c8c8c;
    opacity: 1;
}

.fm-cart-recommendation__item small ins {
    color: var(--fm-red);
    font-weight: 700;
    text-decoration: none;
}

/* Shipping progress */

.fm-shipping-progress {
    padding: 12px 14px;
    border: 1px solid var(--fm-line);
    border-radius: 7px;
    background: #fafafa;
}

.fm-shipping-progress__text {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: #555;
    font-size: 13px;
}

.fm-shipping-progress__bar {
    height: 4px;
    margin-top: 8px;
    border-radius: 999px;
    background: #e3e3e3;
    overflow: hidden;
}

.fm-shipping-progress__bar span {
    display: block;
    height: 100%;
    background: var(--fm-red);
}

/* Cart page */

body.woocommerce-cart {
    background: #fff;
}

.woocommerce-cart .fm-main>.fm-container {
    width: min(1260px,calc(100% - 48px));
}

.fm-cart-shell {
    padding: 52px 0 82px;
}

.fm-cart-hero {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}

.fm-cart-hero h1 {
    margin: 6px 0 7px;
    font-size: clamp(40px,4vw,56px);
}

.fm-cart-hero p {
    color: var(--fm-muted);
    font-size: 14px;
}

.fm-cart-continue {
    color: var(--fm-red);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    text-decoration: none;
}

.fm-cart-shell>.fm-shipping-progress {
    margin-bottom: 22px;
}

.fm-cart-layout {
    display: grid;
    grid-template-columns: minmax(0,1.55fr) minmax(330px,.7fr);
    gap: 28px;
    align-items: start;
}

.fm-cart-items-panel {
    border: 1px solid var(--fm-line);
    border-radius: 9px;
    background: #fff;
    overflow: hidden;
}

.fm-cart-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 17px 18px;
    border-bottom: 1px solid var(--fm-line);
}

.fm-cart-panel-head h2 {
    margin: 0;
    font-size: 18px;
}

.fm-cart-panel-head span {
    color: #777;
    font-size: 13px;
}

.fm-cart-items {
    display: grid;
}

.fm-cart-item {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: 16px;
    padding: 18px;
    border-bottom: 1px solid var(--fm-line);
}

.fm-cart-item__media img {
    width: 96px;
    height: 108px;
    object-fit: cover;
    border-radius: 6px;
    background: #f3f3f3;
}

.fm-cart-item__content {
    display: grid;
    gap: 16px;
    min-width: 0;
}

.fm-cart-item__title-row {
    display: flex;
    justify-content: space-between;
    gap: 18px;
}

.fm-cart-item__title-row h3 {
    margin: 0;
    font-size: 14px;
}

.fm-cart-item__title-row h3 a {
    text-decoration: none;
}

.fm-cart-item__meta {
    margin-top: 5px;
    color: #777;
    font-size: 12px;
    line-height: 1.45;
}

.fm-cart-item__meta dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 5px;
    margin: 0;
}

.fm-cart-item__meta dt,
.fm-cart-item__meta dd {
    margin: 0;
}

.fm-cart-item__remove {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    color: #777;
    text-decoration: none;
}

.fm-cart-item__remove:hover {
    background: #f2f2f2;
    color: var(--fm-red);
}

.fm-cart-item__bottom {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 20px;
    align-items: end;
}

.fm-cart-item__price,
.fm-cart-item__quantity,
.fm-cart-item__subtotal {
    display: grid;
    gap: 5px;
}

.fm-cart-item__subtotal {
    text-align: right;
}

.fm-cart-item__bottom span {
    color: #888;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.fm-cart-item__bottom strong {
    font-size: 14px;
}

.fm-cart-item__quantity .quantity {
    display: grid !important;
    grid-template-columns: 34px 42px 34px;
    border: 1px solid var(--fm-line-strong);
    border-radius: 5px;
    overflow: hidden;
}

.fm-cart-item__quantity .qty {
    width: 42px !important;
    height: 36px !important;
    border: 0 !important;
    border-inline: 1px solid var(--fm-line) !important;
    text-align: center !important;
}

.fm-cart-item__quantity .fm-qty-btn {
    width: 34px;
    height: 36px;
}

.fm-cart-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    background: #fafafa;
}

.fm-cart-coupon {
    display: grid;
    grid-template-columns: 160px auto;
    gap: 7px;
}

.fm-cart-coupon .input-text {
    width: 100% !important;
    height: 40px !important;
    padding: 0 10px !important;
    border: 1px solid var(--fm-line-strong) !important;
    border-radius: 5px !important;
    background: #fff !important;
    font-size: 13px !important;
}

.fm-cart-coupon .button,
.fm-cart-update {
    min-height: 40px !important;
    padding: 0 15px !important;
    border-radius: 5px !important;
    font-size: 12px !important;
}

.fm-cart-update {
    background: #777 !important;
    border-color: #777 !important;
}

.fm-cart-summary-panel {
    position: sticky;
    top: 126px;
}

.fm-cart-summary-panel .cart_totals {
    padding: 24px;
    border: 1px solid var(--fm-line);
    border-radius: 9px;
    background: #fff;
    box-shadow: var(--fm-shadow-sm);
}

.fm-cart-summary__header {
    margin-bottom: 18px;
}

.fm-cart-summary__header h2 {
    margin: 6px 0 0;
    font-size: 24px;
}

.fm-cart-summary__rows {
    display: grid;
}

.fm-summary-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 12px 0;
    border-bottom: 1px solid var(--fm-line);
    font-size: 13px;
}

.fm-summary-row>span {
    color: #555;
}

.fm-summary-row>strong {
    font-weight: 750;
    text-align: right;
}

.fm-summary-row--total {
    padding-top: 16px;
    border-bottom: 0;
    font-size: 17px;
}

.fm-summary-row--total strong {
    color: var(--fm-red);
    font-size: 20px;
}

.fm-summary-shipping {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--fm-line);
    font-size: 13px;
}

.fm-summary-shipping__label {
    color: #555;
}

.fm-summary-shipping ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.fm-summary-shipping li {
    margin: 0 0 5px;
}

.fm-summary-shipping label {
    font-size: 13px;
}

.fm-summary-shipping .woocommerce-shipping-destination {
    margin: 7px 0 0;
    color: #777;
    font-size: 12px;
}

.fm-summary-shipping .shipping-calculator-button {
    color: var(--fm-red);
    font-size: 12px;
}

.fm-cart-summary__trust {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin: 14px 0 0;
    padding-top: 13px;
    border-top: 1px solid var(--fm-line);
    color: #777;
    font-size: 12px;
}

.fm-cart-summary__trust span {
    display: flex;
    align-items: center;
    gap: 5px;
}

.fm-cart-summary-panel .wc-proceed-to-checkout {
    padding: 16px 0 0 !important;
}

.fm-cart-summary-panel .checkout-button {
    width: 100%;
    min-height: 50px !important;
    margin: 0 !important;
    background: var(--fm-red) !important;
    border-color: var(--fm-red) !important;
    font-size: 13px !important;
}

.fm-cart-summary__continue {
    display: block;
    margin-top: 12px;
    text-align: center;
    color: #777;
    font-size: 12px;
    text-transform: uppercase;
    text-decoration: none;
}

.woocommerce-cart .cart-collaterals {
    width: 100% !important;
}

/* Checkout */

body.woocommerce-checkout {
    background: #fff;
}

.fm-checkout-header {
    height: 72px;
    border-bottom: 1px solid var(--fm-line);
    background: #fff;
}

.fm-checkout-shell {
    width: min(1180px,calc(100% - 44px));
    margin-inline: auto;
}

.fm-checkout-header__inner {
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.fm-checkout-brand .custom-logo {
    max-width: 125px;
    max-height: 44px;
}

.fm-checkout-secure {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #555;
    font-size: 13px;
}

.woocommerce-checkout .fm-main {
    background: linear-gradient(90deg,#fff 0%,#fff 60%,#f5f5f4 60%,#f5f5f4 100%);
    min-height: calc(100vh - 72px);
    min-height: calc(100svh - 72px);
}

.woocommerce-checkout .fm-main>.fm-container {
    width: min(1180px,calc(100% - 44px));
}

.woocommerce-checkout .woocommerce {
    padding: 24px 0 50px;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle {
    max-width: 650px;
    margin: 0 0 16px;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    padding: 9px 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #666 !important;
    font-size: 13px !important;
}

.woocommerce-checkout .checkout_coupon {
    max-width: 650px;
    padding: 14px !important;
    border: 1px solid var(--fm-line) !important;
    border-radius: 6px !important;
    background: #fafafa !important;
}

.woocommerce-checkout .checkout_coupon .form-row {
    display: inline-block;
    width: auto !important;
    margin: 0 6px 0 0 !important;
}

.fm-checkout-layout {
    width: 100%;
}

.woocommerce-checkout form.checkout {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 430px;
    column-gap: 68px;
    align-items: start;
}

.fm-checkout-customer {
    grid-column: 1;
    min-width: 0;
}

.fm-checkout-summary {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}

.fm-checkout-summary__sticky {
    position: sticky;
    top: 26px;
    padding: 24px 0;
}

.fm-checkout-step {
    padding: 26px 0;
    border-bottom: 1px solid var(--fm-line);
}

.fm-checkout-step:first-child {
    padding-top: 0;
}

.fm-checkout-step__header {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 18px;
}

.fm-checkout-step__number {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #111;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.fm-checkout-step__header h2 {
    margin: 0;
    font-size: 21px;
}

.fm-checkout-step__header p {
    margin: 3px 0 0;
    color: #777;
    font-size: 13px;
}

.fm-checkout-billing-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 12px;
}

.woocommerce-checkout .form-row {
    float: none !important;
    width: 100% !important;
    clear: none !important;
    margin: 0 0 12px !important;
}

.woocommerce-checkout .form-row-wide {
    grid-column: 1/-1;
}

.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
    width: 100% !important;
}

.woocommerce-checkout .form-row label {
    margin-bottom: 5px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

.woocommerce-checkout .input-text,
.woocommerce-checkout select,
.woocommerce-checkout .select2-selection {
    min-height: 46px !important;
    border: 1px solid #d4d4d2 !important;
    border-radius: 6px !important;
    background: #fff !important;
    font-size: 13px !important;
    box-shadow: none !important;
}

.woocommerce-checkout textarea.input-text {
    min-height: 92px !important;
    padding: 11px !important;
}

.woocommerce-checkout .input-text:focus,
.woocommerce-checkout select:focus {
    border-color: #777 !important;
    box-shadow: 0 0 0 2px rgba(0,0,0,.03) !important;
}

.fm-checkout-alt-shipping {
    margin-top: 8px;
}

.fm-checkout-alt-shipping #ship-to-different-address {
    font-size: 14px !important;
}

.fm-checkout-payment-panel {
    margin: 0;
    padding: 26px 0 0;
}

.fm-checkout-section-title {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 15px;
}

.fm-checkout-section-title>span {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #111;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.fm-checkout-section-title h2 {
    margin: 0;
    font-size: 21px;
}

.fm-checkout-section-title p {
    margin: 3px 0 0;
    color: #777;
    font-size: 13px;
}

.fm-checkout-payment-panel #payment {
    border: 1px solid var(--fm-line-strong) !important;
    border-radius: 7px !important;
    background: #fff !important;
    overflow: hidden;
}

.fm-checkout-payment-panel #payment ul.payment_methods {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

.fm-checkout-payment-panel #payment ul.payment_methods li {
    padding: 14px !important;
    border-bottom: 1px solid var(--fm-line) !important;
    background: #fff;
    font-size: 13px;
}

.fm-checkout-payment-panel #payment .payment_box {
    margin: 10px 0 0 !important;
    padding: 12px !important;
    border-radius: 5px !important;
    background: #f5f5f4 !important;
    color: #555 !important;
    font-size: 13px !important;
}

.fm-checkout-payment-panel #payment .place-order {
    padding: 16px !important;
}

.fm-checkout-payment-panel #place_order {
    width: 100% !important;
    min-height: 50px !important;
    background: var(--fm-red) !important;
    border-color: var(--fm-red) !important;
}

.fm-checkout-summary__heading {
    margin-bottom: 20px;
}

.fm-checkout-summary__heading h2 {
    margin: 6px 0 0;
    font-size: 25px;
}

.fm-checkout-order-items {
    display: grid;
    gap: 14px;
}

.fm-checkout-order-item {
    display: grid;
    grid-template-columns: 58px 1fr auto;
    gap: 10px;
    align-items: start;
    padding-bottom: 14px;
    border-bottom: 1px solid #ddd;
}

.fm-checkout-order-item__image {
    position: relative;
}

.fm-checkout-order-item__image img {
    width: 58px;
    height: 66px;
    object-fit: cover;
    border-radius: 5px;
    background: #eee;
}

.fm-checkout-order-item__image>span {
    position: absolute;
    right: -5px;
    top: -6px;
    display: grid;
    place-items: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 999px;
    background: #666;
    color: #fff;
    font-size: 12px;
}

.fm-checkout-order-item__content strong {
    display: block;
    font-size: 13px;
}

.fm-checkout-order-item__meta {
    margin-top: 4px;
    color: #777;
    font-size: 12px;
    line-height: 1.45;
}

.fm-checkout-order-item__meta dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 4px;
    margin: 0;
}

.fm-checkout-order-item__meta dt,
.fm-checkout-order-item__meta dd {
    margin: 0;
}

.fm-checkout-order-item__price {
    font-size: 13px;
    font-weight: 700;
    text-align: right;
}

.fm-checkout-totals {
    margin-top: 17px;
}

.fm-checkout-shipping-row {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid #ddd;
    font-size: 13px;
}

.fm-checkout-shipping-row ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.fm-checkout-shipping-row li {
    margin: 0 0 5px;
}

.fm-checkout-shipping-row label {
    font-size: 13px;
}

.fm-checkout-summary__trust {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #ddd;
    color: #777;
    font-size: 12px;
}

.fm-checkout-summary__trust span {
    display: flex;
    align-items: center;
    gap: 5px;
}

.fm-checkout-footer {
    padding: 20px 0;
    background: #fff;
    border-top: 1px solid var(--fm-line);
}

.fm-checkout-footer__inner {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    color: #777;
    font-size: 12px;
}

/* Contact / FAQ / account */

.fm-contact-intro {
    max-width: 820px;
    margin: 0 0 38px;
}

.fm-contact-intro h1 {
    margin: 10px 0 14px;
    font-size: clamp(42px,5vw,66px);
}

.fm-contact-intro p {
    max-width: 760px;
    color: var(--fm-muted);
    font-size: 14px;
}

.fm-contact-grid {
    display: grid;
    grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr);
    gap: 40px;
    align-items: start;
}

.fm-contact-cards {
    display: grid;
    gap: 10px;
}

.fm-contact-card {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 13px;
    align-items: center;
    min-height: 82px;
    padding: 16px 17px;
    border: 1px solid var(--fm-line);
    border-radius: 7px;
    background: #fff;
}

.fm-contact-card__icon {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 6px;
    background: var(--fm-red-soft);
    color: var(--fm-red);
    font-size: 13px;
    font-weight: 850;
}

.fm-contact-card small {
    display: block;
    margin-bottom: 3px;
    color: #888;
    font-size: 11px;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.fm-contact-card strong,
.fm-contact-card a {
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.fm-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    padding: 22px;
    border: 1px solid var(--fm-line);
    border-radius: 8px;
    background: #fff;
}

.fm-form-grid label {
    display: grid;
    gap: 5px;
    font-size: 13px;
    font-weight: 700;
}

.fm-form-grid .full {
    grid-column: 1/-1;
}

.fm-faq-list {
    max-width: 900px;
    margin: 0 auto;
}

.fm-faq {
    border-bottom: 1px solid var(--fm-line);
}

.fm-faq button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 18px 0;
    border: 0;
    background: transparent;
    text-align: left;
    font-size: 16px;
    font-weight: 700;
}

.fm-faq__answer {
    display: none;
    padding: 0 0 18px;
    color: #666;
    font-size: 14px;
}

.fm-faq.is-open .fm-faq__answer {
    display: block;
}

.woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: 230px 1fr;
    gap: 32px;
    padding: 54px 0;
}

.woocommerce-MyAccount-navigation ul {
    margin: 0;
    padding: 0;
    list-style: none;
    border: 1px solid var(--fm-line);
    border-radius: 7px;
    overflow: hidden;
}

.woocommerce-MyAccount-navigation li {
    border-bottom: 1px solid var(--fm-line);
}

.woocommerce-MyAccount-navigation li:last-child {
    border-bottom: 0;
}

.woocommerce-MyAccount-navigation a {
    display: block;
    padding: 12px 14px;
    text-decoration: none;
    font-size: 13px;
}

.woocommerce-MyAccount-navigation .is-active a {
    background: #111;
    color: #fff;
}

/* Responsive */

@media (max-width:1180px) {
    ul.products,
    .fm-products-grid {
        gap: 26px 14px !important;
    }

    .fm-catalog-results ul.products {
        gap: 36px 18px !important;
    }

    .fm-product-main {
        gap: 34px;
    }

    .fm-cart-layout {
        grid-template-columns: minmax(0,1.4fr) minmax(310px,.7fr);
    }

    .woocommerce-checkout form.checkout {
        grid-template-columns: minmax(0,1fr) 390px;
        column-gap: 48px;
    }
}

@media (max-width:1024px) {
    .fm-hero__slide {
        background: linear-gradient(180deg,#101011 0,#101011 46%,var(--fm-hero-bg,#eee) 46%,var(--fm-hero-bg,#eee) 100%);
    }

    .fm-hero__grid {
        grid-template-columns: 1fr;
        min-height: 750px;
    }

    .fm-hero__content {
        min-height: 340px;
        padding: 54px 36px 44px 0;
    }

    .fm-hero__content h1 {
        font-size: 52px;
        max-width: 620px;
    }

    .fm-hero__visual {
        min-height: 400px;
    }

    .fm-hero__visual img {
        max-height: 360px;
    }

    .fm-home-intro__inner {
        grid-template-columns: 1fr 300px;
    }

    .fm-brand-grid {
        grid-template-columns: repeat(6,minmax(0,1fr));
    }

    .fm-collection-grid {
        grid-template-columns: repeat(3,minmax(0,1fr));
    }

    .fm-campaign-grid {
        grid-template-rows: repeat(2,200px);
    }

    ul.products,
    .fm-products-grid {
        grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    }

    .fm-product-row-layout--rail .fm-products-grid {
        grid-template-columns: repeat(4,minmax(220px,1fr)) !important;
        overflow-x: auto !important;
        scroll-snap-type: x proximity;
        padding-bottom: 8px !important;
    }

    .fm-product-row-layout--rail .fm-retail-card {
        scroll-snap-align: start;
    }

    .fm-catalog-results ul.products {
        grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    }

    .fm-archive-tools {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .fm-archive-tools__utility {
        justify-content: space-between;
    }

    .fm-collection-search {
        flex: 1;
        width: auto;
    }

    .fm-filter-form {
        grid-template-columns: repeat(3,1fr);
    }

    .fm-product-main {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .single-product div.product .woocommerce-product-gallery {
        position: relative !important;
        top: auto !important;
        max-width: 720px;
        margin-inline: auto !important;
    }

    .fm-product-buybox {
        max-width: 720px;
        width: 100%;
        margin-inline: auto;
    }

    .fm-cart-layout {
        grid-template-columns: 1fr;
    }

    .fm-cart-summary-panel {
        position: static;
    }

    .woocommerce-checkout .fm-main {
        background: #fff;
    }

    .woocommerce-checkout form.checkout {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .fm-checkout-summary {
        grid-column: 1;
        grid-row: auto;
        background: #f5f5f4;
        margin: 10px -22px 0;
        padding: 0 22px;
    }

    .fm-checkout-summary__sticky {
        position: static;
    }

    .fm-contact-grid {
        grid-template-columns: 1fr;
    }

    .fm-contact-cards {
        grid-template-columns: repeat(3,1fr);
    }

    .woocommerce-account .woocommerce {
        grid-template-columns: 1fr;
    }

    .woocommerce-MyAccount-navigation ul {
        display: flex;
        overflow: auto;
    }

    .woocommerce-MyAccount-navigation li {
        border-bottom: 0;
        border-right: 1px solid var(--fm-line);
        white-space: nowrap;
    }
}

@media (max-width:720px) {
    .fm-section {
        padding: 48px 0;
    }

    .fm-section-head {
        margin-bottom: 20px;
    }

    .fm-section-head h2 {
        font-size: 27px;
    }

    .fm-hero__grid {
        min-height: 680px;
    }

    .fm-hero__content {
        min-height: 320px;
        padding: 42px 18px 34px 0;
    }

    .fm-hero__content h1 {
        font-size: clamp(39px,12vw,50px);
    }

    .fm-hero__content p {
        font-size: 15px;
        margin-top: 16px;
    }

    .fm-hero__actions {
        align-items: flex-start;
        gap: 13px;
        margin-top: 22px;
        flex-direction: column;
    }

    .fm-hero__visual {
        min-height: 350px;
    }

    .fm-hero__visual img {
        width: 84%;
        max-height: 310px;
    }

    .fm-hero__arrow {
        width: 34px;
        height: 34px;
        font-size: 20px;
    }

    .fm-hero__arrow--prev {
        left: 7px;
    }

    .fm-hero__arrow--next {
        right: 7px;
    }

    .fm-home-intro__inner {
        grid-template-columns: 1fr;
        gap: 9px;
        padding: 13px 0;
    }

    .fm-brand-finder {
        padding: 42px 0 45px;
    }

    .fm-brand-grid {
        grid-template-columns: repeat(3,minmax(0,1fr));
        gap: 6px;
    }

    .fm-brand-card {
        min-height: 94px;
    }

    .fm-model-results {
        grid-template-columns: repeat(2,1fr);
    }

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

    .fm-collection-card h3 {
        font-size: 14px;
    }

    .fm-campaign-section,
    .fm-customer-love {
        width: calc(100% - 24px);
        padding: 48px 0;
    }

    .fm-campaign-grid {
        grid-template-columns: 1fr;
        grid-template-rows: none;
    }

    .fm-campaign-card,
    .fm-campaign-card--large {
        grid-row: auto;
        min-height: 250px;
    }

    .fm-campaign-card__content strong {
        font-size: 21px;
    }

    ul.products,
    .fm-products-grid,
    .fm-catalog-results ul.products {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        gap: 24px 9px !important;
    }

    .fm-product-row-layout--rail .fm-products-grid {
        grid-template-columns: repeat(4,70vw) !important;
    }

    .fm-retail-card__title {
        min-height: 36px;
        font-size: 14px;
    }

    .fm-retail-card__rating {
        display: none;
    }

    .fm-retail-card__price {
        font-size: 14px;
    }

    .fm-retail-card__options {
        display: none;
    }

    .fm-retail-card__cta {
        min-height: 34px;
        font-size: 11px;
    }

    .fm-retail-card__view {
        opacity: 1;
        width: 32px;
        height: 32px;
    }

    .fm-feature-product {
        padding: 46px 0;
    }

    .fm-feature-product__grid {
        grid-template-columns: 1fr;
    }

    .fm-feature-product__visual {
        min-height: 320px;
    }

    .fm-feature-product__content {
        padding: 28px 22px 34px;
    }

    .fm-catalog-archive__header {
        min-height: 210px;
        padding: 44px 0 32px;
    }

    .fm-catalog-archive__header h1 {
        font-size: 38px;
    }

    .fm-archive-tools__filters {
        overflow: auto;
        padding-bottom: 3px;
    }

    .fm-archive-tools__utility {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 7px;
    }

    .fm-collection-search {
        width: 100%;
    }

    .fm-filter-form {
        grid-template-columns: 1fr 1fr;
    }

    .fm-filter-form .fm-button {
        grid-column: 1/-1;
    }

    .single-product .fm-main>.fm-container {
        width: calc(100% - 24px);
    }

    .single-product .fm-product-page {
        padding-top: 24px;
    }

    .fm-product-buybox {
        padding: 19px;
        border-radius: 8px;
    }

    .single-product .product_title {
        font-size: 34px !important;
    }

    .fm-product-price-block .price,
    .single-product .summary .price {
        font-size: 20px !important;
    }

    .single-product form.cart {
        grid-template-columns: 1fr;
    }

    .single-product form.cart .quantity {
        width: 100%;
        grid-template-columns: 40px 1fr 40px;
    }

    .single-product form.cart .quantity .qty {
        width: 100% !important;
    }

    .single-product .single_add_to_cart_button {
        grid-column: 1;
    }

    .fm-purchase-reassurance {
        font-size: 10px;
    }

    .fm-product-after-main {
        margin-top: 38px;
    }

    .fm-product-details-section {
        padding-top: 30px;
    }

    .single-product .woocommerce-tabs ul.tabs {
        display: none !important;
    }

    .fm-mobile-product-tab {
        display: flex;
        width: 100%;
        align-items: center;
        justify-content: space-between;
        padding: 15px 0;
        border: 0;
        border-bottom: 1px solid var(--fm-line);
        background: transparent;
        font-size: 13px;
        font-weight: 800;
        text-transform: uppercase;
    }

    .single-product .woocommerce-tabs .panel {
        display: none !important;
        padding: 15px 0 !important;
    }

    .single-product .woocommerce-tabs .panel.fm-mobile-panel-open {
        display: block !important;
    }

    .fm-product-reviews-showcase {
        padding: 48px 0 10px;
    }

    .fm-review-rail {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        gap: 10px;
    }

    .fm-review-rail .fm-review-card {
        flex: 0 0 82%;
        scroll-snap-align: start;
    }

    .fm-people-also-bought {
        padding: 44px 0 56px;
    }

    .fm-people-also-bought .related.products>h2 {
        font-size: 25px;
    }

    .fm-people-also-bought .related.products ul.products {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }

    .fm-cart-shell {
        padding: 34px 0 52px;
    }

    .fm-cart-hero {
        align-items: flex-start;
        flex-direction: column;
        margin-bottom: 18px;
    }

    .fm-cart-hero h1 {
        font-size: 38px;
    }

    .fm-cart-item {
        grid-template-columns: 76px 1fr;
        gap: 12px;
        padding: 14px;
    }

    .fm-cart-item__media img {
        width: 76px;
        height: 86px;
    }

    .fm-cart-item__title-row h3 {
        font-size: 15px;
    }

    .fm-cart-item__bottom {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

    .fm-cart-item__quantity {
        grid-row: 2;
    }

    .fm-cart-item__subtotal {
        text-align: left;
    }

    .fm-cart-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .fm-cart-coupon {
        grid-template-columns: 1fr auto;
    }

    .fm-cart-update {
        width: 100%;
    }

    .fm-cart-summary-panel .cart_totals {
        padding: 18px;
    }

    .fm-checkout-shell,
    .woocommerce-checkout .fm-main>.fm-container {
        width: calc(100% - 24px);
    }

    .fm-checkout-header,
    .fm-checkout-header__inner {
        height: 62px;
    }

    .fm-checkout-brand .custom-logo {
        max-width: 110px;
        max-height: 38px;
    }

    .woocommerce-checkout .woocommerce {
        padding-top: 16px;
    }

    .fm-checkout-step {
        padding: 22px 0;
    }

    .fm-checkout-billing-fields {
        grid-template-columns: 1fr;
    }

    .woocommerce-checkout .form-row-wide,
    .woocommerce-checkout .form-row-first,
    .woocommerce-checkout .form-row-last {
        grid-column: 1;
    }

    .fm-checkout-summary {
        margin: 10px -12px 0;
        padding: 0 12px;
    }

    .fm-checkout-summary__sticky {
        padding: 22px 0;
    }

    .fm-checkout-footer__inner {
        flex-direction: column;
        align-items: center;
    }

    .fm-contact-intro h1 {
        font-size: 40px;
    }

    .fm-contact-intro p {
        font-size: 15px;
    }

    .fm-contact-cards {
        grid-template-columns: 1fr;
    }

    .fm-form-grid {
        grid-template-columns: 1fr;
        padding: 17px;
    }

    .fm-form-grid .full {
        grid-column: auto;
    }
}

@media (hover:none) {
    .fm-retail-card__image--secondary {
        display: none;
    }

    .fm-retail-card__view {
        opacity: 1;
        transform: none;
    }

    .fm-retail-card:hover .fm-retail-card__image--primary {
        transform: none;
    }

    .fm-collection-card:hover .fm-collection-card__media img,
    .fm-campaign-card:hover .fm-campaign-card__media img {
        transform: none;
    }
}

/* WooCommerce shipping-rate table normalization inside premium summary cards. */

.fm-shipping-table-wrap {
    min-width: 0;
}

.fm-shipping-table {
    width: 100%;
    margin: 0;
    border: 0;
    border-collapse: collapse;
    background: transparent;
}

.fm-shipping-table tbody,
.fm-shipping-table tr,
.fm-shipping-table td {
    display: block;
    width: 100%;
}

.fm-shipping-table th {
    display: none !important;
}

.fm-shipping-table td {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    text-align: left !important;
}

.fm-shipping-table ul#shipping_method,
.fm-shipping-table .woocommerce-shipping-methods {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.fm-shipping-table ul#shipping_method li,
.fm-shipping-table .woocommerce-shipping-methods li {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 7px;
    margin: 0 0 8px !important;
    padding: 0 !important;
    line-height: 1.4;
}

.fm-shipping-table ul#shipping_method li:last-child,
.fm-shipping-table .woocommerce-shipping-methods li:last-child {
    margin-bottom: 0 !important;
}

.fm-shipping-table input.shipping_method {
    margin-top: 3px;
}

.fm-shipping-table label {
    font-size: 13px !important;
    font-weight: 650 !important;
}

.fm-shipping-table .woocommerce-shipping-destination,
.fm-shipping-table .woocommerce-shipping-contents,
.fm-shipping-table .shipping-calculator-form {
    margin: 8px 0 0 !important;
    color: var(--fm-muted);
    font-size: 12px !important;
}

.fm-shipping-table .shipping-calculator-button {
    display: inline-flex;
    margin-top: 7px;
    color: var(--fm-red);
    font-size: 12px !important;
    font-weight: 750;
    text-decoration: none;
}

/* Readability floor: commercial UI never relies on micro-text for essential information. */

.fm-retail-card__rating,
.fm-retail-card__options,
.fm-cart-item__meta,
.fm-checkout-order-item__meta,
.fm-mini-cart-item__meta,
.fm-purchase-reassurance,
.fm-cart-summary__trust,
.fm-checkout-summary__trust {
    font-size: 12px !important;
}

.fm-retail-card__title {
    font-size: 14px !important;
    line-height: 1.35;
}

.fm-retail-card__price {
    font-size: 14px !important;
}

.fm-retail-card__cta {
    font-size: 11px !important;
}

.fm-cart-item__bottom span,
.fm-contact-card small {
    font-size: 11px !important;
}

.fm-cart-item__bottom strong {
    font-size: 14px !important;
}

.fm-summary-row,
.fm-summary-shipping,
.fm-checkout-shipping-row {
    font-size: 13px !important;
}

.fm-checkout-order-item__content strong {
    font-size: 13px !important;
}

.fm-checkout-order-item__price {
    font-size: 13px !important;
}

.fm-checkout-step__header p,
.fm-checkout-section-title p {
    font-size: 12px !important;
}

.woocommerce-checkout .form-row label {
    font-size: 12px !important;
}

.woocommerce-checkout .input-text,
.woocommerce-checkout select,
.woocommerce-checkout .select2-selection {
    font-size: 14px !important;
}

.fm-checkout-payment-panel #payment ul.payment_methods li {
    font-size: 14px !important;
}

.fm-checkout-payment-panel #payment .payment_box {
    font-size: 13px !important;
}

.fm-checkout-footer__inner {
    font-size: 12px !important;
}

/* Archive filter panel */

.fm-filter-panel {
    display: none;
    padding: 22px 24px 24px;
    border: 1px solid var(--fm-line);
    border-top: 0;
    background: #fafafa;
}

.fm-filter-panel.is-open {
    display: block;
}

.fm-filter-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.fm-filter-panel__head h3 {
    margin: 4px 0 0;
    font-size: 20px;
}

.fm-filter-panel__close {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid var(--fm-line-strong);
    border-radius: 50%;
    background: #fff;
    color: #222;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

.fm-filter-panel__grid {
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    gap: 12px;
    align-items: end;
}

.fm-filter-field {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.fm-filter-field label {
    color: #555;
    font-size: 12px;
    font-weight: 750;
}

.fm-filter-field :is(input,
select) {
    width: 100%;
    height: 42px;
    padding: 0 11px;
    border: 1px solid var(--fm-line-strong);
    border-radius: 5px;
    background: #fff;
    color: #222;
    font-size: 13px;
    outline: 0;
}

.fm-filter-field :is(input,
select):focus {
    border-color: #777;
    box-shadow: 0 0 0 2px rgba(0,0,0,.03);
}

.fm-filter-panel .fm-check {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    color: #444;
    font-size: 13px;
    font-weight: 650;
}

.fm-filter-panel .fm-check input {
    width: 16px;
    height: 16px;
    accent-color: var(--fm-red);
}

.fm-filter-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 18px;
}

.fm-filter-actions .fm-button {
    min-height: 42px;
    padding-inline: 22px;
}

.fm-filter-actions a {
    color: #555;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.fm-archive-result-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 11px 0;
    color: #777;
    font-size: 12px;
}

.fm-archive-result-row .woocommerce-result-count {
    margin: 0 !important;
    color: inherit;
    font-size: inherit;
}

.fm-clear-filters {
    color: var(--fm-red);
    font-weight: 750;
    text-decoration: none;
}

.fm-summary-shipping--calculator {
    grid-template-columns: 80px 1fr;
}

.fm-summary-shipping--calculator .shipping-calculator-form {
    margin-top: 8px;
}

.fm-summary-shipping--calculator .shipping-calculator-form p {
    margin: 0 0 7px !important;
}

.fm-summary-shipping--calculator .shipping-calculator-form :is(input,
select) {
    width: 100%;
    min-height: 38px;
    border: 1px solid var(--fm-line-strong);
    border-radius: 5px;
    background: #fff;
    font-size: 12px;
}

@media (max-width:1024px) {
    .fm-filter-panel__grid {
        grid-template-columns: repeat(3,minmax(0,1fr));
    }
}

@media (max-width:720px) {
    .fm-filter-panel {
        padding: 18px 14px 20px;
    }

    .fm-filter-panel__grid {
        grid-template-columns: 1fr 1fr;
    }

    .fm-filter-panel .fm-check {
        grid-column: 1/-1;
    }

    .fm-filter-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .fm-filter-actions .fm-button {
        width: 100%;
    }

    .fm-archive-result-row {
        padding: 10px 0;
    }
}

/* Cross-browser retail component safeguards. */

.fm-model-search {
    display: flex;
    align-items: center;
    gap: 9px;
    box-sizing: border-box;
}

.fm-model-search .fm-icon {
    flex: 0 0 auto;
    color: #777;
}

.fm-model-search input[type=search] {
    min-width: 0;
    flex: 1;
    height: 40px;
    padding: 0;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: 0;
    font: inherit;
}

.fm-model-panel__head>div>span {
    display: block;
    margin-bottom: 2px;
    color: #888;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.fm-model-panel__head .fm-icon-button {
    flex: 0 0 auto;
}

.fm-contact-page .fm-contact-intro {
    margin-bottom: 34px;
}

.fm-contact-page .fm-contact-grid {
    margin-top: 0;
}

.fm-faq-page .fm-faq-list {
    max-width: 920px;
    margin: 0;
}

.fm-faq-page .fm-faq button {
    padding: 20px 0;
    font-size: 15px;
}

.fm-faq-page .fm-faq__answer p {
    max-width: 760px;
    color: #666;
    line-height: 1.7;
}

.fm-customer-love--page {
    width: min(var(--fm-max),calc(100% - 48px));
    padding: 64px 0 82px;
}

.fm-customer-love--page .fm-customer-love__head {
    text-align: left;
    margin: 0 0 34px;
}

.fm-customer-love--page .fm-customer-love__head .fm-eyebrow {
    justify-content: flex-start;
}

.fm-customer-love--page .fm-customer-love__head h1 {
    margin: 9px 0 12px;
    font-size: clamp(40px,5vw,64px);
    letter-spacing: -.05em;
}

.fm-review-empty {
    grid-column: 1/-1;
    padding: 34px;
    border: 1px solid var(--fm-line);
    border-radius: 8px;
    background: #fafafa;
    text-align: center;
}

.fm-review-empty strong {
    display: block;
    font-size: 18px;
}

.fm-review-empty p {
    max-width: 620px;
    margin: 8px auto 0;
    color: #777;
    font-size: 14px;
}

.fm-product-options {
    display: grid;
    gap: 16px;
    margin: 18px 0 16px;
    padding-top: 16px;
    border-top: 1px solid var(--fm-line);
}

.fm-option-field {
    display: grid;
    gap: 7px;
}

.fm-option-field>label {
    color: #333;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fm-option-field select,
.fm-option-field input[type=text],
.fm-option-field input[type=file] {
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--fm-line-strong);
    border-radius: 5px;
    background: #fff;
    padding: 0 11px;
    font-size: 13px;
}

.fm-option-field input[type=file] {
    padding: 9px 10px;
}

.fm-option-help,
.fm-artwork-field small {
    color: #858585;
    font-size: 11px;
    line-height: 1.5;
}

.fm-single-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    width: max-content;
    max-width: 100%;
    min-height: 34px;
    padding: 0 10px;
    border: 1px solid var(--fm-line);
    border-radius: 999px;
    background: #fafafa;
}

.fm-single-brand span {
    font-size: 13px;
    font-weight: 800;
}

.fm-single-brand small {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 0 7px;
    border-radius: 999px;
    background: #eef7f0;
    color: #23703b;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.fm-brand-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.fm-brand-pills button {
    min-height: 34px;
    padding: 0 11px;
    border: 1px solid var(--fm-line-strong);
    border-radius: 999px;
    background: #fff;
    color: #222;
    font-size: 12px;
    font-weight: 750;
}

.fm-brand-pills button.is-active {
    border-color: var(--fm-red);
    background: var(--fm-red);
    color: #fff;
}

.fm-shipping-progress__text {
    display: block !important;
    color: #555;
    font-size: 13px;
    line-height: 1.45;
}

.fm-drawer--right[data-fm-drawer="cart"] .fm-shipping-progress__text {
    font-weight: 650;
}

@media (min-width:1181px) {
    .fm-catalog-results ul.products {
        grid-template-columns: repeat(4,minmax(0,1fr)) !important;
        gap: 36px 18px !important;
    }

    .fm-people-also-bought .related.products ul.products {
        grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    }
}

@media (min-width:1025px) and (max-width:1180px) {
    .fm-catalog-results ul.products {
        grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    }

    .fm-people-also-bought .related.products ul.products {
        grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    }
}

@media (max-width:720px) {
    .fm-customer-love--page {
        width: calc(100% - 24px);
        padding: 42px 0 58px;
    }

    .fm-customer-love--page .fm-customer-love__head h1 {
        font-size: 38px;
    }

    .fm-model-search {
        height: 44px;
    }

    .fm-single-brand {
        width: 100%;
        justify-content: space-between;
        border-radius: 5px;
    }
}

@media (min-width:900px) {
    .fm-people-also-bought .related.products ul.products {
        grid-template-columns: repeat(4,minmax(0,1fr)) !important;
        gap: 28px 14px !important;
    }
}

.fm-collections-page .fm-section-head {
    margin-bottom: 30px;
}

.fm-collections-page .fm-section-head h1 {
    margin: 0;
    font-size: clamp(38px,4.5vw,56px);
    letter-spacing: -.045em;
}

/* Visual hierarchy and responsive refinements. */

/* Hero safety: keep campaign copy fully inside its content column at all
   supported desktop/tablet widths and prevent the slider arrows/image layer
   from visually clipping long headings. */

.fm-hero__grid {
    overflow: hidden;
}

.fm-hero__content {
    box-sizing: border-box;
    min-width: 0;
    max-width: none;
    padding-left: clamp(28px,3.2vw,52px);
    padding-right: clamp(34px,4vw,64px);
}

.fm-hero__content h1 {
    max-width: 560px;
    font-size: clamp(44px,4.25vw,64px);
    line-height: 1.01;
    letter-spacing: -.047em;
    overflow-wrap: break-word;
    word-break: normal;
    text-wrap: balance;
}

.fm-hero__content p {
    max-width: 520px;
}

.fm-hero__actions {
    flex-wrap: wrap;
}

/* Product-card action consistency. */

.fm-retail-card__cta {
    min-height: 40px;
    padding-inline: 12px;
    border-color: #d1d1d1;
}

.fm-retail-card__cta:hover,
.fm-retail-card__cta:focus-visible {
    border-color: var(--fm-red);
    background: var(--fm-red);
    color: #fff;
}

/* People Also Bought: never leave a single orphan card on tablet. */

.fm-people-also-bought .related.products {
    width: 100%;
    max-width: none;
}

.fm-people-also-bought .related.products ul.products {
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    gap: 28px 14px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.fm-people-also-bought .related.products ul.products>li.product {
    float: none !important;
    grid-column: auto !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    clear: none !important;
}

/* Cart: slightly stronger retail proportions and unambiguous primary CTA. */

.fm-cart-layout {
    grid-template-columns: minmax(0,1.9fr) minmax(360px,.9fr);
}

.fm-cart-summary-panel .checkout-button,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
    background: var(--fm-red) !important;
    border-color: var(--fm-red) !important;
    color: #fff !important;
}

.fm-cart-summary-panel .checkout-button:hover {
    background: #7e1113 !important;
    border-color: #7e1113 !important;
}

/* Checkout: coupon belongs to Order Summary, not as a detached Woo block. */

.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout form.checkout_coupon {
    display: none !important;
}

.fm-checkout-discount {
    margin: 0 0 18px;
    padding: 14px;
    border: 1px solid #ddd;
    border-radius: 7px;
    background: #fff;
}

.fm-checkout-discount>label {
    display: block;
    margin-bottom: 7px;
    color: #444;
    font-size: 12px;
    font-weight: 750;
}

.fm-checkout-discount__row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 7px;
}

.fm-checkout-discount__row input {
    min-width: 0;
    height: 42px;
    padding: 0 11px;
    border: 1px solid #d4d4d2;
    border-radius: 5px;
    background: #fff;
    font-size: 13px;
    outline: 0;
}

.fm-checkout-discount__row input:focus {
    border-color: #777;
    box-shadow: 0 0 0 2px rgba(0,0,0,.04);
}

.fm-checkout-discount__apply {
    min-width: 82px;
    min-height: 42px !important;
    padding: 0 14px !important;
    background: #222 !important;
    border-color: #222 !important;
    color: #fff !important;
}

.fm-checkout-discount__message {
    min-height: 0;
    margin: 7px 0 0;
    color: #777;
    font-size: 11px;
    line-height: 1.4;
}

.fm-checkout-discount__message:empty {
    display: none;
}

.fm-checkout-payment-panel #place_order {
    background: var(--fm-red) !important;
    border-color: var(--fm-red) !important;
    color: #fff !important;
}

.woocommerce-checkout .form-row {
    margin-bottom: 10px !important;
}

.woocommerce-checkout .input-text,
.woocommerce-checkout select,
.woocommerce-checkout .select2-selection {
    min-height: 44px !important;
}

/* Contact communication card supports separate Phone + WhatsApp values. */

.fm-contact-card>div {
    display: grid;
    gap: 3px;
}

.fm-contact-card .fm-contact-whatsapp {
    width: max-content;
    color: var(--fm-red);
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

@media (max-width:1180px) {
    .fm-hero__content {
        padding-left: 30px;
        padding-right: 34px;
    }

    .fm-hero__content h1 {
        max-width: 540px;
        font-size: clamp(42px,5vw,56px);
    }

    .fm-cart-layout {
        grid-template-columns: minmax(0,1.5fr) minmax(320px,.8fr);
    }
}

@media (max-width:1023px) {
    .fm-people-also-bought .related.products ul.products {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        gap: 24px 12px !important;
    }

    .fm-cart-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width:720px) {
    .fm-hero__grid {
        min-height: 650px;
    }

    .fm-hero__content {
        min-height: 300px;
        padding: 36px 24px 30px;
    }

    .fm-hero__content h1 {
        max-width: 100%;
        font-size: clamp(36px,10.8vw,46px);
        line-height: 1.02;
        letter-spacing: -.04em;
    }

    .fm-hero__content p {
        max-width: 100%;
    }

    .fm-checkout-discount {
        padding: 12px;
    }

    .fm-checkout-discount__row {
        grid-template-columns: 1fr 78px;
    }
}

/* Desktop and touch-layout refinements. */

/* Catalog: deterministic product placement. WooCommerce first/last classes
   and old float rules must never create blank grid cells. */

.fm-catalog-results ul.products {
    grid-auto-flow: row !important;
    align-items: start;
}

.fm-catalog-results ul.products>li.product,
.fm-catalog-results ul.products>li.product.first,
.fm-catalog-results ul.products>li.product.last,
.fm-catalog-results ul.products>li.product:nth-child(n) {
    float: none !important;
    clear: none !important;
    grid-column: auto !important;
    grid-row: auto !important;
    order: initial !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
}

/* Keep product cards in strict source order across desktop, tablet and phones. */

@media (min-width:1400px) {
    .fm-catalog-results ul.products {
        grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    }
}

@media (min-width:1025px) and (max-width:1399px) {
    .fm-catalog-results ul.products {
        grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    }
}

/* Mobile catalog controls: one clear Filters action, one Sort action and a
   full-width collection search instead of squeezing four desktop chips. */

.fm-mobile-catalog-actions {
    display: none;
}

.fm-filter-backdrop {
    display: none;
}

@media (max-width:720px) {
    .fm-catalog-archive {
        padding-bottom: 58px;
    }

    .fm-catalog-archive__header {
        min-height: 184px;
        padding: 38px 0 28px;
    }

    .fm-catalog-archive__header h1 {
        font-size: 34px;
    }

    .fm-archive-tools {
        display: grid;
        grid-template-columns: 1fr;
        gap: 9px;
        padding: 13px 0;
    }

    .fm-archive-tools__filters {
        display: none;
    }

    .fm-mobile-catalog-actions {
        display: grid;
        grid-template-columns: minmax(0,1fr) minmax(0,1fr);
        gap: 8px;
        order: 1;
    }

    .fm-mobile-filter-button,
    .fm-mobile-sort-wrap {
        min-height: 44px;
        border: 1px solid var(--fm-line-strong);
        border-radius: 6px;
        background: #fff;
    }

    .fm-mobile-filter-button {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        padding: 0 12px;
        color: #222;
        font-size: 12px;
        font-weight: 850;
        text-transform: uppercase;
        letter-spacing: .05em;
    }

    .fm-mobile-filter-button.is-active {
        border-color: var(--fm-red);
        color: var(--fm-red);
    }

    .fm-mobile-filter-button b {
        display: grid;
        place-items: center;
        min-width: 19px;
        height: 19px;
        padding: 0 5px;
        border-radius: 999px;
        background: var(--fm-red);
        color: #fff;
        font-size: 10px;
    }

    .fm-mobile-sort-wrap {
        display: grid;
        grid-template-columns: auto minmax(0,1fr);
        align-items: center;
        padding-left: 10px;
        color: #666;
        font-size: 11px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .04em;
    }

    .fm-mobile-sort-wrap form {
        margin: 0 !important;
        min-width: 0;
    }

    .fm-mobile-sort-wrap select {
        width: 100%;
        height: 42px !important;
        border: 0 !important;
        background: transparent !important;
        padding: 0 28px 0 7px !important;
        font-size: 12px !important;
    }

    .fm-archive-tools__utility {
        display: block;
        order: 2;
    }

    .fm-archive-tools__utility .fm-sort-wrap {
        display: none;
    }

    .fm-collection-search {
        width: 100%;
    }

    .fm-collection-search input {
        height: 44px;
        font-size: 13px;
    }

    .fm-collection-search button {
        top: 6px;
        right: 4px;
    }

    .fm-archive-result-row {
        padding: 8px 0 10px;
    }

    .fm-catalog-results {
        padding-top: 22px;
    }

    .fm-catalog-results ul.products {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        gap: 24px 9px !important;
        grid-auto-flow: row !important;
    }

    .fm-catalog-results .fm-retail-card__body {
        padding-top: 9px;
    }

    .fm-catalog-results .fm-retail-card__title {
        min-height: 0 !important;
        font-size: 13px !important;
        line-height: 1.32 !important;
    }

    .fm-catalog-results .fm-retail-card__price {
        min-height: 20px;
        font-size: 13px !important;
    }

    .fm-catalog-results .fm-retail-card__price del {
        font-size: 11px;
    }

    .fm-catalog-results .fm-retail-card__cta {
        min-height: 38px;
        font-size: 10.5px !important;
        letter-spacing: .045em;
    }

    .fm-catalog-results .fm-retail-card__view {
        width: 30px;
        height: 30px;
        right: 7px;
        bottom: 7px;
    }

    .fm-filter-panel {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 10010;
        display: block !important;
        max-height: min(82dvh,720px);
        padding: 18px 14px calc(20px + env(safe-area-inset-bottom,0px));
        border: 0;
        border-radius: 14px 14px 0 0;
        background: #fff;
        box-shadow: 0 -24px 60px rgba(0,0,0,.18);
        overflow: auto;
        transform: translateY(105%);
        visibility: hidden;
        transition: transform .24s var(--fm-ease),visibility .24s ease;
    }

    .fm-filter-panel.is-open {
        transform: none;
        visibility: visible;
    }

    .fm-filter-panel__head {
        position: sticky;
        top: -18px;
        z-index: 2;
        margin: 0 -14px 16px;
        padding: 16px 14px 12px;
        background: #fff;
        border-bottom: 1px solid var(--fm-line);
    }

    .fm-filter-panel__grid {
        grid-template-columns: 1fr 1fr;
    }

    .fm-filter-panel.is-open + .fm-filter-backdrop {
        position: fixed;
        inset: 0;
        z-index: 10000;
        display: block;
        border: 0;
        background: rgba(0,0,0,.42);
    }
}

/* Related products: normalize WooCommerce sizing and clearfix classes for CSS Grid. */

.fm-people-also-bought .related.products ul.products {
    grid-auto-flow: row !important;
}

.fm-people-also-bought .related.products ul.products>li.product,
.fm-people-also-bought .related.products ul.products>li.product.first,
.fm-people-also-bought .related.products ul.products>li.product.last,
.fm-people-also-bought .related.products ul.products>li.product:nth-child(n) {
    float: none !important;
    clear: none !important;
    grid-column: auto !important;
    grid-row: auto !important;
    order: initial !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
}

@media (min-width:900px) {
    .fm-people-also-bought .related.products ul.products {
        grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    }
}

@media (max-width:899px) {
    .fm-people-also-bought .related.products ul.products {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        gap: 22px 10px !important;
    }
}

/* Mobile product accordions communicate state clearly. */

@media (max-width:720px) {
    .fm-mobile-product-tab:after {
        content: "+";
        font-size: 18px;
        font-weight: 500;
        line-height: 1;
    }

    .fm-mobile-product-tab[aria-expanded="true"]:after {
        content: "−";
    }
}

/* Cart drawer: true viewport drawer with scrollable merchandise and sticky
   conversion actions. Admin-bar offsets apply only while editing/logged in. */

.fm-drawer--right[data-fm-drawer="cart"] {
    overflow: hidden;
}

.fm-drawer--right[data-fm-drawer="cart"] .fm-mini-cart-wrap {
    display: flex;
    flex-direction: column;
    min-height: calc(100dvh - 64px);
    max-height: calc(100dvh - 64px);
    overflow: auto;
    overscroll-behavior: contain;
}

.fm-drawer--right[data-fm-drawer="cart"] .fm-mini-cart-buttons {
    position: sticky;
    bottom: 0;
    z-index: 6;
    margin-top: auto;
    padding: 12px 20px calc(12px + env(safe-area-inset-bottom,0px));
    border-top: 1px solid var(--fm-line);
    background: rgba(255,255,255,.98);
    box-shadow: 0 -10px 24px rgba(0,0,0,.05);
}

.admin-bar .fm-drawer {
    top: 32px;
}

.admin-bar .fm-drawer--right[data-fm-drawer="cart"] .fm-mini-cart-wrap {
    min-height: calc(100dvh - 96px);
    max-height: calc(100dvh - 96px);
}

@media (max-width:782px) {
    .admin-bar .fm-drawer {
        top: 46px;
    }

    .admin-bar .fm-drawer--right[data-fm-drawer="cart"] .fm-mini-cart-wrap {
        min-height: calc(100dvh - 110px);
        max-height: calc(100dvh - 110px);
    }
}

@media (max-width:720px) {
    .fm-drawer__head {
        min-height: 60px;
        padding-inline: 14px;
    }

    .fm-mini-cart-items {
        padding-inline: 14px;
    }

    .fm-drawer--right[data-fm-drawer="cart"] .fm-shipping-progress {
        margin-inline: 14px;
    }

    .fm-cart-recommendation {
        margin-inline: 14px;
    }

    .fm-mini-cart-summary {
        padding-inline: 14px;
    }

    .fm-drawer--right[data-fm-drawer="cart"] .fm-mini-cart-buttons {
        padding-inline: 14px;
    }
}

/* Checkout source order is now customer -> summary -> payment. Desktop keeps
   the summary in the right column; mobile shows the final order before payment. */

.fm-checkout-customer {
    grid-column: 1;
    grid-row: 1;
}

.fm-checkout-payment-column {
    grid-column: 1;
    grid-row: 2;
    min-width: 0;
}

.fm-checkout-summary {
    grid-column: 2;
    grid-row: 1/span 2;
}

.fm-checkout-order-item {
    grid-template-columns: 58px minmax(0,1fr) max-content;
}

.fm-checkout-order-item__content,
.fm-checkout-order-item__meta,
.fm-checkout-order-item__meta dl,
.fm-checkout-totals,
.fm-shipping-table-wrap {
    min-width: 0;
}

.fm-checkout-order-item__content strong,
.fm-checkout-order-item__meta {
    overflow-wrap: anywhere;
}

.fm-checkout-order-item__price {
    white-space: nowrap;
    max-width: 120px;
}

@media (max-width:1024px) {
    .woocommerce-checkout form.checkout {
        grid-template-columns: 1fr !important;
    }

    .fm-checkout-customer {
        grid-column: 1;
        grid-row: 1;
    }

    .fm-checkout-summary {
        grid-column: 1;
        grid-row: 2;
        margin: 10px -22px 0;
        padding: 0 22px;
    }

    .fm-checkout-payment-column {
        grid-column: 1;
        grid-row: 3;
    }
}

@media (max-width:720px) {
    .woocommerce-checkout .woocommerce {
        padding-top: 8px;
    }

    .fm-checkout-step {
        padding: 19px 0;
    }

    .fm-checkout-step__header {
        margin-bottom: 14px;
    }

    .fm-checkout-step__header h2,
    .fm-checkout-section-title h2 {
        font-size: 19px;
    }

    .woocommerce-checkout .form-row {
        margin-bottom: 9px !important;
    }

    .woocommerce-checkout .input-text,
    .woocommerce-checkout select,
    .woocommerce-checkout .select2-selection {
        min-height: 44px !important;
    }

    .fm-checkout-summary {
        margin: 4px -12px 0;
        padding: 0 12px;
    }

    .fm-checkout-summary__sticky {
        padding: 20px 0;
    }

    .fm-checkout-summary__heading {
        margin-bottom: 15px;
    }

    .fm-checkout-summary__heading h2 {
        font-size: 22px;
    }

    .fm-checkout-order-item {
        grid-template-columns: 48px minmax(0,1fr) max-content;
        gap: 8px;
    }

    .fm-checkout-order-item__image img {
        width: 48px;
        height: 56px;
    }

    .fm-checkout-order-item__price {
        font-size: 12px !important;
        max-width: 86px;
    }

    .fm-checkout-shipping-row {
        grid-template-columns: 72px minmax(0,1fr);
        gap: 8px;
    }

    .fm-checkout-payment-panel {
        padding-top: 20px;
    }

    .fm-checkout-payment-panel #place_order {
        min-height: 50px !important;
    }
}

@media (max-width:360px) {
    .fm-checkout-order-item {
        grid-template-columns: 44px minmax(0,1fr) auto;
    }

    .fm-checkout-order-item__image img {
        width: 44px;
        height: 52px;
    }

    .fm-checkout-order-item__price {
        max-width: 72px;
        font-size: 11px !important;
    }

    .fm-summary-row,
    .fm-checkout-shipping-row {
        font-size: 12px !important;
    }
}

/* Mobile header touch targets. */

@media (max-width:720px) {
    .fm-mobile-menu-btn,
    .fm-icon-button {
        min-width: 44px;
        min-height: 44px;
    }

    .fm-header__main {
        grid-template-columns: 44px minmax(0,1fr) 132px;
        gap: 4px;
    }

    .fm-header__actions {
        justify-content: flex-end;
    }
}

@media (max-width:720px) {
    body.fm-filter-open {
        overflow: hidden;
    }
}

@media (max-width:720px) {
    .fm-hero__content {
        padding: 34px 22px 28px !important;
        overflow: visible;
    }

    .fm-hero__content h1 {
        max-width: 100% !important;
        font-size: clamp(32px,9.5vw,40px) !important;
        line-height: 1.04 !important;
        letter-spacing: -.035em !important;
        white-space: normal !important;
        overflow: visible !important;
        overflow-wrap: anywhere !important;
    }

    .fm-hero__content p {
        font-size: 14px !important;
        line-height: 1.55 !important;
    }

    .fm-hero__actions {
        margin-top: 18px !important;
    }
}

/* WooCommerce grid normalization. These pseudo-elements are layout helpers in
   classic WooCommerce CSS but must not participate as CSS Grid children. */

/* WooCommerce clearfix pseudo-elements become real CSS-grid items. They were
   responsible for the blank first mobile catalog cell and 1+2+1 / 3+1 related
   product layouts. Remove them in every Fine Mobiles product grid. */

ul.products::before,
ul.products::after,
.fm-products-grid::before,
.fm-products-grid::after,
.fm-catalog-results ul.products::before,
.fm-catalog-results ul.products::after,
.fm-people-also-bought .related.products ul.products::before,
.fm-people-also-bought .related.products ul.products::after {
    content: none !important;
    display: none !important;
}

.fm-catalog-results ul.products,
.fm-people-also-bought .related.products ul.products {
    display: grid !important;
    grid-auto-flow: row !important;
}

.fm-catalog-results ul.products>li.product,
.fm-people-also-bought .related.products ul.products>li.product {
    float: none !important;
    clear: none !important;
    position: relative !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    grid-column: auto !important;
    grid-row: auto !important;
    transform: none;
}

/* Desktop catalog toolbar: reserve explicit space for Search and Sort so the
   label/dropdown cannot collide or float outside the utility group. */

@media (min-width:901px) {
    .fm-archive-tools {
        grid-template-columns: minmax(0,1fr) minmax(500px,610px);
        gap: 24px;
    }

    .fm-archive-tools__utility {
        display: grid !important;
        grid-template-columns: minmax(260px,1fr) minmax(210px,240px);
        gap: 12px;
        align-items: center;
        justify-content: stretch;
    }

    .fm-collection-search {
        width: 100% !important;
        min-width: 0;
    }

    .fm-sort-wrap {
        display: grid !important;
        grid-template-columns: auto minmax(0,1fr);
        align-items: center;
        gap: 8px;
        min-width: 0;
    }

    .fm-sort-label {
        white-space: nowrap;
        color: #666;
        font-size: 12px;
        font-weight: 700;
    }

    .fm-sort-wrap form,
    .fm-sort-wrap .woocommerce-ordering {
        width: 100% !important;
        min-width: 0;
        margin: 0 !important;
    }

    .fm-sort-wrap select {
        width: 100% !important;
        min-width: 0;
    }
}

@media (min-width:901px) and (max-width:1120px) {
    .fm-archive-tools {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .fm-archive-tools__utility {
        grid-template-columns: minmax(260px,1fr) minmax(210px,240px);
        max-width: 620px;
        margin-left: auto;
        width: 100%;
    }
}

/* Mobile/tablet catalog controls: do not squeeze desktop chips into narrow
   screens. 900px is intentional because 768/820 tablets need touch UI too. */

@media (max-width:900px) {
    .fm-archive-tools {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .fm-archive-tools__filters {
        display: none !important;
    }

    .fm-mobile-catalog-actions {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        order: 1;
    }

    .fm-archive-tools__utility {
        display: block !important;
        order: 2;
    }

    .fm-archive-tools__utility .fm-sort-wrap {
        display: none !important;
    }

    .fm-collection-search {
        width: 100% !important;
    }

    .fm-collection-search input {
        height: 44px !important;
    }

    .fm-filter-panel {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 10010;
        display: block !important;
        max-height: min(82dvh,720px);
        padding: 18px 14px calc(20px + env(safe-area-inset-bottom,0px));
        border: 0;
        border-radius: 14px 14px 0 0;
        background: #fff;
        box-shadow: 0 -24px 60px rgba(0,0,0,.18);
        overflow: auto;
        transform: translateY(105%);
        visibility: hidden;
        transition: transform .24s var(--fm-ease),visibility .24s ease;
    }

    .fm-filter-panel.is-open {
        transform: none;
        visibility: visible;
    }

    .fm-filter-panel.is-open + .fm-filter-backdrop {
        position: fixed;
        inset: 0;
        z-index: 10000;
        display: block !important;
        border: 0;
        background: rgba(0,0,0,.42);
    }

    .fm-catalog-results ul.products {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        gap: 24px 10px !important;
    }
}

/* Single-product rating and pricing hierarchy. */

.fm-product-rating-row {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap;
    gap: 8px !important;
    margin: 0 0 10px !important;
    color: #777;
    font-size: 13px;
    line-height: 1.4;
}

.fm-product-rating-row .star-rating {
    float: none !important;
    flex: 0 0 auto;
    margin: 0 !important;
    color: #f4a300 !important;
    font-size: 13px !important;
}

.fm-product-rating-row .fm-rating-empty {
    display: inline-block;
    color: #b8b8b8;
    letter-spacing: 1.5px;
    line-height: 1;
}

.fm-product-rating-row .fm-review-link {
    display: inline-block;
    margin: 0 !important;
    color: #666;
    text-decoration: none;
    white-space: normal;
}

.fm-product-price-block {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 9px !important;
    margin: 0 0 18px !important;
}

.fm-product-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 9px;
    min-width: 0;
    color: var(--fm-red);
    font-size: 22px;
    font-weight: 850;
    line-height: 1.25;
}

.fm-product-price del {
    order: 0;
    color: #8c8c8c !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    opacity: 1 !important;
    text-decoration-thickness: 1px;
}

.fm-product-price ins {
    order: 1;
    color: var(--fm-red) !important;
    font-size: 22px !important;
    font-weight: 850 !important;
    text-decoration: none !important;
}

.fm-product-price>.woocommerce-Price-amount {
    color: var(--fm-red) !important;
}

.fm-save-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    background: var(--fm-red-soft);
    color: var(--fm-red);
    font-size: 11px;
    font-weight: 850;
    white-space: nowrap;
}

/* Cart desktop: summary must remain a usable 390–420px panel. Shipping rows
   can then breathe instead of wrapping every word into a narrow column. */

.woocommerce-cart .fm-main>.fm-container {
    width: min(1360px,calc(100% - 48px));
}

.fm-cart-layout {
    grid-template-columns: minmax(0,1fr) minmax(390px,420px) !important;
    gap: 32px !important;
}

.fm-cart-summary-panel {
    min-width: 0;
    width: 100%;
}

.fm-cart-summary-panel .cart_totals {
    width: 100% !important;
    box-sizing: border-box;
    overflow: hidden;
}

.fm-summary-row {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) max-content;
    align-items: start;
    gap: 16px;
}

.fm-summary-row>strong {
    min-width: 0;
    max-width: 180px;
    overflow-wrap: anywhere;
}

.fm-summary-shipping {
    grid-template-columns: 96px minmax(0,1fr) !important;
    gap: 14px !important;
}

.fm-summary-shipping .fm-shipping-table-wrap,
.fm-summary-shipping .fm-shipping-table {
    min-width: 0;
    width: 100% !important;
}

.fm-shipping-table label {
    overflow-wrap: normal;
    word-break: normal;
}

.fm-cart-summary__trust {
    flex-wrap: wrap;
}

@media (max-width:1180px) and (min-width:1025px) {
    .fm-cart-layout {
        grid-template-columns: minmax(0,1fr) 360px !important;
        gap: 24px !important;
    }
}

@media (max-width:1024px) {
    .fm-cart-layout {
        grid-template-columns: 1fr !important;
    }

    .fm-cart-summary-panel {
        position: static !important;
    }
}

@media (max-width:720px) {
    .fm-summary-row {
        grid-template-columns: minmax(0,1fr) max-content;
    }

    .fm-summary-shipping {
        grid-template-columns: 86px minmax(0,1fr) !important;
    }
}

/* Checkout: keep the classic layout compact on desktop and make the order
   summary a deliberate panel. Phone is visually required even if another
   locale extension tries to mark it optional before our final PHP filter. */

@media (min-width:1025px) {
    .woocommerce-checkout .fm-main>.fm-container {
        width: min(1220px,calc(100% - 48px));
    }

    .woocommerce-checkout form.checkout {
        grid-template-columns: minmax(0,700px) minmax(380px,420px) !important;
        column-gap: 64px !important;
        justify-content: space-between;
    }

    .fm-checkout-summary__sticky {
        padding: 22px;
        border: 1px solid var(--fm-line);
        border-radius: 10px;
        background: #fff;
        box-shadow: 0 14px 38px rgba(0,0,0,.045);
    }
}

.woocommerce-checkout #billing_phone_field label .optional {
    display: none !important;
}

.woocommerce-checkout #billing_phone_field label:after {
    content: " *";
    color: #b11d21;
}

.woocommerce-checkout #billing_phone_field abbr.required {
    display: inline !important;
}

.woocommerce-checkout #billing_phone_field input {
    border-color: #c9c9c7 !important;
}

/* Related products use deterministic responsive columns after grid normalization. */

.fm-people-also-bought .related.products ul.products {
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
}

@media (max-width:899px) {
    .fm-people-also-bought .related.products ul.products {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        gap: 22px 10px !important;
    }
}

/* Touch toolbar behavior for phones and tablets. */

@media (max-width:900px) {
    .fm-mobile-filter-button,
    .fm-mobile-sort-wrap {
        min-height: 44px;
        border: 1px solid var(--fm-line-strong);
        border-radius: 6px;
        background: #fff;
    }

    .fm-mobile-filter-button {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        padding: 0 12px;
        color: #222;
        font-size: 12px;
        font-weight: 850;
        text-transform: uppercase;
        letter-spacing: .05em;
    }

    .fm-mobile-filter-button.is-active {
        border-color: var(--fm-red);
        color: var(--fm-red);
    }

    .fm-mobile-filter-button b {
        display: grid;
        place-items: center;
        min-width: 19px;
        height: 19px;
        padding: 0 5px;
        border-radius: 999px;
        background: var(--fm-red);
        color: #fff;
        font-size: 10px;
    }

    .fm-mobile-sort-wrap {
        display: grid;
        grid-template-columns: auto minmax(0,1fr);
        align-items: center;
        padding-left: 10px;
        color: #666;
        font-size: 11px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .04em;
    }

    .fm-mobile-sort-wrap form,
    .fm-mobile-sort-wrap .woocommerce-ordering {
        margin: 0 !important;
        min-width: 0;
        width: 100% !important;
    }

    .fm-mobile-sort-wrap select {
        width: 100%;
        height: 42px !important;
        border: 0 !important;
        background: transparent !important;
        padding: 0 28px 0 7px !important;
        font-size: 12px !important;
    }
}

/* Exactly one visual required marker for phone. */

.woocommerce-checkout #billing_phone_field label abbr.required {
    display: none !important;
}

/* Checkout containment shared by the native page template and Elementor shell. */

.woocommerce-checkout .fm-main .woocommerce {
    width: min(1180px,calc(100% - 44px)) !important;
    margin-inline: auto !important;
    box-sizing: border-box;
}

.woocommerce-checkout .fm-main--elementor .fm-page-elementor-shell {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-inline: 0 !important;
}

@media (max-width:1180px) {
    .woocommerce-checkout .fm-main .woocommerce {
        width: calc(100% - 36px) !important;
    }
}

@media (max-width:720px) {
    .woocommerce-checkout .fm-main .woocommerce {
        width: calc(100% - 24px) !important;
    }
}

/* Persistent catalog filter state.
   Selected filters must remain unmistakable after the page reloads. The group
   chips get a branded active treatment, exact selections stay visible as
   removable pills, and the open panel highlights fields that currently affect
   the query. */

.fm-filter-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    white-space: nowrap;
    transition: border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease;
}

.fm-filter-chip.is-active {
    border-color: var(--fm-red) !important;
    background: var(--fm-red) !important;
    color: #fff !important;
    box-shadow: 0 0 0 1px var(--fm-red);
}

.fm-filter-chip.is-active:before {
    content: "✓";
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
}

.fm-filter-chip.is-active:hover {
    background: var(--fm-red-dark) !important;
    border-color: var(--fm-red-dark) !important;
}

.fm-active-filters {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 0 0 14px;
    border-bottom: 1px solid var(--fm-line);
}

.fm-active-filters__label {
    flex: 0 0 auto;
    padding-top: 7px;
    color: #666;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fm-active-filters__list {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    min-width: 0;
}

.fm-active-filter-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 32px;
    padding: 0 9px 0 11px;
    border: 1px solid #e4b7b9;
    border-radius: 999px;
    background: var(--fm-red-soft);
    color: var(--fm-red);
    font-size: 12px;
    font-weight: 760;
    line-height: 1.2;
    text-decoration: none;
    transition: .16s ease;
}

.fm-active-filter-pill b {
    display: grid;
    place-items: center;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: var(--fm-red);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
}

.fm-active-filter-pill:hover {
    border-color: var(--fm-red);
    background: #ffe7e8;
    color: var(--fm-red-dark);
}

.fm-filter-field.has-value label,
.fm-filter-panel .fm-check.has-value span {
    color: var(--fm-red);
    font-weight: 850;
}

.fm-filter-field.has-value :is(input,
select) {
    border-color: var(--fm-red) !important;
    background: #fffafa !important;
    box-shadow: 0 0 0 1px rgba(152,27,31,.07);
}

.fm-filter-panel .fm-check.has-value {
    padding-inline: 9px;
    border: 1px solid #e4b7b9;
    border-radius: 5px;
    background: var(--fm-red-soft);
}

.fm-filter-panel .fm-check.has-value input {
    accent-color: var(--fm-red);
}

@media (max-width:900px) {
    body.fm-filter-open {
        overflow: hidden;
    }

    .fm-mobile-filter-button.is-active {
        border-color: var(--fm-red) !important;
        background: var(--fm-red) !important;
        color: #fff !important;
        box-shadow: 0 0 0 1px var(--fm-red);
    }

    .fm-mobile-filter-button.is-active b {
        background: #fff !important;
        color: var(--fm-red) !important;
    }

    .fm-active-filters {
        margin-top: -1px;
        padding: 0 0 12px;
    }

    .fm-active-filters__list {
        flex-wrap: nowrap;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
        padding: 0 2px 3px;
    }

    .fm-active-filters__list::-webkit-scrollbar {
        display: none;
    }

    .fm-active-filter-pill {
        flex: 0 0 auto;
    }
}

@media (max-width:720px) {
    .fm-active-filters {
        gap: 7px;
    }

    .fm-active-filters__label {
        padding-top: 8px;
        font-size: 10px;
    }

    .fm-active-filter-pill {
        min-height: 31px;
        font-size: 11px;
    }

    .fm-filter-panel__grid {
        grid-template-columns: 1fr !important;
    }

    .fm-filter-panel .fm-check {
        grid-column: 1 !important;
    }
}

.fm-archive-tools__filters {
    min-width: 0;
    flex-wrap: wrap;
}

/* Elementor/WooCommerce integration boundaries.
   The checkout grid is the invariant layout root, so container sizing belongs
   there rather than on an optional shortcode wrapper. Responsive hero rules
   intentionally outrank saved Elementor minimum heights on touch layouts. */

.woocommerce-checkout .fm-checkout-layout {
    width: min(1180px,calc(100% - 48px)) !important;
    max-width: 1180px !important;
    margin-inline: auto !important;
    box-sizing: border-box !important;
}

.woocommerce-checkout .fm-checkout-layout>form.checkout {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
}

@media (min-width:1025px) {
    .woocommerce-checkout .fm-checkout-layout>form.checkout {
        grid-template-columns: minmax(0,1fr) minmax(360px,390px) !important;
        column-gap: 40px !important;
        justify-content: stretch !important;
    }

    .woocommerce-checkout .fm-checkout-summary__sticky {
        top: 24px;
    }
}

@media (max-width:1180px) {
    .woocommerce-checkout .fm-checkout-layout {
        width: calc(100% - 36px) !important;
    }
}

@media (max-width:1024px) {
    .woocommerce-checkout .fm-checkout-layout {
        max-width: 760px !important;
    }
}

@media (max-width:720px) {
    .woocommerce-checkout .fm-checkout-layout {
        width: calc(100% - 24px) !important;
        max-width: none !important;
    }
}

/* Compact responsive hero: preserve the two-part story while keeping the first
   mobile screen useful. !important intentionally wins over Elementor's saved
   responsive min-height declarations on existing Hero Slider instances. */

@media (max-width:1024px) {
    .fm-hero__viewport {
        min-height: 0 !important;
    }

    .fm-hero__slide {
        min-height: 620px !important;
    }

    .fm-hero__grid {
        min-height: 620px !important;
        grid-template-rows: minmax(0,300px) minmax(0,320px);
    }

    .fm-hero__content {
        min-height: 0 !important;
        padding: 42px 32px 34px 0;
    }

    .fm-hero__visual {
        min-height: 0 !important;
    }

    .fm-hero__visual img {
        max-height: 290px;
    }
}

@media (max-width:720px) {
    .fm-hero__slide {
        min-height: 560px !important;
    }

    .fm-hero__grid {
        min-height: 560px !important;
        grid-template-rows: minmax(0,320px) minmax(0,240px);
    }

    .fm-hero__content {
        min-height: 0 !important;
        padding: 28px 18px 22px 0;
    }

    .fm-hero__eyebrow {
        margin-bottom: 12px;
        font-size: 11px;
        letter-spacing: .14em;
    }

    .fm-hero__content h1 {
        font-size: clamp(34px,10.5vw,42px);
        line-height: 1;
        letter-spacing: -.052em;
    }

    .fm-hero__content p {
        margin-top: 13px;
        font-size: 13px;
        line-height: 1.55;
    }

    .fm-hero__actions {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 10px 14px;
        margin-top: 17px;
    }

    .fm-hero__actions .fm-button {
        min-height: 42px !important;
        padding-inline: 16px !important;
        font-size: 12px !important;
    }

    .fm-hero__text-link {
        font-size: 12px;
    }

    .fm-hero__visual {
        min-height: 240px !important;
    }

    .fm-hero__visual img {
        width: 78%;
        max-height: 215px;
    }

    .fm-hero__dots {
        bottom: 10px;
    }
}

@media (max-width:390px) {
    .fm-hero__slide {
        min-height: 545px !important;
    }

    .fm-hero__grid {
        min-height: 545px !important;
        grid-template-rows: minmax(0,315px) minmax(0,230px);
    }

    .fm-hero__content {
        padding-top: 24px;
        padding-bottom: 18px;
    }

    .fm-hero__content h1 {
        font-size: 34px;
    }

    .fm-hero__visual {
        min-height: 230px !important;
    }

    .fm-hero__visual img {
        max-height: 205px;
    }
}

/* Storefront asset boundary: text-data repair is handled by Fine Mobiles Core. */

/* Elementor editor compatibility — v5.0.8.
   Keep zero-gap rules inside the authenticated editor preview only. Public
   pages must retain page.php's content shell, max-width and responsive spacing. */
.fm-elementor-editor-preview,
.fm-elementor-preview-canvas,
.fm-elementor-page--preview {
    margin: 0;
    padding: 0;
    width: 100%;
}

.fm-elementor-editor-preview {
    background: #fff;
}

.fm-elementor-preview-canvas,
.fm-elementor-page--preview {
    min-height: 100vh;
}
