/* ==========================================================================
   Florida Toy Traders Premium
   1. Tokens & base      2. Buttons & forms     3. Header & footer
   4. Home               5. Cards & catalog     6. Product page
   7. Application & account   8. Pages (contact, brands)   9. WooCommerce parts
   10. Cart & checkout blocks   11. Responsive   12. Motion preferences
   ========================================================================== */

/* ------------------------------------------------------------ 1. tokens */
:root {
    --ink: #0a1230;
    --navy: #14205a;
    --navy-2: #1d2d78;
    --crimson: #a7144c;
    --crimson-d: #8a0f3d;
    --paper: #f7f3ea;
    --paper-2: #efe9db;
    --card: #ffffff;
    --text: #161a2e;
    --muted: #5d6277;
    --line: rgba(10, 18, 48, .10);
    --ok: #14633a;
    --ok-bg: #e5f4ea;
    --out: #8a1d3a;
    --out-bg: #f3e6e9;
    --foil: linear-gradient(120deg, #e9d8a6 0%, #c9a24b 45%, #f2e7bf 70%, #b88a2e 100%);
    --r-card: 18px;
    --r-in: 10px;
    --r-btn: 12px;
    --shadow-1: 0 1px 1px rgba(10, 18, 48, .04), 0 2px 4px rgba(10, 18, 48, .04), 0 8px 16px rgba(10, 18, 48, .05);
    --shadow-2: 0 1px 1px rgba(10, 18, 48, .05), 0 4px 8px rgba(10, 18, 48, .07), 0 18px 40px rgba(10, 18, 48, .12);
    --ease: cubic-bezier(.2, 0, 0, 1);
    --display: "Instrument Serif", Georgia, "Times New Roman", serif;
    --ui: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --wrap: 1240px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; scroll-behavior: smooth; }
body.ftt { margin: 0; background: var(--paper); color: var(--text); font-family: var(--ui); font-size: 16px; line-height: 1.55; }
:where(.ftt) img { display: block; max-width: 100%; height: auto; }
:where(.ftt) a { color: inherit; }
:where(.ftt) :is(h1, h2, h3) { font-family: var(--display); font-weight: 400; letter-spacing: -.01em; line-height: 1.1; text-wrap: balance; margin: 0; }
:where(.ftt) p { margin: 0 0 1em; text-wrap: pretty; }
:where(.ftt) :is(ul, ol) { margin: 0; padding: 0; list-style: none; }
:where(.ftt) :is(button, input, select, textarea) { font: inherit; color: inherit; }
.ftt button { cursor: pointer; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ftt-skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--navy); color: #fff; padding: 10px 16px; border-radius: 8px; transition: top .15s var(--ease); }
.ftt-skip:focus { top: 12px; }
.ftt :focus-visible { outline: 3px solid var(--crimson); outline-offset: 2px; border-radius: 6px; }
.ftt-wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding-left: 28px; padding-right: 28px; }
.ftt-main { min-height: 50vh; }
.ftt-lead { font-size: 18px; color: var(--muted); max-width: 640px; }
.ftt-h2 { font-size: clamp(28px, 3vw, 40px); margin: 56px 0 18px; }
.ftt-prose { max-width: 760px; }
.ftt-prose h2, .ftt-prose h3 { margin: 1.4em 0 .5em; }
.ftt-prose a { color: var(--navy); text-underline-offset: 3px; }
.ftt-prose ul { list-style: disc; padding-left: 1.2em; margin-bottom: 1em; }
.ftt-prose ol { list-style: decimal; padding-left: 1.2em; margin-bottom: 1em; }
.ftt-prose li { margin-bottom: .4em; }
.ftt-icon { flex: none; vertical-align: middle; }
.ftt-num, .ftt-price, .ftt-count { font-variant-numeric: tabular-nums; }

/* eyebrow label */
.ftt-eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: #e9d8a6; }
.ftt-eyebrow__rule { width: 28px; height: 1px; background: var(--foil); display: inline-block; }
.ftt-eyebrow--dark { color: var(--muted); }
.ftt-eyebrow--crimson { color: var(--crimson); }

/* ------------------------------------------------- 2. buttons & forms */
.ftt-btn, .ftt .button, .ftt .woocommerce-Button, .ftt button.single_add_to_cart_button {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 22px;
    border: 0; border-radius: var(--r-btn); font-weight: 600; font-size: 15.5px; line-height: 1; text-decoration: none; white-space: nowrap;
    background: var(--navy); color: #fff; cursor: pointer;
    transition-property: background-color, box-shadow, scale, color; transition-duration: .18s; transition-timing-function: var(--ease);
}
.ftt-btn:active, .ftt .button:active, .ftt .woocommerce-Button:active { scale: .96; }
.ftt-btn:hover, .ftt .button:hover, .ftt .woocommerce-Button:hover { background: var(--navy-2); color: #fff; }
.ftt-btn--primary, .ftt button.single_add_to_cart_button {
    background: var(--crimson); color: #fff;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .18) inset, 0 6px 16px rgba(167, 20, 76, .26);
}
.ftt-btn--primary:hover, .ftt button.single_add_to_cart_button:hover { background: var(--crimson-d); }
.ftt-btn--navy { background: var(--navy); }
.ftt-btn--ghost { background: transparent; color: var(--text); box-shadow: inset 0 0 0 1px rgba(10, 18, 48, .22); }
.ftt-btn--ghost:hover { background: rgba(10, 18, 48, .05); color: var(--text); }
.ftt-btn--light { color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .38); }
.ftt-btn--light:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.ftt-btn--block { width: 100%; }
.ftt-btn--sm { min-height: 38px; padding: 0 14px; font-size: 14px; }
.ftt-btn[disabled], .ftt-btn:disabled { opacity: .55; cursor: not-allowed; }
.ftt-link { color: var(--navy); font-weight: 600; text-underline-offset: 3px; }

/* inputs */
.ftt input[type="text"], .ftt input[type="email"], .ftt input[type="tel"], .ftt input[type="password"], .ftt input[type="number"],
.ftt input[type="search"], .ftt input[type="url"], .ftt select, .ftt textarea, .ftt .ftt-input {
    width: 100%; min-height: 48px; padding: 0 14px; border: 0; border-radius: 12px; background: var(--paper); color: var(--text);
    box-shadow: inset 0 0 0 1px var(--line); transition: box-shadow .18s var(--ease), background-color .18s var(--ease);
}
.ftt textarea { padding: 12px 14px; min-height: 140px; resize: vertical; line-height: 1.5; }
.ftt input:focus, .ftt select:focus, .ftt textarea:focus { outline: none; box-shadow: inset 0 0 0 2px var(--navy); background: #fff; }
.ftt label { font-size: 13.5px; font-weight: 600; color: var(--text); }
.ftt .req, .ftt abbr.required { color: var(--crimson); text-decoration: none; border: 0; }
.ftt-field { display: grid; gap: 6px; margin: 0 0 16px; }
.ftt-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ftt-hint { color: var(--muted); font-size: 12.5px; font-weight: 400; }
.ftt-hp { position: absolute !important; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.ftt-checkline { display: inline-flex; align-items: center; gap: 10px; min-height: 40px; font-weight: 500; }
.ftt input[type="checkbox"], .ftt input[type="radio"] { width: 18px; height: 18px; min-height: 0; accent-color: var(--crimson); }
.ftt-pw { position: relative; display: block; }
.ftt-pw input { padding-right: 76px !important; }
.ftt-pw__toggle { position: absolute; right: 6px; top: 4px; height: 40px; padding: 0 12px; border: 0; border-radius: 9px; background: transparent; color: var(--navy); font-weight: 700; font-size: 14px; }
.ftt-pw__toggle:hover { background: rgba(10, 18, 48, .06); }
.ftt .show-password-input { display: none !important; } /* WooCommerce adds its own eye toggle; the theme has one */

/* WooCommerce form rows (application form, account forms) */
.ftt .form-row { margin: 0 0 16px; padding: 0; display: grid; gap: 6px; }
.ftt .form-row-first, .ftt .form-row-last { width: 100%; }
.ftt .woocommerce-input-wrapper { display: block; }
.ftt .form-row.woocommerce-invalid input, .ftt .form-row.woocommerce-invalid select { box-shadow: inset 0 0 0 2px var(--crimson); }
.ftt .form-row .description, .ftt .form-row small { color: var(--muted); font-size: 12.5px; }
.ftt-form__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 2px 0 18px; flex-wrap: wrap; }
.ftt-fieldset { border: 0; margin: 0 0 6px; padding: 0; min-width: 0; }
.ftt-fieldset legend { padding: 0; margin: 0 0 12px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--muted); }
@media (min-width: 640px) {
    .ftt-apply .ftt-fieldset { display: grid; grid-template-columns: 1fr 1fr; column-gap: 14px; }
    .ftt-apply .ftt-fieldset legend { grid-column: 1 / -1; }
    .ftt-apply .form-row-wide, .ftt-apply .ftt-field--password { grid-column: 1 / -1; }
}

