/*
Theme Name: FrozenArt
Theme URI: https://frozenart.example
Description: A cinematic dark storefront for hand-poured resin wall art. Child theme of Storefront, built around the FrozenArt crown identity — magenta bleeding through violet and indigo into glacial teal.
Author: FrozenArt Studio
Author URI: https://frozenart.example
Template: storefront
Version: 1.16.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: frozenart
Tags: e-commerce, dark, one-column, custom-logo, custom-menu, featured-images
*/

/* ==========================================================================
   1. TOKENS
   ========================================================================== */
:root{
  --frz-navy-950:#05071a;
  --frz-navy-900:#0a0e28;
  --frz-navy-800:#111739;
  --frz-navy-700:#1a2151;
  --frz-magenta:#e8177f;
  --frz-magenta-soft:#ff5ba6;
  --frz-violet:#6d3fd6;
  --frz-indigo:#3d4bc4;
  --frz-teal:#2bd4c8;
  --frz-ice:#9beee5;
  --frz-frost:#f4f6ff;
  --frz-muted:#9aa3cf;
  --frz-muted-dim:#6d76a3;
  --frz-line:rgba(155,168,255,0.14);
  /* Placeholder / floating-label colour. Lightened brand indigo, chosen because
     it clears ~4.46:1 against BOTH the dark theme and a white field background.
     No single colour can do better against both, so a plugin that white-boxes a
     field can never make placeholder text invisible again. */
  --frz-placeholder:#6371c7;
  --frz-line-strong:rgba(155,168,255,0.28);

  --frz-crown:linear-gradient(120deg,#e8177f 0%,#6d3fd6 42%,#3d4bc4 68%,#2bd4c8 100%);
  --frz-crown-soft:linear-gradient(120deg,rgba(232,23,127,.22),rgba(109,63,214,.22) 42%,rgba(61,75,196,.22) 68%,rgba(43,212,200,.22) 100%);

  --frz-display:'Space Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;
  --frz-body:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --frz-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;

  --frz-ease:cubic-bezier(.16,.84,.32,1);
  --frz-ease-soft:cubic-bezier(.4,0,.2,1);
  --frz-radius:18px;
  --frz-facet:polygon(8% 0%,92% 0%,100% 22%,100% 82%,92% 100%,8% 100%,0% 82%,0% 22%);
  --frz-max:1240px;
}

/* ==========================================================================
   2. RESET & BASE — overriding Storefront's light defaults
   ========================================================================== */
body,
body.woocommerce,
.site,
#page{
  background-color:var(--frz-navy-950);
  color:var(--frz-frost);
  font-family:var(--frz-body);
  -webkit-font-smoothing:antialiased;
}
body{
  overflow-x:hidden;
  position:relative;
  line-height:1.55;
}
/* Ambient light wash — sits behind everything, never intercepts clicks */
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(700px 500px at 15% -5%,rgba(232,23,127,.10),transparent 60%),
    radial-gradient(800px 600px at 100% 10%,rgba(43,212,200,.08),transparent 60%),
    radial-gradient(600px 500px at 50% 100%,rgba(109,63,214,.10),transparent 60%);
}
#page{position:relative;z-index:1;}

h1,h2,h3,h4,h5,h6,
.site-title,
.woocommerce-loop-product__title,
.entry-title,
.product_title{
  font-family:var(--frz-display);
  font-weight:600;
  letter-spacing:-.01em;
  color:var(--frz-frost);
}
p,li,td,th,dd,dt{color:var(--frz-frost);}
a{color:var(--frz-ice);text-decoration:none;transition:color .25s var(--frz-ease-soft);}
a:hover{color:var(--frz-frost);}
::selection{background:var(--frz-magenta);color:#fff;}
:focus-visible{outline:2px solid var(--frz-teal);outline-offset:3px;}
img{max-width:100%;height:auto;}

.frz-mono{font-family:var(--frz-mono);}
.frz-wrap{max-width:var(--frz-max);margin:0 auto;padding:0 32px;}
.screen-reader-text{
  position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(1px,1px,1px,1px);white-space:nowrap;
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
}

/* Let the front page run full-bleed inside Storefront's container */
.home .col-full,
.frz-fullbleed .col-full{max-width:none;padding-left:0;padding-right:0;}
.col-full{max-width:var(--frz-max);}
#content.site-content{padding-top:0;}
.home #content.site-content{padding-top:0;}
body:not(.home) #content.site-content{padding-top:120px;}

/* ==========================================================================
   3. LOADER
   ========================================================================== */
#frz-loader{display:none;}
.frozenart-js #frz-loader{
  position:fixed;inset:0;z-index:9999;
  display:flex;
  background:var(--frz-navy-950);
  align-items:center;justify-content:center;
  transition:opacity .7s var(--frz-ease),visibility .7s var(--frz-ease);
  animation:frzLoaderFailsafe .01s linear forwards 4s;
}
/* Failsafe: if the load event never fires, CSS dismisses the loader anyway. */
@keyframes frzLoaderFailsafe{to{opacity:0;visibility:hidden;pointer-events:none;}}
#frz-loader img{
  width:120px;opacity:0;
  animation:frzLoaderIn 1.1s var(--frz-ease) forwards .15s;
  filter:drop-shadow(0 0 30px rgba(232,23,127,.35));
}
#frz-loader.frz-hide{opacity:0;visibility:hidden;pointer-events:none;}
@keyframes frzLoaderIn{
  0%{opacity:0;transform:scale(.7) rotate(-6deg);}
  60%{opacity:1;}
  100%{opacity:1;transform:scale(1) rotate(0);}
}

/* ==========================================================================
   4. HEADER / NAV
   ========================================================================== */
.site-header,
.woocommerce-active .site-header{
  position:fixed;top:0;left:0;right:0;z-index:500;
  background:transparent;
  padding:18px 0;
  margin:0;
  border-bottom:1px solid transparent;
  transition:background .4s var(--frz-ease-soft),border-color .4s var(--frz-ease-soft),padding .4s var(--frz-ease-soft);
}
.site-header.frz-scrolled{
  background:rgba(6,9,26,.78);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom-color:var(--frz-line);
  padding:12px 0;
}
.frz-nav{
  max-width:var(--frz-max);margin:0 auto;padding:0 32px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.frz-brand{display:flex;align-items:center;gap:10px;}
.frz-brand img{height:38px;width:auto;transition:transform .4s var(--frz-ease);}
.frz-brand:hover img{transform:rotate(-4deg) scale(1.05);}
.frz-brand-name{
  font-family:var(--frz-display);font-weight:700;font-size:19px;
  letter-spacing:-.01em;color:var(--frz-frost);
}
.frz-menu{display:flex;gap:34px;list-style:none;margin:0;padding:0;}
.frz-menu li{margin:0;}
.frz-menu a{
  font-size:14.5px;color:var(--frz-muted);position:relative;display:inline-block;
}
.frz-menu a::after{
  content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;
  background:var(--frz-crown);transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--frz-ease);
}
.frz-menu a:hover{color:var(--frz-frost);}
.frz-menu a:hover::after,
.frz-menu .current-menu-item > a::after{transform:scaleX(1);}
.frz-menu .current-menu-item > a{color:var(--frz-frost);}

.frz-nav-actions{display:flex;align-items:center;gap:14px;}
.frz-icon-btn{
  position:relative;width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;border:none;background:none;color:var(--frz-frost);
  cursor:pointer;transition:background .25s;padding:0;
}
.frz-icon-btn:hover{background:rgba(255,255,255,.06);color:var(--frz-frost);}
.frz-icon-btn svg{width:19px;height:19px;}
.frz-cart-count{
  position:absolute;top:-2px;right:-2px;
  background:var(--frz-crown);color:#fff;
  font-family:var(--frz-mono);font-size:10px;font-weight:700;
  min-width:16px;height:16px;padding:0 4px;border-radius:100px;
  display:flex;align-items:center;justify-content:center;
}
.frz-burger{display:none;}

/* Mobile drawer menu */
.frz-mobile-menu{
  position:fixed;inset:0;z-index:490;
  background:var(--frz-navy-950);
  display:flex;flex-direction:column;justify-content:center;
  padding:40px;
  transform:translateY(-100%);
  transition:transform .55s var(--frz-ease);
}
.frz-mobile-menu.frz-open{transform:translateY(0);}
.frz-mobile-menu ul{list-style:none;margin:0;padding:0;}
.frz-mobile-menu li{margin:0 0 8px;}
.frz-mobile-menu a{
  font-family:var(--frz-display);font-size:clamp(28px,7vw,40px);
  font-weight:600;color:var(--frz-frost);display:block;padding:8px 0;
}

/* ==========================================================================
   5. BUTTONS — overrides Storefront's button styling everywhere
   ========================================================================== */
