.fm-layered {
    --fml-primary: #0755f4;
    --fml-radius: 24px;
    --fml-max: 1240px;
    width: 100%;
    max-width: var(--fml-max);
    margin: 12px auto;
    color: #111;
    font-family: inherit;
}
.fm-layered, .fm-layered *, .fm-layered *::before, .fm-layered *::after { box-sizing: border-box; }
.fm-layered button { font-family: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.fm-layered a { -webkit-tap-highlight-color: transparent; }
.fm-layered :focus-visible { outline: 2px solid var(--fml-primary); outline-offset: 4px; }
.fm-layered__heading { margin: 0 0 16px; font-size: clamp(23px, 3vw, 34px); font-weight: 800; line-height: 1.15; }
.fm-layered__carousel { position: relative; }
.fm-layered__rail, .fm-layered__category-rail {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    touch-action: auto;
}
.fm-layered__rail::-webkit-scrollbar, .fm-layered__category-rail::-webkit-scrollbar { display: none; }
.fm-layered__rail { position: relative; margin-right: -14px; padding: 1px 0 2px; cursor: grab; }
.fm-layered__rail.is-dragging, .fm-layered__category-rail.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.fm-layered__rail.is-repositioning { scroll-snap-type: none !important; scroll-behavior: auto !important; }
.fm-layered__slide {
    position: relative;
    flex: 0 0 calc(var(--fml-mobile-card, 80%) - 9.6px);
    min-width: 0;
    overflow: hidden;
    container-type: inline-size;
    scroll-snap-align: start;
    border: 1px solid #ebeaf0;
    border-radius: var(--fml-radius);
    background: var(--fml-bg);
    color: #111 !important;
    text-decoration: none !important;
    user-select: none;
    -webkit-user-drag: none;
}
.fm-layered__stage {
    --fml-active-image-width: var(--fml-image-width, 67%);
    --fml-active-image-x: var(--fml-image-x, 66.5%);
    --fml-active-image-bottom: var(--fml-image-bottom, 0%);
    --fml-active-copy-width: var(--fml-copy-width, 39%);
    --fml-active-title-size: var(--fml-title-size, 7.2cqi);
    position: relative;
    width: 100%;
    aspect-ratio: 1.8;
    min-height: 160px;
    overflow: hidden;
    isolation: isolate;
    background: var(--fml-bg);
}
.fm-layered__copy { position: absolute; z-index: 3; inset: 10% auto 10% 5%; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; width: var(--fml-active-copy-width); color: var(--fml-ink); text-align: left; pointer-events: none; }
.fm-layered__eyebrow { display: block; margin-bottom: 8px; font-size: clamp(9px, 2.5cqi, 13px); font-weight: 700; line-height: 1.2; }
.fm-layered__title { display: block; max-width: 100%; margin: 0; font-size: min(var(--fml-active-title-size), 60px); font-weight: 800; line-height: .99; letter-spacing: -.045em; }
.fm-layered__subtitle { display: block; max-width: 100%; margin-top: 9px; font-size: clamp(10px, 3cqi, 17px); font-weight: 400; line-height: 1.35; letter-spacing: -.015em; }
.fm-layered__cta { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 34px; margin-top: 16px; padding: 8px; border-radius: 7px; background: var(--fml-button-bg); color: var(--fml-button-ink); font-size: clamp(10px, 3.4cqi, 16px); font-weight: 700; line-height: 1.2; white-space: nowrap; }
.fm-layered__cta .icon-arrow-right { flex: 0 0 auto; font-size: .9em; }
.fm-layered__accent { position: absolute; z-index: 1; inset: 0; display: block; width: 100%; height: 100%; object-fit: fill; pointer-events: none; }
.fm-layered__art-window { position: absolute; z-index: 2; inset: 0; display: block; overflow: hidden; pointer-events: none; }
.fm-layered__bouquet { position: absolute; bottom: var(--fml-active-image-bottom); left: var(--fml-active-image-x); display: block; width: var(--fml-active-image-width); transform: translateX(-50%); pointer-events: none; }
.fm-layered__bouquet img { display: block; width: 100%; height: auto; max-width: none; pointer-events: none; user-select: none; -webkit-user-drag: none; }
.fm-layered__bouquet img:not([src]) { visibility: hidden; }
.fm-layered__arrow { position: absolute; z-index: 4; top: calc(50% - 24px); display: none; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 1px solid #dce7ff; border-radius: 50%; background: #fff; color: var(--fml-primary); font-size: 20px; }
.fm-layered__arrow--prev { left: -12px; }
.fm-layered__arrow--next { right: -12px; }
.fm-layered__dots { display: flex; align-items: center; justify-content: center; gap: 0; height: 32px; }
.fm-layered__dot { display: grid; place-items: center; width: 24px; height: 32px; padding: 0; border: 0; border-radius: 5px; background: transparent; }
.fm-layered__dot::before { content: ""; display: block; width: 9px; height: 9px; border-radius: 99px; background: #c5e3f5; transition: background-color .16s ease; }
.fm-layered__dot.is-active::before { background: var(--fml-primary); }
.fm-layered__status { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.fm-layered__categories { margin-top: 6px; }
.fm-layered__categories-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.fm-layered__categories-head h2 { margin: 0; color: #111; font-size: clamp(21px, 5.5vw, 28px); font-weight: 800; line-height: 1.15; letter-spacing: -.035em; }
.fm-layered__categories-head button { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; padding: 6px 0; border: 0; background: transparent; color: #0078d9; font-size: clamp(14px, 3.7vw, 18px); font-weight: 800; line-height: 1.2; }
.fm-layered__categories-head button .fa-arrow-right-long { font-size: 1.05em; }
.fm-layered__category-rail { --fml-category-headroom: clamp(12px, 3vw, 22px); gap: 5px; margin-top: calc(-1 * var(--fml-category-headroom)); margin-right: -14px; padding: calc(2px + var(--fml-category-headroom)) 0 6px; scroll-snap-type: x proximity; scroll-padding-inline: 2px; cursor: grab; }
.fm-layered__category { position: relative; isolation: isolate; container-type: inline-size; display: grid; flex: 0 0 calc((100% - 36px) / 3.25); grid-template-rows: auto auto; justify-items: center; align-content: start; gap: 0; min-width: 0; scroll-snap-align: start; color: #111; font-size: clamp(12px, 3.5vw, 16px); text-align: left; text-decoration: none !important; user-select: none; }
.fm-layered__category::before { content: ""; position: absolute; z-index: -1; inset: 20cqi 4% 0; border: 1.5px solid #78b5ff; border-radius: clamp(14px, 16cqi, 28px) clamp(14px, 16cqi, 28px) clamp(12px, 12cqi, 22px) clamp(12px, 12cqi, 22px); background: #fff; }
.fm-layered__category-photo { position: relative; display: block; width: 100%; aspect-ratio: .9; isolation: isolate; }
.fm-layered__category-photo::before { content: ""; position: absolute; z-index: -1; inset: 18% calc(4% + 1.5px) 0; border-radius: clamp(14px, 16cqi, 28px) clamp(14px, 16cqi, 28px) 12cqi 12cqi; background: #fff; pointer-events: none; }
.fm-layered__category--cutout .fm-layered__category-photo::before { background-image: url("images/category-botanical.webp?v=3ebcbcf3"); background-position: center bottom; background-size: 100% 100%; background-repeat: no-repeat; opacity: .5; }
.fm-layered__category--cutout:nth-child(even) .fm-layered__category-photo::before { transform: scaleX(-1); }
.fm-layered__category-photo img { position: absolute; inset: 18% 4% 0; display: block; width: 92%; height: 82%; border-radius: 17%; object-fit: cover; pointer-events: none; user-select: none; -webkit-user-drag: none; }
.fm-layered__category--cutout .fm-layered__category-photo img { inset: auto; bottom: 0; left: 50%; width: 110%; height: auto; max-width: none; border-radius: 0; object-fit: contain; object-position: center bottom; transform: translateX(-50%); }
.fm-layered__category-photo img:not([src]) { visibility: hidden; }
.fm-layered__category-footer { --fml-label-size: clamp(12px, 12cqi, 15px); display: flex; align-items: center; justify-content: space-between; gap: 4cqi; width: 92%; min-height: max(44px, calc(var(--fml-label-size) * 3.3)); padding: 7px 6cqi 10px; font-size: var(--fml-label-size); }
.fm-layered__category-name { display: -webkit-box; min-width: 0; max-height: 2.4em; overflow: hidden; color: #111; font-size: inherit; font-weight: 700; line-height: 1.2; letter-spacing: -.035em; text-wrap: balance; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.fm-layered__category--long-title .fm-layered__category-name { font-size: clamp(11px, 10.8cqi, 17px); text-wrap: wrap; }
.fm-layered__category-arrow { display: grid; place-items: center; flex: 0 0 auto; width: clamp(20px, 18cqi, 30px); height: clamp(20px, 18cqi, 30px); border-radius: 50%; background: var(--fml-primary); color: #fff; font-size: clamp(11px, 10cqi, 16px); line-height: 1; }
.fm-layered__category-arrow::before { display: block; transform: rotate(-45deg); }
.fm-layered__dialog { width: min(960px, calc(100% - 32px)); max-width: none; max-height: 88dvh; margin: auto; padding: 0; overflow: auto; overscroll-behavior: contain; border: 1px solid #e7ecf1; border-radius: 24px; background: #fff; color: #111; font-family: inherit; }
.fm-layered__dialog::backdrop { background: rgb(0 0 0 / .42); }
.fm-layered__dialog-head { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 24px; border-bottom: 1px solid #edf1f5; background: #fff; }
.fm-layered__dialog-head h2 { margin: 0; font-size: clamp(20px, 2.5vw, 26px); font-weight: 800; }
.fm-layered__dialog-head button { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 1px solid #edf1f5; border-radius: 50%; background: #fff; color: #111; }
.fm-layered__dialog-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 20px; padding: 32px 24px 24px; }
.fm-layered__dialog-card .fm-layered__category-footer { position: static; display: flex; min-height: 76px; gap: 8px; padding: 12px 6cqi 16px; font-size: clamp(15px, 7cqi, 20px); }
.fm-layered__dialog-card .fm-layered__category-name { max-height: none; overflow: visible; overflow-wrap: anywhere; text-wrap: wrap; -webkit-line-clamp: unset; }
.fm-layered__dialog-card .fm-layered__category-arrow { position: static; width: clamp(26px, 13cqi, 36px); height: clamp(26px, 13cqi, 36px); font-size: clamp(14px, 7cqi, 19px); }
@media (min-width: 576px) {
    .fm-layered__category-photo img[data-fml-tablet-ready] { visibility: visible; }
    .fm-layered__category--long-title .fm-layered__category-name { font-size: clamp(12px, 9cqi, 16px); }
    .fm-layered { margin-top: 20px; }
    .fm-layered__rail, .fm-layered__category-rail { margin-right: 0; }
    .fm-layered__rail { gap: 14px; }
    .fm-layered__slide { flex-basis: 96%; }
    .fm-layered__stage {
        --fml-active-image-width: var(--fml-image-width-tablet, 62%);
        --fml-active-image-x: var(--fml-image-x-tablet, 69%);
        --fml-active-image-bottom: var(--fml-image-bottom-tablet, var(--fml-image-bottom));
        --fml-active-copy-width: var(--fml-copy-width-tablet, 38%);
        --fml-active-title-size: var(--fml-title-size-tablet, 6cqi);
        aspect-ratio: 2.9;
    }
    .fm-layered__copy { left: 3.2%; }
    .fm-layered__subtitle { font-size: clamp(12px, 2.15cqi, 18px); }
    .fm-layered__cta { min-height: 38px; margin-top: 18px; padding: 10px 15px; font-size: clamp(12px, 2.15cqi, 16px); }
    .fm-layered__categories { margin-top: 10px; }
    .fm-layered__category { flex-basis: calc((100% - 64px) / 4.25); font-size: 16px; }
}
@media (min-width: 1100px) {
    .fm-layered__category-photo img[data-fml-desktop-ready] { visibility: visible; }
    .fm-layered__bouquet img[data-fml-desktop-ready] { visibility: visible; }
    .fm-layered__rail { gap: 16px; }
    .fm-layered__slide { flex-basis: calc((100% - 32px) / 2.5); }
    .fm-layered__stage {
        --fml-active-image-width: var(--fml-image-width-desktop, var(--fml-image-width-tablet, 67%));
        --fml-active-image-x: var(--fml-image-x-desktop, var(--fml-image-x-tablet, 66.5%));
        --fml-active-image-bottom: var(--fml-image-bottom-desktop, var(--fml-image-bottom-tablet, var(--fml-image-bottom)));
        --fml-active-copy-width: var(--fml-copy-width-desktop, var(--fml-copy-width-tablet, 38%));
        --fml-active-title-size: var(--fml-title-size-desktop, var(--fml-title-size-tablet, 6cqi));
        aspect-ratio: 2.25;
    }
    .fm-layered__arrow { display: flex; }
    .fm-layered__dots { height: 34px; }
    .fm-layered__categories { margin-top: 14px; }
    .fm-layered__category-rail { gap: 10px; }
    .fm-layered__category { flex-basis: calc((100% - 120px) / 6.5); font-size: 17px; }
}
@media (max-width: 575px) {
    .fm-layered__category--long-title .fm-layered__category-footer { position: relative; display: block; }
    .fm-layered__category--long-title .fm-layered__category-arrow { position: absolute; right: 6cqi; bottom: 11px; }
    .fm-layered { padding-left: max(0px, calc(4.35vw - 14px)); }
    .fm-layered__dialog { width: 100%; max-height: 90dvh; margin: auto 0 0; padding-bottom: env(safe-area-inset-bottom); border-radius: 24px 24px 0 0; }
    .fm-layered__dialog-head { padding: 12px 16px; }
    .fm-layered__dialog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 8px; padding: 24px 12px 18px; }
    .fm-layered__dialog-card .fm-layered__category-footer { position: relative; display: block; min-height: 82px; padding: 8px 7px 36px; font-size: clamp(12px, 12cqi, 14px); }
    .fm-layered__dialog-card .fm-layered__category-arrow { position: absolute; right: 7px; bottom: 8px; width: 24px; height: 24px; font-size: 13px; }
}
@media (hover: hover) and (pointer: fine) {
    .fm-layered__arrow:hover { background: #f0f5ff; }
    .fm-layered__slide:hover .fm-layered__cta { opacity: .88; }
    .fm-layered__category:hover::before { border-color: var(--fml-primary); }
}
@media (prefers-reduced-motion: reduce) {
    .fm-layered *, .fm-layered *::before { scroll-behavior: auto !important; transition: none !important; }
}

/* Theme 2: complete photographic scenes, with independent live copy and CTA. */
.fm-layered--fresh .fm-layered__slide { border: 0; }
.fm-layered--fresh .fm-layered__stage {
    --fml-active-copy-width: var(--fml-copy-width, 49%);
    --fml-active-title-size: var(--fml-title-size, 9.4cqi);
    --fml-active-copy-x: var(--fml-copy-x, 4%);
    --fml-active-copy-y: var(--fml-copy-y, 15%);
    --fml-active-body-size: var(--fml-body-size, 2.9cqi);
    --fml-active-button-x: var(--fml-button-x, 4%);
    --fml-active-button-y: var(--fml-button-y, 75%);
    --fml-active-photo-x: var(--fml-photo-x, 50%);
    --fml-active-photo-y: var(--fml-photo-y, 50%);
    --fml-active-photo-zoom: var(--fml-photo-zoom, 1);
    min-height: 0;
    aspect-ratio: 1.7;
}
.fm-layered--fresh .fm-layered__bouquet { inset: 0; width: 100%; height: 100%; transform: none; }
.fm-layered--fresh .fm-layered__bouquet img {
    width: 100%; height: 100%; object-fit: cover;
    object-position: var(--fml-active-photo-x) var(--fml-active-photo-y);
    transform: scale(var(--fml-active-photo-zoom));
    transform-origin: var(--fml-active-photo-x) var(--fml-active-photo-y);
}
.fm-layered--fresh .fm-layered__copy { inset: auto; top: var(--fml-active-copy-y); left: var(--fml-active-copy-x); display: block; width: var(--fml-active-copy-width); }
.fm-layered--fresh .fm-layered__slide--copy-right .fm-layered__copy { left: auto; right: var(--fml-active-copy-x); text-align: right; }
.fm-layered--fresh .fm-layered__title { font-size: min(var(--fml-active-title-size), 72px); font-weight: 800; line-height: .98; letter-spacing: -.045em; }
.fm-layered--fresh .fm-layered__subtitle { margin-top: 2.5cqi; font-size: clamp(10px, var(--fml-active-body-size), 22px); font-weight: 700; line-height: 1.3; }
.fm-layered--fresh .fm-layered__cta--scene {
    position: absolute; z-index: 3; top: min(var(--fml-active-button-y), calc(100% - clamp(30px, 7.8cqi, 48px) - 4cqi)); left: var(--fml-active-button-x);
    min-height: clamp(30px, 7.8cqi, 48px); max-width: 92%; margin: 0; padding: 8px 12px; gap: 9px;
    border-radius: 10px; font-size: clamp(10px, 3.1cqi, 18px); font-weight: 800; line-height: 1.1;
    pointer-events: none;
}
.fm-layered--fresh .fm-layered__slide--button-right .fm-layered__cta--scene { left: auto; right: var(--fml-active-button-x); }
.fm-layered--fresh .fm-layered__dot.is-active::before { width: 20px; background: #315cca; }
.fm-layered--fresh .fm-layered__arrow { top: auto; bottom: 1px; width: 30px; height: 30px; font-size: 16px; }
.fm-layered--fresh .fm-layered__arrow--prev { left: calc(50% - 96px); }
.fm-layered--fresh .fm-layered__arrow--next { right: calc(50% - 96px); }
@media (max-width: 359px) {
    .fm-layered__category-footer { position: relative; display: block; min-height: 66px; padding: 7px 6px 28px; }
    .fm-layered__category-arrow { position: absolute; right: 7px; bottom: 7px; }
    .fm-layered--fresh .fm-layered__copy { top: min(var(--fml-active-copy-y), 8%); }
    .fm-layered--fresh .fm-layered__title { font-size: min(var(--fml-active-title-size), 8.8cqi); }
    .fm-layered--fresh .fm-layered__subtitle { max-width: 88%; margin-top: 1.5cqi; }
    .fm-layered--fresh .fm-layered__subtitle br { display: none; }
}
@media (min-width: 576px) {
    .fm-layered--fresh .fm-layered__stage {
        --fml-active-copy-width: var(--fml-copy-width-tablet, var(--fml-copy-width, 49%));
        --fml-active-title-size: var(--fml-title-size-tablet, var(--fml-title-size, 9.4cqi));
        --fml-active-copy-x: var(--fml-copy-x-tablet, var(--fml-copy-x, 4%));
        --fml-active-copy-y: var(--fml-copy-y-tablet, var(--fml-copy-y, 15%));
        --fml-active-body-size: var(--fml-body-size-tablet, var(--fml-body-size, 2.9cqi));
        --fml-active-button-x: var(--fml-button-x-tablet, var(--fml-button-x, 4%));
        --fml-active-button-y: var(--fml-button-y-tablet, var(--fml-button-y, 75%));
        --fml-active-photo-x: var(--fml-photo-x-tablet, var(--fml-photo-x, 50%));
        --fml-active-photo-y: var(--fml-photo-y-tablet, var(--fml-photo-y, 50%));
        --fml-active-photo-zoom: var(--fml-photo-zoom-tablet, var(--fml-photo-zoom, 1));
    }
}
@media (min-width: 1100px) {
    .fm-layered--fresh .fm-layered__stage {
        --fml-active-copy-width: var(--fml-copy-width-desktop, var(--fml-copy-width-tablet, var(--fml-copy-width, 49%)));
        --fml-active-title-size: var(--fml-title-size-desktop, var(--fml-title-size-tablet, var(--fml-title-size, 9.4cqi)));
        --fml-active-copy-x: var(--fml-copy-x-desktop, var(--fml-copy-x-tablet, var(--fml-copy-x, 4%)));
        --fml-active-copy-y: var(--fml-copy-y-desktop, var(--fml-copy-y-tablet, var(--fml-copy-y, 15%)));
        --fml-active-body-size: var(--fml-body-size-desktop, var(--fml-body-size-tablet, var(--fml-body-size, 2.9cqi)));
        --fml-active-button-x: var(--fml-button-x-desktop, var(--fml-button-x-tablet, var(--fml-button-x, 4%)));
        --fml-active-button-y: var(--fml-button-y-desktop, var(--fml-button-y-tablet, var(--fml-button-y, 75%)));
        --fml-active-photo-x: var(--fml-photo-x-desktop, var(--fml-photo-x-tablet, var(--fml-photo-x, 50%)));
        --fml-active-photo-y: var(--fml-photo-y-desktop, var(--fml-photo-y-tablet, var(--fml-photo-y, 50%)));
        --fml-active-photo-zoom: var(--fml-photo-zoom-desktop, var(--fml-photo-zoom-tablet, var(--fml-photo-zoom, 1)));
    }
}