/* ------------------------------------------------- 3. header & footer */
/* free shipping banner: a slim champagne-foil strip above everything, shown at every screen size (the thin top bar below it is hidden on phones) */
.ftt-promo { background: var(--foil); color: var(--ink); box-shadow: inset 0 -1px 0 rgba(10, 18, 48, .14); }
.ftt-promo p { max-width: var(--wrap); margin: 0 auto; padding: 8px 28px; font-size: 13.5px; line-height: 1.4; letter-spacing: .01em; text-align: center; text-wrap: balance; }
.ftt-promo .ftt-icon { display: inline-block; vertical-align: -4px; margin-right: 8px; }
.ftt-promo strong { font-weight: 700; font-size: 12.5px; letter-spacing: .07em; text-transform: uppercase; }
.ftt-util { background: var(--ink); color: #cfd3e6; font-size: 12.5px; }
.ftt-util__in { max-width: var(--wrap); margin: 0 auto; padding: 8px 28px; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ftt-util strong { color: #fff; font-weight: 600; }
.ftt-util__right { display: inline-flex; gap: 18px; align-items: center; }
.ftt-util a { text-decoration: none; }
.ftt-util a:hover { color: #fff; text-decoration: underline; }
.ftt-header { position: sticky; top: 0; z-index: 40; background: rgba(255, 255, 255, .94); backdrop-filter: saturate(160%) blur(12px); box-shadow: 0 1px 0 var(--line); }
.admin-bar .ftt-header { top: 32px; }
.ftt-header__in { max-width: var(--wrap); margin: 0 auto; padding: 12px 28px; display: flex; align-items: center; gap: 22px; }
.ftt-logo { display: inline-flex; flex: none; }
.ftt-logo__img { height: 52px; width: auto; }
.ftt-logo--footer .ftt-logo__img { filter: brightness(0) invert(1); height: 42px; }
.ftt-search { position: relative; flex: 1; max-width: 440px; display: block; }
.ftt-search .ftt-icon { position: absolute; left: 14px; top: 15px; color: var(--muted); }
.ftt-search input[type="search"] { padding-left: 42px; height: 46px; }
.ftt-nav { margin-left: auto; }
.ftt-nav__list { display: flex; gap: 2px; align-items: center; }
.ftt-nav__list > li { position: relative; }
.ftt-nav__list a { display: inline-flex; align-items: center; min-height: 42px; padding: 0 14px; border-radius: 10px; text-decoration: none; font-weight: 600; font-size: 15px; transition: background-color .15s var(--ease); }
.ftt-nav__list a:hover { background: var(--paper); }
.ftt-nav__list .sub-menu { position: absolute; left: 0; top: 100%; min-width: 220px; padding: 8px; background: #fff; border-radius: 14px; box-shadow: var(--shadow-2); opacity: 0; visibility: hidden; transform: translateY(6px); transition-property: opacity, transform, visibility; transition-duration: .16s; z-index: 5; }
.ftt-nav__list li:hover > .sub-menu, .ftt-nav__list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.ftt-nav__list .sub-menu a { display: flex; width: 100%; font-weight: 500; }
.ftt-acct { display: flex; align-items: center; gap: 8px; flex: none; }
.ftt-acct .ftt-btn { min-height: 44px; }
.ftt-cart { position: relative; width: 46px; height: 46px; display: grid; place-items: center; border-radius: var(--r-btn); background: var(--paper); color: var(--navy); text-decoration: none; transition: background-color .15s var(--ease); }
.ftt-cart:hover { background: var(--paper-2); }
.ftt-cart-count { position: absolute; top: -5px; right: -5px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--crimson); color: #fff; font-size: 11px; font-weight: 700; display: none; place-items: center; font-variant-numeric: tabular-nums; }
.ftt-cart-count.is-visible { display: grid; }
.ftt-burger { display: none; width: 46px; height: 46px; border: 0; border-radius: var(--r-btn); background: var(--paper); color: var(--navy); align-items: center; justify-content: center; }

/* mobile drawer */
.ftt-drawer { position: fixed; inset: 0; z-index: 90; }
.ftt-drawer[hidden] { display: none; }
.ftt-drawer__scrim { position: absolute; inset: 0; background: rgba(10, 18, 48, .55); }
.ftt-drawer__panel { position: absolute; z-index: 2; left: 0; top: 0; bottom: 0; width: min(88vw, 380px); background: #fff; padding: 20px; overflow-y: auto; display: flex; flex-direction: column; gap: 18px; box-shadow: var(--shadow-2); animation: ftt-slide .24s var(--ease); }
.ftt-drawer__close { align-self: flex-end; width: 44px; height: 44px; border: 0; border-radius: var(--r-btn); background: var(--paper); display: grid; place-items: center; }
.ftt-drawer__list a { display: flex; min-height: 50px; align-items: center; padding: 0 6px; font-size: 18px; font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--line); }
.ftt-drawer__lang { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); }
.ftt-drawer__cta { display: grid; gap: 10px; margin-top: auto; padding-top: 16px; }
.ftt-search--drawer { max-width: none; }
@keyframes ftt-slide { from { transform: translateX(-24px); opacity: 0; } to { transform: none; opacity: 1; } }

/* footer */
.ftt-footer { background: var(--ink); color: #aeb4d2; margin-top: 72px; }
.ftt-footer__in { max-width: var(--wrap); margin: 0 auto; padding: 48px 28px 28px; display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 36px; }
.ftt-footer__brand p { margin: 14px 0 0; max-width: 320px; font-size: 14.5px; }
.ftt-footer h2 { font-family: var(--ui); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: #fff; margin: 0 0 12px; }
.ftt-footer li { margin: 0 0 8px; }
.ftt-footer a { text-decoration: none; font-size: 14.5px; }
.ftt-footer a:hover { color: #fff; text-decoration: underline; }
.ftt-footer__bar { max-width: var(--wrap); margin: 0 auto; padding: 18px 28px 32px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 13px; }

/* ----------------------------------------------------------- 4. home */
.ftt-hero { position: relative; color: #fff; overflow: hidden; padding: 72px 0 84px;
    background: radial-gradient(900px 480px at 78% 30%, rgba(29, 45, 120, .9), transparent 70%), radial-gradient(600px 400px at 8% 100%, rgba(167, 20, 76, .35), transparent 70%), var(--ink); }
.ftt-hero__in { position: relative; z-index: 1; max-width: 1180px; margin: 0 auto; padding: 0 28px; display: grid; grid-template-columns: 1.05fr .95fr; gap: 40px; align-items: center; }
.ftt-hero__in--solo { grid-template-columns: 1fr; max-width: 820px; text-align: center; }
.ftt-hero__in--solo .ftt-hero__cta, .ftt-hero__in--solo .ftt-hero__micro { justify-content: center; }
.ftt-hero h1 { font-size: clamp(40px, 5.6vw, 72px); line-height: 1.02; margin: 4px 0 18px; }
.ftt-hero h1 em { font-style: italic; background: var(--foil); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ftt-hero__lead { font-size: 18px; color: #d5d9ee; max-width: 520px; }
.ftt-hero__in--solo .ftt-hero__lead { margin-left: auto; margin-right: auto; }
.ftt-hero__cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.ftt-hero__micro { margin: 16px 0 0; font-size: 13.5px; color: #aeb4d2; display: flex; gap: 8px; align-items: center; }
.ftt-hero__micro .ftt-icon { color: #e9d8a6; }

/* the rotating card wheel */
.ftt-wheel { position: relative; height: 470px; perspective: 1200px; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.ftt-wheel::before { content: ""; position: absolute; left: 50%; top: 46%; width: 440px; height: 440px; margin: -220px 0 0 -220px; border-radius: 50%; background: radial-gradient(circle, rgba(233, 216, 166, .24), transparent 65%); pointer-events: none; }
.ftt-wheel__stage { position: absolute; inset: 0 0 66px 0; transform-style: preserve-3d; }
.ftt-wheel__item { position: absolute; left: 50%; top: 46%; width: 190px; aspect-ratio: 3 / 4; margin: -127px 0 0 -95px; padding: 7px; border-radius: 16px; background: #fff;
    box-shadow: 0 34px 60px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .08); cursor: pointer;
    transition-property: transform, opacity, filter; transition-duration: .75s, .5s, .5s; transition-timing-function: var(--ease); }
.ftt-wheel__item a { display: block; height: 100%; }
.ftt-wheel__img { width: 100%; height: 100%; object-fit: cover; border-radius: 9px; pointer-events: none; }
.ftt-wheel__item::after { content: ""; position: absolute; inset: 7px; border-radius: 9px; background: linear-gradient(115deg, transparent 28%, rgba(255, 255, 255, .38) 48%, transparent 64%); mix-blend-mode: soft-light; pointer-events: none; }
.ftt-wheel__cap { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: center; gap: 14px; color: #fff; }
.ftt-wheel__text { text-align: center; min-width: 0; }
.ftt-wheel__label { display: block; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #e9d8a6; font-weight: 600; min-height: 1.2em; }
.ftt-wheel__title { display: block; font-weight: 600; font-size: 15px; max-width: 300px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ftt-wheel__btn { width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .1); color: #fff; font-size: 22px; line-height: 1; transition-property: background-color, scale; transition-duration: .18s; transition-timing-function: var(--ease); }
.ftt-wheel__btn:hover { background: rgba(255, 255, 255, .2); }
.ftt-wheel__btn:active { scale: .96; }
/* no-JS: show the first card only */
.ftt-wheel:not(.is-ready) .ftt-wheel__item { opacity: 0; }
.ftt-wheel:not(.is-ready) .ftt-wheel__item:first-child { opacity: 1; }

.ftt-brands { background: #fff; box-shadow: 0 1px 0 var(--line); }
.ftt-brands__in { max-width: var(--wrap); margin: 0 auto; padding: 22px 28px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 18px 44px; }
.ftt-brand img, .ftt-brand__img { height: 48px; width: auto; max-width: 170px; object-fit: contain; }

.ftt-section { padding: 64px 0 8px; }
.ftt-section h2 { font-size: clamp(30px, 3.4vw, 44px); }
.ftt-section__sub { color: var(--muted); margin-top: 10px; max-width: 560px; }
.ftt-section__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 26px; }
.ftt-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 28px; }
.ftt-step { background: var(--card); border-radius: var(--r-card); padding: 26px; box-shadow: var(--shadow-1); }
.ftt-step__n { display: block; font-family: var(--display); font-size: 46px; line-height: 1; background: linear-gradient(120deg, #c9a24b 0%, #9a7420 55%, #c9a24b 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ftt-step h3 { font-size: 26px; margin: 10px 0 6px; }
.ftt-step p { color: var(--muted); font-size: 15px; margin: 0; }
.ftt-more { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 22px; padding: 18px 22px; border-radius: var(--r-card); background: var(--paper-2); }
.ftt-more p { margin: 0; display: flex; gap: 10px; align-items: center; color: var(--muted); }
.ftt-more .ftt-icon { color: var(--crimson); }
/* shop by category */
.ftt-cats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ftt-cats--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ftt-cat { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; min-height: 176px; padding: 18px; border-radius: var(--r-card); overflow: hidden; background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%); color: #fff; text-decoration: none; box-shadow: var(--shadow-1); transition-property: box-shadow, scale; transition-duration: .18s; transition-timing-function: var(--ease); }
.ftt-cat:hover { box-shadow: var(--shadow-2); color: #fff; }
.ftt-cat:active { scale: .96; }
.ftt-cat img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.ftt-cat::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(10, 18, 48, .04) 28%, rgba(10, 18, 48, .80) 100%); }
.ftt-cat--plain::after { background: radial-gradient(circle at 85% 0%, rgba(233, 216, 166, .30), transparent 55%); }
.ftt-cat__name { font-family: var(--display); font-size: 26px; line-height: 1.05; text-wrap: balance; }
.ftt-cat__count { margin-top: 5px; font-size: 13px; letter-spacing: .04em; color: #e9d8a6; font-variant-numeric: tabular-nums; }
.ftt-cta-band { margin: 64px 0 0; padding: 0 28px; }
.ftt-cta-band__in { max-width: calc(var(--wrap) - 56px); margin: 0 auto; border-radius: 24px; padding: 44px 40px; background: var(--navy); color: #fff; display: flex; justify-content: space-between; gap: 24px; align-items: center; flex-wrap: wrap; position: relative; overflow: hidden; }
.ftt-cta-band__in::before { content: ""; position: absolute; right: -60px; top: -90px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(233, 216, 166, .34), transparent 65%); }
.ftt-cta-band h2 { font-size: clamp(26px, 3vw, 38px); max-width: 560px; position: relative; }
.ftt-cta-band .ftt-btn { position: relative; }

/* ------------------------------------------------ 5. cards & catalog */
.ftt-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.ftt-grid > li { list-style: none; margin: 0; }
.ftt-card { background: var(--card); border-radius: var(--r-card); padding: 8px 8px 18px; box-shadow: var(--shadow-1); display: flex; flex-direction: column;
    transition-property: box-shadow, translate; transition-duration: .22s; transition-timing-function: var(--ease); }
.ftt-card:hover { box-shadow: var(--shadow-2); translate: 0 -3px; }
.ftt-card__media { position: relative; display: grid; place-items: center; aspect-ratio: 1 / 1; border-radius: var(--r-in); background: linear-gradient(180deg, #f3efe4, #e8e1cf); overflow: hidden; text-decoration: none; }
.ftt-card__img { height: 88%; width: auto; max-width: 88%; object-fit: contain; border-radius: 6px; outline: 1px solid rgba(10, 18, 48, .08); outline-offset: -1px; filter: drop-shadow(0 10px 14px rgba(10, 18, 48, .25)); }
.ftt-card__img--empty { display: grid; place-items: center; color: #b7ae97; outline: 0; filter: none; }
.ftt-pill { position: absolute; top: 10px; left: 10px; z-index: 1; font-size: 12px; font-weight: 700; padding: 5px 10px; border-radius: 999px; }
.ftt-pill--ok { background: var(--ok-bg); color: var(--ok); }
.ftt-pill--out { background: var(--out-bg); color: var(--out); }
.ftt-chips .ftt-pill { position: static; }
.ftt-card__body { padding: 14px 10px 0; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.ftt-card__body .ftt-eyebrow { margin: 0; font-size: 11.5px; }
.ftt-card__title { font-family: var(--ui) !important; font-weight: 600 !important; font-size: 16px; line-height: 1.3 !important; letter-spacing: 0 !important; }
.ftt-card__title a { text-decoration: none; }
.ftt-card__title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ftt-price { margin: 4px 0 0; font-size: 20px; font-weight: 700; color: var(--text); }
.ftt-price--lg { font-size: 36px; margin: 0 0 4px; }
.ftt-price ins { text-decoration: none; }
.ftt-price del { color: var(--muted); font-weight: 500; font-size: .7em; margin-right: 6px; }
.ftt-price--none { font-size: 16px; font-weight: 600; color: var(--muted); }
.ftt-lock { display: flex; gap: 8px; align-items: flex-start; margin: 4px 0 0; color: var(--muted); font-size: 14px; line-height: 1.4; }
.ftt-lock .ftt-icon { color: var(--crimson); margin-top: 1px; }
.ftt-lock a, .ftt-lock-link { color: var(--crimson); font-weight: 600; text-underline-offset: 3px; }
.ftt-card__buy { display: flex; gap: 8px; margin-top: 10px; }
.ftt-card__add { flex: 1; min-width: 0; padding: 0 12px; }
.ftt-card .ftt-card__add.added { background: var(--ok); }
.ftt-card .added_to_cart { display: none; }
.ftt-card--tile { justify-content: center; background: linear-gradient(180deg, #fff, #f3efe4); text-align: center; }
.ftt-card--tile:hover { translate: 0 0; }
.ftt-tile { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 28px 18px; }
.ftt-tile__icon { width: 56px; height: 56px; border-radius: 50%; background: var(--navy); color: #fff; display: grid; place-items: center; }
.ftt-tile__title { font-size: 26px; }
.ftt-tile__text { color: var(--muted); font-size: 14.5px; margin: 0 0 4px; }
.ftt-tile__link { font-size: 14px; font-weight: 600; color: var(--navy); text-underline-offset: 3px; }

/* quantity stepper */
.ftt-qty, .ftt .quantity.ftt-qty { display: inline-flex; align-items: center; border-radius: var(--r-btn); background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); flex: none; }
.ftt-qty__btn { width: 40px; height: 46px; border: 0; background: transparent; font-size: 20px; line-height: 1; border-radius: var(--r-btn); color: var(--text); }
.ftt-qty__btn:hover { background: rgba(10, 18, 48, .06); }
.ftt-qty__input, .ftt .ftt-qty input.qty, .ftt .ftt-qty input.ftt-case-qty { width: 44px; min-height: 46px !important; height: 46px; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; text-align: center; font-weight: 700; -moz-appearance: textfield; appearance: textfield; font-variant-numeric: tabular-nums; }
.ftt-qty__input::-webkit-outer-spin-button, .ftt-qty__input::-webkit-inner-spin-button, .ftt .ftt-qty input.qty::-webkit-outer-spin-button, .ftt .ftt-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* catalog layout */
.ftt-crumbs { padding: 22px 0 0; font-size: 13.5px; color: var(--muted); }
.ftt-crumbs a { text-decoration: none; }
.ftt-crumbs a:hover { text-decoration: underline; }
.ftt-crumbs__sep { margin: 0 8px; opacity: .5; }
.ftt-catalog { padding-bottom: 24px; }
.ftt-catalog__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin: 18px 0 26px; }
.ftt-catalog__head h1 { font-size: clamp(34px, 4vw, 52px); }
.ftt-catalog__meta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; color: var(--muted); }
.ftt-catalog__layout { display: grid; grid-template-columns: 240px 1fr; gap: 28px; align-items: start; }
.ftt-catalog .ftt-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ftt-filters { position: sticky; top: 92px; }
.ftt-filters__box { background: var(--card); border-radius: var(--r-card); padding: 18px 20px 20px; box-shadow: var(--shadow-1); }
.ftt-filters__box > summary { font-weight: 700; font-size: 15px; cursor: pointer; list-style: none; }
.ftt-filters__box > summary::-webkit-details-marker { display: none; }
.ftt-filters__h { font-family: var(--ui) !important; font-size: 12px !important; letter-spacing: .1em !important; text-transform: uppercase; color: var(--muted); font-weight: 700 !important; margin: 18px 0 8px !important; }
.ftt-filters__list li { margin: 0; }
.ftt-filters__list a { display: block; padding: 8px 0; text-decoration: none; font-size: 15px; }
.ftt-filters__list a:hover { color: var(--crimson); }
.ftt-filters__list a.is-current { color: var(--crimson); font-weight: 700; }
.ftt-filters__list ul { padding-left: 14px; border-left: 1px solid var(--line); margin-left: 4px; }
.ftt-check { display: flex; align-items: center; gap: 10px; min-height: 42px; text-decoration: none; font-weight: 500; }
.ftt-check__box { width: 20px; height: 20px; border-radius: 6px; display: grid; place-items: center; background: var(--paper); box-shadow: inset 0 0 0 1px rgba(10, 18, 48, .25); color: transparent; transition: background-color .15s var(--ease); }
.ftt-check.is-on .ftt-check__box { background: var(--crimson); color: #fff; box-shadow: none; }
.ftt-filters__note { margin-top: 14px; padding: 16px; border-radius: var(--r-card); background: var(--paper-2); font-size: 14px; }
.ftt-filters__note .ftt-icon { color: var(--crimson); }
.ftt-filters__note p { margin: 6px 0 8px; color: var(--muted); }
.ftt-filters__note a { color: var(--crimson); font-weight: 700; text-underline-offset: 3px; }
.ftt-empty { text-align: center; padding: 56px 20px; background: var(--card); border-radius: var(--r-card); box-shadow: var(--shadow-1); color: var(--muted); }
.ftt-empty h2 { font-size: 30px; color: var(--text); margin: 10px 0 6px; }
.ftt-empty--inline { padding: 28px; }
.woocommerce-ordering select { min-height: 42px; padding: 0 34px 0 14px; width: auto; }
.woocommerce-pagination { margin-top: 28px; }
.woocommerce-pagination ul { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; }
.woocommerce-pagination a, .woocommerce-pagination span { display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 10px; border-radius: 10px; text-decoration: none; background: var(--card); box-shadow: var(--shadow-1); font-weight: 600; }
.woocommerce-pagination span.current { background: var(--navy); color: #fff; }

/* ---------------------------------------------------- 6. product page */
.ftt-product { padding-bottom: 20px; }
.ftt-product__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 44px; padding-top: 20px; align-items: start; }
.ftt-product__gallery { position: sticky; top: 100px; }
.ftt-product__title { font-size: clamp(32px, 3.6vw, 48px); line-height: 1.06; margin: 6px 0 14px; }
.ftt-chips { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.ftt-chip { font-size: 12.5px; font-weight: 600; padding: 6px 10px; border-radius: 999px; background: var(--paper-2); color: #40455c; }
.ftt-chip--company { display: inline-block; margin: 8px 0 0; font-size: 13.5px; }
.ftt-chip--account { font-size: 13.5px; background: var(--paper); border: 1px solid #e3ddcd; font-variant-numeric: tabular-nums; }
.ftt-dash__chips { margin-top: 10px; }
.ftt-dash__chips .ftt-chip { margin: 0; font-size: 13.5px; }
/* WooCommerce highlights order numbers and dates in yellow; keep them plain and bold. */
.ftt-account__content mark { background: transparent; color: inherit; font-weight: 700; }
.ftt-product__excerpt { margin-top: 16px; color: var(--muted); }
.ftt-buybox { margin-top: 22px; background: var(--card); border-radius: var(--r-card); padding: 24px; box-shadow: var(--shadow-1); }
.ftt-buybox__lock { display: flex; gap: 10px; align-items: center; font-size: 17px; margin: 0 0 6px; }
.ftt-buybox__lock .ftt-icon { color: var(--crimson); }
.ftt-buybox__text { color: var(--muted); font-size: 15px; margin: 0 0 16px; }
.ftt-buybox__stock { color: var(--ok); font-weight: 600; font-size: 14px; margin: 0 0 14px; }
.ftt-buybox__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.ftt-buybox form.cart { display: flex; gap: 10px; flex-wrap: wrap; align-items: stretch; margin: 0; }
.ftt-buybox form.cart .single_add_to_cart_button { flex: 1; min-width: 180px; min-height: 48px; }
.ftt-buybox form.variations_form { display: block; }
.ftt-buybox table.variations { width: 100%; margin-bottom: 14px; border-collapse: collapse; }
.ftt-buybox table.variations th, .ftt-buybox table.variations td { display: block; padding: 0 0 6px; text-align: left; }
.ftt-buybox .woocommerce-variation-add-to-cart { display: flex; gap: 10px; flex-wrap: wrap; }
.ftt-buybox .reset_variations { font-size: 13px; margin-left: 10px; }
.ftt-assure { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 16px; font-size: 13px; color: var(--muted); }
.ftt-assure li { display: flex; gap: 8px; align-items: flex-start; }
.ftt-assure .ftt-icon { color: var(--navy); margin-top: 1px; }
.ftt-specs { margin: 24px 0 0; border-radius: var(--r-card); background: var(--card); box-shadow: var(--shadow-1); overflow: hidden; }
.ftt-specs > div { display: flex; justify-content: space-between; gap: 14px; padding: 13px 18px; font-size: 15px; }
.ftt-specs > div + div { box-shadow: 0 -1px 0 var(--line); }
.ftt-specs dt { color: var(--muted); }
.ftt-specs dd { margin: 0; text-align: right; font-weight: 500; }
.ftt-specs a { text-underline-offset: 3px; }
.ftt-product__desc { margin-top: 48px; }
.ftt-product__desc h2, .ftt-related h2 { font-size: clamp(26px, 3vw, 36px); margin-bottom: 14px; }
.ftt-related { margin-top: 52px; }
.ftt-sticky { display: none; }

/* gallery (WooCommerce markup) */
.ftt-product .woocommerce-product-gallery { position: relative; margin: 0; }
.ftt-product .woocommerce-product-gallery__wrapper { margin: 0; }
.ftt-product .woocommerce-product-gallery__image { background: linear-gradient(180deg, #f3efe4, #e6dec9); border-radius: var(--r-card); box-shadow: var(--shadow-1); overflow: hidden; }
.ftt-product .woocommerce-product-gallery__image img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; padding: 4%; filter: drop-shadow(0 18px 22px rgba(10, 18, 48, .28)); }
.ftt-product .woocommerce-product-gallery__trigger { display: none; }
.ftt-product .flex-control-thumbs { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.ftt-product .flex-control-thumbs li { width: 78px; list-style: none; }
.ftt-product .flex-control-thumbs img { width: 78px; height: 78px; object-fit: contain; border-radius: 12px; background: var(--paper-2); padding: 4px; box-shadow: inset 0 0 0 1px var(--line); opacity: .75; cursor: pointer; transition: opacity .15s var(--ease); }
.ftt-product .flex-control-thumbs img.flex-active, .ftt-product .flex-control-thumbs img:hover { opacity: 1; box-shadow: inset 0 0 0 2px var(--navy); }

/* ---------------------------------- 7. application & account area */
.ftt-page { padding-top: 30px; padding-bottom: 20px; }
.ftt-page__head { margin: 14px 0 26px; }
.ftt-page__head h1, .ftt-404 h1 { font-size: clamp(34px, 4vw, 52px); }
.ftt-store { padding-top: 26px; padding-bottom: 20px; }
.ftt-panel { background: var(--card); border-radius: var(--r-card); padding: 30px; box-shadow: var(--shadow-1); }
.ftt-panel--soft { background: var(--paper-2); box-shadow: none; }
.ftt-panel h2 { font-size: 34px; margin-bottom: 6px; }
.ftt-panel__sub { color: var(--muted); font-size: 15px; margin-bottom: 20px; }
.ftt-auth__cols { display: grid; grid-template-columns: .9fr 1.1fr; gap: 22px; align-items: start; }
.ftt-auth--apply .ftt-auth__apply { order: -1; }
.ftt-auth--apply .ftt-auth__cols { grid-template-columns: 1.1fr .9fr; }
.ftt-note { display: flex; gap: 10px; margin: 18px 0 0; padding: 14px 16px; border-radius: var(--r-in); background: var(--paper); font-size: 14px; color: #3a3f57; }
.ftt-note .ftt-icon { color: var(--navy); margin-top: 2px; }
.ftt-next { display: grid; gap: 10px; margin: 18px 0; text-align: left; }
.ftt-next li { display: flex; gap: 12px; align-items: flex-start; font-size: 14.5px; color: var(--muted); }
.ftt-next b { flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--navy); color: #fff; display: grid; place-items: center; font-size: 13px; }
.ftt-done { text-align: center; }
.ftt-done--wide { max-width: 680px; margin: 10px auto 0; padding: 44px 36px; }
.ftt-done__icon { display: inline-grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: var(--ok-bg); color: var(--ok); margin-bottom: 14px; }
.ftt-done h1, .ftt-done h2 { font-size: clamp(30px, 3.4vw, 42px); margin: 6px 0 14px; }
.ftt-done .ftt-next { max-width: 440px; margin-left: auto; margin-right: auto; }
.ftt-done__fine { color: var(--muted); font-size: 14px; }
.ftt-alert { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: var(--r-in); margin: 0 0 18px; font-size: 15px; }
.ftt-alert--info { background: #e8edfa; color: var(--navy); }
.ftt-alert--error { background: var(--out-bg); color: var(--out); }

/* signed-in account */
.ftt-account { display: grid; grid-template-columns: 250px 1fr; gap: 28px; align-items: start; }
.ftt-accnav { background: var(--card); border-radius: var(--r-card); padding: 10px; box-shadow: var(--shadow-1); position: sticky; top: 96px; }
.ftt-accnav ul { display: grid; gap: 2px; }
.ftt-accnav a { display: flex; align-items: center; gap: 12px; min-height: 46px; padding: 0 14px; border-radius: 12px; text-decoration: none; font-weight: 600; color: var(--text); transition: background-color .15s var(--ease); }
.ftt-accnav a:hover { background: var(--paper); }
.ftt-accnav .is-active a, .ftt-accnav a[aria-current="page"] { background: var(--navy); color: #fff; }
.ftt-accnav .ftt-icon { color: currentColor; }
.ftt-account__content { background: var(--card); border-radius: var(--r-card); padding: 30px; box-shadow: var(--shadow-1); min-width: 0; }
.ftt-dash__head h2 { font-size: clamp(30px, 3.2vw, 42px); }
.ftt-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 24px 0 30px; }
.ftt-tiles a { display: flex; flex-direction: column; gap: 4px; padding: 18px; border-radius: var(--r-in); background: var(--paper); text-decoration: none; height: 100%;
    transition-property: background-color, translate; transition-duration: .18s; transition-timing-function: var(--ease); }
.ftt-tiles a:hover { background: var(--paper-2); translate: 0 -2px; }
.ftt-tiles .ftt-icon { color: var(--crimson); margin-bottom: 6px; }
.ftt-tiles strong { font-size: 15.5px; }
.ftt-tiles span { color: var(--muted); font-size: 13.5px; }
.ftt-dash__orders h3 { font-size: 28px; }
.ftt-dash__orders-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; }
.ftt-tablewrap { overflow-x: auto; }
.ftt-table, .ftt-account .shop_table, .woocommerce-orders-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.ftt-table th, .ftt-table td, .ftt-account .shop_table th, .ftt-account .shop_table td, .woocommerce-orders-table th, .woocommerce-orders-table td { padding: 14px 12px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }
.ftt-table thead th, .ftt-account .shop_table thead th, .woocommerce-orders-table thead th { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.ftt-num { text-align: right !important; font-variant-numeric: tabular-nums; }
.ftt-status { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 700; background: var(--paper-2); color: #40455c; }
.ftt-status--processing, .ftt-status--completed { background: var(--ok-bg); color: var(--ok); }
.ftt-status--on-hold, .ftt-status--pending { background: #fbf0d6; color: #7a5a06; }
.ftt-status--cancelled, .ftt-status--failed, .ftt-status--refunded { background: var(--out-bg); color: var(--out); }
.ftt-account .woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ftt-account .woocommerce-Address { padding: 18px; border-radius: var(--r-in); background: var(--paper); }
.ftt-account .woocommerce-Address-title { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.ftt-account .woocommerce-Address-title h2, .ftt-account .woocommerce-Address-title h3 { font-size: 24px; }
.ftt-account .woocommerce-Address-title .edit { font-weight: 700; color: var(--crimson); text-underline-offset: 3px; }
.ftt-account address { font-style: normal; color: var(--muted); line-height: 1.6; }
.ftt-account fieldset { border: 0; padding: 0; margin: 20px 0 0; }
.ftt-account fieldset legend { font-family: var(--display); font-size: 26px; margin-bottom: 12px; padding: 0; }
.ftt-account h2, .ftt-account h3 { margin-bottom: 14px; }

/* --------------------------------------------- 8. contact & brands */
.ftt-contact__grid { display: grid; grid-template-columns: 1.4fr .8fr; gap: 22px; align-items: start; }
.ftt-linklist li + li { margin-top: 4px; }
.ftt-linklist a { display: flex; gap: 12px; align-items: center; min-height: 46px; padding: 0 6px; text-decoration: none; font-weight: 600; border-radius: 10px; }
.ftt-linklist a:hover { background: rgba(10, 18, 48, .05); }
.ftt-linklist .ftt-icon { color: var(--crimson); }
.ftt-brandwall { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; }
.ftt-brandwall__item { background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); min-height: 130px; display: grid; place-items: center; padding: 20px; }
.ftt-brandwall__item img { max-height: 80px; width: auto; max-width: 100%; object-fit: contain; }
.ftt-catgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.ftt-catgrid a { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 12px; padding: 18px 20px; border-radius: var(--r-card); background: #fff; box-shadow: var(--shadow-1); text-decoration: none;
    transition-property: box-shadow, translate; transition-duration: .2s; transition-timing-function: var(--ease); }
.ftt-catgrid a:hover { box-shadow: var(--shadow-2); translate: 0 -2px; }
.ftt-catgrid__name { font-weight: 700; font-size: 17px; }
.ftt-catgrid__count { grid-column: 1; color: var(--muted); font-size: 14px; }
.ftt-catgrid .ftt-icon { grid-row: 1 / span 2; grid-column: 2; color: var(--crimson); }
.ftt-404 { text-align: center; padding-top: 70px; padding-bottom: 80px; }
.ftt-404 .ftt-lead { margin: 12px auto 24px; }

/* ----------------------------------------- 9. WooCommerce parts */
.woocommerce-notices-wrapper { margin: 0 0 18px; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice { list-style: none; margin: 0 0 14px; padding: 14px 18px; border-radius: var(--r-in); font-size: 15px; background: #e8edfa; color: var(--navy); display: block; }
.woocommerce-message { background: var(--ok-bg); color: var(--ok); }
.woocommerce-error { background: var(--out-bg); color: var(--out); }
.woocommerce-message a.button, .woocommerce-info a.button { float: right; min-height: 38px; margin-left: 14px; }
.woocommerce-error li { margin: 2px 0; }
.ftt .select2-container .select2-selection--single { min-height: 48px; border: 0; border-radius: 12px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); display: flex; align-items: center; }
.ftt .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.2; padding-left: 14px; color: var(--text); }
.ftt .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; right: 8px; }
.select2-dropdown { border: 0 !important; border-radius: 12px !important; box-shadow: var(--shadow-2); overflow: hidden; }
.select2-search--dropdown .select2-search__field { border-radius: 8px; min-height: 40px; }
.select2-results__option--highlighted[aria-selected], .select2-results__option--highlighted.select2-results__option--selectable { background: var(--navy) !important; }
.woocommerce-privacy-policy-text { font-size: 13px; color: var(--muted); }
.woocommerce-privacy-policy-text a { color: var(--navy); }
.woocommerce-password-strength { margin-top: 6px; font-size: 13px; font-weight: 600; }
.woocommerce-order-details, .woocommerce-customer-details { margin-top: 24px; }
.woocommerce-order-details__title, .woocommerce-column__title { font-size: 28px; }
.woocommerce-table--order-details { width: 100%; border-collapse: collapse; }
.woocommerce-table--order-details th, .woocommerce-table--order-details td { padding: 12px; border-bottom: 1px solid var(--line); text-align: left; }
.woocommerce-order-overview { display: flex; flex-wrap: wrap; gap: 14px 28px; padding: 18px 20px; margin: 0 0 22px; border-radius: var(--r-in); background: var(--paper); }
.woocommerce-order-overview li { list-style: none; font-size: 13px; color: var(--muted); }
.woocommerce-order-overview li strong { display: block; color: var(--text); font-size: 15px; }
.added_to_cart { font-weight: 700; color: var(--navy); text-underline-offset: 3px; }

/* ------------------------------------ 10. cart & checkout (blocks) */
.ftt-store .wp-block-woocommerce-cart, .ftt-store .wp-block-woocommerce-checkout { font-family: var(--ui); }
.ftt-store .wc-block-components-sidebar-layout { gap: 28px; }
.ftt-store .wc-block-cart__main, .ftt-store .wc-block-checkout__main { background: var(--card); border-radius: var(--r-card); padding: 24px; box-shadow: var(--shadow-1); }
.ftt-store .wc-block-cart__sidebar, .ftt-store .wc-block-checkout__sidebar { background: var(--card); border-radius: var(--r-card); padding: 22px; box-shadow: var(--shadow-1); }
.ftt-store .wc-block-components-button:not(.is-link) { background: var(--crimson); color: #fff; border-radius: var(--r-btn); min-height: 50px; font-weight: 700; box-shadow: 0 6px 16px rgba(167, 20, 76, .24); }
.ftt-store .wc-block-components-button:not(.is-link):hover { background: var(--crimson-d); }
.ftt-store .wc-block-components-text-input input, .ftt-store .wc-block-components-select select { border-radius: 12px; }
.ftt-store .wc-block-components-product-name { font-weight: 700; text-decoration: none; }
.ftt-store .wc-block-components-totals-item__value, .ftt-store .wc-block-formatted-money-amount { font-variant-numeric: tabular-nums; }
.ftt-store h2.wc-block-components-title, .ftt-store .wc-block-components-checkout-step__title { font-family: var(--display); font-weight: 400; font-size: 26px; }

.ftt-note { margin: 0 0 22px; padding: 14px 18px; background: var(--card); border: 1px solid #e3ddcd; border-left: 4px solid var(--crimson, #a7144c); border-radius: 12px; font-size: 15px; line-height: 1.55; }
.ftt-ship-note { padding: 12px 14px; background: var(--paper); border: 1px solid #e3ddcd; border-left: 4px solid var(--crimson, #a7144c); border-radius: 10px; font-size: 14px; line-height: 1.5; text-align: left; }
.ftt-ship-note a, .ftt-note a, .ftt-faq-ship-note a { font-weight: 700; }
.ftt-faq-ship-note { margin-top: 10px; }
/* ------------------------------ 10b. cart & checkout (classic) */
.woocommerce-checkout .ftt-field-locked input[readonly] { background: var(--paper-2); color: #40455c; cursor: not-allowed; font-variant-numeric: tabular-nums; }
.woocommerce-checkout .ftt-field-locked .description { color: #5d6277; font-size: 12.5px; }
.ftt-store .woocommerce { display: block; }
.ftt-store table.shop_table { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--card); border-radius: var(--r-card); overflow: hidden; box-shadow: var(--shadow-1); margin: 0 0 22px; }
.ftt-store table.shop_table th, .ftt-store table.shop_table td { padding: 14px; text-align: left; border: 0; border-bottom: 1px solid var(--line); vertical-align: middle; font-size: 15px; }
.ftt-store table.shop_table thead th { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-weight: 700; background: var(--paper-2); }
.ftt-store table.shop_table tbody tr:last-child > th, .ftt-store table.shop_table tbody tr:last-child > td { border-bottom: 0; }
.ftt-store table.cart img { width: 76px; height: 76px; object-fit: contain; border-radius: 10px; background: var(--paper); }
.ftt-store table.cart .product-remove { width: 48px; padding-right: 0; }
.ftt-store table.cart a.remove { display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; border-radius: 50%; color: var(--muted); text-decoration: none; font-size: 22px; line-height: 1; box-shadow: inset 0 0 0 1px var(--line); transition: background-color .18s var(--ease), color .18s var(--ease); }
.ftt-store table.cart a.remove:hover { background: var(--out-bg); color: var(--out); }
.ftt-store table.cart .product-thumbnail { width: 96px; padding-left: 8px; padding-right: 8px; }
.ftt-store table.cart .product-name a { font-weight: 700; text-decoration: none; color: var(--text); }
.ftt-store table.cart .product-name a:hover { color: var(--crimson); }
.ftt-store table.cart td.product-price, .ftt-store table.cart td.product-subtotal, .ftt-store table.cart td.product-quantity { white-space: nowrap; font-variant-numeric: tabular-nums; }
.ftt-store table.cart td.actions { background: var(--paper); padding: 16px 14px; }
.ftt-store td.actions::after { content: ""; display: block; clear: both; }
.ftt-store .coupon { display: inline-flex; flex-wrap: wrap; gap: 10px; align-items: center; float: left; }
.ftt-store .coupon input#coupon_code { width: 210px; }
.ftt-store td.actions > button[name="update_cart"] { float: right; }
.ftt-store td.actions > button[name="update_cart"][disabled] { opacity: .5; }

.ftt-store .cart-collaterals { display: block; }
.ftt-store .cart_totals { background: var(--card); border-radius: var(--r-card); padding: 22px; box-shadow: var(--shadow-1); }
.ftt-store .cart_totals h2 { font-size: 28px; margin: 0 0 12px; }
.ftt-store .cart_totals table.shop_table { box-shadow: none; border-radius: 0; margin: 0 0 16px; background: transparent; }
.ftt-store .cart_totals table.shop_table th { width: 38%; color: var(--muted); font-weight: 600; }
.ftt-store .cart_totals tr.order-total th, .ftt-store .cart_totals tr.order-total td { font-size: 18px; font-weight: 800; color: var(--text); }
/* one-time code: regular price crossed out, code price next to it (cart and checkout) */
.ftt-store .ftt-code-price del { color: var(--muted); opacity: .8; margin-right: 4px; }
.ftt-store .ftt-code-price ins { text-decoration: none; font-weight: 700; color: var(--crimson); }
/* shipping rule line under the shipping choice (cart and checkout) */
.ftt-store tr.ftt-ship-rule td { padding-top: 0; font-size: 13px; color: var(--muted); }
.ftt-store ul#shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ftt-store ul#shipping_method li { display: grid; grid-template-columns: auto 1fr; column-gap: 8px; align-items: start; }
.ftt-store ul#shipping_method li > input.shipping_method { margin-top: 4px; }
/* local pickup: the explanation and the "message us" link under the choice, and the panel on the thank-you page */
.ftt-pickup-note { grid-column: 2; margin: 4px 0 4px; padding: 10px 12px; background: var(--paper); border: 1px solid #e3ddcd; border-left: 4px solid var(--crimson); border-radius: 10px; font-size: 13.5px; line-height: 1.5; color: var(--muted); }
.ftt-pickup-note p { margin: 0 0 6px; }
.ftt-pickup-link { font-weight: 700; color: var(--navy); text-underline-offset: 3px; }
.ftt-pickup-panel { margin: 0 0 22px; padding: 18px 20px; background: var(--card); border-radius: var(--r-card); box-shadow: var(--shadow-1); border-left: 4px solid var(--crimson); }
.ftt-pickup-panel h3 { font-family: var(--display); font-weight: 400; font-size: 26px; margin: 0 0 6px; }
.ftt-pickup-panel p { margin: 0 0 12px; color: var(--muted); }
.ftt-store .shipping-calculator-button { color: var(--navy); font-weight: 600; text-underline-offset: 3px; }
.ftt-store .wc-proceed-to-checkout { padding: 0; }
.ftt-store .wc-proceed-to-checkout .checkout-button, .ftt-store #place_order { display: flex; width: 100%; min-height: 54px; font-size: 16px; background: var(--crimson); box-shadow: 0 1px 0 rgba(255, 255, 255, .18) inset, 0 6px 16px rgba(167, 20, 76, .26); }
.ftt-store .wc-proceed-to-checkout .checkout-button:hover, .ftt-store #place_order:hover { background: var(--crimson-d); }
.ftt-store .cart-empty, .ftt-store .wc-empty-cart-message .cart-empty { margin-bottom: 18px; }
.ftt-store .return-to-shop { margin: 0; }

/* checkout */
.ftt-store form.checkout h3 { font-family: var(--display); font-weight: 400; font-size: 28px; margin: 0 0 14px; }
.ftt-store form.checkout h3#ship-to-different-address { font-family: var(--ui); font-size: 16px; font-weight: 600; margin: 18px 0 0; letter-spacing: 0; }
.ftt-store #ship-to-different-address label { display: inline-flex; gap: 10px; align-items: center; cursor: pointer; }
.ftt-store .col2-set { display: block; }
.ftt-store .col2-set .col-1, .ftt-store .col2-set .col-2 { float: none; width: 100%; }
.ftt-store #customer_details { background: var(--card); border-radius: var(--r-card); padding: 24px; box-shadow: var(--shadow-1); }
.ftt-store .woocommerce-billing-fields__field-wrapper, .ftt-store .woocommerce-shipping-fields__field-wrapper, .ftt-store .woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.ftt-store .woocommerce-billing-fields__field-wrapper .form-row-wide, .ftt-store .woocommerce-shipping-fields__field-wrapper .form-row-wide, .ftt-store .woocommerce-additional-fields__field-wrapper .form-row-wide, .ftt-store .woocommerce-billing-fields__field-wrapper .notes { grid-column: 1 / -1; }
.ftt-store .woocommerce-shipping-fields, .ftt-store .woocommerce-additional-fields { margin-top: 22px; }
.ftt-store #order_review_heading { margin-top: 26px; }
.ftt-store #order_review { background: var(--card); border-radius: var(--r-card); padding: 18px; box-shadow: var(--shadow-1); }
.ftt-store #order_review table.shop_table { box-shadow: none; border-radius: 0; background: transparent; margin-bottom: 16px; }
.ftt-store #payment { background: var(--paper); border-radius: var(--r-in); padding: 16px; }
.ftt-store #payment ul.payment_methods { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 10px; }
.ftt-store #payment .payment_method { background: #fff; border-radius: 12px; padding: 12px 14px; box-shadow: inset 0 0 0 1px var(--line); }
.ftt-store #payment .payment_method > label { display: inline; font-weight: 700; }
.ftt-store #payment .payment_method > input[type="radio"] { vertical-align: middle; margin-right: 8px; }
.ftt-store #payment .payment_box { margin-top: 12px; padding: 0; background: transparent; font-size: 14px; color: var(--muted); }
.ftt-store #payment .payment_box p { margin: 0 0 8px; }
.ftt-store .woocommerce-terms-and-conditions-wrapper { margin: 0 0 14px; font-size: 13.5px; color: var(--muted); }
.ftt-store .woocommerce-terms-and-conditions-wrapper a { color: var(--navy); }
.ftt-store .woocommerce-form__label-for-checkbox { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; }
.ftt-store .woocommerce-checkout-review-order-table .product-name { font-weight: 600; }
.ftt-store .woocommerce-checkout-review-order-table .product-quantity { color: var(--muted); font-weight: 500; }
.ftt-store .woocommerce-checkout-review-order-table tfoot th { color: var(--muted); font-weight: 600; width: 38%; }
.ftt-store .woocommerce-checkout-review-order-table tr.order-total th, .ftt-store .woocommerce-checkout-review-order-table tr.order-total td { font-size: 18px; font-weight: 800; color: var(--text); }
.ftt-store .woocommerce-form-coupon-toggle .woocommerce-info { background: var(--paper-2); color: var(--text); }
.ftt-store .woocommerce-form-coupon { background: var(--card); border-radius: var(--r-card); padding: 18px; box-shadow: var(--shadow-1); margin: 0 0 20px; display: flex; flex-wrap: wrap; gap: 10px; align-items: end; }
.ftt-store .woocommerce-form-coupon > p { margin: 0; }
.ftt-store .woocommerce-form-coupon .form-row-first { flex: 1 1 220px; }
.ftt-store .woocommerce-form-coupon .clear { display: none; }
/* order received */
.ftt-store .woocommerce-order { max-width: 880px; }
.ftt-store .woocommerce-thankyou-order-received { font-size: 18px; font-weight: 600; background: var(--ok-bg); color: var(--ok); }
.ftt-store .woocommerce-order-details table.shop_table { margin-bottom: 18px; }
.ftt-store .woocommerce-customer-details address { font-style: normal; background: var(--card); border-radius: var(--r-in); padding: 16px; box-shadow: var(--shadow-1); line-height: 1.6; }

@media (min-width: 981px) {
    .ftt-store--cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 0 26px; align-items: start; }
    .ftt-store--cart .woocommerce > .woocommerce-notices-wrapper, .ftt-store--cart .woocommerce > .wc-empty-cart-message, .ftt-store--cart .woocommerce > .return-to-shop { grid-column: 1 / -1; }
    .ftt-store--cart .woocommerce-cart-form { grid-column: 1; }
    .ftt-store--cart .cart-collaterals { grid-column: 2; }
    .ftt-store--cart .cart-collaterals .cart_totals { width: 100%; float: none; }
    .ftt-store--checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 0 26px; align-items: start; }
    .ftt-store--checkout form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
    .ftt-store--checkout form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin-top: 0; align-self: end; }
    .ftt-store--checkout form.checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; top: 96px; }
}

/* ------------------------------------ 10c. legal pages (Terms, Privacy) */
.ftt-legal { padding-bottom: 40px; }
.ftt-legal__head { max-width: 860px; margin: 14px 0 30px; }
.ftt-legal__head h1 { margin-bottom: 14px; }
.ftt-legal__head .ftt-lead { margin: 0; }
.ftt-legal__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin: 22px 0 0; }
.ftt-legal__tools .ftt-btn { height: 44px; padding: 0 18px; font-size: 14.5px; }
.ftt-legal__grid { display: block; }

/* "On this page" */
.ftt-toc { margin: 0 0 28px; padding: 16px 18px; background: var(--card); border-radius: var(--r-card); box-shadow: var(--shadow-1); font-size: 14.5px; }
.ftt-toc summary { cursor: pointer; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--muted); list-style: none; display: flex; align-items: center; justify-content: space-between; }
.ftt-toc summary::-webkit-details-marker { display: none; }
.ftt-toc summary::after { content: ""; width: 8px; height: 8px; margin: -3px 4px 0 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .15s var(--ease); }
.ftt-toc[open] summary::after { transform: rotate(-135deg); margin-top: 3px; }
.ftt-toc ol { list-style: decimal; margin: 12px 0 0; padding-left: 1.6em; }
.ftt-toc li { padding-left: 2px; color: var(--muted); font-variant-numeric: tabular-nums; }
.ftt-toc a { display: block; padding: 5px 0; color: var(--text); text-decoration: none; line-height: 1.3; }
.ftt-toc a:hover { color: var(--crimson); text-decoration: underline; text-underline-offset: 3px; }

/* the document */
.ftt-legal__body { max-width: 760px; font-size: 16.5px; line-height: 1.7; color: #232842; }
.ftt-legal__body p { margin: 0 0 1em; }
.ftt-legal__body strong { color: var(--ink); }
.ftt-legal__body h2 { font-size: clamp(26px, 2.6vw, 34px); margin: 2em 0 .6em; padding-top: 1em; border-top: 1px solid var(--line); scroll-margin-top: 96px; }
.ftt-legal__body h3 { font-family: var(--ui); font-size: 17px; font-weight: 700; letter-spacing: 0; line-height: 1.3; margin: 1.6em 0 .5em; color: var(--ink); }
.ftt-legal__body code { font-size: .88em; background: var(--paper-2); padding: 1px 6px; border-radius: 5px; overflow-wrap: anywhere; }
.ftt-legal__body :target { animation: ftt-flash 1.6s var(--ease); }
@keyframes ftt-flash { from { background: rgba(201, 162, 75, .28); } to { background: transparent; } }
.ftt-legal-meta { margin: 0 0 18px; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.ftt-legal-meta strong { color: var(--muted); font-weight: 700; }
.ftt-callout { margin: 22px 0 28px; padding: 18px 22px; background: var(--card); border: 1px solid #e3ddcd; border-left: 4px solid var(--navy); border-radius: 12px; }
.ftt-callout--alert { background: #fbeef2; border-color: #ecc6d3; border-left-color: var(--crimson); }
.ftt-callout > :last-child { margin-bottom: 0; }
.ftt-callout ul { margin-top: 8px; }
.ftt-table-wrap { overflow-x: auto; margin: 18px 0 24px; border-radius: var(--r-in); background: var(--card); box-shadow: inset 0 0 0 1px var(--line); }
.ftt-legal__body table { width: 100%; min-width: 580px; border-collapse: collapse; border: 0; line-height: 1.5; margin: 0 !important; }
.ftt-legal__body th { background: var(--navy); color: #fff; font-weight: 600; text-align: left; padding: 11px 14px; border: 0; font-size: 12.5px; letter-spacing: .05em; }
.ftt-legal__body td { padding: 12px 14px; border: 0; border-top: 1px solid var(--line); vertical-align: top; }
.ftt-legal__body tbody tr:nth-child(even) td { background: #faf8f2; }

/* the notice under the application button */
.ftt-legal-note { margin: 12px 0 0; font-size: 13px; line-height: 1.5; color: var(--muted); }
.ftt-legal-note a { color: var(--navy); font-weight: 600; text-underline-offset: 3px; }

@media (min-width: 1000px) {
    .ftt-legal__grid--toc { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 60px; align-items: start; }
    .ftt-legal__grid--toc .ftt-toc { position: sticky; top: 96px; margin: 0; max-height: calc(100vh - 124px); overflow: auto; }
    .ftt-toc summary { pointer-events: none; cursor: default; }
    .ftt-toc summary::after { display: none; }
}
@media (max-width: 640px) {
    .ftt-legal__body { font-size: 16px; }
    .ftt-callout { padding: 16px 16px; }
}
@media print {
    .ftt-promo, .ftt-util, .ftt-header, .ftt-footer, .ftt-drawer, .ftt-toc, .ftt-legal__tools, .ftt-skip, .ftt-legal__head .ftt-eyebrow { display: none !important; }
    body.ftt { background: #fff; color: #000; font-size: 11pt; }
    .ftt-wrap { max-width: none; padding: 0; }
    .ftt-legal__grid--toc { display: block; }
    .ftt-legal__body { max-width: none; font-size: 10.5pt; line-height: 1.5; color: #000; }
    .ftt-legal__body h2 { break-after: avoid; border-top-color: #bbb; }
    .ftt-callout, .ftt-legal__body tr { break-inside: avoid; }
    .ftt-legal__body a { color: #000; text-decoration: underline; }
    .ftt-table-wrap { overflow: visible; box-shadow: none; }
    .ftt-legal__body table { min-width: 0; }
    .ftt-legal__body th { background: #eee !important; color: #000; }
}

/* ------------------------- 10d. the code offer and full sealed cases */
.ftt-offer { margin: 2px 0 10px; font-size: 13.5px; line-height: 1.5; color: var(--text); }
.ftt-offer b { font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.ftt-offer__tag { display: inline-block; padding: 2px 9px; margin-right: 4px; border-radius: 999px; background: var(--foil); color: #4a3608; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; vertical-align: 1px; }
.ftt-offer-box { margin: 14px 0 16px; padding: 14px 16px; border-radius: var(--r-in); background: #fffaf0; box-shadow: inset 0 0 0 1px #e8d9ae; }
.ftt-offer-box__title { margin: 0 0 8px; font-weight: 700; }
.ftt-offer-box ul { margin: 0 0 8px; padding: 0; list-style: none; display: grid; gap: 8px; }
.ftt-offer-box li { font-size: 15px; line-height: 1.4; }
.ftt-offer-box li b { font-size: 19px; color: var(--ink); font-variant-numeric: tabular-nums; }
.ftt-offer-box__was { display: block; font-size: 13px; color: var(--muted); }
.ftt-offer-box__fine { margin: 0; font-size: 12.5px; color: var(--muted); line-height: 1.45; }
.ftt-case-form { margin: 18px 0 4px; padding: 16px; border-radius: var(--r-in); background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); }
.ftt-case-form__title { margin: 0 0 4px; font-weight: 700; font-size: 16px; }
.ftt-case-form__text { margin: 0 0 12px; font-size: 14px; color: var(--muted); line-height: 1.5; }
.ftt-case-form__text b { color: var(--ink); }
.ftt-case-form__row { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
.ftt-case-form__row .ftt-btn { flex: 1; min-width: 180px; min-height: 48px; }
.ftt-case-form__hint { margin: 8px 0 0; font-size: 13px; color: var(--muted); }
.ftt-cart-item-case dt, .variation dt { font-weight: 600; }
.ftt-min-note { margin: 10px 0 0; font-size: 14px; color: var(--muted); }
.ftt-min-note::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--crimson); vertical-align: 1px; }
.ftt-buybox .ftt-min-note { margin-top: 12px; }
.ftt-btn--disabled { background: #b9bdcf; color: #fff; cursor: not-allowed; text-align: center; pointer-events: none; }

/* "Have a code?" in the top corner (and the mobile menu) */
.ftt-codeslot { display: contents; }
.ftt-codebox { position: relative; display: inline-flex; align-items: center; gap: 10px; }
.ftt-codebox > summary { list-style: none; cursor: pointer; color: #fff; font-weight: 600; text-decoration: underline dotted; text-underline-offset: 4px; }
.ftt-codebox > summary::-webkit-details-marker { display: none; }
.ftt-codebox[open] > summary { text-decoration-style: solid; }
.ftt-codebox__panel { position: absolute; right: 0; top: calc(100% + 12px); width: min(330px, 88vw); padding: 16px; border-radius: 14px; background: #fff; color: var(--text); box-shadow: var(--shadow-2); z-index: 70; font-size: 14px; text-align: left; }
.ftt-codebox__panel label, .ftt-codebox__title { display: block; margin: 0 0 8px; font-weight: 700; font-size: 14px; color: var(--ink); }
.ftt-codebox__row { display: flex; gap: 8px; }
.ftt-codebox__row input { flex: 1; min-width: 0; height: 46px; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.ftt-codebox__row .ftt-btn { height: 46px; padding: 0 18px; }
.ftt-codebox__msg { margin: 8px 0 0; min-height: 1.3em; font-size: 13px; line-height: 1.4; }
.ftt-codebox__msg.is-ok { color: var(--ok); font-weight: 600; }
.ftt-codebox__msg.is-error { color: var(--out); font-weight: 600; }
.ftt-codebox--on .ftt-codebox__on { display: inline-flex; gap: 6px; align-items: center; padding: 0 10px; border-radius: 999px; background: rgba(154, 227, 180, .16); color: #9be3b4; font-weight: 700; }
.ftt-codebox__release { margin: 0; }
.ftt-codebox__link { background: none; border: 0; padding: 0; margin: 0; color: #cfd3e6; font: inherit; text-decoration: underline; cursor: pointer; }
.ftt-codebox__link:hover { color: #fff; }
.ftt-codebox--drawer { display: block; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); }
.ftt-codebox--drawer .ftt-codebox__panel { position: static; width: auto; padding: 0; box-shadow: none; }
.ftt-codebox--drawer .ftt-codebox__panel label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ftt-codebox--drawer.ftt-codebox--on { display: flex; justify-content: space-between; align-items: center; }
.ftt-codebox--drawer.ftt-codebox--on .ftt-codebox__on { background: var(--ok-bg); color: var(--ok); }
.ftt-codebox--drawer .ftt-codebox__link { color: var(--muted); }
/* the saved-code card (cart page, account overview) */
.ftt-codecard { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0 0 22px; padding: 16px 20px; border-radius: var(--r-card); background: var(--card); box-shadow: var(--shadow-1); }
.ftt-codecard--on { background: #f1faf4; box-shadow: inset 0 0 0 1px #bfe3cb; }
.ftt-codecard__icon { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--ok-bg); color: var(--ok); }
.ftt-codecard__body { flex: 1 1 200px; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 14.5px; line-height: 1.45; color: var(--muted); }
.ftt-codecard__body strong { font-size: 15.5px; color: var(--ink); }
.ftt-codecard--on .ftt-codecard__body strong { color: var(--ok); }
.ftt-codecard__action, .ftt-codecard__form { margin: 0; }
.ftt-codecard__form { flex: 1 1 300px; max-width: 420px; }
.ftt-dash__head + .ftt-codecard { margin-top: 22px; }
.ftt-codeinline { margin-top: 14px; max-width: 380px; }
.ftt-codeinline .ftt-codebox__msg { margin-top: 6px; min-height: 0; }
.ftt-codeinline .ftt-codebox__msg:empty { display: none; }
.ftt-codecard .ftt-codebox__msg { margin-top: 6px; min-height: 0; }
.ftt-codecard .ftt-codebox__msg:empty { display: none; }
.ftt-offer__tag--on { background: var(--ok-bg); color: var(--ok); }
.ftt-offer-box--on { background: #f1faf4; box-shadow: inset 0 0 0 1px #bfe3cb; }
.ftt-done__code { margin: 10px auto 0; max-width: 440px; font-size: 14.5px; color: var(--muted); }
.ftt-done__code--ok { color: var(--ok); font-weight: 600; }

/* ---------------------------------------------------- 11. responsive */
@media (max-width: 1080px) {
    .ftt-grid, .ftt-catalog .ftt-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ftt-footer__in { grid-template-columns: 1fr 1fr; }
    .ftt-tiles { grid-template-columns: repeat(2, 1fr); }
    .ftt-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ftt-nav { display: none; }
    .ftt-burger { display: inline-flex; }
    .ftt-search { max-width: none; }
}
@media (max-width: 900px) {
    .ftt-hero__in, .ftt-product__grid, .ftt-auth__cols, .ftt-auth--apply .ftt-auth__cols, .ftt-contact__grid, .ftt-catalog__layout, .ftt-account { grid-template-columns: 1fr; }
    .ftt-hero { padding: 48px 0 56px; }
    .ftt-wheel { height: 400px; }
    .ftt-steps { grid-template-columns: 1fr; }
    .ftt-grid, .ftt-catalog .ftt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ftt-product__gallery, .ftt-filters, .ftt-accnav { position: static; }
    .ftt-assure { grid-template-columns: 1fr; }
    .ftt-account .woocommerce-Addresses { grid-template-columns: 1fr; }
    .ftt-accnav ul { grid-template-columns: repeat(2, 1fr); }
    .ftt-field-row { grid-template-columns: 1fr; }
    .ftt-accnav a { padding: 0 12px; gap: 10px; }
    .ftt-sticky { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; gap: 10px; align-items: center; justify-content: space-between; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .95); backdrop-filter: blur(10px); box-shadow: 0 -1px 0 var(--line), 0 -10px 30px rgba(10, 18, 48, .08); }
    .ftt-sticky[hidden] { display: none; }
    .ftt-sticky__price { font-size: 22px; font-weight: 700; }
    .ftt-sticky .ftt-btn--block { width: 100%; }
    .ftt-product { padding-bottom: 80px; }
}
@media (max-width: 480px) {
    .ftt-accnav ul { grid-template-columns: 1fr; }
    .ftt-accnav a { min-height: 44px; }
}
@media (max-width: 760px) {
    .ftt-store table.shop_table_responsive thead { display: none; }
    .ftt-store table.shop_table_responsive tr { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
    .ftt-store table.shop_table_responsive td, .ftt-store table.shop_table_responsive th { border: 0; padding: 6px 0; }
    .ftt-store table.shop_table_responsive td::before { content: attr(data-title); display: block; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
    .ftt-store table.shop_table_responsive td.product-remove, .ftt-store table.shop_table_responsive td.product-thumbnail, .ftt-store table.shop_table_responsive td.product-name, .ftt-store table.shop_table_responsive td.actions { grid-column: 1 / -1; }
    .ftt-store table.shop_table_responsive td.product-remove::before, .ftt-store table.shop_table_responsive td.product-thumbnail::before, .ftt-store table.shop_table_responsive td.actions::before { display: none; }
    .ftt-store table.shop_table_responsive td.product-name::before { content: ""; display: none; }
    .ftt-store .coupon, .ftt-store td.actions > button[name="update_cart"] { float: none; width: 100%; }
    .ftt-store .coupon input#coupon_code { flex: 1 1 140px; width: auto; }
    .ftt-store td.actions > button[name="update_cart"] { margin-top: 12px; }
    .ftt-store .woocommerce-billing-fields__field-wrapper, .ftt-store .woocommerce-shipping-fields__field-wrapper, .ftt-store .woocommerce-additional-fields__field-wrapper { grid-template-columns: 1fr; }
    .ftt-store #customer_details { padding: 18px; }
}
@media (max-width: 640px) {
    .ftt-util { display: none; }
    .ftt-promo p { padding: 8px 16px; font-size: 13px; }
    .ftt-wrap, .ftt-header__in, .ftt-hero__in, .ftt-brands__in, .ftt-footer__in, .ftt-footer__bar { padding-left: 16px; padding-right: 16px; }
    .ftt-header__in { gap: 10px; padding-top: 10px; padding-bottom: 10px; }
    .ftt-search { display: none; }
    .ftt-logo__img { height: 38px; }
    .ftt-acct { margin-left: auto; }
    .ftt-acct__link span { display: none; }
    .ftt-acct .ftt-btn--ghost:not(.ftt-acct__link) { display: none; }
    .ftt-wheel { height: 360px; }
    .ftt-wheel__item { width: 140px; margin: -93px 0 0 -70px; }
    .ftt-brands__in { gap: 14px 26px; }
    .ftt-brand img, .ftt-brand__img { height: 38px; }
    .ftt-panel, .ftt-account__content { padding: 22px 18px; }
    .ftt-cta-band { padding: 0 16px; }
    .ftt-cta-band__in { padding: 30px 22px; }
    .ftt-grid, .ftt-catalog .ftt-grid { gap: 12px; }
    .ftt-card__body { padding: 12px 6px 0; }
    .ftt-tiles { grid-template-columns: 1fr 1fr; }
    .ftt-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .ftt-cat { min-height: 140px; padding: 14px; }
    .ftt-cat__name { font-size: 22px; }
    .ftt-footer__in { grid-template-columns: 1fr; gap: 26px; }
    .ftt-buybox { padding: 18px; }
    .ftt-codecard { padding: 14px 16px; }
    .ftt-codecard__action, .ftt-codecard__action .ftt-btn, .ftt-codecard__form { width: 100%; max-width: none; }
    .woocommerce-message a.button { float: none; margin: 10px 0 0; }
}

/* ------------------------------------------- 12. motion preferences */
@media (prefers-reduced-motion: reduce) {
    .ftt *, .ftt *::before, .ftt *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
