/* =====================================================================
   FUTURE CARATS — GLOBAL STYLESHEET
   ---------------------------------------------------------------------
   Colours come from the admin Colour Studio (Settings > theme_colors).
   The layout prints the palette into :root; this file only uses tokens.
   Values below are brand fallbacks for pages that render without it.
   ===================================================================== */

/* ---------- 1. Palette fallbacks (overridden by the layout) ---------- */
:root {
    --fc-primary: #5A1E2C;          --fc-primary-rgb: 90, 30, 44;
    --fc-primary-dark: #3D1420;     --fc-primary-dark-rgb: 61, 20, 32;
    --fc-primary-tint: #F7F1F2;
    --fc-surface: #F1D6D0;          --fc-surface-rgb: 241, 214, 208;
    --fc-surface-alt: #FFFFFF;      --fc-surface-alt-rgb: 255, 255, 255;
    --fc-surface-deep: #E7C7C2;
    --fc-ink: #0E0E0E;              --fc-ink-rgb: 14, 14, 14;
    --fc-on-dark: #F1D6D0;          --fc-on-dark-rgb: 241, 214, 208;
    --fc-on-primary: #F1D6D0;
    --fc-accent-d: #F1D6D0;         --fc-accent-d-rgb: 241, 214, 208;
    --fc-accent-d-strong: #F6E4E0;  --fc-accent-d-soft: #F9EEEB;   --fc-on-accent-d: #5A1E2C;
    --fc-accent-l: #5A1E2C;         --fc-accent-l-rgb: 90, 30, 44;
    --fc-accent-l-strong: #461722;  --fc-accent-l-soft: #EAE0E2;   --fc-on-accent-l: #F1D6D0;
    --fc-announcement-bg: #5A1E2C;
    --fc-header-bg: #FFFFFF;        --fc-header-bg-rgb: 255, 255, 255;
    --fc-footer-bg: #0E0E0E;
    --fc-maroon: #5A1E2C;
    --fc-maroon-dark: #3D1420;
    --fc-cream: #F1D6D0;
    --fc-text-light: #F1D6D0;
    --fc-paper: #FFFFFF;
    --fc-ink-2: #5A1E2C;

    /* Type */
    --font-display: 'Playfair Display', 'Didot', Georgia, serif;
    --font-ui: 'Manrope', 'Montserrat', 'DM Sans', Arial, sans-serif;
    --fc-fs-display: clamp(2.4rem, 5.2vw, 4.4rem);
    --fc-fs-h2: clamp(1.85rem, 3.3vw, 3rem);
    --fc-fs-h3: clamp(1.3rem, 2vw, 1.7rem);

    /* Rhythm */
    --fc-sec-y: clamp(3.5rem, 7vw, 6.5rem);
    --fc-gutter: clamp(1rem, 3vw, 2rem);
    --fc-r-lg: 22px;
    --fc-r-md: 14px;
    --fc-r-sm: 8px;

    /* Depth (tinted with the primary colour, never grey) */
    --fc-shadow-1: 0 2px 10px rgba(var(--fc-primary-rgb), 0.06);
    --fc-shadow-2: 0 14px 34px rgba(var(--fc-primary-rgb), 0.10);
    --fc-shadow-3: 0 30px 70px rgba(var(--fc-primary-rgb), 0.18);
    --fc-cushion-shadow: var(--fc-shadow-3);
    --fc-shadow: var(--fc-shadow-2);

    --fc-ease-luxe: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ---------- 2. Context tokens -------------------------------------------
   Light context = blush / white backgrounds. Dark = wine / black.
   Sections get one of these classes from ThemeManager automatically, so
   the same markup stays readable whatever colour the admin picks.       */
:root,
body.fc-site,
.fc-ctx-light {
    --fc-accent: var(--fc-accent-l);
    --fc-accent-rgb: var(--fc-accent-l-rgb);
    --fc-accent-strong: var(--fc-accent-l-strong);
    --fc-accent-soft: var(--fc-accent-l-soft);
    --fc-on-accent: var(--fc-on-accent-l);
    --fc-heading: var(--fc-primary);
    --fc-text: var(--fc-ink);
    --fc-muted: rgba(var(--fc-ink-rgb), 0.64);
    --fc-line: rgba(var(--fc-ink-rgb), 0.10);
    --fc-card: #FFFFFF;
    --fc-card-line: rgba(var(--fc-primary-rgb), 0.10);
    /* legacy aliases used by older views */
    --fc-gold: var(--fc-accent-l);
    --fc-gold-rgb: var(--fc-accent-l-rgb);
    --fc-gold-soft: var(--fc-accent-l-soft);
    --fc-gold-gradient: linear-gradient(135deg, var(--fc-accent-l-soft) 0%, var(--fc-accent-l) 55%, var(--fc-accent-l-strong) 100%);
}
.fc-ctx-dark {
    --fc-accent: var(--fc-accent-d);
    --fc-accent-rgb: var(--fc-accent-d-rgb);
    --fc-accent-strong: var(--fc-accent-d-strong);
    --fc-accent-soft: var(--fc-accent-d-soft);
    --fc-on-accent: var(--fc-on-accent-d);
    --fc-heading: var(--fc-on-dark);
    --fc-text: var(--fc-on-dark);
    --fc-muted: rgba(var(--fc-on-dark-rgb), 0.74);
    --fc-line: rgba(var(--fc-on-dark-rgb), 0.16);
    --fc-card: rgba(255, 255, 255, 0.04);
    --fc-card-line: rgba(var(--fc-on-dark-rgb), 0.16);
    --fc-gold: var(--fc-accent-d);
    --fc-gold-rgb: var(--fc-accent-d-rgb);
    --fc-gold-soft: var(--fc-accent-d-soft);
    --fc-gold-gradient: linear-gradient(135deg, var(--fc-accent-d-soft) 0%, var(--fc-accent-d) 55%, var(--fc-accent-d-strong) 100%);
}

/* ---------- 3. Base ---------- */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body.fc-site {
    font-family: var(--font-ui);
    color: var(--fc-ink);
    background: var(--fc-surface);
    font-size: 14px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
}
body.modal-open { padding-right: 0 !important; }
main { flex-grow: 1; }
main > .container { padding-top: 0; padding-bottom: 0; }
h1, h2, h3, h4, h5, h6, .font-serif { font-family: var(--font-display); }
:where(.fc-site) a { color: inherit; text-decoration: none; transition: color .3s var(--fc-ease-luxe), opacity .3s var(--fc-ease-luxe); }
img { max-width: 100%; }
:where(.fc-site) ::selection { background: rgba(var(--fc-primary-rgb), 0.85); color: var(--fc-on-primary); }
.fc-site :focus-visible { outline: 2px solid var(--fc-accent); outline-offset: 3px; border-radius: 4px; }
.letter-spacing-1 { letter-spacing: .08em; }
.letter-spacing-2 { letter-spacing: .16em; }
.inset-0 { inset: 0; }
.fc-lock-scroll { overflow: hidden; }

/* Scroll reveal (JS adds .is-visible; without JS everything is shown) */
.fc-js .fc-reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--fc-ease-luxe), transform .9s var(--fc-ease-luxe); }
.fc-js .fc-reveal.is-visible { opacity: 1; transform: none; }

/* ---------- 4. Sections ---------- */
.fc-sec {
    position: relative;
    background-color: var(--sec-bg, var(--fc-surface));
    color: var(--fc-text);
}
.fc-pad { padding-block: var(--fc-sec-y); }
.fc-pad-sm { padding-block: calc(var(--fc-sec-y) * 0.55); }

/* Bootstrap colour helpers follow the section context */
.fc-sec .text-dark, .fc-sec .text-body { color: var(--fc-text) !important; }
.fc-sec .text-muted, .fc-sec .text-secondary { color: var(--fc-muted) !important; }
.fc-sec .text-white-50 { color: rgba(var(--fc-on-dark-rgb), 0.72) !important; }

/* Section heading block */
.fc-head { max-width: 720px; margin: 0 auto clamp(2rem, 4.5vw, 3.5rem); text-align: center; }
.fc-head--left { margin-left: 0; text-align: left; }
.fc-head--left .fc-eyebrow { justify-content: flex-start; }
.fc-head--left .fc-lede { margin-left: 0; }

.fc-eyebrow {
    display: inline-flex; align-items: center; justify-content: center; gap: 12px;
    color: var(--fc-accent);
    font-family: var(--font-ui);
    font-size: 10.5px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase;
    margin-bottom: 14px;
}
.fc-eyebrow::before, .fc-eyebrow::after { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .45; }
.fc-head--left .fc-eyebrow::after { display: none; }

.fc-title, .fc-section-title {
    margin: 0 0 16px;
    color: var(--fc-heading);
    font-family: var(--font-display);
    font-size: var(--fc-fs-h2);
    font-weight: 500;
    line-height: 1.12;
    letter-spacing: -0.01em;
    text-wrap: balance;
}
.fc-title em, .fc-section-title em { font-style: italic; color: var(--fc-accent); }
.fc-lede, .fc-section-copy {
    max-width: 58ch; margin: 0 auto;
    color: var(--fc-muted);
    font-size: clamp(14px, 1.2vw, 16px);
    line-height: 1.8;
    text-wrap: pretty;
}
.fc-kicker { color: var(--fc-muted); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }

/* ---------- 5. Buttons ---------- */
.fc-btn {
    min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    padding: 0 30px; border-radius: 999px; border: 1px solid transparent; cursor: pointer;
    font-family: var(--font-ui); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    white-space: nowrap;
    transition: background-color .35s var(--fc-ease-luxe), color .35s var(--fc-ease-luxe), border-color .35s var(--fc-ease-luxe), transform .35s var(--fc-ease-luxe), box-shadow .35s var(--fc-ease-luxe);
}
.fc-btn:hover { transform: translateY(-2px); box-shadow: var(--fc-shadow-2); }
.fc-btn i { transition: transform .35s var(--fc-ease-luxe); }
.fc-btn:hover i.fa-arrow-right { transform: translateX(4px); }

.fc-btn-dark { background: var(--fc-ink); color: var(--fc-accent-d); }
.fc-btn-dark:hover { background: var(--fc-primary); color: var(--fc-on-primary); }
.fc-ctx-dark .fc-btn-dark { background: var(--fc-on-dark); color: var(--fc-primary); }
.fc-ctx-dark .fc-btn-dark:hover { background: #fff; color: var(--fc-primary); }

.fc-btn-gold, .fc-btn-accent { background: var(--fc-accent); color: var(--fc-on-accent); }
.fc-btn-gold:hover, .fc-btn-accent:hover { background: var(--fc-accent-strong); color: var(--fc-on-accent); }

.fc-btn-outline { background: transparent; color: var(--fc-heading); border-color: rgba(var(--fc-accent-rgb), .45); }
.fc-btn-outline:hover { background: var(--fc-accent); color: var(--fc-on-accent); border-color: var(--fc-accent); }

.fc-text-link { display: inline-flex; align-items: center; gap: 9px; color: var(--fc-heading); font-size: 10.5px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.fc-text-link:hover { color: var(--fc-accent); }

/* Round arrow used on image cards */
.fc-arrow {
    width: 36px; height: 36px; flex-shrink: 0; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid rgba(var(--fc-on-dark-rgb), .55); color: var(--fc-on-dark);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
    font-size: 12px;
    transition: all .4s var(--fc-ease-luxe);
}

/* ---------- 6. Announcement + header ---------- */
.fc-announcement {
    min-height: 36px; display: flex; align-items: center; justify-content: center; gap: 8px;
    padding: 7px 15px;
    background: var(--fc-announcement-bg); color: var(--fc-text);
    font-size: 9.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; text-align: center;
}
.fc-announcement i { color: var(--fc-accent); }
.fc-announcement-sep { display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: var(--fc-accent); opacity: .6; margin: 0 10px; vertical-align: middle; }

.fc-header {
    position: sticky; top: 0; z-index: 1030;
    background: rgba(var(--fc-header-bg-rgb), .94);
    border-bottom: 1px solid var(--fc-line);
    backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%);
    transition: box-shadow .35s var(--fc-ease-luxe), background-color .35s var(--fc-ease-luxe);
}
.fc-header.is-scrolled { box-shadow: 0 10px 30px rgba(var(--fc-primary-rgb), .08); background: rgba(var(--fc-header-bg-rgb), .98); }
.fc-nav { min-height: 76px; display: flex; align-items: center; padding: 0; }

.fc-brand { display: flex; flex-direction: column; align-items: center; justify-content: center; margin-top: 4px; transition: transform .4s var(--fc-ease-luxe); }
.fc-brand:hover { transform: scale(1.02); }
.fc-brand img { height: 52px; width: auto; display: block; margin-bottom: -6px; }
.fc-brand span { font-family: var(--font-display); font-size: 15px; letter-spacing: .01em; color: var(--fc-heading); line-height: 1; }

.fc-nav-links { display: flex; align-items: center; justify-content: center; gap: 2px; }
.fc-nav-link {
    position: relative; display: block; padding: 26px 12px 22px;
    color: var(--fc-muted); font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
}
.fc-nav-link::after {
    content: ""; position: absolute; left: 12px; right: 12px; bottom: 16px; height: 1px;
    background: var(--fc-accent); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--fc-ease-luxe);
}
.fc-nav-link:hover, .fc-nav-link:focus-visible { color: var(--fc-heading); }
.fc-nav-link:hover::after { transform: scaleX(1); }

.fc-actions { display: flex; align-items: center; gap: 2px; }
.fc-icon-btn {
    position: relative; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--fc-text); font-size: 14px;
    transition: all .3s var(--fc-ease-luxe);
}
.fc-icon-btn:hover { border-color: var(--fc-line); background: var(--fc-card); color: var(--fc-accent); box-shadow: var(--fc-shadow-1); transform: translateY(-1px); }
.fc-menu-toggle {
    width: 40px; height: 40px; padding: 0; border: 1px solid var(--fc-line); border-radius: 50%;
    background: var(--fc-card); color: var(--fc-text); transition: all .3s var(--fc-ease-luxe);
}
.fc-menu-toggle:hover, .fc-menu-toggle:focus { border-color: var(--fc-accent); color: var(--fc-accent); box-shadow: none; }