.frz-btn,
button.button,
a.button,
input[type="submit"],
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--frz-body);font-size:14.5px;font-weight:600;
  padding:15px 26px;border-radius:100px;border:none;
  background:var(--frz-crown);color:#fff;
  text-shadow:none;box-shadow:0 10px 30px rgba(232,23,127,.28);
  transition:transform .4s var(--frz-ease),box-shadow .4s var(--frz-ease),background .3s;
  cursor:pointer;line-height:1.2;
}
.frz-btn:hover,
button.button:hover,
a.button:hover,
input[type="submit"]:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit:hover{
  background:var(--frz-crown);color:#fff;
  transform:translateY(-3px);
  box-shadow:0 16px 40px rgba(232,23,127,.4);
}
.frz-btn-ghost,
.woocommerce a.button.frz-btn-ghost{
  background:rgba(255,255,255,.02);
  border:1px solid var(--frz-line);
  color:var(--frz-frost);
  box-shadow:none;
}
.frz-btn-ghost:hover,
.woocommerce a.button.frz-btn-ghost:hover{
  background:rgba(255,255,255,.07);
  border-color:var(--frz-line-strong);
  box-shadow:none;
}
.frz-btn-block{width:100%;}
button:disabled,.button.disabled,.woocommerce button.button:disabled{
  opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important;
}

/* ==========================================================================
   6. FORM FIELDS
   ========================================================================== */
input[type="text"],input[type="email"],input[type="url"],input[type="password"],
input[type="search"],input[type="number"],input[type="tel"],input[type="date"],
textarea,select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.select2-container--default .select2-selection--single{
  background:rgba(6,9,26,.55);
  border:1px solid var(--frz-line);
  border-radius:12px;
  color:var(--frz-frost);
  padding:13px 16px;
  font-family:var(--frz-body);font-size:14.5px;
  box-shadow:none;
  transition:border-color .25s,background .25s;
}
input::placeholder,textarea::placeholder,
.woocommerce form .form-row input.input-text::placeholder,
.woocommerce form .form-row textarea::placeholder,
select:invalid{
  color:var(--frz-placeholder)!important;opacity:1;
}
input:focus,textarea:focus,select:focus{
  border-color:var(--frz-teal);
  background:rgba(6,9,26,.8);
  outline:2px solid rgba(43,212,200,.35);
  outline-offset:1px;
}
label,.woocommerce form .form-row label{color:var(--frz-muted);font-size:13.5px;}
.select2-dropdown{background:var(--frz-navy-800);border-color:var(--frz-line);color:var(--frz-frost);}
.select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--frz-violet);}
.select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--frz-frost);line-height:normal;}

/* ==========================================================================
   7. HERO
   ========================================================================== */
.frz-hero{
  min-height:100svh;
  display:flex;align-items:center;
  padding:140px 0 80px;
  overflow:hidden;position:relative;
}
.frz-hero-grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;
  position:relative;z-index:2;
}
.frz-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--frz-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--frz-ice);
  border:1px solid rgba(43,212,200,.3);
  background:rgba(43,212,200,.06);
  padding:6px 14px;border-radius:100px;margin-bottom:22px;
}
.frz-eyebrow::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:var(--frz-teal);box-shadow:0 0 10px var(--frz-teal);
}
.frz-hero h1{
  font-size:clamp(40px,6vw,68px);line-height:1.03;margin:0;
}
.frz-hero h1 em{
  font-style:normal;
  background:var(--frz-crown);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.frz-hero .frz-lead{
  margin-top:22px;max-width:460px;
  color:var(--frz-muted);font-size:17px;line-height:1.65;
}
.frz-hero-ctas{display:flex;gap:16px;margin-top:36px;flex-wrap:wrap;}
.frz-hero-stats{display:flex;gap:34px;margin-top:52px;flex-wrap:wrap;}
.frz-hero-stats b{display:block;font-family:var(--frz-display);font-size:22px;}
.frz-hero-stats span{font-size:12.5px;color:var(--frz-muted-dim);}

/* Staggered entrance */
.frozenart-js .frz-hero .frz-eyebrow{opacity:0;animation:frzFadeUp .8s var(--frz-ease) forwards .2s;}
.frozenart-js .frz-hero h1{opacity:0;animation:frzFadeUp .9s var(--frz-ease) forwards .35s;}
.frozenart-js .frz-hero .frz-lead{opacity:0;animation:frzFadeUp .9s var(--frz-ease) forwards .5s;}
.frozenart-js .frz-hero-ctas{opacity:0;animation:frzFadeUp .9s var(--frz-ease) forwards .65s;}
.frozenart-js .frz-hero-stats{opacity:0;animation:frzFadeUp .9s var(--frz-ease) forwards .8s;}
@keyframes frzFadeUp{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:translateY(0);}}

.frz-hero-art{position:relative;height:520px;display:flex;align-items:center;justify-content:center;}
/* Faceted crystal shards. SVG, not clip-path: the earlier flat hexagon read as
   a coffin silhouette rather than a gemstone. */
.frz-shard{
  position:absolute;
  overflow:visible;
  transition:transform .2s var(--frz-ease-soft);
  will-change:transform;
}
.frz-shard-1{
  width:150px;top:2%;left:8%;opacity:.92;
  filter:drop-shadow(0 18px 40px rgba(232,23,127,.35));
  animation:frzFloatA 8s ease-in-out infinite;
  transform:rotate(-8deg) translate(var(--frz-px,0px),var(--frz-py,0px));
}
.frz-shard-2{
  width:118px;bottom:2%;right:6%;opacity:.88;
  filter:drop-shadow(0 18px 40px rgba(43,212,200,.3));
  animation:frzFloatB 9s ease-in-out infinite;
  transform:rotate(7deg) translate(var(--frz-px,0px),var(--frz-py,0px));
}
.frz-shard-3{
  width:82px;top:40%;right:26%;opacity:.7;
  filter:drop-shadow(0 12px 30px rgba(155,238,229,.25));
  animation:frzFloatA 7s ease-in-out infinite reverse;
  transform:rotate(14deg) translate(var(--frz-px,0px),var(--frz-py,0px));
}
.frz-hero-logo{
  position:relative;z-index:3;width:300px;
  filter:drop-shadow(0 20px 60px rgba(232,23,127,.35));
  animation:frzFloatA 6s ease-in-out infinite;
}
@keyframes frzFloatA{
  0%,100%{translate:0 0;rotate:0deg;}
  50%{translate:0 -18px;rotate:3deg;}
}
@keyframes frzFloatB{
  0%,100%{translate:0 0;rotate:0deg;}
  50%{translate:0 16px;rotate:-4deg;}
}

/* --- About hero background image (About page only) -------------------------
   Sits behind the crystals and copy. The scrim is the theme's own navy at a
   variable opacity rather than plain black, so an uploaded photo tints into the
   palette instead of muddying it. */
.frz-hero-bg{
  position:absolute;inset:0;z-index:0;
  overflow:hidden;pointer-events:none;
}
.frz-hero-bg img{
  width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.04); /* hides blur bleed at the edges */
}
.frz-hero-bg__scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(5,7,26,.55) 0%,rgba(5,7,26,.25) 40%,var(--frz-navy-950) 100%),
    var(--frz-navy-950);
}
/* Fade the bottom edge into the page so there is no hard seam. */
.frz-hero-bg::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:160px;
  background:linear-gradient(180deg,transparent,var(--frz-navy-950));
}
.frz-about-hero{position:relative;isolation:isolate;}
.frz-about-hero__grid{position:relative;z-index:2;}
.frz-about-hero__art{position:relative;z-index:2;}

/* With a photo behind it, the headline needs a little lift off the image. */
.frz-hero-bg ~ .frz-wrap h1,
.frz-hero-bg ~ .frz-wrap .frz-lead{
  text-shadow:0 2px 24px rgba(3,4,14,.7);
}

@media (max-width:640px){
  .frz-hero-bg::after{height:110px;}
}

/* --- Floating hero product -------------------------------------------------
   The piece itself is the first impression; the logo steps back to a supporting
   mark so the two don't compete for the same focal point. */
.frz-hero-product{
  position:relative;z-index:4;
  display:block;width:min(330px,74%);
  text-decoration:none;
  animation:frzFloatA 7.5s ease-in-out infinite;
  transform:rotate(-3deg) translate(var(--frz-px,0px),var(--frz-py,0px));
  transition:filter .5s var(--frz-ease);
  filter:drop-shadow(0 26px 60px rgba(232,23,127,.32));
}
.frz-hero-product:hover{filter:drop-shadow(0 32px 70px rgba(43,212,200,.4));}

.frz-hero-product__frame{
  display:block;position:relative;
  aspect-ratio:1/1;
  clip-path:var(--frz-facet);
  background:var(--frz-crown);
  overflow:hidden;
}
.frz-hero-product__frame::after{
  /* Glass sheen — sells the resin surface rather than a flat photo. */
  content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,rgba(255,255,255,.28) 0%,rgba(255,255,255,0) 38%);
  pointer-events:none;
}
.frz-hero-product__frame img{
  width:100%;height:100%;object-fit:cover;display:block;
}

