/* ============================================================
   4syz — brand + VFX stylesheet (Blocksy child)
   Palette: ink #0E0F13 · champagne-gold #C8A24B · cream #F6F3EC
   ============================================================ */
:root{
  --ink:#0E0F13; --ink-2:#16181f; --ink-3:#1e212b;
  --gold:#C8A24B; --gold-2:#e0c589; --gold-soft:rgba(200,162,75,.14);
  --cream:#F6F3EC; --paper:#fbfaf6; --line:#e7e2d6;
  --muted:#6b6b73; --text:#1a1b20;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --maxw:1200px; --r:16px; --shadow:0 18px 50px -20px rgba(14,15,19,.28);
}

body{ font-family:var(--sans); color:var(--text); background:var(--paper); }
.fsyz-home h1,.fsyz-home h2,.fsyz-home h3,
.fsyz-section h2,.fsyz-hero-title{ font-family:var(--serif); font-weight:600; letter-spacing:-.01em; }

.fsyz-eyebrow{ font:600 12px/1 var(--sans); letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin:0 0 14px; }

/* ---------- buttons ---------- */
.fsyz-btn{ display:inline-flex; align-items:center; gap:.5em; padding:15px 30px; border-radius:100px;
  font:600 15px/1 var(--sans); text-decoration:none; transition:transform .25s ease, box-shadow .25s ease, background .25s; cursor:pointer; }
.fsyz-btn-gold{ background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#1a1406; box-shadow:0 12px 30px -10px rgba(200,162,75,.6); }
.fsyz-btn-gold:hover{ transform:translateY(-3px); box-shadow:0 20px 40px -12px rgba(200,162,75,.75); }
.fsyz-btn-ghost{ background:transparent; color:var(--cream); border:1px solid rgba(246,243,236,.35); }
.fsyz-btn-ghost:hover{ background:rgba(246,243,236,.08); transform:translateY(-3px); }
.fsyz-btn-dark{ background:var(--ink); color:var(--cream); }
.fsyz-btn-dark:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }

/* ---------- HERO ---------- */
.fsyz-hero{ position:relative; min-height:92vh; display:flex; align-items:center; overflow:hidden;
  background:radial-gradient(120% 90% at 80% -10%, #23262f 0%, var(--ink) 55%); color:var(--cream); }
.fsyz-hero-bg{ position:absolute; inset:-10% -10% -20%; z-index:0;
  background:
    radial-gradient(40% 55% at 78% 30%, rgba(200,162,75,.22), transparent 70%),
    radial-gradient(45% 45% at 15% 80%, rgba(200,162,75,.10), transparent 70%);
  will-change:transform; }
.fsyz-hero-glow{ position:absolute; z-index:0; width:520px; height:520px; right:-80px; top:-120px; border-radius:50%;
  background:radial-gradient(circle,rgba(200,162,75,.35),transparent 65%); filter:blur(30px); }
.fsyz-hero-inner{ position:relative; z-index:2; max-width:var(--maxw); width:100%; margin:0 auto; padding:120px 24px; }
.fsyz-hero-title{ font-size:clamp(2.6rem,7vw,5.4rem); line-height:1.02; margin:0 0 22px; max-width:15ch; }
.fsyz-hero-title em{ font-style:italic; color:var(--gold-2); }
.fsyz-hero-sub{ font-size:clamp(1rem,1.6vw,1.28rem); line-height:1.6; color:rgba(246,243,236,.78); max-width:52ch; margin:0 0 36px; }
.fsyz-hero-cta{ display:flex; gap:14px; flex-wrap:wrap; }
.fsyz-scrollcue{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:2; width:24px; height:38px;
  border:2px solid rgba(246,243,236,.4); border-radius:14px; }
.fsyz-scrollcue span{ position:absolute; top:7px; left:50%; margin-left:-2px; width:4px; height:8px; border-radius:2px; background:var(--gold);
  animation:fsyzcue 1.6s infinite; }
@keyframes fsyzcue{ 0%{opacity:0;transform:translateY(0)} 40%{opacity:1} 100%{opacity:0;transform:translateY(12px)} }

/* ---------- MARQUEE ---------- */
.fsyz-marquee{ background:var(--ink); color:var(--cream); overflow:hidden; padding:16px 0; border-top:1px solid rgba(255,255,255,.06); }
.fsyz-marquee-track{ display:inline-flex; align-items:center; gap:28px; white-space:nowrap; animation:fsyzmarq 32s linear infinite; }
.fsyz-marquee-track span{ font:600 15px/1 var(--sans); letter-spacing:.04em; opacity:.85; }
.fsyz-marquee .fsyz-dot{ color:var(--gold); }
@keyframes fsyzmarq{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ---------- sections ---------- */
.fsyz-section{ max-width:var(--maxw); margin:0 auto; padding:100px 24px; }
.fsyz-sec-head{ margin-bottom:48px; }
.fsyz-sec-head h2{ font-size:clamp(1.9rem,3.6vw,3rem); margin:0; max-width:20ch; }
.fsyz-sec-foot{ text-align:center; margin-top:48px; }

/* ---------- category grid ---------- */
.fsyz-cat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.fsyz-cat-card{ position:relative; border-radius:var(--r); overflow:hidden; text-decoration:none; background:var(--ink-2);
  min-height:300px; display:flex; align-items:flex-end; box-shadow:var(--shadow); transition:transform .4s ease; }
.fsyz-cat-media{ position:absolute; inset:0; background-size:cover; background-position:center;
  background-color:var(--ink-3); transition:transform .6s ease; }
.fsyz-cat-card::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(10,11,15,.9) 8%,rgba(10,11,15,.15) 60%,transparent); }
.fsyz-cat-card:hover{ transform:translateY(-6px); }
.fsyz-cat-card:hover .fsyz-cat-media{ transform:scale(1.06); }
.fsyz-cat-body{ position:relative; z-index:2; padding:26px; color:var(--cream); }
.fsyz-cat-body h3{ margin:0 0 6px; font-size:1.45rem; }
.fsyz-cat-count{ color:var(--gold-2); font:600 13px/1 var(--sans); letter-spacing:.02em; }

/* ---------- product cards (home + shop) ---------- */
.fsyz-prod-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.fsyz-prod-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  text-decoration:none; color:var(--text); display:flex; flex-direction:column; transition:transform .35s ease, box-shadow .35s ease; }
.fsyz-prod-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.fsyz-prod-media{ aspect-ratio:1/1; background:var(--cream); overflow:hidden; }
.fsyz-prod-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.fsyz-prod-card:hover .fsyz-prod-media img{ transform:scale(1.05); }
.fsyz-prod-body{ padding:20px; display:flex; flex-direction:column; gap:8px; }
.fsyz-prod-body h3{ margin:0; font-size:1.12rem; line-height:1.3; }
.fsyz-prod-cta{ color:var(--gold); font:600 13px/1 var(--sans); margin-top:4px; }

/* guide price range (used everywhere via mu-plugin) */
.fsyz-range{ font:700 1.15rem/1 var(--sans); color:var(--ink); display:inline-flex; align-items:baseline; gap:8px; }
.fsyz-range .fsyz-dash{ color:var(--gold); font-weight:600; }
.fsyz-range bdi{ white-space:nowrap; }
.fsyz-range-note{ display:block; margin-top:5px; font:500 11px/1 var(--sans); letter-spacing:.03em; text-transform:uppercase; color:var(--muted); }