/* Search */
.fc-search-wrapper { z-index: 1050; }
.fc-search-wrapper .fa-magnifying-glass { color: var(--fc-muted); pointer-events: none; }
.fc-search-input {
    height: 40px; border-radius: 999px; padding: 8px 16px 8px 38px;
    border: 1px solid var(--fc-line); background-color: rgba(var(--fc-ink-rgb), .03); color: var(--fc-text);
    font-size: 13px; box-shadow: none; transition: all .3s var(--fc-ease-luxe);
}
.fc-search-input::placeholder { color: var(--fc-muted); }
.fc-search-input:focus { background-color: #fff; color: var(--fc-ink); border-color: var(--fc-accent-l); box-shadow: 0 0 0 4px rgba(var(--fc-accent-l-rgb), .12); outline: none; }
.fc-search-dropdown {
    position: absolute; top: 100%; right: 0; width: 340px; margin-top: 14px;
    background: rgba(255, 255, 255, .98); border: 1px solid rgba(var(--fc-primary-rgb), .08); border-radius: 18px;
    box-shadow: var(--fc-shadow-3); overflow: hidden; z-index: 1040;
    backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
    animation: fcFadeDown .28s var(--fc-ease-luxe);
}
.fc-search-dropdown h6 { color: rgba(var(--fc-ink-rgb), .55); }
.fc-search-pill {
    display: inline-block; padding: 7px 14px; border-radius: 999px;
    background: var(--fc-primary-tint); color: var(--fc-primary);
    font-size: 11px; font-weight: 600; transition: all .25s var(--fc-ease-luxe);
}
.fc-search-pill:hover { background: var(--fc-primary); color: var(--fc-on-primary); transform: translateY(-1px); }
.fc-search-result-item { padding: 10px; border-radius: 12px; transition: background-color .2s var(--fc-ease-luxe); }
.fc-search-result-item:hover { background-color: var(--fc-primary-tint); }
.fc-search-result-name { display: block; color: var(--fc-ink); font-family: var(--font-display); font-size: 14px; }
.fc-search-result-price { color: var(--fc-primary); font-size: 12px; font-weight: 700; }
.fc-search-view-all { color: var(--fc-primary); border-color: rgba(var(--fc-primary-rgb), .1) !important; }

/* ---------- 7. Footer ---------- */
.fc-footer { position: relative; background: var(--fc-footer-bg); color: var(--fc-text); padding: clamp(56px, 8vw, 96px) 0 0; }
.fc-footer::before {
    content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(var(--fc-accent-rgb), .55), transparent);
}
.fc-footer-brand { display: flex; align-items: center; gap: 12px; }
.fc-footer-brand img { height: 44px; width: auto; }
.fc-footer-brand span { color: var(--fc-heading); font-family: var(--font-display); font-size: 18px; }
.fc-footer-eyebrow { display: flex; align-items: center; gap: 14px; color: var(--fc-accent); font-size: 10.5px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; margin: 26px 0 14px; }
.fc-footer-eyebrow span { display: block; height: 1px; width: 40px; background: currentColor; opacity: .45; }
.fc-footer-title { font-family: var(--font-display); font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 400; font-style: italic; color: var(--fc-heading); margin-bottom: 30px; line-height: 1.2; }
.fc-subscribe-box {
    display: flex; align-items: center; max-width: 420px; padding: 6px;
    border: 1px solid var(--fc-line); border-radius: 999px; background: rgba(255, 255, 255, .03);
    transition: border-color .3s var(--fc-ease-luxe), box-shadow .3s var(--fc-ease-luxe);
}
.fc-subscribe-box:focus-within { border-color: var(--fc-accent); box-shadow: 0 0 0 4px rgba(var(--fc-accent-rgb), .10); }
.fc-subscribe-box input { flex: 1; min-width: 0; background: transparent; border: 0; color: var(--fc-text); padding: 11px 18px; outline: none; font-size: 13px; font-family: var(--font-ui); }
.fc-subscribe-box input::placeholder { color: var(--fc-muted); }
.fc-subscribe-box button {
    flex-shrink: 0; border: 0; border-radius: 999px; padding: 12px 24px;
    background: var(--fc-accent); color: var(--fc-on-accent);
    font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    transition: all .3s var(--fc-ease-luxe);
}
.fc-subscribe-box button:hover { background: var(--fc-accent-strong); transform: translateY(-1px); }
.fc-footer-col-title { font-family: var(--font-display); font-size: 1.35rem; font-weight: 400; font-style: italic; color: var(--fc-heading); margin: 0 0 24px; }
.fc-footer-links { list-style: none; padding: 0; margin: 0; }
.fc-footer-links li { margin-bottom: 14px; }
.fc-footer-links a, .fc-footer-links button {
    display: inline-block; padding: 0; border: 0; background: none;
    color: var(--fc-muted); font-size: 14px; text-align: left; transition: all .3s var(--fc-ease-luxe);
}
.fc-footer-links a:hover, .fc-footer-links button:hover { color: var(--fc-accent); transform: translateX(4px); }
.fc-contact-item { display: flex; align-items: flex-start; margin-bottom: 16px; color: var(--fc-muted); font-size: 14px; line-height: 1.6; word-break: break-word; transition: color .3s var(--fc-ease-luxe); }
.fc-contact-item i { color: var(--fc-accent); margin-right: 14px; margin-top: 4px; font-size: 15px; width: 18px; text-align: center; flex-shrink: 0; }
a.fc-contact-item:hover { color: var(--fc-heading); }
.fc-social-row { display: flex; gap: 10px; margin-top: 28px; flex-wrap: wrap; }
.fc-social-icon {
    width: 42px; height: 42px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--fc-line); color: var(--fc-text); font-size: 15px; transition: all .35s var(--fc-ease-luxe);
}
.fc-social-icon:hover { background: var(--fc-accent); border-color: var(--fc-accent); color: var(--fc-on-accent); transform: translateY(-3px); }
.fc-footer-bottom { border-top: 1px solid var(--fc-line); padding: 26px 0; margin-top: clamp(48px, 6vw, 70px); font-size: 12.5px; color: var(--fc-muted); }
.fc-payments { display: flex; align-items: center; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
.fc-payment-badge { background: #fff; padding: 4px 8px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; height: 26px; }
.fc-payment-badge img { max-height: 14px; }

/* ---------- 8. Floating actions, mobile bar, modal, toasts ---------- */
.fc-wa-float {
    position: fixed; left: 22px; bottom: 22px; z-index: 1040; width: 52px; height: 52px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: #25D366; color: #fff !important; font-size: 24px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .18); transition: transform .3s var(--fc-ease-luxe), box-shadow .3s var(--fc-ease-luxe);
}
.fc-wa-float:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(0, 0, 0, .24); }
.fc-consult-float {
    position: fixed; right: 22px; bottom: 22px; z-index: 1040; gap: 9px;
    padding: 13px 20px; border-radius: 999px; border: 1px solid rgba(var(--fc-on-dark-rgb), .25);
    background: var(--fc-primary); color: var(--fc-on-primary);
    font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
    box-shadow: 0 14px 34px rgba(var(--fc-primary-rgb), .35); transition: all .3s var(--fc-ease-luxe);
}
.fc-consult-float:hover { transform: translateY(-3px); background: var(--fc-primary-dark); color: var(--fc-on-primary); }
.fc-spin-float {
    position: fixed; left: 22px; bottom: 90px; z-index: 1040; display: inline-flex; align-items: center; gap: 10px;
    padding: 12px 20px; border-radius: 999px; border: 1px solid rgba(var(--fc-accent-d-rgb), .5);
    background: var(--fc-ink); color: var(--fc-accent-d);
    font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .2); cursor: pointer; transition: all .3s var(--fc-ease-luxe);
}
.fc-spin-float i { font-size: 16px; }
.fc-spin-float:hover { transform: translateY(-3px); background: var(--fc-primary); }

.fc-mobile-bar {
    display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1050; gap: 6px;
    padding: 7px; padding-bottom: calc(7px + env(safe-area-inset-bottom));
    background: rgba(var(--fc-header-bg-rgb), .96); border-top: 1px solid rgba(var(--fc-ink-rgb), .08);
    box-shadow: 0 -12px 35px rgba(var(--fc-primary-rgb), .10);
    backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
}
.fc-mobile-bar a, .fc-mobile-bar button {
    flex: 1; min-height: 46px; border: 0; border-radius: 999px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
}
.fc-mobile-wa { background: #25D366; color: #fff !important; }
.fc-mobile-call { background: var(--fc-primary); color: var(--fc-on-primary) !important; }
.fc-mobile-spin { background: var(--fc-ink); color: var(--fc-accent-d) !important; }

.fc-modal { overflow: hidden; border: 0; border-radius: 24px; box-shadow: 0 40px 100px rgba(0, 0, 0, .32); }
.fc-modal-head { padding: 26px 28px; color: var(--fc-on-dark); background: linear-gradient(135deg, var(--fc-primary), var(--fc-primary-dark)); }
.fc-modal-head .fc-eyebrow { justify-content: flex-start; margin-bottom: 8px; }
.fc-modal-head .fc-eyebrow::after { display: none; }
.fc-modal-head h5 { margin: 0; font-family: var(--font-display); font-size: clamp(21px, 3vw, 26px); font-weight: 500; color: var(--fc-on-dark); }
.fc-modal-body { padding: 28px; background: #fff; }
.fc-modal-body p { color: rgba(var(--fc-ink-rgb), .64); }
.fc-field {
    width: 100%; min-height: 50px; padding: 12px 14px;
    border: 1px solid rgba(var(--fc-ink-rgb), .14); border-radius: 12px; outline: 0;
    background: #fff; color: var(--fc-ink); font-size: 14px;
    transition: border-color .25s var(--fc-ease-luxe), box-shadow .25s var(--fc-ease-luxe);
}
.fc-field:focus { border-color: var(--fc-primary); box-shadow: 0 0 0 4px rgba(var(--fc-primary-rgb), .10); }
.fc-modal-submit {
    width: 100%; min-height: 54px; border: 0; border-radius: 999px;
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    background: var(--fc-primary); color: var(--fc-on-primary);
    font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    transition: background-color .3s var(--fc-ease-luxe), transform .3s var(--fc-ease-luxe);
}
.fc-modal-submit:hover { background: var(--fc-primary-dark); color: var(--fc-on-primary); transform: translateY(-1px); }

.fc-toast-stack { position: fixed; top: 0; right: 0; z-index: 9999; padding: 96px 16px 16px; pointer-events: none; width: min(420px, 100%); }
.fc-global-toast {
    pointer-events: auto; display: flex; align-items: center; margin-bottom: 12px;
    background: #fff; border-left: 4px solid var(--fc-primary); border-radius: 12px; padding: 16px 20px;
    box-shadow: var(--fc-shadow-3); animation: fcSlideIn .5s var(--fc-ease-luxe) forwards;
}
.fc-global-toast.is-error { border-left-color: #C0392B; }
.fc-global-toast i { font-size: 20px; margin-right: 14px; color: var(--fc-primary); }
.fc-global-toast.is-error i { color: #C0392B; }
.fc-global-toast span { font-size: 13px; font-weight: 600; color: var(--fc-ink); }

@keyframes fcFadeDown { from { opacity: 0; transform: translateY(-10px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes fcSlideIn { from { transform: translateX(100%); opacity: 0; } to { transform: none; opacity: 1; } }

/* =====================================================================
   HOMEPAGE SECTIONS
   ===================================================================== */

/* Hero (views/site/index.php) */
.fc-hero-carousel { position: relative; background: var(--fc-primary-dark); }
.fc-home-hero {
    position: relative; display: flex; align-items: center; overflow: hidden;
    min-height: clamp(540px, 84vh, 860px);
    background-color: var(--fc-primary-dark); background-size: cover; background-position: center;
    color: var(--fc-on-dark);
}
.fc-home-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 30%; z-index: 2; background: linear-gradient(to top, rgba(var(--fc-primary-dark-rgb), .55), transparent); pointer-events: none; }
.fc-hero-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(100deg, rgba(var(--fc-primary-dark-rgb), .92) 0%, rgba(var(--fc-primary-dark-rgb), .55) 42%, rgba(var(--fc-primary-dark-rgb), .08) 100%); }
.fc-home-hero-right .fc-hero-overlay { background: linear-gradient(260deg, rgba(var(--fc-primary-dark-rgb), .92) 0%, rgba(var(--fc-primary-dark-rgb), .55) 42%, rgba(var(--fc-primary-dark-rgb), .08) 100%); }
.fc-home-hero-center .fc-hero-overlay { background: radial-gradient(ellipse at center, rgba(var(--fc-primary-dark-rgb), .82) 0%, rgba(var(--fc-primary-dark-rgb), .45) 70%); }
.fc-hero-copy { position: relative; z-index: 3; max-width: 620px; padding: clamp(80px, 12vw, 130px) 0; }
.fc-home-hero-center .fc-hero-copy { margin: 0 auto; text-align: center; }
.fc-home-hero-right .fc-hero-copy { margin-left: auto; }
.fc-hero-copy .fc-eyebrow { color: var(--fc-accent-d); }
.fc-home-hero-left .fc-hero-copy .fc-eyebrow::after, .fc-home-hero-right .fc-hero-copy .fc-eyebrow::after { display: none; }
.fc-hero-copy h1 { color: var(--fc-on-dark); font-size: var(--fc-fs-display); font-weight: 500; line-height: 1.05; letter-spacing: -.015em; margin-bottom: 20px; text-wrap: balance; text-shadow: 0 6px 30px rgba(0, 0, 0, .2); }
.fc-hero-copy p { color: rgba(var(--fc-on-dark-rgb), .85); font-size: clamp(15px, 1.4vw, 18px); line-height: 1.75; max-width: 46ch; }
.fc-home-hero-center .fc-hero-copy p { margin-inline: auto; }
.fc-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.fc-home-hero-center .fc-hero-actions { justify-content: center; }
.fc-hero-actions .fc-btn-outline { color: var(--fc-on-dark); border-color: rgba(var(--fc-on-dark-rgb), .5); }
.fc-hero-actions .fc-btn-outline:hover { background: var(--fc-on-dark); color: var(--fc-primary); border-color: var(--fc-on-dark); }
.fc-hero-anim { opacity: 0; transform: translateY(24px); animation: fcHeroIn 1s var(--fc-ease-luxe) forwards; }
.fc-hero-anim.d2 { animation-delay: .12s; } .fc-hero-anim.d3 { animation-delay: .24s; } .fc-hero-anim.d4 { animation-delay: .36s; }
@keyframes fcHeroIn { to { opacity: 1; transform: none; } }
.fc-hero-carousel .carousel-indicators { z-index: 4; margin-bottom: clamp(18px, 3vw, 30px); gap: 8px; }
.fc-hero-carousel .carousel-indicators [data-bs-target] { width: 28px; height: 2px; border: 0; margin: 0; background: var(--fc-on-dark); opacity: .4; transition: width .4s var(--fc-ease-luxe), opacity .4s; }
.fc-hero-carousel .carousel-indicators .active { width: 48px; opacity: 1; }
.fc-hero-nav { position: absolute; top: 50%; z-index: 4; width: 48px; height: 48px; margin-top: -24px; border-radius: 50%; border: 1px solid rgba(var(--fc-on-dark-rgb), .4); background: rgba(var(--fc-primary-dark-rgb), .25); color: var(--fc-on-dark); display: flex; align-items: center; justify-content: center; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); transition: all .35s var(--fc-ease-luxe); opacity: 0; }
.fc-hero-carousel:hover .fc-hero-nav { opacity: 1; }
.fc-hero-nav:hover { background: var(--fc-on-dark); color: var(--fc-primary); }
.fc-hero-nav.prev { left: clamp(12px, 2vw, 28px); } .fc-hero-nav.next { right: clamp(12px, 2vw, 28px); }
.fc-hero-fallback { background: radial-gradient(circle at 80% 20%, rgba(var(--fc-accent-d-rgb), .18), transparent 45%), linear-gradient(120deg, var(--fc-primary-dark), var(--fc-primary)); }
@media (max-width: 767.98px) {
    .fc-home-hero { min-height: clamp(480px, 78vh, 640px); align-items: flex-end; }
    .fc-hero-overlay, .fc-home-hero-right .fc-hero-overlay { background: linear-gradient(to top, rgba(var(--fc-primary-dark-rgb), .94) 0%, rgba(var(--fc-primary-dark-rgb), .55) 55%, rgba(var(--fc-primary-dark-rgb), .15) 100%); }
    .fc-hero-copy { padding: 110px 0 72px; text-align: left; margin: 0; }
    .fc-home-hero-center .fc-hero-copy { text-align: center; }
    .fc-hero-actions .fc-btn { flex: 1 1 auto; }
    .fc-hero-nav { display: none; }
}
@media (prefers-reduced-motion: reduce) { .fc-hero-anim { opacity: 1; transform: none; animation: none; } }

/* Intro */
.fc-intro .fc-title { font-size: clamp(1.9rem, 3.6vw, 3.1rem); }

/* Assurance strip */
.fc-assurance { padding-block: clamp(1.75rem, 3.5vw, 2.75rem); border-bottom: 1px solid var(--fc-line); }
.fc-assurance-item { display: flex; align-items: center; gap: 14px; height: 100%; transition: transform .4s var(--fc-ease-luxe); }
.fc-assurance-item:hover { transform: translateY(-3px); }
.fc-assurance-icon {
    width: 46px; height: 46px; flex-shrink: 0; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: var(--fc-card); color: var(--fc-heading);
    border: 1px solid rgba(var(--fc-accent-rgb), .28); box-shadow: var(--fc-shadow-1);
    font-size: 16px; transition: all .4s var(--fc-ease-luxe);
}
.fc-assurance-item:hover .fc-assurance-icon { background: var(--fc-accent); color: var(--fc-on-accent); border-color: var(--fc-accent); }
.fc-assurance-text { display: block; color: var(--fc-text); font-size: 13px; font-weight: 600; line-height: 1.4; }
@media (max-width: 575.98px) {
    .fc-assurance-item { flex-direction: column; text-align: center; gap: 10px; }
    .fc-assurance-text { font-size: 12px; }
    .fc-assurance-text br { display: none; }
}

/* Categories */
.fc-range-card {
    position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 5;
    border-radius: var(--fc-r-lg); background: var(--fc-primary-dark);
    box-shadow: var(--fc-shadow-2); isolation: isolate;
    transition: transform .6s var(--fc-ease-luxe), box-shadow .6s var(--fc-ease-luxe);
}
.fc-range-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--fc-ease-luxe); }
.fc-range-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(var(--fc-primary-dark-rgb), .92) 0%, rgba(var(--fc-primary-dark-rgb), .25) 42%, transparent 70%); z-index: 1; }
.fc-range-card-body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: clamp(14px, 2.2vw, 24px); }
.fc-range-card h3 { margin: 0; color: var(--fc-on-dark); font-family: var(--font-display); font-size: clamp(1rem, 1.8vw, 1.35rem); font-weight: 500; line-height: 1.2; }
.fc-range-card:hover { transform: translateY(-5px); box-shadow: var(--fc-shadow-3); }
.fc-range-card:hover img { transform: scale(1.07); }
.fc-range-card:hover .fc-arrow { background: var(--fc-accent-d); border-color: var(--fc-accent-d); color: var(--fc-on-accent-d); transform: translateX(3px); }
@media (max-width: 575.98px) { .fc-range-card .fc-arrow { width: 30px; height: 30px; font-size: 11px; } }