.frz-hero-product__meta{
  position:absolute;left:50%;bottom:-16px;z-index:5;
  transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:2px;
  background:rgba(6,9,26,.82);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid var(--frz-line-strong);
  border-radius:100px;
  padding:10px 22px;
  max-width:92%;
  box-shadow:0 12px 30px rgba(3,4,14,.5);
}
.frz-hero-product__name{
  font-family:var(--frz-display);font-size:13px;font-weight:600;
  color:var(--frz-frost);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
}
.frz-hero-product__price{
  font-family:var(--frz-mono);font-size:13.5px;color:var(--frz-ice);
}
.frz-hero-product__price del{color:var(--frz-muted-dim);font-size:11.5px;margin-right:5px;}
.frz-hero-product__price ins{text-decoration:none;color:var(--frz-ice);}

/* With a product present the logo becomes a corner mark, not the focal point. */
.frz-hero-logo--compact{
  position:absolute;top:0;left:0;z-index:5;
  width:132px;
  animation:frzFloatB 6.5s ease-in-out infinite;
}

@media (max-width:980px){
  .frz-hero-product{width:min(260px,68%);}
  .frz-hero-logo--compact{width:104px;top:-8px;}
}
@media (max-width:640px){
  .frz-hero-product{width:min(220px,64%);}
  .frz-hero-logo--compact{width:88px;}
  .frz-hero-product__meta{padding:8px 16px;bottom:-14px;}
  .frz-hero-product__name{font-size:12px;}
}

/* Seam divider */
.frz-seam{height:64px;margin-top:-1px;}
.frz-seam svg{width:100%;height:100%;display:block;}

/* ==========================================================================
   8. SECTIONS
   ========================================================================== */
.frz-section{padding:110px 0;position:relative;}
.frz-section-head{max-width:600px;margin-bottom:52px;}
.frz-section-head .frz-eyebrow{
  background:rgba(232,23,127,.06);
  border-color:rgba(232,23,127,.3);
  color:var(--frz-magenta-soft);
}
.frz-section-head .frz-eyebrow::before{background:var(--frz-magenta);box-shadow:0 0 10px var(--frz-magenta);}
.frz-section-head h2{font-size:clamp(28px,4vw,42px);margin:0;}
.frz-section-head p{color:var(--frz-muted);margin-top:14px;font-size:16px;max-width:480px;}

.frz-trust{border-top:1px solid var(--frz-line);border-bottom:1px solid var(--frz-line);padding:22px 0;}
.frz-trust-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;}
.frz-trust-item{display:flex;align-items:center;gap:10px;color:var(--frz-muted);font-size:13.5px;}
.frz-trust-item svg{width:16px;height:16px;color:var(--frz-teal);flex-shrink:0;}