/* ---------- FILTER BAR ---------- */
.fsyz-filterbar{ display:flex; flex-wrap:wrap; gap:26px 34px; align-items:flex-start;
  padding:22px 24px; margin:0 0 26px; background:#fff; border:1px solid var(--line); border-radius:var(--r); }
.fsyz-fgroup{ display:flex; flex-direction:column; gap:10px; }
.fsyz-fgroup-label{ font:600 11px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.fsyz-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.fsyz-chip{ display:inline-block; padding:8px 15px; border-radius:100px; background:var(--cream); border:1px solid transparent;
  font:600 13px/1 var(--sans); color:var(--text); text-decoration:none; transition:all .2s ease; }
.fsyz-chip:hover{ border-color:var(--gold); color:var(--ink); }
.fsyz-chip.is-active{ background:var(--ink); color:var(--cream); }
.fsyz-price-form{ display:flex; align-items:center; gap:8px; }
.fsyz-price-form input{ width:82px; padding:9px 12px; border:1px solid var(--line); border-radius:10px; font:500 14px var(--sans); }
.fsyz-price-go{ padding:9px 16px; border:0; border-radius:10px; background:var(--gold); color:#1a1406; font:600 13px var(--sans); cursor:pointer; }
.fsyz-clear{ margin-left:auto; align-self:center; color:var(--muted); font:600 13px var(--sans); text-decoration:none; }
.fsyz-clear:hover{ color:var(--ink); }

/* ---------- HOW IT WORKS ---------- */
.fsyz-how{ background:var(--cream); max-width:none; }
.fsyz-how .fsyz-sec-head,.fsyz-how .fsyz-steps{ max-width:var(--maxw); margin-left:auto; margin-right:auto; }
.fsyz-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.fsyz-step{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:34px; }
.fsyz-step-num{ font:700 15px/1 var(--sans); color:var(--gold); letter-spacing:.1em; }
.fsyz-step h3{ font-size:1.4rem; margin:16px 0 10px; }
.fsyz-step p{ color:var(--muted); line-height:1.6; margin:0; }

/* ---------- STATS ---------- */
.fsyz-stats{ background:var(--ink); color:var(--cream); display:grid; grid-template-columns:repeat(4,1fr); gap:20px;
  padding:74px 24px; text-align:center; }
.fsyz-stat-num{ font:600 clamp(2.4rem,5vw,3.6rem)/1 var(--serif); color:var(--gold-2); }
.fsyz-stat-label{ margin-top:10px; font:500 14px/1.4 var(--sans); color:rgba(246,243,236,.7); }

/* ---------- CTA band ---------- */
.fsyz-cta-band{ background:radial-gradient(120% 130% at 50% -30%, #23262f, var(--ink)); color:var(--cream); text-align:center; padding:110px 24px; }
.fsyz-cta-inner{ max-width:640px; margin:0 auto; }
.fsyz-cta-band h2{ font-family:var(--serif); font-size:clamp(2rem,4vw,3.2rem); margin:0 0 14px; }
.fsyz-cta-band p{ color:rgba(246,243,236,.75); font-size:1.1rem; margin:0 0 30px; }

/* ---------- PERSONALISED BRANDING ---------- */
.fsyz-branding{ background:radial-gradient(120% 120% at 85% -10%, #23262f, var(--ink) 60%); color:var(--cream); max-width:none; }
.fsyz-branding-inner{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
.fsyz-branding h2{ color:var(--cream); font-size:clamp(1.9rem,3.6vw,3rem); margin:0 0 18px; }
.fsyz-branding-lead{ color:rgba(246,243,236,.8); font-size:1.08rem; line-height:1.65; margin:0 0 22px; max-width:46ch; }
.fsyz-branding-list{ list-style:none; margin:0 0 30px; padding:0; display:flex; flex-direction:column; gap:12px; }
.fsyz-branding-list li{ position:relative; padding-left:28px; color:rgba(246,243,236,.9); font-size:15px; }
.fsyz-branding-list li::before{ content:"✦"; position:absolute; left:0; color:var(--gold); }
.fsyz-branding-steps{ display:flex; flex-direction:column; gap:16px; }
.fsyz-branding-step{ display:flex; gap:18px; align-items:flex-start; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:var(--r); padding:22px 24px; }
.fsyz-branding-step span{ font:600 20px var(--serif); color:var(--gold-2); flex:0 0 auto; }
.fsyz-branding-step strong{ display:block; font:600 16px var(--sans); color:var(--cream); margin-bottom:4px; }
.fsyz-branding-step p{ margin:0; color:rgba(246,243,236,.65); font-size:14px; line-height:1.5; }
@media (max-width:900px){ .fsyz-branding-inner{ grid-template-columns:1fr; gap:34px; } }

/* ============================================================
   WooCommerce single + shop polish
   ============================================================ */
/* request panel on single product */
.fsyz-request-panel{ margin:26px 0; }
.fsyz-moq{ font:500 14px var(--sans); color:var(--muted); margin:0 0 14px; }
.fsyz-thanks{ background:var(--gold-soft); border:1px solid var(--gold); color:#5a481c; padding:14px 18px; border-radius:12px; margin-bottom:16px; font-weight:600; }
details.fsyz-request{ border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
details.fsyz-request > summary{ list-style:none; display:block; text-align:center; }
details.fsyz-request > summary::-webkit-details-marker{ display:none; }
.fsyz-request-btn,.button.fsyz-request-btn{ display:inline-block; width:100%; box-sizing:border-box; padding:16px 24px;
  background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#1a1406 !important; border:0; border-radius:12px;
  font:600 15px var(--sans); text-align:center; cursor:pointer; text-decoration:none; transition:transform .2s; }
.fsyz-request-btn:hover{ transform:translateY(-2px); }
details.fsyz-request[open] > summary{ border-radius:0; }
.fsyz-form{ padding:22px; background:#fff; }
.fsyz-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fsyz-form label{ display:flex; flex-direction:column; gap:6px; font:600 12px var(--sans); color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.fsyz-form input,.fsyz-form textarea{ padding:11px 13px; border:1px solid var(--line); border-radius:10px; font:400 15px var(--sans); color:var(--text); }
.fsyz-form .fsyz-msg{ margin-top:14px; }
.fsyz-form input:focus,.fsyz-form textarea:focus{ outline:2px solid var(--gold); border-color:var(--gold); }
.fsyz-submit,.button.fsyz-submit{ margin-top:16px; background:var(--ink) !important; color:var(--cream) !important; border:0; border-radius:12px; padding:15px 28px; font:600 15px var(--sans); cursor:pointer; }
.fsyz-privacy{ margin:12px 0 0; font:500 12px var(--sans); color:var(--muted); }
.fsyz-form .fsyz-msg span{ text-transform:none; letter-spacing:0; color:var(--muted); font-weight:400; }
.fsyz-form .fsyz-check{ flex-direction:row; align-items:center; gap:10px; text-transform:none; letter-spacing:0; font:600 13.5px var(--sans); color:var(--text); cursor:pointer; margin-top:14px; }
.fsyz-form .fsyz-check input[type="checkbox"]{ width:18px; height:18px; padding:0; margin:0; accent-color:var(--gold); flex:0 0 auto; }
.fsyz-checkout-gift{ margin-top:20px; }
.fsyz-checkout-gift h3{ font:600 17px var(--serif); color:var(--ink); margin:0 0 10px; }

/* shop loop: swap Woo card price/button styling to brand */
ul.products li.product .fsyz-request-btn{ width:auto; padding:11px 20px; margin-top:8px; }
ul.products li.product .price{ color:var(--ink); }

/* sticky mobile CTA */
.fsyz-sticky-cta{ display:none; }

/* ============================================================
   Responsive — mobile first thumb-zone
   ============================================================ */
@media (max-width:900px){
  .fsyz-cat-grid,.fsyz-prod-grid,.fsyz-steps{ grid-template-columns:repeat(2,1fr); }
  .fsyz-stats{ grid-template-columns:repeat(2,1fr); gap:34px 20px; }
  .fsyz-section{ padding:70px 20px; }
}
@media (max-width:600px){
  .fsyz-hero{ min-height:88vh; }
  .fsyz-hero-inner{ padding:96px 20px; }
  .fsyz-cat-grid,.fsyz-prod-grid,.fsyz-steps{ grid-template-columns:1fr; }
  .fsyz-hero-cta{ flex-direction:column; }
  .fsyz-hero-cta .fsyz-btn{ width:100%; justify-content:center; }
  .fsyz-form-grid{ grid-template-columns:1fr; }
  .fsyz-filterbar{ gap:18px; }
  /* sticky quote bar reachable in the thumb zone */
  .fsyz-sticky-cta{ position:fixed; left:12px; right:12px; bottom:12px; z-index:999; display:block; text-align:center;
    padding:16px; border-radius:14px; background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#1a1406;
    font:700 16px var(--sans); text-decoration:none; box-shadow:0 12px 30px -8px rgba(0,0,0,.4); }
  .woocommerce div.product{ padding-bottom:78px; } /* clear the sticky bar */
}

/* ---------- reveal defaults (JS sets opacity; keep visible if JS off) ---------- */
.no-js [data-anim]{ opacity:1 !important; }

/* ============================================================
   Heading colours — Blocksy applies its own heading colour that
   overrides our inherited values, so set brand colours explicitly.
   ============================================================ */
.fsyz-home h2,.fsyz-sec-head h2,.fsyz-step h3,.fsyz-prod-body h3{ color:var(--ink); }
.fsyz-hero .fsyz-hero-title{ color:var(--cream); }
.fsyz-hero .fsyz-hero-title em{ color:var(--gold-2); }
.fsyz-cat-card .fsyz-cat-body h3{ color:var(--cream); text-shadow:0 2px 14px rgba(0,0,0,.55); }
.fsyz-cta-band h2, .fsyz-branding h2{ color:var(--cream); }
.fsyz-stats .fsyz-stat-num{ color:var(--gold-2); }
/* strengthen category overlay so titles always read on light images */
.fsyz-cat-card::after{ background:linear-gradient(to top,rgba(10,11,15,.92) 12%,rgba(10,11,15,.35) 55%,rgba(10,11,15,.05) 100%); }
/* single-product title + price colour */
.woocommerce div.product .product_title{ color:var(--ink); }

/* ============================================================
   CUSTOM HEADER + FOOTER  (Blocksy's own are hidden)
   ============================================================ */
#header.ct-header, #footer.ct-footer{ display:none !important; }
:root{ --head-h:74px; --wrap-h:114px; }

.fsyz-skip{ position:absolute; left:-9999px; top:0; z-index:300; background:var(--ink); color:var(--cream); padding:10px 16px; border-radius:0 0 8px 0; }
.fsyz-skip:focus{ left:0; }

.fsyz-headwrap{ position:fixed; inset:0 0 auto 0; z-index:120; transition:background .3s ease, box-shadow .3s ease; }
.fsyz-topbar{ background:var(--ink); color:var(--cream); }
.fsyz-topbar-inner{ max-width:var(--maxw); margin:0 auto; padding:9px 24px; display:flex; gap:14px; align-items:center; justify-content:center;
  font:600 11.5px/1 var(--sans); letter-spacing:.09em; text-transform:uppercase; }
.fsyz-tb-dot{ color:var(--gold); }
.fsyz-tb-em{ color:var(--gold-2); }

.fsyz-head-inner{ max-width:var(--maxw); margin:0 auto; padding:0 24px; height:var(--head-h); display:flex; align-items:center; gap:22px; }
.fsyz-brand{ display:flex; align-items:center; gap:11px; text-decoration:none; flex:0 0 auto; }
.fsyz-logo{ height:42px; width:auto; display:none; }
.fsyz-logo-light{ display:block; }
.fsyz-brand-tag{ font:600 10.5px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; color:var(--gold);
  border:1px solid var(--gold-soft); padding:5px 9px; border-radius:100px; }
.fsyz-inner .fsyz-logo-light, .fsyz-home .fsyz-headwrap.is-scrolled .fsyz-logo-light{ display:none; }
.fsyz-inner .fsyz-logo-dark, .fsyz-home .fsyz-headwrap.is-scrolled .fsyz-logo-dark{ display:block; }

.fsyz-nav{ margin-left:4px; }
.fsyz-menu{ list-style:none; display:flex; gap:4px; margin:0; padding:0; }
.fsyz-menu a{ display:block; padding:10px 14px; border-radius:100px; text-decoration:none; color:var(--text);
  font:600 14.5px/1 var(--sans); transition:background .2s, color .2s; }
.fsyz-menu a:hover, .fsyz-menu .current-menu-item>a{ background:var(--gold-soft); color:var(--ink); }

.fsyz-actions{ margin-left:auto; display:flex; align-items:center; gap:10px; }
.fsyz-cta-pill{ display:inline-flex; align-items:center; padding:11px 20px; border-radius:100px;
  background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#1a1406; font:700 14px/1 var(--sans); text-decoration:none;
  box-shadow:0 10px 24px -12px rgba(200,162,75,.7); transition:transform .2s, box-shadow .2s; }
.fsyz-cta-pill:hover{ transform:translateY(-2px); box-shadow:0 16px 30px -12px rgba(200,162,75,.85); }
.fsyz-act{ position:relative; display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px;
  border-radius:50%; color:var(--ink); border:1px solid var(--line); text-decoration:none; background:transparent; transition:background .2s, border-color .2s; }
.fsyz-act:hover{ background:var(--gold-soft); border-color:var(--gold); }
.fsyz-i{ width:20px; height:20px; }
.fsyz-quote-count, .fsyz-cart-count, .fsyz-wish-count{ position:absolute; top:-5px; right:-5px; min-width:19px; height:19px; padding:0 4px; box-sizing:border-box;
  border-radius:100px; background:var(--gold); color:#1a1406; font:700 11px/19px var(--sans); text-align:center; display:none; }
.fsyz-quote-count.is-on, .fsyz-cart-count.is-on, .fsyz-wish-count.is-on{ display:block; }
.fsyz-burger{ display:none; width:44px; height:44px; align-items:center; justify-content:center; border:1px solid var(--line);
  border-radius:12px; background:transparent; color:var(--ink); cursor:pointer; }
.fsyz-burger .fsyz-i{ width:22px; height:22px; }

/* solid state: inner pages always; home when scrolled */
.fsyz-inner .fsyz-headwrap, .fsyz-home .fsyz-headwrap.is-scrolled{ background:rgba(251,250,246,.94); backdrop-filter:blur(10px); box-shadow:0 6px 26px -18px rgba(14,15,19,.6); }
.fsyz-inner .fsyz-head, .fsyz-home .fsyz-headwrap.is-scrolled .fsyz-head{ border-bottom:1px solid var(--line); }

/* transparent-over-hero: home, not scrolled */
.fsyz-home .fsyz-headwrap:not(.is-scrolled){ background:transparent; }
.fsyz-home .fsyz-headwrap:not(.is-scrolled) .fsyz-topbar{ background:rgba(255,255,255,.05); }
.fsyz-home .fsyz-headwrap:not(.is-scrolled) .fsyz-menu a{ color:rgba(246,243,236,.9); }
.fsyz-home .fsyz-headwrap:not(.is-scrolled) .fsyz-menu a:hover{ background:rgba(246,243,236,.12); color:#fff; }
.fsyz-home .fsyz-headwrap:not(.is-scrolled) .fsyz-act{ color:var(--cream); border-color:rgba(246,243,236,.28); }
.fsyz-home .fsyz-headwrap:not(.is-scrolled) .fsyz-burger{ color:var(--cream); border-color:rgba(246,243,236,.28); }

/* push inner-page content clear of the fixed header */
.fsyz-inner #main-container{ padding-top:var(--wrap-h); }

/* mobile drawer */
.fsyz-drawer[hidden]{ display:none; }
.fsyz-drawer{ position:fixed; inset:0; z-index:200; }
.fsyz-drawer-scrim{ position:absolute; inset:0; background:rgba(10,11,15,.55); }
.fsyz-drawer-panel{ position:absolute; top:0; right:0; height:100%; width:min(86vw,340px); background:var(--paper);
  padding:78px 24px 30px; display:flex; flex-direction:column; box-shadow:-20px 0 60px -20px rgba(0,0,0,.5);
  transform:translateX(100%); animation:fsyzDrawerIn .28s ease forwards; overflow-y:auto; }
@keyframes fsyzDrawerIn{ to{ transform:translateX(0); } }
.fsyz-drawer-close{ position:absolute; top:18px; right:18px; width:44px; height:44px; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--ink); cursor:pointer; display:flex; align-items:center; justify-content:center; }
.fsyz-drawer-menu{ list-style:none; margin:0 0 8px; padding:0; }
.fsyz-drawer-menu a{ display:block; padding:15px 6px; border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink); font:600 19px/1 var(--serif); }
.fsyz-drawer .fsyz-btn-gold{ margin-top:16px; justify-content:center; }
.fsyz-drawer-meta{ margin-top:14px; color:var(--muted); font:500 12px/1.5 var(--sans); letter-spacing:.03em; }

/* footer */
.fsyz-foot{ background:var(--ink); color:var(--cream); }
.fsyz-foot-inner{ max-width:var(--maxw); margin:0 auto; padding:70px 24px 44px; display:grid; grid-template-columns:1.7fr 1fr 1fr 1.2fr; gap:40px; }
.fsyz-foot-logo{ height:42px; width:auto; }
.fsyz-foot-brand p{ color:rgba(246,243,236,.7); line-height:1.6; margin:16px 0 20px; max-width:40ch; font-size:14.5px; }
.fsyz-foot-brand strong{ color:var(--gold-2); }
.fsyz-foot-col h4{ font:600 12px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin:0 0 16px; }
.fsyz-foot-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.fsyz-foot-col a{ color:rgba(246,243,236,.82); text-decoration:none; font-size:14.5px; }
.fsyz-foot-col a:hover{ color:var(--gold-2); }
.fsyz-foot-contact li{ color:rgba(246,243,236,.7); font-size:14px; }
.fsyz-foot-bar{ max-width:var(--maxw); margin:0 auto; padding:20px 24px; display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.08); color:rgba(246,243,236,.5); font-size:12.5px; }

/* ============================================================
   PRODUCT: two buttons (buy + quote), trust row
   ============================================================ */
.woocommerce div.product form.cart{ margin-bottom:14px; display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; }
/* quantity: pill border on the wrapper; let Blocksy own the +/- arrows (keep its clearance padding) */
.woocommerce div.product form.cart .quantity{ border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; --quantity-height:52px; }
.woocommerce div.product form.cart .quantity input.qty{ border:0 !important; background:transparent; font:600 15px var(--sans) !important; }
.woocommerce div.product form.cart .quantity .ct-increase,
.woocommerce div.product form.cart .quantity .ct-decrease{ color:var(--ink) !important; }
.woocommerce div.product form.cart .single_add_to_cart_button{
  background:linear-gradient(135deg,var(--gold),var(--gold-2)) !important; color:#1a1406 !important; border:0 !important;
  border-radius:12px !important; padding:15px 26px !important; font:700 15px var(--sans) !important; letter-spacing:0 !important;
  box-shadow:0 12px 30px -12px rgba(200,162,75,.6); transition:transform .2s; text-transform:none !important; }
.woocommerce div.product form.cart .single_add_to_cart_button:hover{ transform:translateY(-2px); }
.fsyz-buybox-extra{ margin-top:6px; }
.fsyz-quote-btn.button{ display:flex; align-items:center; gap:14px; width:100%; box-sizing:border-box; justify-content:flex-start;
  position:relative; overflow:hidden; text-align:left; text-decoration:none; text-transform:none !important;
  background:var(--gold-soft) !important; color:var(--ink) !important; border:1.5px solid var(--gold) !important;
  border-radius:14px !important; padding:12px 18px !important; font:600 15px var(--sans) !important;
  transition:background .25s, color .25s, transform .25s, box-shadow .25s; }
.fsyz-quote-btn.button::before{ content:""; position:absolute; top:0; left:-130%; width:60%; height:100%;
  background:linear-gradient(100deg,transparent,rgba(200,162,75,.28),transparent); transform:skewX(-18deg); transition:left .6s ease; }
.fsyz-quote-btn.button:hover{ background:var(--ink) !important; color:var(--cream) !important; transform:translateY(-2px);
  box-shadow:0 16px 34px -16px rgba(14,15,19,.55); }
.fsyz-quote-btn.button:hover::before{ left:150%; }
.fsyz-quote-ic{ flex:0 0 auto; width:40px; height:40px; border-radius:11px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#1a1406; box-shadow:0 6px 14px -6px rgba(200,162,75,.7); }
.fsyz-quote-ic .fsyz-i{ width:20px; height:20px; }
.fsyz-quote-txt{ display:flex; flex-direction:column; align-items:flex-start; line-height:1.22; }
.fsyz-quote-txt strong{ font:700 15px var(--sans); }
.fsyz-quote-txt small{ font:500 12px var(--sans); color:var(--muted); }
.fsyz-quote-btn.button:hover .fsyz-quote-txt small{ color:rgba(246,243,236,.72); }
.fsyz-quote-arrow{ margin-left:auto; flex:0 0 auto; color:var(--gold); font-weight:700; transition:transform .25s, color .25s; }
.fsyz-quote-btn.button:hover .fsyz-quote-arrow{ transform:translateX(4px); color:var(--gold-2); }
/* per-item customisation + artwork upload (single product) */
.fsyz-customise{ margin:14px 0 6px; }
.fsyz-customise-toggle{ display:inline-flex; align-items:center; gap:10px; cursor:pointer; user-select:none;
  font:600 14.5px var(--sans); color:var(--ink); }
.fsyz-customise-toggle input{ width:18px; height:18px; accent-color:var(--gold); cursor:pointer; }
.fsyz-customise-toggle .fsyz-i{ width:18px; height:18px; color:var(--gold); }
.fsyz-customise-fields{ margin-top:12px; padding:16px; border:1.5px dashed var(--gold); border-radius:12px;
  background:var(--gold-soft); display:flex; flex-direction:column; gap:12px; }
.fsyz-customise-file{ display:flex; flex-direction:column; gap:7px; font:600 13px var(--sans); color:var(--ink); }
.fsyz-customise-file small{ color:var(--muted); font-weight:500; }
.fsyz-customise-file input[type=file]{ font:500 13px var(--sans); color:var(--text); }
.fsyz-customise-note{ width:100%; box-sizing:border-box; padding:10px 12px; border:1px solid var(--line);
  border-radius:10px; font:500 14px var(--sans); resize:vertical; }
.fsyz-customise-note:focus{ outline:none; border-color:var(--gold); }
.fsyz-customise-moq{ margin:0; padding:9px 12px; border-radius:9px; background:rgba(200,162,75,.18);
  color:#6b551d; font:600 12.5px/1.4 var(--sans); }
.fsyz-customise-moq strong{ color:var(--ink); }
.fsyz-logo-field input[type=file]{ margin-top:6px; font:500 13px var(--sans); }

.fsyz-trust{ list-style:none; margin:18px 0 0; padding:16px 0 0; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:11px; }
.fsyz-trust li{ display:flex; align-items:center; gap:10px; color:var(--muted); font:500 13.5px var(--sans); }
.fsyz-trust .fsyz-i{ width:18px; height:18px; color:var(--gold); flex:0 0 auto; }
.fsyz-moq{ font:500 14px var(--sans); color:var(--muted); margin:14px 0 0; }
.fsyz-from{ font:600 12px var(--sans); color:var(--muted); text-transform:uppercase; letter-spacing:.08em; margin-right:2px; }

/* shop loop: two buttons */
.fsyz-loop-actions{ display:flex; gap:8px; margin-top:10px; }
.fsyz-loop-actions .button{ flex:1; text-align:center; border-radius:10px !important; padding:11px 8px !important;
  font:700 13px var(--sans) !important; text-decoration:none; transition:all .2s; text-transform:none !important; margin:0 !important; }
.fsyz-loop-cart{ background:var(--ink) !important; color:var(--cream) !important; border:0 !important; }
.fsyz-loop-cart:hover{ background:var(--ink-2) !important; }
.fsyz-loop-quote{ display:inline-flex; align-items:center; justify-content:center; gap:6px; position:relative; overflow:hidden;
  background:var(--gold-soft) !important; color:var(--ink) !important; border:1.5px solid var(--gold) !important; }
.fsyz-loop-quote .fsyz-i{ width:15px; height:15px; color:var(--gold); transition:color .2s; }
.fsyz-loop-quote:hover{ background:linear-gradient(135deg,var(--gold),var(--gold-2)) !important; color:#1a1406 !important; border-color:var(--gold) !important; box-shadow:0 10px 22px -12px rgba(200,162,75,.7); }
.fsyz-loop-quote:hover .fsyz-i{ color:#1a1406; }
.woocommerce a.added_to_cart{ display:block; text-align:center; margin-top:6px; font:600 12px var(--sans); color:var(--gold); text-decoration:none; }

/* wishlist */
.woocommerce ul.products li.product{ position:relative; }
.fsyz-wish-heart{ position:absolute; top:12px; right:12px; z-index:3; width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.92);
  display:flex; align-items:center; justify-content:center; color:var(--muted); box-shadow:0 4px 12px -4px rgba(0,0,0,.25); transition:color .2s, transform .2s; }
.fsyz-wish-heart .fsyz-i{ width:19px; height:19px; }
.fsyz-wish-heart:hover{ color:#e0455e; transform:scale(1.08); }
.fsyz-wish-heart.is-active{ color:#e0455e; }
.fsyz-wish-heart.is-active .fsyz-i{ fill:#e0455e; }
.fsyz-pdp-wish{ display:inline-flex; align-items:center; gap:8px; margin-top:14px; color:var(--muted); font:600 13.5px var(--sans); text-decoration:none; cursor:pointer; transition:color .2s; }
.fsyz-pdp-wish .fsyz-i{ width:18px; height:18px; }
.fsyz-pdp-wish:hover, .fsyz-pdp-wish.is-active{ color:#e0455e; }
.fsyz-pdp-wish.is-active .fsyz-i{ fill:#e0455e; }
.fsyz-wishlist-wrap{ max-width:var(--maxw); margin:0 auto; }
.fsyz-wish-card .fsyz-prod-media, .fsyz-wish-card h3 a{ text-decoration:none; color:inherit; }
.fsyz-wish-actions{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; }
.fsyz-wish-actions .fsyz-loop-quote{ padding:9px 16px !important; }
.fsyz-wish-remove{ color:var(--muted); font:600 13px var(--sans); text-decoration:none; cursor:pointer; }
.fsyz-wish-remove:hover{ color:#b3261e; }

/* ============================================================
   Occasions — hub + landing
   ============================================================ */
.fsyz-occ-hub{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.fsyz-occ-card{ position:relative; border-radius:var(--r); overflow:hidden; text-decoration:none; background:var(--ink-2); min-height:260px; display:flex; align-items:flex-end; box-shadow:var(--shadow); transition:transform .4s ease; }
.fsyz-occ-media{ position:absolute; inset:0; background-size:cover; background-position:center; background-color:var(--ink-3); transition:transform .6s ease; }
.fsyz-occ-card::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(10,11,15,.92) 12%,rgba(10,11,15,.3) 60%,transparent); }
.fsyz-occ-card:hover{ transform:translateY(-6px); }
.fsyz-occ-card:hover .fsyz-occ-media{ transform:scale(1.06); }
.fsyz-occ-body{ position:relative; z-index:2; padding:24px; }
.fsyz-occ-body h3{ margin:0 0 6px; font:600 1.35rem var(--serif); color:var(--cream); text-shadow:0 2px 14px rgba(0,0,0,.5); }
.fsyz-occ-count{ color:var(--gold-2); font:600 13px var(--sans); }
.fsyz-hide-title .hero-section{ display:none; }
.fsyz-occ-landing{ max-width:var(--maxw); margin:0 auto; }
.fsyz-occ-banner{ background:radial-gradient(120% 130% at 80% -20%, #23262f, var(--ink)); color:var(--cream); border-radius:var(--r); padding:52px 40px; margin-bottom:36px; text-align:center; }
.fsyz-occ-banner h1{ font:600 clamp(2rem,4vw,3rem) var(--serif); color:var(--cream); margin:6px 0 12px; }
.fsyz-occ-tag{ color:rgba(246,243,236,.78); font-size:1.05rem; max-width:56ch; margin:0 auto 22px; line-height:1.6; }
.fsyz-occ-cta{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
@media (max-width:900px){ .fsyz-occ-hub{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .fsyz-occ-hub{ grid-template-columns:1fr; } .fsyz-occ-banner{ padding:36px 22px; } }

/* ============================================================
   About page
   ============================================================ */
.fsyz-about-hero{ background:radial-gradient(120% 90% at 80% -10%, #23262f, var(--ink) 55%); color:var(--cream); padding:76px 24px 90px; }
.fsyz-about-hero-inner{ max-width:var(--maxw); margin:0 auto; }
.fsyz-about-title{ font:600 clamp(2.4rem,6vw,4.4rem)/1.06 var(--serif); color:var(--cream); margin:14px 0 20px; max-width:16ch; letter-spacing:-.01em; }
.fsyz-about-title em{ font-style:italic; color:var(--gold-2); }
.fsyz-about-lead{ font-size:clamp(1.05rem,1.6vw,1.28rem); line-height:1.65; color:rgba(246,243,236,.8); max-width:60ch; }
.fsyz-about-story-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:48px; align-items:start; }
.fsyz-about-story-grid h2{ font:600 clamp(1.7rem,3vw,2.6rem) var(--serif); color:var(--ink); margin:0; }
.fsyz-about-story-body p{ color:var(--text); line-height:1.75; font-size:1.05rem; margin:0 0 18px; }
.fsyz-about-story-body p:last-child{ margin-bottom:0; }
.fsyz-about-values{ background:var(--cream); max-width:none; }
.fsyz-about-values .fsyz-sec-head, .fsyz-about-vgrid{ max-width:var(--maxw); margin-left:auto; margin-right:auto; }
.fsyz-about-vgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.fsyz-about-vcard{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:28px; }
.fsyz-about-vcard h3{ font:600 1.2rem var(--serif); color:var(--ink); margin:0 0 10px; }
.fsyz-about-vcard p{ color:var(--muted); line-height:1.6; margin:0; font-size:14.5px; }
.fsyz-cta-center{ justify-content:center; }
@media (max-width:900px){ .fsyz-about-story-grid{ grid-template-columns:1fr; gap:24px; } .fsyz-about-vgrid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .fsyz-about-vgrid{ grid-template-columns:1fr; } }

/* ============================================================
   REVIEWS section
   ============================================================ */
.fsyz-reviews{ background:var(--cream); max-width:none; }
.fsyz-reviews>.fsyz-sec-head, .fsyz-reviews-agg, .fsyz-reviews-grid{ max-width:var(--maxw); margin-left:auto; margin-right:auto; }
.fsyz-stars{ color:var(--gold); letter-spacing:2px; }
.fsyz-reviews-agg{ display:flex; align-items:center; gap:14px; margin-bottom:34px; flex-wrap:wrap; }
.fsyz-reviews-agg .fsyz-stars{ font-size:20px; }
.fsyz-reviews-agg strong{ font:600 20px var(--serif); color:var(--ink); }
.fsyz-reviews-agg span{ color:var(--muted); font-size:14px; }
.fsyz-reviews-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.fsyz-review{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:28px; display:flex; flex-direction:column; gap:14px; box-shadow:var(--shadow); }
.fsyz-review .fsyz-stars{ font-size:15px; }
.fsyz-review-quote{ font:500 16px/1.6 var(--sans); color:var(--text); margin:0; }
.fsyz-review-by{ display:flex; align-items:center; gap:12px; margin-top:auto; }
.fsyz-review-av{ width:44px; height:44px; border-radius:50%; background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#1a1406; font:700 15px var(--sans); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.fsyz-review-meta strong{ display:block; font:600 15px var(--sans); color:var(--ink); }
.fsyz-review-meta span{ color:var(--muted); font-size:13px; }

/* product-page reviews block */
.fsyz-pdp-reviews{ max-width:var(--maxw); margin:24px auto 0; padding:44px 0 8px; border-top:1px solid var(--line); }
.fsyz-pdp-reviews-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:26px; flex-wrap:wrap; }
.fsyz-pdp-reviews-head h2{ font:600 clamp(1.4rem,3vw,2rem) var(--serif); color:var(--ink); margin:6px 0 0; }
.fsyz-pdp-reviews .fsyz-reviews-agg{ margin:0; }

/* ============================================================
   /request-a-quote/ page
   ============================================================ */
.fsyz-quote-wrap{ max-width:var(--maxw); margin:0 auto; }
.fsyz-quote-banner{ display:flex; gap:16px; align-items:center; background:var(--ink); color:var(--cream); border-radius:var(--r); padding:22px 26px; margin-bottom:28px; }
.fsyz-quote-banner .fsyz-i{ width:34px; height:34px; color:var(--gold); flex:0 0 auto; }
.fsyz-quote-banner strong{ display:block; font:600 20px var(--serif); }
.fsyz-quote-banner span{ color:rgba(246,243,236,.72); font-size:14px; }
.fsyz-quote-grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:28px; align-items:start; }
.fsyz-quote-row{ display:grid; grid-template-columns:64px 1fr auto auto; gap:16px; align-items:center; padding:16px 0; border-bottom:1px solid var(--line); }
.fsyz-quote-thumb img{ width:64px; height:64px; object-fit:cover; border-radius:10px; display:block; }
.fsyz-quote-info a{ font:600 15px var(--sans); color:var(--ink); text-decoration:none; display:block; }
.fsyz-quote-from{ color:var(--muted); font-size:13px; }
.fsyz-quote-qty{ display:flex; flex-direction:column; gap:4px; font:600 11px var(--sans); text-transform:uppercase; color:var(--muted); letter-spacing:.05em; }
.fsyz-quote-qty input{ width:66px; padding:8px; border:1px solid var(--line); border-radius:8px; font:500 14px var(--sans); }
.fsyz-quote-remove{ background:none; border:0; color:var(--muted); cursor:pointer; padding:8px; }
.fsyz-quote-remove:hover{ color:#b3261e; }
.fsyz-quote-remove .fsyz-i{ width:18px; height:18px; }
.fsyz-quote-update{ margin-top:16px; background:none; border:1px solid var(--line); border-radius:10px; padding:10px 18px; font:600 13px var(--sans); color:var(--ink); cursor:pointer; }
.fsyz-quote-update:hover{ border-color:var(--gold); color:var(--gold); }
.fsyz-quote-form-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:26px; box-shadow:var(--shadow); }
.fsyz-quote-form-card h3{ margin:0 0 4px; font:600 20px var(--serif); color:var(--ink); }
.fsyz-quote-sub{ color:var(--muted); font-size:13px; margin:0 0 18px; }
.fsyz-quote-empty{ text-align:center; padding:50px 20px; }
.fsyz-quote-empty p{ color:var(--muted); font-size:17px; margin:0 0 18px; }
.fsyz-quote-empty-cta{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-bottom:14px; }
.fsyz-quote-empty-note{ font-size:13px !important; }
.fsyz-quote-empty-note a{ color:var(--gold); }
.fsyz-quote-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:28px; }
.fsyz-quote-step{ display:flex; gap:12px; align-items:flex-start; background:#fff; border:1px solid var(--line); border-radius:12px; padding:16px 18px; }
.fsyz-quote-step span{ width:26px; height:26px; border-radius:50%; background:var(--gold-soft); color:var(--gold); font:700 13px var(--sans); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.fsyz-quote-step strong{ display:block; font:600 14px var(--sans); color:var(--ink); }
.fsyz-quote-step p{ margin:2px 0 0; color:var(--muted); font-size:12.5px; line-height:1.4; }
@media (max-width:700px){ .fsyz-quote-steps{ grid-template-columns:1fr; } }
.fsyz-privacy .fsyz-i{ width:15px; height:15px; color:var(--gold); vertical-align:-3px; margin-right:4px; }
.fsyz-thanks .fsyz-i{ width:18px; height:18px; vertical-align:-4px; margin-right:4px; }

/* ============================================================
   Custom Box builder  [fsyz_box_builder]
   ============================================================ */
.fsyz-box{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1fr 340px; gap:32px; align-items:start; }
.fsyz-box-step{ margin-bottom:36px; }
.fsyz-box-step-h{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.fsyz-box-stepnum{ width:30px; height:30px; border-radius:50%; background:var(--ink); color:var(--cream); font:700 14px var(--sans); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.fsyz-box-step-h h3{ font:600 21px var(--serif); color:var(--ink); margin:0; }
.fsyz-box-brackets{ display:flex; flex-wrap:wrap; gap:10px; }
.fsyz-box-bracket{ padding:14px 22px; border:1.5px solid var(--line); border-radius:12px; background:#fff; font:700 14px var(--sans); color:var(--ink); cursor:pointer; transition:all .2s; }
.fsyz-box-bracket:hover{ border-color:var(--gold); transform:translateY(-1px); }
.fsyz-box-bracket.is-active{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
.fsyz-box-cats{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.fsyz-box-cat{ padding:8px 15px; border-radius:100px; border:1px solid transparent; background:var(--cream); font:600 13px var(--sans); color:var(--text); cursor:pointer; transition:all .2s; }
.fsyz-box-cat:hover{ border-color:var(--gold); }
.fsyz-box-cat.is-active{ background:var(--gold); color:#1a1406; }
.fsyz-box-hint, .fsyz-box-none{ color:var(--muted); font-size:15px; padding:26px; background:var(--cream); border-radius:12px; text-align:center; }
.fsyz-box-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.fsyz-box-card{ background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; display:flex; flex-direction:column; }
.fsyz-box-card-media{ aspect-ratio:1/1; background:var(--cream); overflow:hidden; }
.fsyz-box-card-media img{ width:100%; height:100%; object-fit:cover; }
.fsyz-box-card-body{ padding:12px 12px 6px; flex:1; }
.fsyz-box-card-body h4{ font:600 14px var(--sans); color:var(--ink); margin:0 0 4px; line-height:1.3; }
.fsyz-box-card-price{ font:600 13px var(--sans); color:var(--muted); }
.fsyz-box-add{ margin:0 12px 12px; padding:10px; border:0; border-radius:9px; background:var(--ink); color:var(--cream); font:700 13px var(--sans); cursor:pointer; transition:background .2s, color .2s; }
.fsyz-box-add:hover, .fsyz-box-add.is-added{ background:var(--gold); color:#1a1406; }
.fsyz-box-summary{ position:sticky; top:130px; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:22px; box-shadow:var(--shadow); }
.fsyz-box-summary h3{ font:600 18px var(--serif); color:var(--ink); margin:0 0 12px; }
.fsyz-box-meter{ margin-bottom:16px; }
.fsyz-box-meter-track{ height:8px; border-radius:100px; background:var(--cream); overflow:hidden; }
.fsyz-box-meter-fill{ display:block; height:100%; width:0; background:linear-gradient(90deg,var(--gold),var(--gold-2)); border-radius:100px; transition:width .3s ease, background .3s; }
.fsyz-box-meter.is-near .fsyz-box-meter-fill{ background:linear-gradient(90deg,#d99a1f,#f0c860); }
.fsyz-box-meter.is-over .fsyz-box-meter-fill{ background:linear-gradient(90deg,#c0392b,#e05a48); }
.fsyz-box-meter-row{ display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:8px; font:600 12px var(--sans); }
.fsyz-box-meter-row [data-box-used]{ color:var(--ink); white-space:nowrap; }
.fsyz-box-guard{ color:var(--muted); text-align:right; }
.fsyz-box-meter.is-over .fsyz-box-guard{ color:#c0392b; }
.fsyz-box-items{ list-style:none; margin:0 0 14px; padding:0; display:flex; flex-direction:column; gap:10px; max-height:320px; overflow-y:auto; }
.fsyz-box-empty{ color:var(--muted); font-size:14px; padding:14px 0; text-align:center; }
.fsyz-box-li{ display:grid; grid-template-columns:1fr auto auto auto; gap:8px; align-items:center; font-size:13px; }
.fsyz-box-li-name{ color:var(--ink); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fsyz-box-li-q{ display:inline-flex; align-items:center; gap:6px; }
.fsyz-box-li-q button{ width:22px; height:22px; border:1px solid var(--line); border-radius:6px; background:#fff; cursor:pointer; font-weight:700; line-height:1; }
.fsyz-box-li-q b{ min-width:16px; text-align:center; font-weight:700; }
.fsyz-box-li-p{ font-weight:700; color:var(--ink); }
.fsyz-box-li-x{ border:0; background:none; color:var(--muted); cursor:pointer; font-size:13px; }
.fsyz-box-li-x:hover{ color:#b3261e; }
.fsyz-box-total{ display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:16px; }
.fsyz-box-total strong{ font:700 20px var(--sans); color:var(--ink); }
.fsyz-box-tocart.fsyz-btn{ width:100%; justify-content:center; margin-bottom:10px; }
.fsyz-box-toquote{ width:100%; padding:14px; border:1.5px solid var(--ink); border-radius:100px; background:#fff; color:var(--ink); font:700 14px var(--sans); cursor:pointer; transition:all .2s; }
.fsyz-box-toquote:hover:not(:disabled){ background:var(--ink); color:var(--cream); }
.fsyz-box-tocart:disabled, .fsyz-box-toquote:disabled{ opacity:.45; cursor:not-allowed; box-shadow:none; transform:none; }
.fsyz-box-note{ margin:12px 0 0; font-size:12px; color:var(--muted); text-align:center; line-height:1.5; }

/* ============================================================
   Add-to-quote toast
   ============================================================ */
.fsyz-toast{ position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px); z-index:400;
  background:var(--ink); color:var(--cream); padding:14px 22px; border-radius:100px; box-shadow:var(--shadow);
  font:600 14px var(--sans); display:flex; align-items:center; gap:10px; opacity:0; pointer-events:none; transition:opacity .3s, transform .3s; max-width:92vw; }
.fsyz-toast.is-on{ opacity:1; transform:translateX(-50%) translateY(0); }
.fsyz-toast .fsyz-i{ width:18px; height:18px; color:var(--gold); flex:0 0 auto; }
.fsyz-toast strong{ color:var(--gold-2); }

/* ============================================================
   Header/footer/product/reviews/quote — responsive
   ============================================================ */
@media (max-width:920px){
  .fsyz-nav, .fsyz-cta-pill{ display:none; }
  .fsyz-burger{ display:inline-flex; }
  .fsyz-foot-inner{ grid-template-columns:1fr 1fr; gap:30px; }
  .fsyz-reviews-grid{ grid-template-columns:repeat(2,1fr); }
  .fsyz-quote-grid{ grid-template-columns:1fr; }
  .fsyz-box{ grid-template-columns:1fr; }
  .fsyz-box-summary{ position:static; }
  .fsyz-box-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px){
  :root{ --head-h:62px; --wrap-h:92px; }
  .fsyz-topbar-inner{ font-size:10.5px; gap:8px; padding:8px 14px; }
  .fsyz-tb-item:not(.fsyz-tb-em), .fsyz-tb-dot{ display:none; }
  .fsyz-head-inner{ padding:0 16px; gap:12px; }
  .fsyz-brand-tag{ display:none; }
  .fsyz-logo{ height:34px; }
  .fsyz-act{ width:40px; height:40px; }
  .fsyz-foot-inner{ grid-template-columns:1fr; }
  .fsyz-reviews-grid{ grid-template-columns:1fr; }
  .fsyz-loop-actions{ flex-direction:column; }
  .fsyz-quote-row{ grid-template-columns:52px 1fr auto; grid-auto-rows:auto; }
  .fsyz-quote-remove{ grid-column:3; grid-row:1; }
}

/* ============================================================
   4syz — VFX v2 (motion + graphics layer). Reduced-motion safe.
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  .fsyz-particles,.fsyz-hero-orb,.fsyz-float,.fsyz-hero::after,
  .fsyz-branding::before,.fsyz-cta-band::before,.fsyz-stats::before{ display:none !important; }
  .fsyz-curtain{ display:none !important; }
  .fsyz-marquee-track{ animation:none !important; }
}

/* film grain over the dark sections */
:root{ --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.fsyz-branding,.fsyz-cta-band,.fsyz-stats{ position:relative; overflow:hidden; }
.fsyz-hero::after,.fsyz-branding::before,.fsyz-cta-band::before,.fsyz-stats::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background-image:var(--grain); background-size:160px; opacity:.06; mix-blend-mode:overlay; }
.fsyz-branding-inner,.fsyz-cta-inner,.fsyz-stat{ position:relative; z-index:2; }

/* drifting hero orbs */
.fsyz-hero-orb{ position:absolute; z-index:0; border-radius:50%; filter:blur(70px); pointer-events:none;
  background:radial-gradient(circle,rgba(200,162,75,.28),transparent 65%); }
.fsyz-orb-1{ width:460px; height:460px; left:-140px; bottom:-180px; animation:fsyzdrift1 19s ease-in-out infinite; }
.fsyz-orb-2{ width:320px; height:320px; right:14%; top:6%;
  background:radial-gradient(circle,rgba(224,197,137,.20),transparent 65%); animation:fsyzdrift2 24s ease-in-out infinite; }
@keyframes fsyzdrift1{ 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(70px,-46px) scale(1.14)} }
@keyframes fsyzdrift2{ 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(-54px,54px) scale(.88)} }

/* floating gold specks */
.fsyz-particles{ position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; }
.fsyz-particles span{ position:absolute; bottom:-12px; border-radius:50%; background:var(--gold-2);
  opacity:0; animation-name:fsyzrise; animation-timing-function:linear; animation-iteration-count:infinite; }
@keyframes fsyzrise{ 0%{transform:translateY(0) scale(1);opacity:0} 12%{opacity:.85} 88%{opacity:.45} 100%{transform:translateY(-94vh) scale(.35);opacity:0} }

/* hero cursor spotlight */
.fsyz-spotlight{ position:absolute; inset:0; z-index:1; pointer-events:none; opacity:0; transition:opacity .45s ease;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(200,162,75,.16),transparent 62%); }
@media (hover:hover) and (pointer:fine){ .fsyz-hero:hover .fsyz-spotlight{ opacity:1; } }

/* split-word hero title */
.fsyz-line-mask{ display:inline-block; overflow:hidden; vertical-align:top; }
.fsyz-line-inner{ display:inline-block; }

/* gold button sheen */
.fsyz-btn{ will-change:transform; }
.fsyz-btn-gold{ position:relative; overflow:hidden; }
.fsyz-btn-gold::before{ content:""; position:absolute; top:0; left:-130%; width:70%; height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent); transform:skewX(-18deg); transition:left .6s ease; }
.fsyz-btn-gold:hover::before{ left:140%; }

/* card shine sweep + deeper hover */
.fsyz-cat-card:hover{ transform:translateY(-8px); box-shadow:0 34px 64px -26px rgba(14,15,19,.55); }
.fsyz-prod-card:hover{ box-shadow:0 34px 64px -28px rgba(14,15,19,.34); }
.fsyz-shine{ position:absolute; inset:0; z-index:4; pointer-events:none; overflow:hidden; border-radius:inherit; }
.fsyz-shine::after{ content:""; position:absolute; top:-70%; left:-90%; width:55%; height:240%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent); transform:skewX(-18deg); transition:left .75s ease; }
.fsyz-cat-card:hover .fsyz-shine::after,.fsyz-prod-card:hover .fsyz-shine::after{ left:170%; }

/* how-it-works connector line-draw */
.fsyz-how .fsyz-how-wrap{ max-width:var(--maxw); margin:0 auto; position:relative; }
.fsyz-how-line{ position:absolute; top:30px; left:0; width:100%; height:36px; z-index:0; pointer-events:none; overflow:visible; }
.fsyz-how-line path{ stroke:var(--gold); stroke-width:2; fill:none; opacity:.6; }
.fsyz-steps{ position:relative; z-index:1; }
@media (max-width:820px){ .fsyz-how-line{ display:none; } }

/* floating decorative marks */
.fsyz-float{ position:absolute; color:var(--gold); opacity:.22; font-size:22px; pointer-events:none; z-index:1;
  animation:fsyzfloat 7s ease-in-out infinite; }
.fsyz-float-1{ left:7%; top:26%; }
.fsyz-float-2{ right:9%; bottom:24%; font-size:30px; animation-duration:9s; }
@keyframes fsyzfloat{ 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-16px) rotate(12deg)} }

/* scroll progress bar */
.fsyz-progress{ position:fixed; top:0; left:0; height:3px; width:0; z-index:9999;
  background:linear-gradient(90deg,var(--gold),var(--gold-2)); box-shadow:0 0 12px rgba(200,162,75,.55); transition:width .1s linear; }
/* mobile: pin to the bottom edge (top is under the notch/URL bar + fixed header);
   sticky quote CTA sits at bottom:12px so the 4px bar clears it. */
@media (max-width:600px){
  .fsyz-progress{ top:auto; bottom:0; height:4px; box-shadow:0 -1px 12px rgba(200,162,75,.6); }
}

/* page-transition curtain */
.fsyz-curtain{ position:fixed; inset:0; z-index:99999; pointer-events:none;
  background:linear-gradient(135deg,var(--ink),var(--ink-3)); transform:scaleY(0); transform-origin:bottom;
  display:flex; align-items:center; justify-content:center; }
.fsyz-curtain::after{ content:"\2726"; color:var(--gold); font-size:32px; opacity:0; }
.fsyz-curtain.is-cover{ transform:scaleY(1); transition:none; }
.fsyz-curtain.is-in{ transform:scaleY(1); transform-origin:bottom; transition:transform .4s cubic-bezier(.7,0,.3,1); }
.fsyz-curtain.is-in::after{ opacity:1; transition:opacity .3s ease; }
.fsyz-curtain.is-out{ transform:scaleY(0); transform-origin:top; transition:transform .55s cubic-bezier(.7,0,.3,1); }

/* marquee pause on hover */
.fsyz-marquee:hover .fsyz-marquee-track{ animation-play-state:paused; }

/* fly-to-quote dot + badge pulse */
.fsyz-fly{ position:fixed; z-index:99998; width:13px; height:13px; margin:-6px 0 0 -6px; border-radius:50%;
  background:linear-gradient(135deg,var(--gold),var(--gold-2)); box-shadow:0 0 10px rgba(200,162,75,.7); pointer-events:none; }
.fsyz-quote-count.fsyz-pulse{ animation:fsyzpulse .45s ease; }
@keyframes fsyzpulse{ 0%{transform:scale(1)} 40%{transform:scale(1.55)} 100%{transform:scale(1)} }