/* Marquee */
.fc-premium-marquee {
    position: relative; overflow: hidden; width: 100%;
    background: var(--sec-bg, var(--fc-primary));
    border-block: 1px solid rgba(var(--fc-accent-rgb), .18);
    padding: 15px 0;
}
.fc-premium-marquee::before, .fc-premium-marquee::after { content: ""; position: absolute; top: 0; bottom: 0; width: 8%; z-index: 2; pointer-events: none; }
.fc-premium-marquee::before { left: 0; background: linear-gradient(to right, var(--sec-bg, var(--fc-primary)), transparent); }
.fc-premium-marquee::after { right: 0; background: linear-gradient(to left, var(--sec-bg, var(--fc-primary)), transparent); }
.fc-marquee-track { display: flex; width: max-content; white-space: nowrap; animation: fcMarquee 38s linear infinite; }
.fc-premium-marquee:hover .fc-marquee-track { animation-play-state: paused; }
.fc-marquee-item { display: flex; align-items: center; color: var(--fc-accent); font-family: var(--font-display); font-size: clamp(14px, 1.5vw, 18px); font-style: italic; letter-spacing: .04em; }
@keyframes fcMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 575.98px) { .fc-premium-marquee { padding: 11px 0; } }

/* Diamond cuts */
.fc-cuts-track { display: grid; grid-template-columns: repeat(auto-fit, minmax(112px, 1fr)); gap: clamp(18px, 3vw, 32px); justify-items: center; max-width: 1040px; margin: 0 auto; }
.fc-cut-item { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.fc-cut-img-wrapper {
    position: relative; width: 96px; height: 96px; border-radius: 50%; overflow: hidden;
    display: flex; align-items: center; justify-content: center;
    background: #fff; border: 1px solid rgba(var(--fc-accent-rgb), .22); box-shadow: var(--fc-shadow-1);
    transition: all .5s var(--fc-ease-luxe);
}
.fc-cut-img-wrapper::after { content: ""; position: absolute; inset: 5px; border-radius: 50%; border: 1px solid rgba(var(--fc-primary-rgb), .06); pointer-events: none; }
.fc-cut-img { width: 58px; height: 58px; object-fit: contain; filter: drop-shadow(0 5px 6px rgba(0, 0, 0, .06)); transition: transform .5s var(--fc-ease-luxe); }
.fc-cut-img.is-fade { position: absolute; top: 50%; left: 50%; margin: -29px 0 0 -29px; opacity: 0; animation-iteration-count: infinite; animation-timing-function: ease-in-out; }
.fc-cut-img.is-fade.n2 { animation-name: fcXfade2; }
.fc-cut-img.is-fade.n3 { animation-name: fcXfade3; }
.fc-cut-empty { color: rgba(var(--fc-primary-rgb), .35); font-size: 24px; }
.fc-cut-name { color: var(--fc-heading); font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; transition: color .3s; }
.fc-cut-item:hover .fc-cut-img-wrapper { border-color: var(--fc-accent); box-shadow: 0 16px 32px rgba(var(--fc-accent-rgb), .2); transform: translateY(-4px); }
.fc-cut-item:hover .fc-cut-img { transform: scale(1.12); }
.fc-cut-item:hover .fc-cut-name { color: var(--fc-accent); }
@keyframes fcXfade2 { 0% { opacity: 1; } 40% { opacity: 1; } 50% { opacity: 0; } 90% { opacity: 0; } 100% { opacity: 1; } }
@keyframes fcXfade3 { 0% { opacity: 1; } 26% { opacity: 1; } 33.34% { opacity: 0; } 93% { opacity: 0; } 100% { opacity: 1; } }
@media (max-width: 767.98px) {
    .fc-cuts-track {
        display: flex; overflow-x: auto; gap: 18px; justify-content: flex-start;
        padding: 6px var(--fc-gutter) 14px; margin: 0 calc(var(--fc-gutter) * -1);
        scroll-snap-type: x mandatory; scrollbar-width: none;
    }
    .fc-cuts-track::-webkit-scrollbar { display: none; }
    .fc-cut-item { flex: 0 0 84px; scroll-snap-align: start; }
    .fc-cut-img-wrapper { width: 78px; height: 78px; }
    .fc-cut-img { width: 46px; height: 46px; }
    .fc-cut-img.is-fade { margin: -23px 0 0 -23px; }
    .fc-cut-name { font-size: 9.5px; letter-spacing: .12em; }
}

/* Collections */
.fc-collection-card {
    position: relative; display: block; overflow: hidden; height: 100%;
    min-height: clamp(320px, 42vw, 540px); border-radius: var(--fc-r-lg);
    background: var(--fc-primary-dark); isolation: isolate; box-shadow: var(--fc-shadow-2);
    transition: box-shadow .6s var(--fc-ease-luxe), transform .6s var(--fc-ease-luxe);
}
.fc-collection-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--fc-ease-luxe); }
.fc-collection-card:hover { transform: translateY(-4px); box-shadow: var(--fc-shadow-3); }
.fc-collection-card:hover img { transform: scale(1.05); }
.fc-collection-overlay {
    position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; justify-content: flex-end;
    padding: clamp(24px, 4vw, 44px);
    background: linear-gradient(to top, rgba(var(--fc-primary-dark-rgb), .9) 0%, rgba(var(--fc-primary-dark-rgb), .25) 45%, transparent 75%);
}
.fc-collection-title { color: var(--fc-on-dark); font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 500; line-height: 1.1; margin-bottom: 14px; }
.fc-collection-link { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; color: var(--fc-accent-d); font-size: 10.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; padding-bottom: 4px; border-bottom: 1px solid rgba(var(--fc-accent-d-rgb), .5); }
.fc-collection-link i { transition: transform .35s var(--fc-ease-luxe); }
.fc-collection-card:hover .fc-collection-link i { transform: translateX(4px); }
.fc-collection-empty { display: flex; align-items: center; justify-content: center; height: 100%; color: var(--fc-accent-d); font-size: 4rem; opacity: .7; }

.fc-bespoke {
    display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; height: 100%;
    padding: clamp(40px, 6vw, 76px) clamp(22px, 5vw, 60px);
    background: var(--fc-card); border: 1px solid var(--fc-card-line); border-radius: var(--fc-r-lg);
    box-shadow: var(--fc-shadow-1); position: relative; overflow: hidden;
}
.fc-bespoke::before { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(var(--fc-accent-rgb), .18); border-radius: calc(var(--fc-r-lg) - 6px); pointer-events: none; }
.fc-bespoke > * { position: relative; }
.fc-bespoke h3 { color: var(--fc-heading); font-size: clamp(1.9rem, 3.6vw, 2.7rem); font-weight: 500; line-height: 1.1; margin-bottom: 16px; }
.fc-bespoke p { color: var(--fc-muted); max-width: 56ch; margin: 0 auto; font-size: clamp(15px, 1.3vw, 17px); }