/* Process */
.frz-process{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--frz-line);border:1px solid var(--frz-line);
  border-radius:var(--frz-radius);overflow:hidden;
}
.frz-step{background:var(--frz-navy-950);padding:34px 26px;}
.frz-step .frz-num{font-family:var(--frz-mono);font-size:13px;color:var(--frz-muted-dim);}
.frz-step h4{
  font-size:19px;margin:14px 0 0;
  background:var(--frz-crown);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.frz-step p{margin-top:10px;font-size:14px;color:var(--frz-muted);line-height:1.6;}

/* Reviews */
.frz-reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.frz-review{
  padding:30px 26px;border-radius:var(--frz-radius);
  background:linear-gradient(160deg,rgba(255,255,255,.04),rgba(255,255,255,.01));
  border:1px solid var(--frz-line);
}
.frz-stars{color:var(--frz-magenta-soft);font-size:14px;letter-spacing:2px;}
.frz-review p{margin-top:16px;font-size:15px;color:#dfe3ff;line-height:1.65;}
.frz-reviewer{display:flex;align-items:center;gap:12px;margin-top:22px;}
.frz-avatar{width:36px;height:36px;border-radius:50%;background:var(--frz-crown);flex-shrink:0;}
.frz-reviewer b{font-size:13.5px;display:block;}
.frz-reviewer span{font-size:12px;color:var(--frz-muted-dim);}

/* Newsletter */
.frz-nform-widget{flex:1;min-width:260px;}
.frz-nform-widget input[type="email"]{border-radius:100px;width:100%;}
.frz-newsletter{
  border-radius:28px;padding:60px 50px;
  background:var(--frz-crown-soft);
  border:1px solid rgba(255,255,255,.1);
  display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;
}
.frz-newsletter h3{font-size:clamp(22px,3vw,30px);max-width:420px;margin:0;}
.frz-newsletter p{color:var(--frz-muted);margin-top:10px;font-size:14.5px;}
.frz-nform{display:flex;gap:10px;flex-wrap:wrap;}
.frz-nform input{border-radius:100px;width:260px;}

/* ==========================================================================
   9. WOOCOMMERCE — PRODUCT GRID
   ========================================================================== */
.woocommerce ul.products,
.woocommerce-page ul.products{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;margin:0;padding:0;list-style:none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{display:none;}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  width:100%!important;margin:0!important;float:none!important;clear:none!important;
  background:var(--frz-navy-900);
  border:1px solid var(--frz-line);
  border-radius:var(--frz-radius);
  overflow:hidden;padding:0;
  transition:opacity .6s var(--frz-ease),transform .6s var(--frz-ease),border-color .3s;
}
/* Products are visible by default. Only a page that has confirmed JS is running
   hides them for the reveal — so a blocked or deferred script can never leave
   the shop looking empty. */
.frozenart-js .woocommerce ul.products li.product,
.frozenart-js .woocommerce-page ul.products li.product{opacity:0;transform:translateY(30px);}
.frozenart-js .woocommerce ul.products li.product.frz-reveal,
.frozenart-js .woocommerce-page ul.products li.product.frz-reveal{opacity:1;transform:translateY(0);}
.woocommerce ul.products li.product:hover{border-color:var(--frz-line-strong);}

.frz-card-media{
  position:relative;height:250px;margin:18px 18px 0;
  clip-path:var(--frz-facet);
  overflow:hidden;
  transition:transform .6s var(--frz-ease);
  background:var(--frz-crown);
}
.woocommerce ul.products li.product:hover .frz-card-media{transform:scale(1.035);}
.frz-card-media img{
  width:100%;height:100%;object-fit:cover;margin:0;border-radius:0;display:block;
}
.frz-card-media .frz-badge,
.woocommerce span.onsale{
  position:absolute;top:14px;left:14px;z-index:2;
  font-family:var(--frz-mono);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;
  background:rgba(6,9,26,.65);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  color:var(--frz-frost);
  padding:5px 10px;border-radius:100px;
  border:1px solid rgba(255,255,255,.18);
  min-width:0;min-height:0;line-height:normal;margin:0;
}
.frz-quickview{
  position:absolute;bottom:14px;left:50%;z-index:2;
  transform:translate(-50%,14px);opacity:0;
  background:#fff;color:var(--frz-navy-950);
  font-size:12.5px;font-weight:600;
  padding:10px 18px;border-radius:100px;border:none;cursor:pointer;
  white-space:nowrap;
  transition:opacity .35s var(--frz-ease),transform .35s var(--frz-ease);
}
.woocommerce ul.products li.product:hover .frz-quickview{opacity:1;transform:translate(-50%,0);}
.frz-quickview:hover{background:var(--frz-ice);}

.frz-card-body{padding:22px 20px 24px;}
.frz-card-cat{
  font-family:var(--frz-mono);font-size:11px;color:var(--frz-muted-dim);
  text-transform:uppercase;letter-spacing:.06em;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-size:19px;margin:8px 0 0;padding:0;font-weight:600;color:var(--frz-frost);
}
.frz-card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:16px;gap:12px;}
.woocommerce ul.products li.product .price{
  font-family:var(--frz-mono);font-size:16px;color:var(--frz-ice);margin:0;display:block;
}
.woocommerce ul.products li.product .price del{color:var(--frz-muted-dim);opacity:.7;font-size:13px;}
.woocommerce ul.products li.product .price ins{text-decoration:none;color:var(--frz-magenta-soft);}

/* Round + icon add-to-cart in the grid */
.woocommerce ul.products li.product .frz-card-foot .button{
  width:38px;height:38px;padding:0;border-radius:50%;
  background:rgba(255,255,255,.02);
  border:1px solid var(--frz-line);
  box-shadow:none;font-size:0;flex-shrink:0;
  transition:all .3s var(--frz-ease-soft);
  position:relative;
}
.woocommerce ul.products li.product .frz-card-foot .button::before{
  content:"";position:absolute;inset:0;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/16px no-repeat;
  mask:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/16px no-repeat;
}
.woocommerce ul.products li.product .frz-card-foot .button:hover{
  background:var(--frz-crown);border-color:transparent;
  transform:scale(1.08) rotate(90deg);box-shadow:none;
}
.woocommerce ul.products li.product .frz-card-foot .added_to_cart{
  font-size:11px;color:var(--frz-teal);
}
.woocommerce ul.products li.product .button.loading::after{display:none;}

/* Filter chips (product category nav) */
.frz-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:44px;}
.frz-chip{
  padding:10px 20px;border-radius:100px;
  border:1px solid var(--frz-line);
  font-size:13.5px;color:var(--frz-muted);
  background:none;cursor:pointer;
  transition:all .3s var(--frz-ease-soft);
}
.frz-chip:hover{color:var(--frz-frost);border-color:var(--frz-line-strong);}
.frz-chip.frz-active{background:var(--frz-crown);color:#fff;border-color:transparent;}

/* Shop toolbar */
.woocommerce .woocommerce-result-count{color:var(--frz-muted-dim);font-size:13px;}
.woocommerce .woocommerce-ordering select{padding:10px 14px;font-size:13.5px;}
.storefront-sorting{margin-bottom:32px;}

/* ==========================================================================
   10. WOOCOMMERCE — SINGLE PRODUCT
   ========================================================================== */
.single-product div.product{margin-top:20px;}
.single-product .product_title{font-size:clamp(28px,4vw,40px);margin-bottom:14px;}
.single-product div.product p.price,
.single-product div.product span.price{
  font-family:var(--frz-mono);font-size:24px;color:var(--frz-ice);
}
.single-product .woocommerce-product-details__short-description{
  color:var(--frz-muted);font-size:15.5px;line-height:1.7;margin:20px 0;
}
.single-product .woocommerce-product-gallery__image img{
  border-radius:var(--frz-radius);
  clip-path:var(--frz-facet);
}
.single-product .flex-control-thumbs li img{border-radius:10px;opacity:.55;transition:opacity .3s;}
.single-product .flex-control-thumbs li img:hover,
.single-product .flex-control-thumbs li img.flex-active{opacity:1;}
.woocommerce div.product form.cart{margin:26px 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.woocommerce .quantity .qty{
  width:80px;text-align:center;border-radius:100px;padding:14px 10px;
  background:rgba(6,9,26,.55);border:1px solid var(--frz-line);color:var(--frz-frost);
}
.woocommerce div.product .woocommerce-tabs ul.tabs{
  padding:0;margin:0 0 24px;border-bottom:1px solid var(--frz-line);display:flex;gap:6px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{display:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:none;border:none;border-radius:100px 100px 0 0;margin:0;padding:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  color:var(--frz-muted);font-weight:500;padding:12px 20px;display:block;font-size:14px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{
  color:var(--frz-frost);border-bottom:2px solid var(--frz-magenta);
}
.woocommerce .product_meta{
  font-size:13px;color:var(--frz-muted-dim);
  border-top:1px solid var(--frz-line);padding-top:18px;margin-top:22px;
}
.woocommerce .product_meta a{color:var(--frz-muted);}
.woocommerce .star-rating span{color:var(--frz-magenta-soft);}
/* Storefront's next/prev product slide-out. Unstyled by the parent theme for
   a dark palette — white panel, dark text — so it inverts against everything. */
.storefront-product-pagination a{
  background:var(--frz-navy-800)!important;
  border:1px solid var(--frz-line);
  box-shadow:0 18px 50px rgba(3,4,14,.55);
  overflow:hidden;
}
.storefront-product-pagination__title,
.storefront-product-pagination a span{
  color:var(--frz-frost)!important;
  font-family:var(--frz-display);
  font-size:14.5px;font-weight:600;line-height:1.35;
  padding:0 16px;
}
.storefront-product-pagination a img{
  border-radius:0;
  clip-path:polygon(10% 0%,90% 0%,100% 25%,100% 80%,90% 100%,10% 100%,0% 80%,0% 25%);
}
.storefront-product-pagination a::after{color:var(--frz-ice)!important;}

/* It overlaps the Add to Cart button at mid widths — that button matters more. */
@media (max-width:1400px){
  .storefront-product-pagination{display:none;}
}

.related.products,.upsells.products{
  border-top:1px solid var(--frz-line);padding-top:60px;margin-top:70px;
}
.related.products > h2,.upsells.products > h2{font-size:26px;margin-bottom:32px;}

/* ==========================================================================
   11. WOOCOMMERCE — CART, CHECKOUT, ACCOUNT
   ========================================================================== */
.woocommerce table.shop_table,
.woocommerce table.shop_table td,
.woocommerce table.shop_table th,
.woocommerce-cart table.cart td.actions{
  background:transparent;border-color:var(--frz-line);color:var(--frz-frost);
}
.woocommerce table.shop_table{
  border-radius:var(--frz-radius);border:1px solid var(--frz-line);overflow:hidden;
}
.woocommerce table.shop_table thead th{
  color:var(--frz-muted-dim);font-family:var(--frz-mono);
  font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:500;
}
.woocommerce-cart table.cart img{width:70px;border-radius:10px;}
.woocommerce .cart_totals h2,.woocommerce-checkout h3{font-size:20px;margin-bottom:18px;}
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order{
  background:var(--frz-navy-900);
  border:1px solid var(--frz-line);
  border-radius:var(--frz-radius);
  padding:28px;
}
.woocommerce .cart_totals table.shop_table{border:none;}
.woocommerce-checkout #payment,
.woocommerce #payment{background:transparent;border-radius:var(--frz-radius);}
.woocommerce-checkout #payment div.payment_box{
  background:var(--frz-navy-800);color:var(--frz-muted);border-radius:12px;
}
.woocommerce-checkout #payment div.payment_box::before{border-bottom-color:var(--frz-navy-800);}
.woocommerce-checkout #payment ul.payment_methods{border-bottom:1px solid var(--frz-line);}
/* Notices sit below the fixed header, and only take up space when they exist. */
.woocommerce-notices-wrapper:not(:empty){
  margin-top:110px;position:relative;z-index:10;
}
.home .woocommerce-notices-wrapper:not(:empty){padding:0 20px;}
@media (max-width:640px){
  .woocommerce-notices-wrapper:not(:empty){margin-top:90px;}
}

/* Dismissible notices */
.woocommerce-info,.woocommerce-message,.woocommerce-error{
  position:relative;padding-right:52px;
  transition:opacity .35s var(--frz-ease),transform .35s var(--frz-ease);
}
.frz-notice-dismiss{
  position:absolute;top:12px;right:12px;
  width:30px;height:30px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.06);
  border:1px solid var(--frz-line);
  color:var(--frz-frost);cursor:pointer;padding:0;
  transition:background .25s,border-color .25s,transform .25s var(--frz-ease);
}
.frz-notice-dismiss:hover{
  background:rgba(255,255,255,.14);
  border-color:var(--frz-line-strong);
  transform:rotate(90deg);
}
.frz-notice-dismiss svg{width:14px;height:14px;pointer-events:none;}
.frz-notice-going{opacity:0;transform:translateY(-8px);}

.woocommerce-info,.woocommerce-message,.woocommerce-error,.woocommerce-noreviews{
  background:var(--frz-navy-800);
  border-top:3px solid var(--frz-teal);
  border-radius:12px;color:var(--frz-frost);
}
.woocommerce-error{border-top-color:var(--frz-magenta);}
.woocommerce-info::before,.woocommerce-message::before{color:var(--frz-teal);}
.woocommerce-error::before{color:var(--frz-magenta);}
.woocommerce-MyAccount-navigation ul{list-style:none;padding:0;}
.woocommerce-MyAccount-navigation li{
  border-bottom:1px solid var(--frz-line);
}
.woocommerce-MyAccount-navigation li a{
  display:block;padding:13px 0;color:var(--frz-muted);font-size:14.5px;
}
.woocommerce-MyAccount-navigation li.is-active a{color:var(--frz-frost);}
.woocommerce-breadcrumb{color:var(--frz-muted-dim);font-size:13px;margin-bottom:26px;}
.woocommerce-breadcrumb a{color:var(--frz-muted);}
.woocommerce nav.woocommerce-pagination ul{border:none;display:flex;gap:8px;justify-content:center;}
.woocommerce nav.woocommerce-pagination ul li{border:none;}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  border-radius:50%;width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--frz-line);color:var(--frz-muted);font-size:14px;
  background:transparent;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover{
  background:var(--frz-crown);color:#fff;border-color:transparent;
}

/* ==========================================================================
   11b. WOOCOMMERCE BLOCK CART & CHECKOUT
   The block checkout ships its own markup and its own light-theme defaults.
   None of the classic selectors above reach it, so it needs its own pass.
   ========================================================================== */
.wc-block-checkout,
.wc-block-cart,
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart{
  color:var(--frz-frost);
}
.wc-block-components-title,
.wc-block-checkout__main h2,
.wc-block-components-checkout-step__title,
.wp-block-woocommerce-checkout-order-summary-block h2{
  color:var(--frz-frost)!important;
  font-family:var(--frz-display);
}
.wc-block-components-checkout-step__description,
.wc-block-components-checkout-step__heading-content{
  color:var(--frz-muted)!important;
}

/* Fields */
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-textarea,
.wc-block-components-select__container,
.wc-block-components-combobox-control input.components-combobox-control__input{
  background:rgba(6,9,26,.55)!important;
  border:1px solid var(--frz-line)!important;
  border-radius:12px!important;
  color:var(--frz-frost)!important;
  box-shadow:none!important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-combobox-control input:focus{
  border-color:var(--frz-teal)!important;
  background:rgba(6,9,26,.8)!important;
}

/* Floating labels double as placeholders here — they must read on dark. */
.wc-block-components-text-input label,
.wc-block-components-select label,
.wc-block-components-combobox label,
.wc-block-components-form .wc-block-components-text-input label{
  color:var(--frz-placeholder)!important;
}
/* The shrunk label sits INSIDE the field, so its contrast is against the field
   background — which a plugin may leave white. Use the dual-safe token, not ice. */
.wc-block-components-text-input.is-active label,
.wc-block-components-select.is-active label,
.wc-block-components-combobox.is-active label,
.wc-block-components-text-input label.is-active{
  color:var(--frz-placeholder)!important;
}
.wc-block-components-text-input input::placeholder,
.wc-block-components-textarea::placeholder,
.wc-block-components-combobox-control input::placeholder{
  color:var(--frz-placeholder)!important;opacity:1;
}

/* Native select and its dropdown list */
.wc-block-components-select select,
.wc-block-components-country-input select,
.wc-block-components-state-input select{
  background:rgba(6,9,26,.55)!important;
  color:var(--frz-frost)!important;
  border:1px solid var(--frz-line)!important;
  border-radius:12px!important;
}
.wc-block-components-select select option{
  background:var(--frz-navy-800);color:var(--frz-frost);
}
.components-form-token-field__suggestions-list,
.wc-block-components-combobox-control__suggestions-container{
  background:var(--frz-navy-800)!important;
  border:1px solid var(--frz-line)!important;
  color:var(--frz-frost)!important;
}
.components-form-token-field__suggestion.is-selected,
.components-form-token-field__suggestion:hover{
  background:var(--frz-violet)!important;color:#fff!important;
}

/* Checkboxes and radios */
.wc-block-components-checkbox__label,
.wc-block-components-radio-control__label,
.wc-block-components-checkbox__input + .wc-block-components-checkbox__label{
  color:var(--frz-frost)!important;
}
.wc-block-components-radio-control__option{
  border-color:var(--frz-line)!important;
}
.wc-block-components-radio-control-accordion-option{
  border:1px solid var(--frz-line)!important;border-radius:12px;margin-bottom:10px;
}

/* Panels, totals, summary */
/* Only the OUTER panel gets a border. Bordering the nested totals wrapper too
   produced the doubled, overlapping boxes around Estimated total. */
.wc-block-components-sidebar,
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-cart__totals-title + .wc-block-components-totals-wrapper,
.wc-block-components-order-summary{
  background:var(--frz-navy-900)!important;
  border:1px solid var(--frz-line)!important;
  border-radius:var(--frz-radius);
  color:var(--frz-frost);
  padding:22px!important;
}
.wc-block-components-totals-wrapper{
  background:transparent!important;
  border:none!important;
  border-top:1px solid var(--frz-line)!important;
  border-radius:0!important;
  padding:16px 0!important;
  margin:0!important;
}
.wc-block-components-totals-wrapper:first-child{border-top:none!important;padding-top:0!important;}
.wc-block-components-totals-wrapper:last-child{padding-bottom:0!important;}

/* Coupon and order-summary accordions are panels in their own right. */
.wc-block-components-panel{
  border:none!important;background:transparent!important;
  padding:0!important;
}
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value,
.wc-block-components-product-name,
.wc-block-components-product-metadata,
.wc-block-components-formatted-money-amount{
  color:var(--frz-frost)!important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font-family:var(--frz-mono);color:var(--frz-ice)!important;
}
.wc-block-components-panel__button,
.wc-block-components-order-summary__button-text{color:var(--frz-ice)!important;}

/* Buttons */
.wc-block-components-button:not(.is-link){
  background:var(--frz-crown)!important;
  color:#fff!important;border:none!important;border-radius:100px!important;
  box-shadow:0 10px 30px rgba(232,23,127,.28);
}
.wc-block-components-button.is-link{color:var(--frz-ice)!important;}

/* Notices inside blocks */
.wc-block-components-notice-banner{
  background:var(--frz-navy-800)!important;
  color:var(--frz-frost)!important;
  border-radius:12px;
}
.wc-block-components-notice-banner__content{color:var(--frz-frost)!important;}
.wc-block-components-validation-error{color:var(--frz-magenta-soft)!important;}

/* Block checkout renders below the fixed header. */
.woocommerce-checkout .wp-block-woocommerce-checkout,
.woocommerce-cart .wp-block-woocommerce-cart{padding-top:20px;}

/* ==========================================================================
   12. CART DRAWER
   ========================================================================== */
.frz-overlay{
  position:fixed;inset:0;z-index:600;
  background:rgba(3,4,14,.6);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  opacity:0;visibility:hidden;
  transition:opacity .4s var(--frz-ease-soft),visibility .4s var(--frz-ease-soft);
}
.frz-overlay.frz-show{opacity:1;visibility:visible;}
.frz-drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:601;
  width:420px;max-width:92vw;
  background:var(--frz-navy-900);
  border-left:1px solid var(--frz-line);
  display:flex;flex-direction:column;
  transform:translateX(100%);
  transition:transform .55s var(--frz-ease);
}
.frz-drawer.frz-show{transform:translateX(0);}
.frz-drawer-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:24px 26px;border-bottom:1px solid var(--frz-line);
}
.frz-drawer-head h4{font-size:18px;margin:0;}
.frz-drawer-items{flex:1;overflow-y:auto;padding:20px 26px;}
.frz-drawer-items .woocommerce-mini-cart{list-style:none;margin:0;padding:0;}
.frz-drawer-items .woocommerce-mini-cart-item{
  display:flex;gap:14px;align-items:flex-start;
  padding:0 0 18px;margin-bottom:18px;
  border-bottom:1px solid var(--frz-line);position:relative;
}
.frz-drawer-items .woocommerce-mini-cart-item img{
  width:64px;height:64px;object-fit:cover;
  border-radius:12px;clip-path:polygon(10% 0%,90% 0%,100% 25%,100% 80%,90% 100%,10% 100%,0% 80%,0% 25%);
  float:none;margin:0;order:-1;flex-shrink:0;
}
.frz-drawer-items .woocommerce-mini-cart-item a{
  color:var(--frz-frost);font-size:14px;font-weight:600;display:block;
}
.frz-drawer-items .woocommerce-mini-cart-item .quantity{
  font-family:var(--frz-mono);font-size:12.5px;color:var(--frz-muted);display:block;margin-top:6px;
}
.frz-drawer-items a.remove{
  position:absolute;top:0;right:0;
  color:var(--frz-muted-dim)!important;font-size:18px;line-height:1;
  width:22px;height:22px;text-align:center;
}
.frz-drawer-items a.remove:hover{color:var(--frz-magenta)!important;background:none;}
.frz-drawer-items .woocommerce-mini-cart__total{
  display:none; /* totals live in the drawer footer instead */
}
.frz-drawer-items .woocommerce-mini-cart__buttons{display:none;}
.frz-drawer-empty{
  color:var(--frz-muted-dim);font-size:14px;text-align:center;margin-top:60px;
}
.frz-drawer-foot{padding:22px 26px 28px;border-top:1px solid var(--frz-line);}
.frz-drawer-row{display:flex;justify-content:space-between;font-size:14px;color:var(--frz-muted);margin-bottom:8px;}
.frz-drawer-row.frz-total{
  color:var(--frz-frost);font-size:17px;font-family:var(--frz-mono);
  margin:12px 0 20px;
}
.frz-drawer-foot .button{width:100%;}
.frz-drawer-foot .frz-view-cart{
  display:block;text-align:center;margin-top:12px;
  font-size:13px;color:var(--frz-muted);
}