/* Product card */
.fc-product-card { position: relative; height: 100%; display: flex; flex-direction: column; }
.fc-product-media {
    position: relative; overflow: hidden; aspect-ratio: 1 / 1;
    background: var(--fc-card-bg, #FDF9F8);
    border: 1px solid rgba(var(--fc-primary-rgb), .07); border-radius: var(--fc-r-md);
    isolation: isolate;
    transition: box-shadow .5s var(--fc-ease-luxe), border-color .5s var(--fc-ease-luxe);
}
.fc-product-link { position: absolute; inset: 0; z-index: 1; display: block; }
.fc-product-image {
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; padding: 0;
    transition: transform 1s var(--fc-ease-luxe), opacity .6s var(--fc-ease-luxe);
}
.fc-product-image--alt { opacity: 0; }
.fc-product-empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: rgba(var(--fc-primary-rgb), .22); font-size: 2.4rem; background: linear-gradient(135deg, var(--fc-primary-tint), #fff); }
.fc-product-icon {
    position: absolute; top: 10px; right: 10px; z-index: 3;
    width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    background: rgba(255, 255, 255, .95); border: 1px solid rgba(var(--fc-ink-rgb), .06); color: rgba(var(--fc-ink-rgb), .55);
    font-size: 14px; box-shadow: 0 4px 14px rgba(var(--fc-primary-rgb), .10);
    transition: color .3s var(--fc-ease-luxe), transform .3s var(--fc-ease-luxe), background-color .3s var(--fc-ease-luxe);
}
.fc-product-icon.is-active { color: var(--fc-primary); }
.fc-product-icon:hover { color: var(--fc-primary); transform: scale(1.08); background: #fff; }
.fc-stock-badge {
    position: absolute; left: 10px; top: 10px; z-index: 3; padding: 5px 10px; border-radius: 999px;
    font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; line-height: 1.2;
}
.fc-stock-badge.is-sold { background: var(--fc-ink); color: #fff; }
.fc-stock-badge.is-low { background: #fff; color: var(--fc-primary); border: 1px solid rgba(var(--fc-primary-rgb), .18); }
.fc-product-quick {
    position: absolute; left: 10px; right: 10px; bottom: 10px; z-index: 2; pointer-events: none;
    display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; border-radius: 999px;
    background: rgba(255, 255, 255, .94); color: var(--fc-primary);
    font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    box-shadow: 0 8px 20px rgba(var(--fc-primary-rgb), .12);
    opacity: 0; transform: translateY(10px); transition: opacity .45s var(--fc-ease-luxe), transform .45s var(--fc-ease-luxe);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
@media (hover: hover) {
    .fc-product-card:hover .fc-product-media { border-color: rgba(var(--fc-primary-rgb), .18); box-shadow: var(--fc-shadow-2); }
    .fc-product-card:hover .fc-product-image { transform: scale(1.05); }
    .fc-product-card.has-alt:hover .fc-product-image--main { opacity: 0; }
    .fc-product-card.has-alt:hover .fc-product-image--alt { opacity: 1; }
    .fc-product-card:hover .fc-product-quick { opacity: 1; transform: none; }
}
.fc-product-copy { display: flex; flex-direction: column; gap: 4px; padding: 14px 2px 0; }
.fc-product-name {
    margin: 0; font-family: var(--font-display); font-size: clamp(14px, 1.25vw, 16px); font-weight: 500; line-height: 1.35;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.fc-product-name a { color: var(--fc-ink); transition: color .3s; }
.fc-product-name a:hover { color: var(--fc-primary); }
.fc-product-kicker { color: rgba(var(--fc-ink-rgb), .55); font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.fc-product-price { margin-top: 2px; color: var(--fc-primary); font-size: 15px; font-weight: 700; letter-spacing: .01em; font-variant-numeric: tabular-nums; }
.fc-ctx-dark .fc-product-name a { color: var(--fc-on-dark); }
.fc-ctx-dark .fc-product-name a:hover { color: var(--fc-accent-d); }
.fc-ctx-dark .fc-product-kicker { color: rgba(var(--fc-on-dark-rgb), .6); }
.fc-ctx-dark .fc-product-price { color: var(--fc-accent-d); }
@media (max-width: 575.98px) {
    .fc-product-icon { width: 32px; height: 32px; top: 8px; right: 8px; font-size: 13px; }
    .fc-stock-badge { top: 8px; left: 8px; font-size: 8px; padding: 4px 8px; }
    .fc-product-copy { padding-top: 10px; }
    .fc-product-price { font-size: 14px; }
}

/* Products section badge */
.fc-badge-pill {
    display: inline-block; margin-top: 14px; padding: 7px 16px; border-radius: 999px;
    background: var(--fc-primary); color: var(--fc-on-primary);
    font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
}

/* Curated looks */
.fc-look-row + .fc-look-row { margin-top: clamp(2rem, 5vw, 3.5rem); }
.fc-look-media {
    position: relative; overflow: hidden; height: 100%; min-height: 460px;
    border-radius: var(--fc-r-lg); box-shadow: var(--fc-shadow-3); background: var(--fc-primary-dark);
}
.fc-look-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--fc-ease-luxe); }
.fc-look-media:hover img { transform: scale(1.04); }
.fc-look-media-copy {
    position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end;
    padding: clamp(22px, 3.5vw, 40px);
    background: linear-gradient(to top, rgba(var(--fc-primary-dark-rgb), .94) 0%, rgba(var(--fc-primary-dark-rgb), .2) 55%, transparent 80%);
}
.fc-look-media-copy h3 { color: var(--fc-on-dark); font-size: clamp(1.6rem, 2.8vw, 2.2rem); font-weight: 500; margin-bottom: 4px; }
.fc-look-media-copy p { color: rgba(var(--fc-on-dark-rgb), .75); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin: 0; }
.fc-look-track-wrap { position: relative; }
.fc-smart-scroll-container {
    overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 3%, #000 97%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 3%, #000 97%, transparent);
    scrollbar-width: none; -ms-overflow-style: none;
    padding: 8px clamp(8px, 2vw, 20px) 18px;
}
.fc-smart-scroll-container::-webkit-scrollbar { display: none; }
.fc-smart-track { display: flex; gap: clamp(14px, 2vw, 24px); }
.fc-scroll-item { flex: 0 0 clamp(190px, 58vw, 260px); scroll-snap-align: start; }
.fc-scroll-item .fc-product-card { background: #fff; padding: 12px; border-radius: 18px; border: 1px solid rgba(var(--fc-primary-rgb), .08); box-shadow: var(--fc-shadow-1); transition: all .45s var(--fc-ease-luxe); }
.fc-scroll-item .fc-product-card:hover { box-shadow: var(--fc-shadow-2); border-color: rgba(var(--fc-primary-rgb), .2); transform: translateY(-4px); }
.fc-scroll-item .fc-product-media { border-radius: 12px; }
.fc-scroll-btn {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 10;
    width: 46px; height: 46px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    background: #fff; color: var(--fc-primary); border: 1px solid rgba(var(--fc-primary-rgb), .14);
    box-shadow: var(--fc-shadow-2); cursor: pointer; transition: all .35s var(--fc-ease-luxe);
}
.fc-scroll-btn.left { left: 4px; }
.fc-scroll-btn.right { right: 4px; }
.fc-scroll-btn:hover { background: var(--fc-primary); color: var(--fc-on-primary); border-color: var(--fc-primary); transform: translateY(-50%) scale(1.06); }
@media (max-width: 767.98px) {
    .fc-look-media { min-height: 0; aspect-ratio: 4 / 3; height: auto; }
}

/* Mid banner */
.fc-mid-banner {
    position: relative; display: flex; align-items: center; overflow: hidden;
    min-height: clamp(380px, 52vw, 580px); padding-block: var(--fc-sec-y);
    background-color: var(--sec-bg, var(--fc-primary)); background-size: cover; background-position: center;
}
.fc-mid-banner::before {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(100deg, rgba(var(--fc-primary-dark-rgb), .92) 0%, rgba(var(--fc-primary-rgb), .55) 55%, rgba(var(--fc-primary-rgb), .15) 100%);
}
.fc-mid-banner .container { position: relative; z-index: 2; }
.fc-mid-banner .fc-eyebrow { justify-content: flex-start; }
.fc-mid-banner .fc-eyebrow::after { display: none; }
.fc-mid-banner h2 { color: var(--fc-on-dark); font-size: var(--fc-fs-display); font-weight: 500; line-height: 1.06; margin-bottom: 18px; text-wrap: balance; }
.fc-mid-banner p { color: rgba(var(--fc-on-dark-rgb), .85); font-size: clamp(15px, 1.4vw, 18px); max-width: 48ch; margin-bottom: 26px; }

/* Styling video */
.fc-styling-video-sub { color: var(--fc-accent); font-family: var(--font-display); font-style: italic; font-size: clamp(1.15rem, 1.8vw, 1.45rem); font-weight: 400; margin-bottom: 18px; }
.fc-styling-video-frame {
    position: relative; overflow: hidden; padding: 10px;
    background: var(--fc-card); border: 1px solid var(--fc-card-line); border-radius: var(--fc-r-lg);
    box-shadow: var(--fc-shadow-2); transition: box-shadow .5s var(--fc-ease-luxe);
}
.fc-styling-video-frame:hover { box-shadow: var(--fc-shadow-3); }
.fc-styling-video-frame iframe, .fc-styling-video-frame video, .fc-styling-video-frame img {
    display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; border: 0; object-fit: cover; border-radius: calc(var(--fc-r-lg) - 8px);
}
.fc-styling-video-frame iframe { aspect-ratio: 16 / 9; }
@media (max-width: 575.98px) { .fc-styling-video-frame video, .fc-styling-video-frame img { aspect-ratio: 4 / 5; } }

/* Shop by occasion */
.fc-occasion-card { position: relative; display: block; overflow: hidden; aspect-ratio: 3 / 4; border-radius: var(--fc-r-lg); background: var(--fc-primary-dark); box-shadow: var(--fc-shadow-2); transition: transform .6s var(--fc-ease-luxe), box-shadow .6s var(--fc-ease-luxe); }
.fc-occasion-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--fc-ease-luxe); }
.fc-occasion-body { position: absolute; inset: 0; display: flex; align-items: flex-end; gap: 10px; padding: clamp(14px, 2.2vw, 24px); background: linear-gradient(to top, rgba(var(--fc-primary-dark-rgb), .94) 0%, transparent 60%); }
.fc-occasion-body h4 { flex: 1; margin: 0; color: var(--fc-on-dark); font-size: clamp(1rem, 1.7vw, 1.3rem); font-weight: 500; }
.fc-occasion-card:hover { transform: translateY(-5px); box-shadow: var(--fc-shadow-3); }
.fc-occasion-card:hover img { transform: scale(1.07); }
.fc-occasion-card:hover .fc-arrow { background: var(--fc-accent-d); border-color: var(--fc-accent-d); color: var(--fc-on-accent-d); transform: translateX(3px); }

/* Shop the look (edge-to-edge mosaic) */
.fc-look-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; }
.fc-look-tile { position: relative; overflow: hidden; aspect-ratio: 1; background: var(--fc-primary-dark); }
.fc-look-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--fc-ease-luxe); }
.fc-look-tile:hover img { transform: scale(1.06); }
@media (max-width: 767.98px) { .fc-look-grid { grid-template-columns: repeat(2, 1fr); } }

/* Split product grid */
.fc-split-grid-media { position: relative; overflow: hidden; height: 100%; min-height: 420px; border-radius: var(--fc-r-lg); background: var(--fc-primary-dark); box-shadow: var(--fc-shadow-3); }
.fc-split-grid-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--fc-ease-luxe); }
.fc-split-grid-media:hover img { transform: scale(1.04); }
.fc-split-grid-copy { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: clamp(24px, 4.5vw, 48px); background: linear-gradient(to top, rgba(var(--fc-primary-dark-rgb), .94) 0%, rgba(var(--fc-primary-dark-rgb), .35) 60%, transparent 100%); }
.fc-split-grid-copy .fc-eyebrow { justify-content: flex-start; }
.fc-split-grid-copy .fc-eyebrow::after { display: none; }
.fc-split-grid-copy h2 { color: var(--fc-on-dark); font-size: clamp(1.9rem, 3.6vw, 3rem); font-weight: 500; line-height: 1.08; margin: 0; }
@media (min-width: 992px) { .fc-split-grid-media { min-height: 620px; } }
@media (max-width: 575.98px) { .fc-split-grid-media { min-height: 0; height: auto; aspect-ratio: 4 / 5; } }

/* Split image feature */
.fc-split-feature-media { overflow: hidden; border-radius: var(--fc-r-lg); background: var(--fc-primary-dark); box-shadow: var(--fc-shadow-3); }
.fc-split-feature-media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform 1.1s var(--fc-ease-luxe); }
.fc-split-feature-media:hover img { transform: scale(1.04); }
@media (max-width: 575.98px) { .fc-split-feature-media img { aspect-ratio: 4 / 3; } }

/* Founder note */
.fc-founder-card {
    overflow: hidden; border-radius: var(--fc-r-lg);
    background: radial-gradient(circle at 85% 15%, rgba(var(--fc-primary-rgb), .9), transparent 55%), var(--fc-primary-dark);
    border: 1px solid rgba(var(--fc-accent-d-rgb), .16);
    box-shadow: 0 30px 70px rgba(var(--fc-primary-dark-rgb), .35);
}
.fc-founder-media { position: relative; overflow: hidden; height: 100%; min-height: 520px; }
.fc-founder-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--fc-ease-luxe); }
.fc-founder-card:hover .fc-founder-media img { transform: scale(1.03); }
.fc-founder-media::after { content: ""; position: absolute; top: 0; bottom: 0; right: 0; width: 90px; background: linear-gradient(to right, transparent, var(--fc-primary-dark)); }
.fc-founder-copy { padding: clamp(32px, 6vw, 80px); }
.fc-founder-copy .fc-eyebrow { justify-content: flex-start; }
.fc-founder-copy .fc-eyebrow::after { display: none; }
.fc-founder-copy h2 { color: var(--fc-on-dark); font-size: clamp(1.9rem, 3vw, 2.7rem); font-weight: 400; line-height: 1.18; margin-bottom: 22px; }
.fc-founder-quote { display: block; height: 34px; margin-bottom: 4px; font-family: var(--font-display); font-size: 72px; line-height: .9; color: var(--fc-accent); opacity: .6; }
.fc-founder-body { color: rgba(var(--fc-on-dark-rgb), .8); font-size: clamp(15px, 1.25vw, 17px); line-height: 1.9; font-weight: 300; margin-bottom: 32px; }
.fc-founder-body p:last-child { margin-bottom: 0; }
.fc-founder-sign { color: var(--fc-accent); font-family: var(--font-display); font-style: italic; font-size: clamp(1.5rem, 2.4vw, 1.9rem); line-height: 1.2; }
.fc-founder-role { margin-top: 8px; color: rgba(var(--fc-on-dark-rgb), .55); font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
@media (max-width: 991.98px) {
    .fc-founder-media { min-height: 0; height: auto; aspect-ratio: 4 / 3; max-height: 460px; }
    .fc-founder-media::after { top: auto; left: 0; width: auto; height: 90px; background: linear-gradient(to bottom, transparent, var(--fc-primary-dark)); }
}

/* Story */
.fc-story-body { color: var(--fc-muted); font-size: clamp(15px, 1.3vw, 17px); line-height: 1.9; }
.fc-story-sign { margin-top: 26px; color: var(--fc-accent); font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.fc-story-media { position: relative; padding: 0 clamp(14px, 3vw, 28px) clamp(14px, 3vw, 28px) 0; }
.fc-story-media::before { content: ""; position: absolute; top: clamp(14px, 3vw, 28px); left: clamp(14px, 3vw, 28px); right: 0; bottom: 0; border: 1px solid rgba(var(--fc-accent-rgb), .4); border-radius: var(--fc-r-lg); }
.fc-story-media img { position: relative; z-index: 1; display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--fc-r-lg); box-shadow: var(--fc-shadow-3); }
@media (min-width: 992px) { .fc-story-media img { aspect-ratio: 5 / 6; } }

/* Virtual tour */
.fc-virtual-tour {
    position: relative; display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden;
    min-height: clamp(460px, 78vh, 820px); padding-block: var(--fc-sec-y);
    background-color: var(--sec-bg, var(--fc-primary-dark)); background-size: cover; background-position: center;
}
@media (min-width: 992px) and (hover: hover) { .fc-virtual-tour { background-attachment: fixed; } }
.fc-virtual-tour::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(var(--fc-primary-rgb), .86), rgba(var(--fc-primary-dark-rgb), .78)); }
.fc-virtual-tour .container { position: relative; z-index: 2; }
.fc-virtual-tour h2 { color: var(--fc-on-dark); font-size: var(--fc-fs-display); font-weight: 500; line-height: 1.06; margin-bottom: 18px; text-wrap: balance; }
.fc-virtual-tour p { max-width: 56ch; margin: 0 auto 36px; color: rgba(var(--fc-on-dark-rgb), .86); font-size: clamp(15px, 1.4vw, 18px); line-height: 1.8; }
.fc-play-btn { display: inline-flex; flex-direction: column; align-items: center; gap: 18px; padding: 0; border: 0; background: transparent; }
.fc-play-ring {
    width: clamp(76px, 9vw, 92px); height: clamp(76px, 9vw, 92px); border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--fc-accent-d); color: var(--fc-accent-d); font-size: 24px;
    backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
    animation: fcPulse 2.4s infinite; transition: all .4s var(--fc-ease-luxe);
}
.fc-play-ring i { margin-left: 4px; }
.fc-play-label { color: var(--fc-accent-d); font-size: 10.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; transition: color .3s; }
.fc-play-btn:hover .fc-play-ring { background: var(--fc-accent-d); color: var(--fc-on-accent-d); transform: scale(1.08); animation: none; box-shadow: 0 14px 34px rgba(var(--fc-accent-d-rgb), .35); }
.fc-play-btn:hover .fc-play-label { color: #fff; }
.fc-tour-frame { aspect-ratio: 16 / 9; width: 100%; overflow: hidden; border-radius: 18px; background: #000; border: 1px solid rgba(var(--fc-accent-d-rgb), .2); box-shadow: 0 30px 70px rgba(0, 0, 0, .5); }
.fc-tour-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.fc-tour-empty { display: flex; height: 100%; align-items: center; justify-content: center; color: rgba(255, 255, 255, .6); }
@keyframes fcPulse {
    0% { transform: scale(.95); box-shadow: 0 0 0 0 rgba(var(--fc-accent-d-rgb), .45); }
    70% { transform: scale(1); box-shadow: 0 0 0 22px rgba(var(--fc-accent-d-rgb), 0); }
    100% { transform: scale(.95); box-shadow: 0 0 0 0 rgba(var(--fc-accent-d-rgb), 0); }
}

/* Customer gallery */
.fc-gallery-tile { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 5; border-radius: var(--fc-r-md); background: var(--fc-primary-dark); box-shadow: var(--fc-shadow-1); transition: box-shadow .45s var(--fc-ease-luxe); }
.fc-gallery-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--fc-ease-luxe); }
.fc-gallery-tile:hover { box-shadow: var(--fc-shadow-3); }
.fc-gallery-tile:hover img { transform: scale(1.07); }
.fc-gallery-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px; background: linear-gradient(to top, rgba(var(--fc-primary-dark-rgb), .88), transparent); color: var(--fc-on-dark); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: 0; transition: opacity .4s var(--fc-ease-luxe); }
.fc-gallery-tile:hover .fc-gallery-cap { opacity: 1; }
@media (hover: none), (max-width: 767.98px) { .fc-gallery-cap { opacity: 1; padding: 10px; font-size: 9.5px; } }

/* FAQ */
.fc-faq-list { max-width: 820px; margin: 0 auto; }
.fc-faq-item { background: transparent; border: 0; border-bottom: 1px solid var(--fc-line); border-radius: 0 !important; }
.fc-faq-item:first-child { border-top: 1px solid var(--fc-line); }
.fc-faq-btn {
    display: flex; align-items: center; justify-content: space-between; gap: 18px; width: 100%;
    padding: clamp(18px, 2.4vw, 24px) 0; border: 0; background: transparent; text-align: left;
    color: var(--fc-heading); font-family: var(--font-display); font-size: clamp(16px, 1.6vw, 19px); font-weight: 500; line-height: 1.4;
    transition: color .3s;
}
.fc-faq-btn:hover { color: var(--fc-accent); }
.fc-faq-icon { position: relative; width: 30px; height: 30px; flex-shrink: 0; border-radius: 50%; border: 1px solid rgba(var(--fc-accent-rgb), .35); color: var(--fc-accent); transition: all .4s var(--fc-ease-luxe); }
.fc-faq-icon::before, .fc-faq-icon::after { content: ""; position: absolute; top: 50%; left: 50%; width: 11px; height: 1.5px; margin: -.75px 0 0 -5.5px; background: currentColor; transition: transform .4s var(--fc-ease-luxe); }
.fc-faq-icon::after { transform: rotate(90deg); }
.fc-faq-btn:not(.collapsed) .fc-faq-icon { background: var(--fc-accent); border-color: var(--fc-accent); color: var(--fc-on-accent); }
.fc-faq-btn:not(.collapsed) .fc-faq-icon::after { transform: rotate(0deg); }
.fc-faq-answer { padding: 0 48px clamp(20px, 2.4vw, 26px) 0; color: var(--fc-muted); font-size: 15px; line-height: 1.85; }
@media (max-width: 575.98px) { .fc-faq-answer { padding-right: 0; } }

/* Reviews */
.fc-review-card {
    height: 100%; display: flex; flex-direction: column; padding: clamp(24px, 3vw, 34px);
    background: var(--fc-card); border: 1px solid var(--fc-card-line); border-radius: var(--fc-r-lg);
    transition: transform .45s var(--fc-ease-luxe), border-color .45s var(--fc-ease-luxe);
}
.fc-review-card:hover { transform: translateY(-4px); border-color: rgba(var(--fc-accent-rgb), .45); }
.fc-review-stars { color: var(--fc-accent); font-size: 13px; letter-spacing: 3px; margin-bottom: 16px; }
.fc-review-quote { flex: 1; color: var(--fc-text); opacity: .9; font-family: var(--font-display); font-style: italic; font-size: clamp(15px, 1.35vw, 17px); line-height: 1.75; margin-bottom: 22px; }
.fc-review-author { display: flex; align-items: center; gap: 12px; color: var(--fc-accent); font-family: var(--font-ui); font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin: 0; }
.fc-review-avatar { width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(var(--fc-accent-rgb), .14); color: var(--fc-accent); font-family: var(--font-display); font-size: 14px; letter-spacing: 0; }
@media (max-width: 767.98px) {
    .fc-review-row { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 6px; }
    .fc-review-row::-webkit-scrollbar { display: none; }
    .fc-review-row > [class*="col"] { flex: 0 0 84%; max-width: 84%; scroll-snap-align: start; }
}

/* Promise */
.fc-promise-card {
    height: 100%; padding: clamp(28px, 3.5vw, 42px);
    border: 1px solid var(--fc-card-line); border-radius: var(--fc-r-lg); background: var(--fc-card);
    transition: transform .45s var(--fc-ease-luxe), border-color .45s var(--fc-ease-luxe);
}
.fc-promise-card:hover { transform: translateY(-5px); border-color: rgba(var(--fc-accent-rgb), .55); }
.fc-promise-index { display: block; margin-bottom: 18px; color: var(--fc-accent); font-family: var(--font-display); font-size: clamp(30px, 3.4vw, 40px); font-style: italic; line-height: 1; }
.fc-promise-card h5 { color: var(--fc-heading); font-size: clamp(1.15rem, 1.6vw, 1.35rem); font-weight: 500; margin-bottom: 10px; }
.fc-promise-card p { color: var(--fc-muted); margin: 0; line-height: 1.8; }