/* ==========================================================================
   13. QUICK VIEW MODAL
   ========================================================================== */
.frz-modal{
  position:fixed;inset:0;z-index:700;
  display:flex;align-items:center;justify-content:center;padding:24px;
  opacity:0;visibility:hidden;
  transition:opacity .4s var(--frz-ease-soft),visibility .4s var(--frz-ease-soft);
}
.frz-modal.frz-show{opacity:1;visibility:visible;}
.frz-modal-card{
  background:var(--frz-navy-900);
  border:1px solid var(--frz-line);
  border-radius:24px;
  max-width:820px;width:100%;max-height:88vh;
  display:grid;grid-template-columns:1fr 1fr;overflow:hidden;
  transform:scale(.92) translateY(20px);
  transition:transform .5s var(--frz-ease);
}
.frz-modal.frz-show .frz-modal-card{transform:scale(1) translateY(0);}
.frz-modal-media{position:relative;min-height:340px;background:var(--frz-crown);}
.frz-modal-media img{width:100%;height:100%;object-fit:cover;}
.frz-modal-close{
  position:absolute;top:18px;right:18px;z-index:5;
  width:36px;height:36px;border-radius:50%;
  background:rgba(6,9,26,.6);backdrop-filter:blur(6px);
  border:none;color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.frz-modal-body{padding:38px 34px;overflow-y:auto;}
.frz-modal-body h3{font-size:26px;margin:10px 0 0;}
.frz-modal-body .price{font-family:var(--frz-mono);font-size:20px;color:var(--frz-ice);margin-top:12px;display:block;}
.frz-modal-body .frz-desc{color:var(--frz-muted);font-size:14.5px;margin-top:18px;line-height:1.7;}
#frz-modal-content{display:contents;}
.frz-modal-spinner{
  grid-column:1/-1;padding:60px 30px;text-align:center;
  color:var(--frz-muted-dim);font-size:14px;line-height:1.6;
}
.frz-modal-spinner .button{display:inline-flex;}

/* ==========================================================================
   14. FOOTER
   ========================================================================== */
.site-footer,
.woocommerce-active .site-footer{
  background:var(--frz-navy-950);
  color:var(--frz-muted);
  padding:80px 0 30px;
  border-top:1px solid var(--frz-line);
  margin-top:60px;
}
.frz-foot-grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:60px;
}
.frz-foot-brand img{height:34px;margin-bottom:16px;}
.frz-foot-brand p{color:var(--frz-muted);font-size:14px;max-width:260px;line-height:1.6;}
.frz-foot-col h5{
  font-family:var(--frz-mono);font-size:13px;text-transform:uppercase;
  letter-spacing:.05em;color:var(--frz-muted-dim);margin:0 0 16px;
}
.frz-foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.frz-foot-col li{margin:0;}
.frz-foot-col a{font-size:14px;color:var(--frz-muted);}
.frz-foot-col a:hover{color:var(--frz-frost);}
.frz-foot-bottom{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
  padding-top:26px;border-top:1px solid var(--frz-line);
}
.frz-foot-bottom p{font-size:12.5px;color:var(--frz-muted-dim);margin:0;}
.frz-social{display:flex;gap:10px;}
.frz-social a{
  width:34px;height:34px;border-radius:50%;
  border:1px solid var(--frz-line);
  display:flex;align-items:center;justify-content:center;
  color:var(--frz-muted);transition:all .3s;
}
.frz-social a:hover{background:var(--frz-crown);border-color:transparent;color:#fff;}
.frz-social svg{width:15px;height:15px;}

/* ==========================================================================
   15. SCROLL REVEAL
   ========================================================================== */
[data-frz-reveal]{
  transition:opacity .7s var(--frz-ease),transform .7s var(--frz-ease);
}
.frozenart-js [data-frz-reveal]{opacity:0;transform:translateY(28px);}
.frozenart-js [data-frz-reveal].frz-reveal{opacity:1;transform:translateY(0);}

/* ==========================================================================
   16. RESPONSIVE
   ========================================================================== */
@media (max-width:980px){
  .frz-hero-grid{grid-template-columns:1fr;}
  .frz-hero-art{height:360px;order:-1;}
  .woocommerce ul.products,
  .woocommerce-page ul.products{grid-template-columns:repeat(2,1fr);}
  .frz-process{grid-template-columns:repeat(2,1fr);}
  .frz-reviews{grid-template-columns:1fr;}
  .frz-menu{display:none;}
  .frz-burger{display:flex;}
  .frz-foot-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  .frz-wrap,.frz-nav{padding:0 20px;}

  /* The wordmark competes with the cart and menu buttons at this width —
     scale the whole lockup down rather than letting it wrap. */
  .frz-nav{gap:12px;}
  .frz-brand{gap:8px;min-width:0;}
  .frz-brand img{height:30px;}
  .frz-brand-name{
    font-size:16px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .frz-nav-actions{gap:6px;flex-shrink:0;}
  .frz-icon-btn{width:34px;height:34px;}

  .frz-section{padding:70px 0;}
  .woocommerce ul.products,
  .woocommerce-page ul.products{grid-template-columns:1fr;}
  .frz-process{grid-template-columns:1fr;}
  .frz-newsletter{padding:40px 26px;flex-direction:column;align-items:flex-start;}
  .frz-nform,.frz-nform input{width:100%;}
  .frz-modal-card{grid-template-columns:1fr;overflow-y:auto;}
  .frz-modal-media{min-height:220px;}
  body:not(.home) #content.site-content{padding-top:100px;}
}

@media (max-width:400px){
  /* Below this the crown mark stands on its own. */
  .frz-brand-name{display:none;}
}


/* ==========================================================================
   17. PLACEHOLDER SAFETY NET
   Broad, low-maintenance rules so any form added later by any plugin inherits
   a readable placeholder without needing its own selector written by hand.
   ========================================================================== */
::placeholder{color:var(--frz-placeholder)!important;opacity:1;}
::-webkit-input-placeholder{color:var(--frz-placeholder)!important;}
::-moz-placeholder{color:var(--frz-placeholder)!important;opacity:1;}
:-ms-input-placeholder{color:var(--frz-placeholder)!important;}
::-ms-input-placeholder{color:var(--frz-placeholder)!important;}

/* Floating-label patterns used by block checkout and most modern form plugins.
   Same token in both resting and shrunk states — legible on white or dark. */
.wc-block-components-text-input.is-active label,
.wc-block-components-select.is-active label,
.wc-block-components-combobox.is-active label,
.wc-block-components-text-input label.is-active,
label.is-active, .is-active > label{color:var(--frz-placeholder)!important;}

/* Search fields, comment forms, WPForms, Contact Form 7 */
.search-field::placeholder,
.wpforms-field input::placeholder,
.wpforms-field textarea::placeholder,
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder{color:var(--frz-placeholder)!important;opacity:1;}


/* --- Block cart/checkout fixes --------------------------------------------
   The sticky submit container ships a white background AND a white box-shadow,
   which reads as a glowing slab behind the checkout button on a dark theme. */
.wc-block-cart__submit,
.wc-block-cart__submit-container,
.wp-block-woocommerce-cart .wc-block-cart__submit-container{
  background:transparent!important;
  box-shadow:none!important;
  border:none!important;
  padding-left:0!important;padding-right:0!important;
}
.wc-block-cart__submit-container::after{background:none!important;box-shadow:none!important;}

/* On mobile this bar becomes STICKY over scrolling content, so it must stay
   opaque — transparent here would let the cart scroll behind the button. Dark
   backdrop instead of WooCommerce's white one. */
.wc-block-cart__submit-container--sticky{
  background:rgba(6,9,26,.94)!important;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--frz-line)!important;
  box-shadow:0 -10px 30px rgba(3,4,14,.6)!important;
  padding:14px 16px!important;
}
.wc-block-cart__submit-container--sticky::before{
  background:none!important;box-shadow:none!important;
}

/* Checkout's place-order area, same treatment. */
.wc-block-checkout__actions,
.wc-block-checkout__actions_row{
  background:transparent!important;box-shadow:none!important;border:none!important;
}

/* Totals rows need breathing room now that the wrapper padding changed. */
.wc-block-components-totals-item{
  padding:6px 0!important;
  display:flex;justify-content:space-between;gap:14px;
}
.wc-block-components-totals-footer-item{
  padding-top:14px!important;
  border-top:1px solid var(--frz-line);
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label{
  font-family:var(--frz-display);font-size:17px;
}

/* Cart line items: a product description containing a full-size image blows the
   row height out. Cap it — the thumbnail is the product's visual, not this. */
.wc-block-components-product-metadata img,
.wc-block-components-product-details img,
.wc-block-cart-item__product img:not(.wc-block-components-product-image img){
  max-width:120px!important;height:auto;border-radius:8px;
}
.wc-block-components-product-metadata{
  color:var(--frz-muted)!important;font-size:13px;
}

/* Coupon row and its toggle. */
.wc-block-components-totals-coupon,
.wc-block-components-panel__button{
  background:transparent!important;padding:0!important;
}
.wc-block-components-totals-coupon__form{margin-top:12px;}

/* Sale badges inside the summary. */
.wc-block-components-sale-badge{
  background:rgba(232,23,127,.14)!important;
  color:var(--frz-magenta-soft)!important;
  border:1px solid rgba(232,23,127,.3);
  border-radius:100px;
}

/* Radio/accordion options.
   The radio input is absolutely positioned, so the option needs left padding to
   reserve space for it — a plain symmetric padding puts the label under the dot. */
.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option{
  padding:16px 18px 16px 52px!important;
  position:relative;
}
.wc-block-components-radio-control__input{
  left:18px!important;
  top:18px!important;
  margin:0!important;
}
.wc-block-components-radio-control__label,
.wc-block-components-radio-control__label-group{
  padding-left:0!important;
  display:block;
}
/* The accordion variant wraps its label in a trigger row. */
.wc-block-components-radio-control-accordion-option
  > .wc-block-components-radio-control__option{
  padding:0!important;
}
.wc-block-components-radio-control__description{
  padding-left:0!important;
  color:var(--frz-muted)!important;
}


/* ==========================================================================
   18. BLOCK CART / CHECKOUT — TABLET & MOBILE
   Section 11b was written at desktop width; these are the size-dependent
   corrections. Padding that reads as generous at 1200px eats a phone's width.
   ========================================================================== */
@media (max-width:1024px){
  .wc-block-components-sidebar,
  .wp-block-woocommerce-checkout-order-summary-block,
  .wc-block-components-order-summary{
    padding:20px!important;
    margin-top:26px;
  }
  /* The summary stacks under the form at this width — give it separation. */
  .wc-block-checkout__sidebar{margin-top:28px;}
}

@media (max-width:781px){
  /* WooCommerce collapses to one column here. */
  .wc-block-checkout__main,
  .wc-block-cart__main{width:100%!important;padding-right:0!important;}

  .wc-block-components-sidebar,
  .wp-block-woocommerce-checkout-order-summary-block,
  .wc-block-components-order-summary{padding:18px!important;}

  /* Two-up name fields are cramped below this width. */
  .wc-block-components-address-form__first_name,
  .wc-block-components-address-form__last_name{width:100%!important;}

  .wc-block-components-button:not(.is-link){
    width:100%!important;justify-content:center;
    padding:16px 22px!important;font-size:15px!important;
  }
}

@media (max-width:640px){
  .wc-block-components-sidebar,
  .wp-block-woocommerce-checkout-order-summary-block,
  .wc-block-components-order-summary{padding:16px!important;border-radius:14px;}

  .wc-block-components-totals-wrapper{padding:13px 0!important;}
  .wc-block-components-totals-item{gap:10px;font-size:14px;}
  .wc-block-components-totals-footer-item .wc-block-components-totals-item__label{font-size:15.5px;}
  .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{font-size:17px;}

  /* Long product names must wrap, not overflow the summary panel. */
  .wc-block-components-product-name{
    font-size:14px;line-height:1.35;
    overflow-wrap:anywhere;
  }
  .wc-block-components-product-metadata img,
  .wc-block-components-product-details img{max-width:80px!important;}

  .wc-block-components-radio-control-accordion-option,
  .wc-block-components-radio-control__option{padding:14px 14px 14px 46px!important;}
  .wc-block-components-radio-control__input{left:14px!important;top:16px!important;}

  /* Fields: 16px minimum stops iOS Safari zooming in on focus. */
  .wc-block-components-text-input input,
  .wc-block-components-select select,
  .wc-block-components-textarea{font-size:16px!important;}

  /* Classic cart table, same treatment. */
  .woocommerce table.shop_table_responsive tr,
  .woocommerce-page table.shop_table_responsive tr{
    border-bottom:1px solid var(--frz-line);
  }
  .woocommerce .cart-collaterals .cart_totals,
  .woocommerce-checkout #order_review{padding:18px;}
}

/* Hero: keep the corner logo clear of the product on small screens. */
@media (max-width:640px){
  .frz-hero-art{height:330px;}
  .frz-hero-logo--compact{top:-14px;left:-6px;}
  .frz-hero-product{width:min(200px,60%);}
}


/* WooCommerce renders empty totals wrappers for inactive rows (tax, fees,
   discounts). With padding applied they become large dead gaps in the summary. */
.wc-block-components-totals-wrapper:empty{display:none!important;}
.wc-block-components-totals-wrapper > *:only-child:empty{display:none;}


/* ==========================================================================
   19. SELECTS & AUTOFILL
   Chrome paints its own background on autofilled fields and ignores
   background-color outright — the only way through is a huge inset shadow.
   That grey slab on Country/State was Chrome, not WooCommerce.
   ========================================================================== */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active,
select:-webkit-autofill,
select:-webkit-autofill:focus,
textarea:-webkit-autofill,
.wc-block-components-text-input input:-webkit-autofill,
.wc-block-components-select select:-webkit-autofill{
  -webkit-box-shadow:0 0 0 1000px var(--frz-navy-800) inset!important;
  box-shadow:0 0 0 1000px var(--frz-navy-800) inset!important;
  -webkit-text-fill-color:var(--frz-frost)!important;
  caret-color:var(--frz-frost)!important;
  border:1px solid var(--frz-line)!important;
  border-radius:12px!important;
  /* Delays Chrome repainting its own colour back over ours. */
  transition:background-color 9999s ease-out 0s!important;
}

/* Branded chevron in place of the native OS arrow. */
select,
.wc-block-components-select select,
.woocommerce-ordering select,
.wc-block-components-country-input select,
.wc-block-components-state-input select{
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232bd4c8' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E')!important;
  background-repeat:no-repeat!important;
  background-position:right 16px center!important;
  background-size:16px!important;
  padding-right:46px!important;
  cursor:pointer;
}
select:hover,
.wc-block-components-select select:hover{border-color:var(--frz-line-strong)!important;}

/* Block checkout draws its own arrow on top — hide the duplicate. */
.wc-block-components-select__expand{
  fill:var(--frz-teal)!important;
  right:16px!important;
}
.wc-block-components-select select{background-image:none!important;padding-right:44px!important;}

/* The native option list can only take colour, not layout. */
select option,
.wc-block-components-select select option{
  background:var(--frz-navy-800)!important;
  color:var(--frz-frost)!important;
  padding:10px!important;
}
select option:checked,
select option:hover{background:var(--frz-violet)!important;color:#fff!important;}

/* Colour-scheme hint makes the OS render the dropdown panel itself dark,
   which is the only lever CSS has over the native popup. */
select,
input,
textarea,
.wc-block-components-form{color-scheme:dark;}

/* Searchable country/state combobox in block checkout. */
.wc-block-components-combobox-control input.components-combobox-control__input{
  padding-right:44px!important;
}
.components-form-token-field__suggestions-list li{
  padding:10px 14px!important;
  border-bottom:1px solid var(--frz-line);
}
.components-form-token-field__suggestions-list li:last-child{border-bottom:none;}


/* ==========================================================================
   20. CONTACT PAGE
   ========================================================================== */
.frz-contact-hero{padding-top:70px;}
.frz-contact-grid{
  display:grid;grid-template-columns:0.9fr 1.1fr;gap:44px;align-items:start;
}

.frz-contact-methods{display:flex;flex-direction:column;gap:14px;}
.frz-contact-card{
  display:flex;align-items:flex-start;gap:16px;
  padding:20px 22px;
  background:var(--frz-navy-900);
  border:1px solid var(--frz-line);
  border-radius:var(--frz-radius);
  color:var(--frz-frost);
  transition:transform .35s var(--frz-ease),border-color .3s,background .3s;
}
.frz-contact-card:not(.frz-contact-card--static):hover{
  transform:translateY(-3px);
  border-color:var(--frz-line-strong);
  background:var(--frz-navy-800);
  color:var(--frz-frost);
}
.frz-contact-card__icon{
  flex-shrink:0;width:42px;height:42px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  background:var(--frz-crown-soft);
  border:1px solid var(--frz-line);
  color:var(--frz-ice);
}
.frz-contact-card__icon svg{width:20px;height:20px;}
.frz-contact-card b{
  display:block;font-family:var(--frz-display);font-size:15px;margin-bottom:3px;
}
.frz-contact-card span span,
.frz-contact-card > span > span{
  display:block;color:var(--frz-muted);font-size:14px;line-height:1.5;
  overflow-wrap:anywhere;
}
.frz-contact-hours{
  display:flex;align-items:center;gap:10px;
  color:var(--frz-muted-dim);font-size:13px;
  padding:4px 4px 0;
}
.frz-contact-hours svg{width:15px;height:15px;color:var(--frz-teal);flex-shrink:0;}

.frz-contact-form-wrap{
  background:var(--frz-navy-900);
  border:1px solid var(--frz-line);
  border-radius:var(--frz-radius);
  padding:34px;
}
.frz-field{margin:0 0 20px;}
.frz-field label{
  display:block;margin-bottom:8px;
  font-size:13px;color:var(--frz-muted);
  font-family:var(--frz-mono);text-transform:uppercase;letter-spacing:.05em;
}
.frz-field input,
.frz-field textarea,
.frz-field select{width:100%;}
.frz-field textarea{resize:vertical;min-height:140px;}

.frz-contact-body{
  margin-top:50px;color:var(--frz-muted);font-size:15.5px;line-height:1.75;
  max-width:720px;
}
.frz-contact-body h2,.frz-contact-body h3{color:var(--frz-frost);margin-top:32px;}

.frz-contact-products{
  border-top:1px solid var(--frz-line);
}

@media (max-width:980px){
  .frz-contact-grid{grid-template-columns:1fr;gap:32px;}
}
@media (max-width:640px){
  .frz-contact-hero{padding-top:40px;}
  .frz-contact-form-wrap{padding:24px 20px;}
  .frz-contact-card{padding:16px 18px;gap:13px;}
  .frz-contact-card__icon{width:38px;height:38px;}
}

/* Cloudflare Turnstile widget */
.frz-turnstile{margin:0 0 20px;min-height:0;}
.frz-turnstile:not(:empty){margin-bottom:22px;}


/* ==========================================================================
   21. HTML SITEMAP PAGE
   ========================================================================== */
.frz-sitemap-block{margin-bottom:54px;}
.frz-sitemap-block h3{
  font-size:22px;margin:0 0 20px;
  display:flex;align-items:center;gap:12px;
  padding-bottom:14px;border-bottom:1px solid var(--frz-line);
}
.frz-sitemap-count{
  font-family:var(--frz-mono);font-size:12px;
  color:var(--frz-ice);
  background:rgba(43,212,200,.1);
  border:1px solid rgba(43,212,200,.28);
  border-radius:100px;padding:2px 9px;
}
.frz-sitemap-group{
  font-family:var(--frz-mono);font-size:12px;
  text-transform:uppercase;letter-spacing:.06em;
  color:var(--frz-muted-dim);
  margin:28px 0 12px;
}
.frz-sitemap-chips{display:flex;flex-wrap:wrap;gap:10px;}
.frz-sitemap-chips .frz-chip{
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;
}

.frz-sitemap-list{list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(2,1fr);gap:2px;}
.frz-sitemap-list--plain{grid-template-columns:repeat(3,1fr);}
.frz-sitemap-list li{margin:0;}
.frz-sitemap-list a{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding:13px 16px;border-radius:10px;
  color:var(--frz-frost);
  transition:background .25s,transform .25s var(--frz-ease);
}
.frz-sitemap-list a:hover{background:var(--frz-navy-900);transform:translateX(3px);}
.frz-sitemap-name{font-size:14.5px;line-height:1.4;overflow-wrap:anywhere;}
.frz-sitemap-meta{
  display:flex;align-items:center;gap:10px;flex-shrink:0;
  font-family:var(--frz-mono);font-size:11.5px;
}
.frz-sitemap-price{color:var(--frz-ice);white-space:nowrap;}
.frz-sitemap-price del{display:none;} /* keep the row to one line */
.frz-sitemap-price ins{text-decoration:none;}
.frz-sitemap-sku{color:var(--frz-muted-dim);}
.frz-sitemap-stock{
  padding:2px 8px;border-radius:100px;border:1px solid var(--frz-line);
  white-space:nowrap;
}
.frz-sitemap-stock.is-in{color:var(--frz-teal);border-color:rgba(43,212,200,.3);}
.frz-sitemap-stock.is-out{color:var(--frz-muted-dim);}

.frz-sitemap-foot{
  color:var(--frz-muted-dim);font-size:13px;
  padding-top:24px;border-top:1px solid var(--frz-line);
}

@media (max-width:900px){
  .frz-sitemap-list,
  .frz-sitemap-list--plain{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .frz-sitemap-list a{
    flex-direction:column;align-items:flex-start;gap:7px;padding:12px 14px;
  }
  .frz-sitemap-block h3{font-size:19px;}
}


/* ==========================================================================
   22. ABOUT PAGE
   ========================================================================== */
.frz-about-hero{padding:40px 0 60px;}
.frz-about-hero__grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;
}
.frz-about-hero h1{font-size:clamp(34px,5.2vw,58px);line-height:1.05;margin:0;}
.frz-about-hero h1 em{
  font-style:normal;
  background:var(--frz-crown);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.frz-about-hero .frz-lead{
  margin-top:20px;max-width:460px;color:var(--frz-muted);font-size:17px;line-height:1.65;
}
.frz-about-hero__art{height:400px;}
.frz-about-hero__art .frz-hero-logo{width:240px;}

.frz-about-story__grid{
  display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;align-items:start;
}
.frz-about-story__grid.is-single{grid-template-columns:1fr;max-width:760px;}
.frz-about-figure{margin:0;}
.frz-about-figure img{
  width:100%;display:block;
  clip-path:var(--frz-facet);
  filter:drop-shadow(0 20px 50px rgba(3,4,14,.6));
}
.frz-about-body{color:var(--frz-muted);font-size:16px;line-height:1.8;}
.frz-about-body > p{margin-bottom:20px;}
.frz-about-body h2,.frz-about-body h3{color:var(--frz-frost);margin:34px 0 14px;font-size:22px;}
.frz-about-body a{color:var(--frz-ice);text-decoration:underline;}

.frz-about-quote{
  margin:34px 0 0;padding:26px 28px;
  border:none;
  border-left:2px solid transparent;
  border-image:var(--frz-crown) 1;
  background:linear-gradient(120deg,rgba(232,23,127,.07),rgba(43,212,200,.05));
  border-radius:0 var(--frz-radius) var(--frz-radius) 0;
}
.frz-about-quote p{
  font-family:var(--frz-display);font-size:19px;line-height:1.55;
  color:var(--frz-frost);margin:0;
}
.frz-about-quote cite{display:block;margin-top:16px;font-style:normal;}
.frz-about-quote cite b{display:block;font-size:14px;color:var(--frz-frost);}
.frz-about-quote cite span{font-size:12.5px;color:var(--frz-muted-dim);}

.frz-pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.frz-pillar{
  padding:30px 28px;border-radius:var(--frz-radius);
  background:var(--frz-navy-900);
  border:1px solid var(--frz-line);
  transition:border-color .3s,transform .4s var(--frz-ease);
}
.frz-pillar:hover{border-color:var(--frz-line-strong);transform:translateY(-3px);}
.frz-pillar__icon{
  display:flex;align-items:center;justify-content:center;
  width:46px;height:46px;border-radius:13px;margin-bottom:18px;
  background:var(--frz-crown-soft);
  border:1px solid var(--frz-line);
  color:var(--frz-ice);
}
.frz-pillar__icon svg{width:22px;height:22px;}
.frz-pillar h3{font-size:18px;margin:0 0 10px;}
.frz-pillar p{color:var(--frz-muted);font-size:14.5px;line-height:1.65;margin:0;}

.frz-about-stats{
  padding:56px 0;
  border-top:1px solid var(--frz-line);
  border-bottom:1px solid var(--frz-line);
  background:linear-gradient(120deg,rgba(232,23,127,.05),rgba(43,212,200,.04));
}
.frz-about-stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.frz-about-stat{text-align:center;}
.frz-about-stat b{
  display:block;font-family:var(--frz-display);font-size:clamp(26px,3.4vw,36px);
  background:var(--frz-crown);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.frz-about-stat span{
  display:block;margin-top:6px;font-size:13px;color:var(--frz-muted-dim);
}

@media (max-width:980px){
  /* Overrides the inline column count set from the stat total. */
  .frz-about-stats__grid{grid-template-columns:repeat(2,1fr)!important;}
  .frz-about-hero__grid{grid-template-columns:1fr;gap:24px;}
  .frz-about-hero__art{height:300px;order:-1;}
  .frz-about-story__grid{grid-template-columns:1fr;gap:32px;}
  .frz-pillars{grid-template-columns:1fr;}
  .frz-about-stats__grid{grid-template-columns:repeat(2,1fr);gap:32px;}
}
@media (max-width:640px){
  .frz-about-hero{padding:20px 0 40px;}
  .frz-about-hero__art{height:250px;}
  .frz-about-hero__art .frz-hero-logo{width:180px;}
  .frz-pillar{padding:24px 20px;}
  .frz-about-quote{padding:22px 20px;}
  .frz-about-quote p{font-size:17px;}
  .frz-about-stats{padding:40px 0;}
}


/* ==========================================================================
   23. ICON SIZING SAFETY NET
   An inline SVG with no width/height attribute defaults to 300x150 whenever the
   rule constraining it fails to apply — a stale cached stylesheet is enough.
   These caps mean a missing rule can never produce a full-size icon.
   ========================================================================== */
.frz-contact-card__icon{
  width:42px!important;height:42px!important;
  flex:0 0 42px!important;
  overflow:hidden;
}
.frz-contact-card__icon svg{
  width:20px!important;height:20px!important;
  max-width:20px;max-height:20px;flex-shrink:0;
}
.frz-contact-hours svg{
  width:15px!important;height:15px!important;flex-shrink:0;
}
.frz-pillar__icon{
  width:46px!important;height:46px!important;
  flex:0 0 46px!important;
  overflow:hidden;
}
.frz-pillar__icon svg{
  width:22px!important;height:22px!important;
  max-width:22px;max-height:22px;
}
/* Anything inline and decorative elsewhere in the theme. */
.frz-trust-item svg,
.frz-social svg,
.frz-icon-btn svg{max-width:22px;max-height:22px;}

@media (max-width:640px){
  .frz-contact-card__icon{width:38px!important;height:38px!important;flex:0 0 38px!important;}
  .frz-contact-card__icon svg{width:18px!important;height:18px!important;}
}


/* ==========================================================================
   24. CONTACT FORM LAYOUT REFINEMENTS
   ========================================================================== */
.frz-contact-form-wrap{max-width:620px;}
.frz-contact-form{margin:0;}

/* Labels sit above their field, always — never inline beside it. */
.frz-contact-form .frz-field{
  display:block;width:100%;margin:0 0 22px;
}
.frz-contact-form .frz-field label{
  display:block;width:100%;margin:0 0 8px;
}
.frz-contact-form .frz-field input,
.frz-contact-form .frz-field select,
.frz-contact-form .frz-field textarea{
  display:block;width:100%;box-sizing:border-box;
}
.frz-contact-form .frz-field textarea{min-height:150px;}

/* The submit button spans the form, not the page. */
.frz-contact-form .frz-btn-block{
  width:100%;max-width:100%;
  padding:16px 26px;font-size:15px;
}

/* Turnstile sits between the last field and the button. */
.frz-turnstile{margin:4px 0 22px;}

/* Contact method cards must stack, never run together as a line of text. */
.frz-contact-methods{
  display:flex;flex-direction:column;align-items:stretch;gap:14px;
}
.frz-contact-card{
  display:flex;width:100%;text-decoration:none;
}
.frz-contact-card > span:last-child{flex:1;min-width:0;}

@media (max-width:640px){
  .frz-contact-form-wrap{max-width:none;}
  .frz-contact-form .frz-field{margin-bottom:18px;}
}