/* Close CTA */
.fc-close-inner { max-width: 720px; margin: 0 auto; text-align: center; }
.fc-close-phone { margin-top: 26px; color: var(--fc-muted); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.fc-close-phone a { color: var(--fc-accent); border-bottom: 1px solid rgba(var(--fc-accent-rgb), .4); padding-bottom: 2px; }
.fc-close-phone a:hover { color: var(--fc-accent-strong); }

/* Legacy homepage classes kept for views/site/index.php */
.fc-cat-card { display: block; text-align: center; }
.fc-cat-media { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: var(--fc-primary-tint); border-radius: var(--fc-r-md); margin-bottom: 15px; display: flex; align-items: center; justify-content: center; }
.fc-cat-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--fc-ease-luxe); }
.fc-cat-card:hover .fc-cat-media img { transform: scale(1.05); }
.fc-cat-name { font-family: var(--font-display); font-size: 18px; color: var(--fc-heading); margin-bottom: 5px; }
.fc-media-empty { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: rgba(var(--fc-primary-rgb), .3); font-size: 40px; background: linear-gradient(135deg, var(--fc-primary-tint), #fff); }
.fc-home-close { padding-block: var(--fc-sec-y); background: var(--fc-surface-alt); }

/* =====================================================================
   LUCKY SPIN
   ===================================================================== */
.fc-spin-modal { border-radius: 22px; overflow: hidden; border: none; background: #fff; box-shadow: 0 40px 100px rgba(0, 0, 0, .5); }
.fc-spin-left { background: radial-gradient(circle at center, var(--fc-primary) 0%, var(--fc-primary-dark) 55%, var(--fc-ink) 100%); padding: 50px 30px; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.fc-spin-right { padding: clamp(32px, 5vw, 60px) clamp(22px, 4vw, 50px); text-align: center; }
.fc-wheel-container { position: relative; width: 100%; max-width: 360px; aspect-ratio: 1; margin: 0 auto; filter: drop-shadow(0 15px 30px rgba(0, 0, 0, .5)); }
.fc-wheel {
    width: 100%; height: 100%; border-radius: 50%; position: relative; overflow: hidden;
    background: var(--wheel-gradient, #ccc);
    border: 8px solid var(--fc-primary-dark); outline: 6px solid var(--fc-accent-d);
    transition: transform 6s cubic-bezier(0.2, 0.9, 0.1, 1);
    box-shadow: inset 0 0 25px rgba(0, 0, 0, .8), 0 0 20px rgba(var(--fc-accent-d-rgb), .3);
}
.fc-wheel::after { content: ''; position: absolute; inset: 0; border-radius: 50%; box-shadow: inset 0 0 40px rgba(0, 0, 0, .6); pointer-events: none; z-index: 5; }
.fc-wheel-label { position: absolute; top: 50%; left: 50%; width: 50%; height: 40px; margin-top: -20px; transform-origin: 0 50%; display: flex; align-items: center; box-sizing: border-box; z-index: 2; }
.fc-wheel-label span { color: #fff; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 2px; white-space: nowrap; text-shadow: 0 2px 4px rgba(0, 0, 0, .9); display: block; }
.fc-wheel-center {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 10;
    width: 70px; height: 70px; border-radius: 50%; border: 4px solid #fff;
    display: flex; align-items: center; justify-content: center;
    background: radial-gradient(circle at center, var(--fc-accent-d-soft) 0%, var(--fc-accent-d) 100%);
    color: var(--fc-on-accent-d); font-family: var(--font-display); font-size: 15px; font-weight: bold;
    box-shadow: 0 5px 15px rgba(0, 0, 0, .6);
}
.fc-wheel-pointer { position: absolute; top: -15px; left: 50%; transform: translateX(-50%); width: 35px; height: 45px; background: linear-gradient(to bottom, var(--fc-accent-d-soft) 0%, var(--fc-accent-d) 100%); clip-path: polygon(50% 100%, 15% 0, 85% 0); z-index: 15; filter: drop-shadow(0 5px 5px rgba(0, 0, 0, .5)); }
.fc-spin-input { display: flex; border: 1px solid rgba(var(--fc-ink-rgb), .14); border-radius: 12px; margin-bottom: 20px; overflow: hidden; background: #fff; }
.fc-spin-input span { background: var(--fc-primary-tint); padding: 15px 18px; font-weight: 700; color: var(--fc-primary); border-right: 1px solid rgba(var(--fc-ink-rgb), .1); }
.fc-spin-input input { border: none; padding: 15px; width: 100%; outline: none; font-size: 15px; background: transparent; }

/* =====================================================================
   RESPONSIVE CHROME
   ===================================================================== */
@media (max-width: 991.98px) {
    .fc-nav { min-height: 66px; }
    .fc-brand img { height: 46px; }
    .fc-brand span { font-size: 14px; }
    .fc-nav .navbar-collapse { order: 10; width: 100%; }
    .fc-nav-links { align-items: stretch; padding: 8px 0 14px; border-top: 1px solid var(--fc-line); }
    .fc-nav-link { padding: 13px 4px; border-bottom: 1px solid var(--fc-line); font-size: 11px; }
    .fc-nav-link::after { display: none; }
    .fc-payments { justify-content: center; margin-top: 16px; }
}
@media (max-width: 767.98px) {
    body { padding-bottom: calc(60px + env(safe-area-inset-bottom)); }
    .fc-announcement { min-height: 32px; font-size: 8px; letter-spacing: .14em; }
    .fc-nav { min-height: 62px; }
    .fc-brand img { height: 42px; margin-bottom: -4px; }
    .fc-brand span { font-size: 13px; }
    .fc-icon-btn { width: 36px; height: 36px; font-size: 13px; }
    .fc-actions { gap: 0; }
    .fc-wa-float, .fc-consult-float, .fc-spin-float { display: none !important; }
    .fc-mobile-bar { display: flex; }
    .fc-modal-body { padding: 22px; }
    .fc-footer-links a, .fc-footer-links button { font-size: 13px; }
    .fc-subscribe-box button { padding: 11px 16px; }
    .fc-hero-copy { padding: 100px 0 64px; align-self: flex-end; }
    .fc-home-hero { min-height: 600px; }
    .fc-spin-left { padding: 36px 20px; }
    .fc-toast-stack { padding-top: 76px; }
}
@media (max-width: 380px) {
    .fc-btn { padding: 0 22px; letter-spacing: .12em; }
    .fc-brand span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .fc-js .fc-reveal { opacity: 1; transform: none; }
    .fc-marquee-track { animation: none; }
}

/* Product cards sitting on their own white tile keep dark text in any section */
.fc-scroll-item .fc-product-card .fc-product-name a { color: var(--fc-ink); }
.fc-scroll-item .fc-product-card .fc-product-name a:hover { color: var(--fc-primary); }
.fc-scroll-item .fc-product-card .fc-product-kicker { color: rgba(var(--fc-ink-rgb), .55); }
.fc-scroll-item .fc-product-card .fc-product-price { color: var(--fc-primary); }

/* =====================================================================
   IMAGE FALLBACKS — a missing or broken image shows a branded panel,
   never alt text on a dark box.
   ===================================================================== */
.fc-img-fallback {
    position: absolute; inset: 0; z-index: 0; display: flex; align-items: center; justify-content: center;
    background: radial-gradient(circle at 30% 20%, rgba(var(--fc-accent-d-rgb), .18), transparent 55%), linear-gradient(145deg, var(--fc-primary), var(--fc-primary-dark));
    color: rgba(var(--fc-on-dark-rgb), .45); font-size: 2rem;
}
.fc-occasion-card img, .fc-range-card img { position: relative; z-index: 1; }
.fc-range-card img { position: absolute; }
.fc-occasion-body, .fc-range-card-body { z-index: 2; }
.fc-range-card::after { z-index: 1; }

/* =====================================================================
   THEME GUARD
   Some page templates still carry older inline colour rules that load after
   this file. These selectors are deliberately stronger so the admin Colour
   Studio always decides the final colours, and button text never
   disappears into its own background.
   ===================================================================== */
html body.fc-site { background-color: var(--fc-surface); color: var(--fc-ink); }
html body.fc-site .fc-sec { background-color: var(--sec-bg, var(--fc-surface)) !important; color: var(--fc-text); }
html body.fc-site .fc-sec .fc-title, html body.fc-site .fc-sec .fc-section-title { color: var(--fc-heading); }
html body.fc-site .fc-sec .fc-eyebrow { color: var(--fc-accent); }
html body.fc-site .fc-sec .fc-lede, html body.fc-site .fc-sec .fc-section-copy { color: var(--fc-muted); }

html body.fc-site .fc-btn { border-radius: 999px; }
html body.fc-site .fc-btn-dark { background: var(--fc-ink); color: #FFFFFF; border-color: var(--fc-ink); }
html body.fc-site .fc-btn-dark:hover, html body.fc-site .fc-btn-dark:focus-visible { background: var(--fc-primary); color: var(--fc-on-primary); border-color: var(--fc-primary); }
html body.fc-site .fc-ctx-dark .fc-btn-dark { background: var(--fc-on-dark); color: var(--fc-primary); border-color: var(--fc-on-dark); }
html body.fc-site .fc-ctx-dark .fc-btn-dark:hover { background: #FFFFFF; color: var(--fc-primary); }

html body.fc-site .fc-btn-gold, html body.fc-site .fc-btn-accent { background: var(--fc-accent-l); color: var(--fc-on-accent-l); border-color: var(--fc-accent-l); }
html body.fc-site .fc-btn-gold:hover, html body.fc-site .fc-btn-accent:hover { background: var(--fc-accent-l-strong); color: var(--fc-on-accent-l); border-color: var(--fc-accent-l-strong); }
html body.fc-site .fc-ctx-dark .fc-btn-gold, html body.fc-site .fc-ctx-dark .fc-btn-accent { background: var(--fc-accent-d); color: var(--fc-on-accent-d); border-color: var(--fc-accent-d); }
html body.fc-site .fc-ctx-dark .fc-btn-gold:hover, html body.fc-site .fc-ctx-dark .fc-btn-accent:hover { background: var(--fc-accent-d-strong); color: var(--fc-on-accent-d); }

html body.fc-site .fc-btn-outline { background: transparent; color: var(--fc-heading); border-color: rgba(var(--fc-accent-rgb), .45); }
html body.fc-site .fc-btn-outline:hover { background: var(--fc-accent); color: var(--fc-on-accent); border-color: var(--fc-accent); }

html body.fc-site .fc-product-icon { position: absolute; top: 10px; right: 10px; left: auto; bottom: auto; width: 36px; height: 36px; }
html body.fc-site .fc-product-media { background-color: var(--fc-card-bg, #FDF9F8); }
@media (max-width: 575.98px) { html body.fc-site .fc-product-icon { width: 32px; height: 32px; top: 8px; right: 8px; } }

/* Keep prices aligned across a row of product cards */
@media (min-width: 576px) { .fc-product-name { min-height: calc(1.35em * 2); } }

/* Product card click safety: the photo always opens the product; only the heart wishlists */
html body.fc-site .fc-product-media > .fc-product-link { position: absolute; inset: 0; width: auto; height: auto; z-index: 1; }
html body.fc-site .fc-product-media > .fc-product-icon { inset: 10px 10px auto auto; max-width: 36px; max-height: 36px; padding: 0; z-index: 3; }
@media (max-width: 575.98px) { html body.fc-site .fc-product-media > .fc-product-icon { inset: 8px 8px auto auto; max-width: 32px; max-height: 32px; } }

/* Lucky Spin (homepage) */
.fc-wheel-outer-rim { position: relative; width: 100%; max-width: 340px; aspect-ratio: 1; margin: 0 auto; border-radius: 50%; padding: 6px; border: 1px solid rgba(var(--fc-accent-d-rgb), .3); box-shadow: 0 25px 60px rgba(0, 0, 0, .3); }
.fc-wheel-inner-rim { width: 100%; height: 100%; border-radius: 50%; padding: 4px; border: 1px solid rgba(var(--fc-accent-d-rgb), .55); }
.fc-spin-modal .fc-wheel { border: 1px solid var(--fc-accent-d); outline: 0; box-shadow: inset 0 0 30px rgba(0, 0, 0, .25); }
.fc-spin-modal .fc-wheel-label { padding-right: 35px; padding-left: 55px; }
.fc-wheel-label-text { width: 100%; display: flex; align-items: center; color: var(--fc-primary-dark); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; line-height: 1.2; text-shadow: 0 1px 3px rgba(255, 255, 255, .7); }
.fc-spin-modal .fc-wheel-center { width: 64px; height: 64px; border: 1px solid var(--fc-accent-d); background: radial-gradient(circle at 35% 30%, var(--fc-primary), var(--fc-primary-dark)); color: var(--fc-accent-d); font-size: 11px; letter-spacing: .16em; font-weight: 600; }
.fc-spin-modal .fc-wheel-pointer { top: -10px; width: 22px; height: 30px; }
.fc-spin-right { display: flex; flex-direction: column; justify-content: center; }
.fc-spin-right .fc-eyebrow { color: rgba(var(--fc-ink-rgb), .5); }
.fc-spin-right h4, .fc-spin-right h5 { color: var(--fc-primary); }
.fc-spin-muted { color: rgba(var(--fc-ink-rgb), .58); }
.fc-spin-input-group { display: flex; border-radius: 999px; border: 1px solid rgba(var(--fc-primary-rgb), .16); overflow: hidden; margin-bottom: 16px; background: #fff; transition: border-color .3s, box-shadow .3s; }
.fc-spin-input-group:focus-within { border-color: var(--fc-primary); box-shadow: 0 0 0 4px rgba(var(--fc-primary-rgb), .08); }
.fc-spin-input-group span { padding: 14px 18px; font-weight: 700; color: rgba(var(--fc-ink-rgb), .55); border-right: 1px solid rgba(var(--fc-primary-rgb), .1); }
.fc-spin-input-group input { flex: 1; min-width: 0; border: 0; padding: 14px; outline: 0; font-size: 15px; font-weight: 600; color: var(--fc-primary); background: transparent; }
.fc-spin-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 52px; border: 0; border-radius: 999px; background: var(--fc-primary); color: var(--fc-on-primary); font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; transition: background-color .3s, transform .3s; }
.fc-spin-btn:hover { background: var(--fc-primary-dark); color: var(--fc-on-primary); transform: translateY(-2px); }
.fc-spin-btn:disabled { opacity: .7; transform: none; }
.fc-elegant-ticket { background: var(--fc-primary-tint); border: 1px dashed rgba(var(--fc-primary-rgb), .35); border-radius: 14px; padding: 18px; margin-bottom: 18px; }
.animate-fade-soft { animation: fcHeroIn .6s var(--fc-ease-luxe) forwards; opacity: 0; transform: translateY(10px); }
@media (max-width: 767.98px) { .fc-wheel-outer-rim { max-width: 250px; } .fc-spin-right { padding: 30px 20px; } }

/* =====================================================================
   ACCOUNT MENU (header)
   ===================================================================== */
.fc-account-avatar { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--fc-primary); color: var(--fc-on-primary); font-family: var(--font-display); font-size: 14px; line-height: 1; }
.fc-account-avatar.lg { width: 42px; height: 42px; font-size: 18px; flex-shrink: 0; }
.fc-account-btn { padding: 0; }
.fc-account-menu { min-width: 250px; padding: 8px; margin-top: 10px !important; border: 1px solid rgba(var(--fc-primary-rgb), .08); border-radius: 16px; box-shadow: var(--fc-shadow-3); animation: fcFadeDown .25s var(--fc-ease-luxe); }
.fc-account-head { display: flex; align-items: center; gap: 12px; padding: 10px 10px 14px; margin-bottom: 6px; border-bottom: 1px solid rgba(var(--fc-ink-rgb), .07); }
.fc-account-head strong { font-size: 14px; color: var(--fc-ink); font-weight: 700; }
.fc-account-head small { font-size: 12px; color: rgba(var(--fc-ink-rgb), .55); }
.fc-account-menu .dropdown-item { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; font-size: 13.5px; color: var(--fc-ink); }
.fc-account-menu .dropdown-item i { width: 18px; text-align: center; color: rgba(var(--fc-ink-rgb), .5); }
.fc-account-menu .dropdown-item:hover, .fc-account-menu .dropdown-item:focus { background: var(--fc-primary-tint); color: var(--fc-primary); }
.fc-account-menu .dropdown-item:hover i { color: var(--fc-primary); }
.fc-account-logout { color: #B42318 !important; font-weight: 600; }
.fc-account-logout i { color: #B42318 !important; }
.fc-account-logout:hover { background: #FEF3F2 !important; }
@media (max-width: 575.98px) { .fc-account-menu { position: fixed !important; left: 12px !important; right: 12px !important; top: 70px !important; min-width: 0; } }

/* Pages that hide the site chrome (sign in, sign up, password pages) */
.fc-chromeless .fc-header, .fc-chromeless .fc-footer, .fc-chromeless .fc-mobile-bar,
.fc-chromeless .fc-wa-float, .fc-chromeless .fc-consult-float, .fc-chromeless .fc-spin-float,
.fc-chromeless .fc-toast-stack { display: none !important; }
body.fc-chromeless { padding-bottom: 0 !important; }

/* =====================================================================
   AUTH PAGES (sign in, create account, password, verification)
   ===================================================================== */
.fc-auth { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); min-height: 100vh; min-height: 100dvh; background: var(--fc-surface); }
.fc-auth-media { position: sticky; top: 0; height: 100vh; height: 100dvh; overflow: hidden; background: var(--fc-primary-dark) center / cover no-repeat; color: var(--fc-on-dark); display: flex; flex-direction: column; justify-content: space-between; padding: clamp(28px, 4vw, 56px); isolation: isolate; }
.fc-auth-media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.fc-auth-media::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(var(--fc-primary-dark-rgb), .35) 0%, rgba(var(--fc-primary-dark-rgb), .15) 40%, rgba(var(--fc-primary-dark-rgb), .92) 100%); }
.fc-auth-brand { display: inline-flex; align-items: center; gap: 12px; color: var(--fc-on-dark); font-family: var(--font-display); font-size: 20px; }
.fc-auth-brand img { height: 44px; width: auto; filter: brightness(0) invert(1); }
.fc-auth-media .fc-eyebrow { justify-content: flex-start; color: var(--fc-accent-d); }
.fc-auth-media .fc-eyebrow::after { display: none; }
.fc-auth-media h2 { color: var(--fc-on-dark); font-size: clamp(2.2rem, 3.6vw, 3.4rem); font-weight: 500; line-height: 1.08; margin: 0 0 14px; max-width: 14ch; text-wrap: balance; }
.fc-auth-media p { color: rgba(var(--fc-on-dark-rgb), .82); font-size: 15px; line-height: 1.8; max-width: 44ch; margin: 0; }
.fc-auth-perks { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 12px; }
.fc-auth-perks li { display: flex; align-items: center; gap: 12px; font-size: 13.5px; color: rgba(var(--fc-on-dark-rgb), .88); }
.fc-auth-perks i { width: 32px; height: 32px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(var(--fc-on-dark-rgb), .12); border: 1px solid rgba(var(--fc-on-dark-rgb), .2); color: var(--fc-accent-d); font-size: 13px; flex-shrink: 0; }

.fc-auth-main { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; padding: clamp(20px, 3vw, 36px) clamp(20px, 5vw, 64px); }
.fc-auth-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.fc-auth-top .fc-auth-logo { display: none; }
.fc-auth-top nav { display: flex; gap: 22px; margin-left: auto; }
.fc-auth-top nav a { color: rgba(var(--fc-ink-rgb), .6); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.fc-auth-top nav a:hover { color: var(--fc-primary); }
.fc-auth-body { flex: 1; display: flex; align-items: center; justify-content: center; padding: clamp(24px, 5vh, 56px) 0; }
.fc-auth-card { width: 100%; max-width: 440px; animation: fcHeroIn .8s var(--fc-ease-luxe) both; }
.fc-auth-card.is-wide { max-width: 520px; }
.fc-auth-card h1 { color: var(--fc-primary); font-size: clamp(1.9rem, 3vw, 2.5rem); font-weight: 500; margin: 0 0 8px; }
.fc-auth-sub { color: rgba(var(--fc-ink-rgb), .6); font-size: 14.5px; margin: 0 0 28px; line-height: 1.6; }
.fc-auth-foot { margin-top: 28px; padding-top: 22px; border-top: 1px solid rgba(var(--fc-ink-rgb), .08); text-align: center; font-size: 13.5px; color: rgba(var(--fc-ink-rgb), .6); }
.fc-auth-foot p { margin: 0 0 10px; }
.fc-auth-foot p:last-child { margin: 0; }
.fc-auth-legal { text-align: center; font-size: 11.5px; color: rgba(var(--fc-ink-rgb), .45); }

.fc-form-group { margin-bottom: 18px; }
.fc-label, .fc-form-group .control-label, .fc-form-group > label { display: block; margin-bottom: 8px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--fc-ink); }
.fc-input { display: block; width: 100%; min-height: 52px; padding: 14px 16px; border: 1px solid rgba(var(--fc-ink-rgb), .14); border-radius: 12px; background: #fff; color: var(--fc-ink); font-size: 15px; transition: border-color .25s var(--fc-ease-luxe), box-shadow .25s var(--fc-ease-luxe); box-shadow: none; }
.fc-input::placeholder { color: rgba(var(--fc-ink-rgb), .35); }
.fc-input:hover { border-color: rgba(var(--fc-ink-rgb), .24); }
.fc-input:focus { outline: 0; border-color: var(--fc-primary); box-shadow: 0 0 0 4px rgba(var(--fc-primary-rgb), .1); background: #fff; }
.fc-input.is-invalid, .has-error .fc-input { border-color: #D92D20; box-shadow: 0 0 0 4px rgba(217, 45, 32, .08); }
textarea.fc-input { min-height: 130px; resize: vertical; }
.fc-form-group .invalid-feedback, .fc-form-group .help-block-error { display: block; margin-top: 6px; font-size: 12.5px; font-weight: 600; color: #D92D20; }
.fc-form-group .invalid-feedback:empty { display: none; }
.fc-pass-wrap { position: relative; }
.fc-pass-wrap .fc-input { padding-right: 52px; }
.fc-pass-toggle { position: absolute; top: 0; right: 0; width: 52px; height: 52px; border: 0; background: none; color: rgba(var(--fc-ink-rgb), .45); display: flex; align-items: center; justify-content: center; }
.fc-pass-toggle:hover { color: var(--fc-primary); }
.fc-check { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: rgba(var(--fc-ink-rgb), .7); cursor: pointer; }
.fc-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--fc-primary); cursor: pointer; }
.fc-site .fc-link, .fc-link { color: var(--fc-primary); font-weight: 700; text-decoration: underline; text-decoration-color: rgba(var(--fc-primary-rgb), .3); text-underline-offset: 4px; }
.fc-site .fc-link:hover, .fc-link:hover { color: var(--fc-primary-dark); text-decoration-color: currentColor; }
.fc-btn-block { width: 100%; min-height: 54px; }
.fc-alert { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 12px; margin-bottom: 20px; font-size: 13.5px; line-height: 1.55; }
.fc-alert i { margin-top: 2px; }
.fc-alert.is-success { background: #ECFDF3; color: #05603A; border: 1px solid #ABEFC6; }
.fc-alert.is-error { background: #FEF3F2; color: #B42318; border: 1px solid #FECDCA; }
.fc-alert.is-info { background: var(--fc-primary-tint); color: var(--fc-primary); border: 1px solid rgba(var(--fc-primary-rgb), .15); }
.fc-alert .btn { margin-top: 8px; }

@media (max-width: 991.98px) {
    .fc-auth { grid-template-columns: 1fr; }
    .fc-auth-media { position: relative; height: auto; min-height: 240px; justify-content: space-between; gap: 28px; padding: 20px; }
    .fc-auth-media p, .fc-auth-perks { display: none; }
    .fc-auth-brand { font-size: 17px; }
    .fc-auth-brand img { height: 36px; }
    .fc-auth-media h2 { font-size: 1.9rem; max-width: none; margin: 0; }
    .fc-auth-main { min-height: 0; padding: 16px 20px 32px; }
    .fc-auth-body { align-items: flex-start; padding-top: 24px; }
}

/* Empty states */
.fc-empty-panel { max-width: 520px; margin: 0 auto; text-align: center; padding: clamp(36px, 6vw, 64px) 24px; background: #fff; border: 1px solid rgba(var(--fc-primary-rgb), .08); border-radius: var(--fc-r-lg); box-shadow: var(--fc-shadow-1); }
.fc-empty-icon { width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--fc-primary-tint); color: var(--fc-primary); font-size: 24px; }
.fc-empty-panel h2 { color: var(--fc-primary); font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 500; margin-bottom: 10px; }
.fc-empty-panel p { color: rgba(var(--fc-ink-rgb), .6); margin-bottom: 24px; }

/* =====================================================================
   CONTENT PAGES (CMS page, about, contact, error)
   ===================================================================== */
.fc-page-hero { position: relative; padding: clamp(56px, 9vw, 110px) 0 clamp(40px, 6vw, 70px); text-align: center; background: radial-gradient(circle at 50% 0%, rgba(var(--fc-blush-rgb, 241, 214, 208), .9), transparent 70%), var(--fc-surface); border-bottom: 1px solid rgba(var(--fc-primary-rgb), .07); }
.fc-page-hero h1 { color: var(--fc-primary); font-size: var(--fc-fs-display); font-weight: 500; line-height: 1.08; margin: 0 auto 14px; max-width: 18ch; text-wrap: balance; }
.fc-page-hero p { color: rgba(var(--fc-ink-rgb), .62); max-width: 56ch; margin: 0 auto; font-size: clamp(15px, 1.3vw, 17px); }
.fc-crumbs { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; font-size: 12px; color: rgba(var(--fc-ink-rgb), .5); }
.fc-crumbs a { color: rgba(var(--fc-ink-rgb), .65); }
.fc-crumbs a:hover { color: var(--fc-primary); }
.fc-prose { max-width: 760px; margin: 0 auto; color: rgba(var(--fc-ink-rgb), .78); font-size: clamp(15px, 1.2vw, 17px); line-height: 1.9; }
.fc-prose > *:first-child { margin-top: 0; }
.fc-prose h1, .fc-prose h2, .fc-prose h3, .fc-prose h4 { color: var(--fc-primary); font-family: var(--font-display); font-weight: 500; line-height: 1.25; margin: 2.2em 0 .7em; }
.fc-prose h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); }
.fc-prose h3 { font-size: clamp(1.25rem, 1.9vw, 1.5rem); }
.fc-prose p, .fc-prose ul, .fc-prose ol { margin-bottom: 1.3em; }
.fc-prose ul, .fc-prose ol { padding-left: 1.3em; }
.fc-prose li { margin-bottom: .5em; }
.fc-prose li::marker { color: var(--fc-primary); }
.fc-prose a { color: var(--fc-primary); text-decoration: underline; text-underline-offset: 3px; }
.fc-prose img { max-width: 100%; height: auto; border-radius: var(--fc-r-md); margin: 1.5em 0; }
.fc-prose blockquote { margin: 2em 0; padding: 4px 0 4px 22px; border-left: 2px solid var(--fc-primary); font-family: var(--font-display); font-style: italic; font-size: 1.2em; color: var(--fc-primary); }
.fc-prose table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: .92em; display: block; overflow-x: auto; }
.fc-prose th, .fc-prose td { padding: 10px 12px; border-bottom: 1px solid rgba(var(--fc-ink-rgb), .1); text-align: left; }
.fc-prose hr { border: 0; border-top: 1px solid rgba(var(--fc-primary-rgb), .15); margin: 2.5em 0; }

/* About */
.fc-about-hero { position: relative; min-height: clamp(460px, 76vh, 760px); display: flex; align-items: flex-end; padding: clamp(40px, 6vw, 80px) 0; background: var(--fc-primary-dark) center / cover no-repeat; isolation: isolate; }
.fc-about-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(var(--fc-primary-dark-rgb), .25), rgba(var(--fc-primary-dark-rgb), .92)); }
.fc-about-hero .fc-eyebrow { justify-content: flex-start; color: var(--fc-accent-d); }
.fc-about-hero .fc-eyebrow::after { display: none; }
.fc-about-hero h1 { color: var(--fc-on-dark); font-size: var(--fc-fs-display); font-weight: 500; line-height: 1.05; max-width: 14ch; margin: 0 0 16px; }
.fc-about-hero p { color: rgba(var(--fc-on-dark-rgb), .85); max-width: 46ch; font-size: clamp(15px, 1.4vw, 18px); margin: 0; }
.fc-timeline { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 3vw, 32px); }
.fc-timeline::before { content: ""; position: absolute; left: 0; right: 0; top: 28px; height: 1px; background: rgba(var(--fc-primary-rgb), .18); }
.fc-milestone { position: relative; padding-top: 64px; }
.fc-milestone::before { content: ""; position: absolute; top: 20px; left: 0; width: 17px; height: 17px; border-radius: 50%; background: var(--fc-surface-alt); border: 2px solid var(--fc-primary); }
.fc-milestone.is-now::before { background: var(--fc-primary); box-shadow: 0 0 0 6px rgba(var(--fc-primary-rgb), .12); }
.fc-milestone span { display: block; color: var(--fc-primary); font-family: var(--font-display); font-size: clamp(2rem, 3.2vw, 2.8rem); line-height: 1; margin-bottom: 10px; }
.fc-milestone h3 { font-size: 1.2rem; color: var(--fc-ink); font-weight: 500; margin-bottom: 8px; }
.fc-milestone p { color: rgba(var(--fc-ink-rgb), .65); margin: 0; line-height: 1.75; }
.fc-values { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(14px, 2vw, 22px); }
.fc-value { padding: clamp(22px, 3vw, 32px); border-radius: var(--fc-r-lg); background: var(--fc-card); border: 1px solid var(--fc-card-line); }
.fc-value i { color: var(--fc-accent); font-size: 20px; margin-bottom: 14px; display: block; }
.fc-value h3 { color: var(--fc-heading); font-size: 1.2rem; font-weight: 500; margin-bottom: 6px; }
.fc-value p { color: var(--fc-muted); margin: 0; line-height: 1.75; }
@media (max-width: 767.98px) {
    .fc-timeline { grid-template-columns: 1fr; gap: 0; }
    .fc-timeline::before { left: 8px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; }
    .fc-milestone { padding: 0 0 28px 44px; }
    .fc-milestone::before { top: 6px; left: 0; }
    .fc-values { grid-template-columns: 1fr; }
}

/* Contact */
.fc-contact-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(20px, 4vw, 48px); align-items: start; }
.fc-contact-panel { padding: clamp(26px, 4vw, 40px); border-radius: var(--fc-r-lg); background: linear-gradient(150deg, var(--fc-primary), var(--fc-primary-dark)); color: var(--fc-on-dark); }
.fc-contact-panel h2 { color: var(--fc-on-dark); font-size: clamp(1.6rem, 2.6vw, 2.1rem); font-weight: 500; margin-bottom: 10px; }
.fc-contact-panel > p { color: rgba(var(--fc-on-dark-rgb), .78); margin-bottom: 26px; }
.fc-contact-line { display: flex; gap: 14px; align-items: flex-start; padding: 16px 0; border-top: 1px solid rgba(var(--fc-on-dark-rgb), .14); color: var(--fc-on-dark); }
.fc-contact-line i { width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: rgba(var(--fc-on-dark-rgb), .12); color: var(--fc-accent-d); }
.fc-contact-line small { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(var(--fc-on-dark-rgb), .6); margin-bottom: 2px; }
.fc-contact-line span, .fc-contact-line a { color: var(--fc-on-dark); font-size: 15px; word-break: break-word; }
a.fc-contact-line:hover span { text-decoration: underline; }
.fc-contact-form { padding: clamp(26px, 4vw, 40px); border-radius: var(--fc-r-lg); background: #fff; border: 1px solid rgba(var(--fc-primary-rgb), .08); box-shadow: var(--fc-shadow-2); }
.fc-contact-form h2 { color: var(--fc-primary); font-size: clamp(1.5rem, 2.4vw, 1.9rem); font-weight: 500; margin-bottom: 6px; }
@media (max-width: 991.98px) { .fc-contact-grid { grid-template-columns: 1fr; } .fc-contact-form { order: -1; } }

/* Error */
.fc-error { min-height: calc(100vh - 220px); display: flex; align-items: center; padding: clamp(56px, 10vw, 120px) 0; background: radial-gradient(circle at 50% 30%, rgba(var(--fc-blush-rgb, 241, 214, 208), .9), transparent 65%), var(--fc-surface); text-align: center; }
.fc-error .fc-error-code { font-family: var(--font-display); font-size: clamp(6rem, 18vw, 11rem); line-height: .9; color: var(--fc-primary); letter-spacing: -.04em; margin: 0; }
.fc-error-code em { font-style: italic; color: rgba(var(--fc-primary-rgb), .35); }
.fc-error h1 { color: var(--fc-ink); font-size: clamp(1.4rem, 2.6vw, 2rem); font-weight: 500; margin: 14px 0 12px; }
.fc-error p { color: rgba(var(--fc-ink-rgb), .62); max-width: 52ch; margin: 0 auto 28px; }
.fc-error-search { display: flex; max-width: 420px; margin: 0 auto 26px; padding: 6px; border-radius: 999px; background: #fff; border: 1px solid rgba(var(--fc-ink-rgb), .12); }
.fc-error-search input { flex: 1; min-width: 0; border: 0; outline: 0; padding: 10px 16px; font-size: 14px; background: transparent; }
.fc-error-search button { border: 0; border-radius: 999px; padding: 0 20px; background: var(--fc-primary); color: var(--fc-on-primary); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.fc-error-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; }

/* Lucky Spin: vibrant rim lights and form */
.fc-spin-left { background: radial-gradient(circle at 30% 20%, #8E244D 0%, var(--fc-primary) 45%, var(--fc-primary-dark) 100%); }
.fc-wheel-outer-rim { container-type: inline-size; background: linear-gradient(145deg, #F9D9A8, #F29CA3 45%, #C2185B); padding: 10px; border: 0; }
.fc-wheel-inner-rim { background: var(--fc-primary-dark); border: 0; padding: 3px; }
.fc-wheel-bulbs { position: absolute; inset: 0; z-index: 12; pointer-events: none; }
.fc-wheel-bulbs i { position: absolute; top: 50%; left: 50%; width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%; background: #FFF6E5; box-shadow: 0 0 6px 2px rgba(255, 230, 200, .85); transform: rotate(calc(var(--i) * 22.5deg)) translateY(calc(-50cqw + 5px)); animation: fcBulb 1.2s ease-in-out infinite; animation-delay: calc(var(--i) * -.15s); }
.fc-wheel-bulbs i:nth-child(odd) { animation-delay: -.6s; }
@keyframes fcBulb { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.fc-spin-modal .fc-wheel-pointer { background: linear-gradient(to bottom, #FFF1EC, #F29CA3); filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .35)); }
.fc-spin-modal .fc-wheel-center { background: radial-gradient(circle at 35% 30%, #C2185B, var(--fc-primary-dark)); border: 3px solid #FFF1EC; color: #FFF1EC; box-shadow: 0 6px 18px rgba(0, 0, 0, .35); }
.fc-spin-fields { display: grid; gap: 10px; margin-bottom: 14px; text-align: left; }
.fc-spin-field { width: 100%; min-height: 50px; padding: 12px 18px; border: 1px solid rgba(var(--fc-primary-rgb), .16); border-radius: 999px; font-size: 15px; color: var(--fc-ink); background: #fff; outline: 0; transition: border-color .3s, box-shadow .3s; }
.fc-spin-field:focus { border-color: var(--fc-primary); box-shadow: 0 0 0 4px rgba(var(--fc-primary-rgb), .08); }
.fc-spin-fields .fc-spin-input-group { margin-bottom: 0; }
.fc-spin-field.is-invalid, .fc-spin-input-group.is-invalid { border-color: #D92D20 !important; box-shadow: 0 0 0 4px rgba(217, 45, 32, .08) !important; }
.fc-spin-btn { background: linear-gradient(135deg, #C2185B, var(--fc-primary)); }
.fc-spin-btn:hover { background: linear-gradient(135deg, #A3134B, var(--fc-primary-dark)); }
@media (prefers-reduced-motion: reduce) { .fc-wheel-bulbs i { animation: none; } }

/* Account menu positioning (no Popper/Bootstrap JS needed) */
.fc-account { position: relative; }
.fc-account .fc-account-menu { position: absolute; top: 100%; right: 0; left: auto; z-index: 1060; display: none; }
.fc-account .fc-account-menu.show { display: block; }
@media (max-width: 575.98px) { .fc-account .fc-account-menu { position: fixed; top: 70px; left: 12px; right: 12px; } }

/* =====================================================================
   OLDER STOREFRONT TEMPLATES (cart, checkout, account ...)
   They were written for "--fc-gold" as a light metallic on maroon buttons.
   On storefront pages it is now a readable rose-gold derived from the
   admin palette, so text like "Continue shopping" never disappears.
   ===================================================================== */
body.fc-site {
    --fc-gold: var(--fc-legacy-gold, #D9A98C);
    --fc-gold-rgb: var(--fc-legacy-gold-rgb, 217, 169, 140);
    --fc-gold-soft: var(--fc-accent-d-soft, #F9EEEB);
    --fc-gold-gradient: linear-gradient(135deg, var(--fc-accent-d-soft, #F9EEEB) 0%, var(--fc-legacy-gold, #D9A98C) 60%, var(--fc-primary, #5A1E2C) 140%);
}
/* New-design sections keep their own context colours */
body.fc-site .fc-ctx-light { --fc-gold: var(--fc-accent-l); --fc-gold-rgb: var(--fc-accent-l-rgb); }
body.fc-site .fc-ctx-dark { --fc-gold: var(--fc-accent-d); --fc-gold-rgb: var(--fc-accent-d-rgb); }
/* Legacy solid buttons on storefront pages: wine fill, always-readable text */
body.fc-site .btn-gold, body.fc-site .btn-maroon, body.fc-site .btn-lux-solid, body.fc-site .btn-premium {
    background: var(--fc-primary) !important; border-color: var(--fc-primary) !important; color: var(--fc-on-primary) !important;
}
body.fc-site .btn-gold:hover, body.fc-site .btn-maroon:hover, body.fc-site .btn-lux-solid:hover, body.fc-site .btn-premium:hover {
    background: var(--fc-primary-dark) !important; border-color: var(--fc-primary-dark) !important; color: var(--fc-on-primary) !important;
}

/* =====================================================================
   LOAD-ORDER PROOFING
   On some servers Bootstrap's CSS is output after this file. These rules
   are specific enough to win either way, so live matches local.
   ===================================================================== */
.fc-site .fc-search-wrapper form { position: relative; }
.fc-site .fc-search-icon { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); z-index: 2; font-size: 13px; line-height: 1; color: var(--fc-muted); pointer-events: none; }
.fc-site .fc-search-wrapper .fc-search-input {
    -webkit-appearance: none; appearance: none; display: block; width: 100%; height: 40px; margin: 0;
    padding: 0 16px 0 40px; border: 1px solid var(--fc-line); border-radius: 999px;
    background-color: rgba(var(--fc-ink-rgb), .03); color: var(--fc-text);
    font-family: var(--font-ui); font-size: 13px; line-height: 38px; box-shadow: none; outline: 0;
    transition: border-color .3s var(--fc-ease-luxe), box-shadow .3s var(--fc-ease-luxe), background-color .3s var(--fc-ease-luxe);
}
.fc-site .fc-search-wrapper .fc-search-input::placeholder { color: var(--fc-muted); opacity: 1; }
.fc-site .fc-search-wrapper .fc-search-input:focus { background-color: #fff; color: var(--fc-ink); border-color: var(--fc-accent-l); box-shadow: 0 0 0 4px rgba(var(--fc-accent-l-rgb), .12); }
.fc-site .fc-search-wrapper .fc-search-input::-webkit-search-cancel-button { cursor: pointer; }

.fc-site .fc-nav.navbar { padding: 0; }
.fc-site .fc-menu-toggle.navbar-toggler { width: 40px; height: 40px; padding: 0; border: 1px solid var(--fc-line); border-radius: 50%; font-size: 15px; color: var(--fc-text); background: var(--fc-card); box-shadow: none; }
.fc-site .fc-faq-list .fc-faq-item { background: transparent; border: 0; border-bottom: 1px solid var(--fc-line); border-radius: 0; }
.fc-site .fc-faq-list .fc-faq-item:first-child { border-top: 1px solid var(--fc-line); }
.fc-site .fc-account .fc-account-menu.dropdown-menu { padding: 8px; border: 1px solid rgba(var(--fc-primary-rgb), .08); border-radius: 16px; font-size: 13.5px; }

/* Outline buttons on photos / dark bands always show their border */
html body.fc-site .fc-ctx-dark .fc-btn-outline { color: var(--fc-on-dark); border-color: rgba(var(--fc-on-dark-rgb), .6); }
html body.fc-site .fc-ctx-dark .fc-btn-outline:hover { background: var(--fc-on-dark); color: var(--fc-primary-dark); border-color: var(--fc-on-dark); }


/* Mega Menu Hover Engine */
.fc-nav { position: static; }
.fc-has-mega { position: static; }

@media (min-width: 992px) {
    .fc-has-mega > .fc-nav-link { position: relative; padding-bottom: 18px; margin-bottom: -18px; }
    .fc-has-mega:hover > .fc-nav-link::after {
        content: ''; position: absolute; left: 0; right: 0; bottom: 0;
        height: 2px; background: var(--fc-primary, #5A1E2C);
    }
    .fc-mega-menu {
        position: absolute; left: 0; right: 0; top: 100%;
        background: #ffffff; color: var(--fc-ink, #0E0E0E);
        border-top: 1px solid rgba(0,0,0,0.06);
        box-shadow: 0 24px 48px rgba(0,0,0,0.08);
        opacity: 0; visibility: hidden; transform: translateY(8px);
        transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
        z-index: 1050;
    }
    .fc-has-mega:hover > .fc-mega-menu,
    .fc-has-mega:focus-within > .fc-mega-menu {
        opacity: 1; visibility: visible; transform: translateY(0);
    }
}

.fc-mega-heading {
    font-size: 11px; font-weight: 800; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--fc-ink, #0E0E0E);
    margin-bottom: 16px;
}
.fc-mega-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.fc-mega-list.is-two-col { grid-template-columns: 1fr 1fr; column-gap: 20px; }

.fc-mega-item {
    display: flex; align-items: center; gap: 12px;
    font-size: 13.5px; font-weight: 500; color: rgba(14,14,14,0.8);
    text-decoration: none; transition: color 0.2s ease, transform 0.2s ease;
}
.fc-mega-item:hover { color: var(--fc-primary, #5A1E2C); transform: translateX(3px); }

.fc-mega-thumb {
    width: 34px; height: 34px; object-fit: contain;
    border-radius: 6px; flex-shrink: 0;
}

/* Right-Side Featured Promo Card */
.fc-mega-promo {
    position: relative; display: block; border-radius: 14px;
    overflow: hidden; aspect-ratio: 4/3; background: #f5f0ee;
}
.fc-mega-promo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.fc-mega-promo:hover img { transform: scale(1.05); }
.fc-mega-promo-overlay {
    position: absolute; inset: 0; padding: 20px;
    background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, transparent 60%);
    display: flex; align-items: flex-end; justify-content: space-between; color: #fff;
}
.fc-mega-promo-overlay strong { display: block; font-size: 16px; font-weight: 600; }
.fc-mega-promo-overlay small { font-size: 12px; opacity: 0.85; }
.fc-mega-promo-arrow {
    width: 36px; height: 36px; border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.6);
    display: inline-flex; align-items: center; justify-content: center; font-size: 12px;
}


/* Lucky Spin: vibrant rim lights and form (uses Admin Theme & Colors tokens) */
.fc-spin-left { background: radial-gradient(circle at 30% 20%, var(--fc-primary) 0%, var(--fc-primary-dark) 65%, var(--fc-ink) 100%); }
.fc-wheel-outer-rim { container-type: inline-size; background: linear-gradient(145deg, var(--fc-accent-d-soft), var(--fc-accent-d) 50%, var(--fc-primary)); padding: 10px; border: 0; }
.fc-wheel-inner-rim { background: var(--fc-primary-dark); border: 0; padding: 3px; }
.fc-wheel-bulbs { position: absolute; inset: 0; z-index: 12; pointer-events: none; }
.fc-wheel-bulbs i { position: absolute; top: 50%; left: 50%; width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%; background: #FFF6E5; box-shadow: 0 0 6px 2px rgba(255, 230, 200, .85); transform: rotate(calc(var(--i) * 22.5deg)) translateY(calc(-50cqw + 5px)); animation: fcBulb 1.2s ease-in-out infinite; animation-delay: calc(var(--i) * -.15s); }
.fc-wheel-bulbs i:nth-child(odd) { animation-delay: -.6s; }
@keyframes fcBulb { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.fc-spin-modal .fc-wheel-pointer { background: linear-gradient(to bottom, #FFFFFF, var(--fc-accent-d)); filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .35)); }
.fc-spin-modal .fc-wheel-center { background: radial-gradient(circle at 35% 30%, var(--fc-primary), var(--fc-primary-dark)); border: 3px solid var(--fc-accent-d); color: var(--fc-accent-d); box-shadow: 0 6px 18px rgba(0, 0, 0, .35); }
.fc-spin-fields { display: grid; gap: 10px; margin-bottom: 14px; text-align: left; }
.fc-spin-field { width: 100%; min-height: 50px; padding: 12px 18px; border: 1px solid rgba(var(--fc-primary-rgb), .16); border-radius: 999px; font-size: 15px; color: var(--fc-ink); background: #fff; outline: 0; transition: border-color .3s, box-shadow .3s; }
.fc-spin-field:focus { border-color: var(--fc-primary); box-shadow: 0 0 0 4px rgba(var(--fc-primary-rgb), .08); }
.fc-spin-fields .fc-spin-input-group { margin-bottom: 0; }
.fc-spin-field.is-invalid, .fc-spin-input-group.is-invalid { border-color: #D92D20 !important; box-shadow: 0 0 0 4px rgba(217, 45, 32, .08) !important; }
.fc-spin-btn { background: linear-gradient(135deg, var(--fc-primary), var(--fc-primary-dark)); color: var(--fc-on-primary); }
.fc-spin-btn:hover { background: var(--fc-primary-dark); color: var(--fc-on-primary); }