@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Work+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&display=swap');

/* CMC Dry Ice — Color tokens
   A cold, clean, industrial blue system. Built around a confident "CMC blue"
   with an icy cyan accent (the visible fog of subliming dry ice) over cool,
   technical grays. Safety amber/red support the handling + hazard content.
   NOTE: The blue ramp is anchored on the OFFICIAL logo blue (#47ABFF, sampled
   from assets/logo.png) at --blue-400 / --brand-mark. Darker steps are tuned
   for UI contrast; the cyan, gray and status ramps are still inferred —
   confirm against the official brand kit. */

:root {
  /* ---- Base ramp: Blue (primary brand) ---- */
  --blue-950: #061B2E;
  --blue-900: #0B2C4A;
  --blue-800: #0E3E68;
  --blue-700: #10528C;
  --blue-600: #1272CE;   /* primary action */
  --blue-500: #2A8FEE;
  --blue-400: #47ABFF;   /* OFFICIAL logo blue */
  --blue-300: #7FC4FF;
  --blue-200: #B3DCFF;
  --blue-100: #DEEFFF;
  --blue-50:  #F1F8FF;

  /* ---- Base ramp: Cyan / Ice (accent — the "fog") ---- */
  --ice-700: #128AAE;
  --ice-600: #19A6CE;
  --ice-500: #2FBDE0;
  --ice-400: #5BD0EC;
  --ice-300: #92E0F3;
  --ice-200: #C2EFF8;
  --ice-100: #E6F8FC;

  /* ---- Base ramp: Cool neutral gray ---- */
  --gray-950: #0A1722;
  --gray-900: #14222E;
  --gray-800: #1F3140;
  --gray-700: #34495A;
  --gray-600: #4C616F;
  --gray-500: #6B7E8B;
  --gray-400: #93A4AF;
  --gray-300: #BECAD2;
  --gray-200: #DCE4E9;
  --gray-100: #ECF1F4;
  --gray-50:  #F6F9FA;
  --white:    #FFFFFF;
  --black:    #05090D;

  /* ---- Status ---- */
  --green-600: #1F8A4C;
  --green-500: #2E9E5B;
  --green-100: #E4F4EA;
  --amber-600: #C9830D;   /* safety / handling */
  --amber-500: #E8A317;
  --amber-100: #FBEFD3;
  --red-600:   #C13A22;
  --red-500:   #D2452B;
  --red-100:   #FBE4DF;

  /* ===================================================================
     Semantic aliases — reference these in components, not the ramps above
     =================================================================== */

  /* Brand */
  --brand-primary:        var(--blue-600);
  --brand-primary-hover:  var(--blue-700);
  --brand-primary-active: var(--blue-800);
  --brand-deep:           var(--blue-900);
  --brand-mark:           var(--blue-400);   /* logo blue — mark & on-dark accents */
  --brand-accent:         var(--ice-500);
  --brand-accent-hover:   var(--ice-600);

  /* Surfaces */
  --surface-page:      var(--gray-50);
  --surface-card:      var(--white);
  --surface-raised:    var(--white);
  --surface-sunken:    var(--gray-100);
  --surface-inverse:   var(--blue-900);
  --surface-inverse-2: var(--gray-950);
  --surface-accent:    var(--ice-100);

  /* Text */
  --text-strong:   var(--gray-950);
  --text-body:     var(--gray-800);
  --text-muted:    var(--gray-500);
  --text-subtle:   var(--gray-400);
  --text-inverse:  var(--white);
  --text-on-brand: var(--white);
  --text-link:     var(--blue-600);

  /* Borders / dividers */
  --border-subtle:  var(--gray-200);
  --border-default: var(--gray-300);
  --border-strong:  var(--gray-400);
  --border-brand:   var(--blue-600);
  --focus-ring:     var(--ice-500);

  /* Status semantics */
  --success:      var(--green-500);
  --success-bg:   var(--green-100);
  --warning:      var(--amber-500);
  --warning-bg:   var(--amber-100);
  --danger:       var(--red-500);
  --danger-bg:    var(--red-100);
  --info:         var(--blue-600);
  --info-bg:      var(--blue-100);
}

/* CMC Dry Ice — Typography tokens */
:root {
  --font-display: 'Oswald', 'Arial Narrow', system-ui, sans-serif;
  --font-body: 'Work Sans', system-ui, -apple-system, sans-serif;
  --font-mono: ui-monospace, 'SFMono-Regular', 'Menlo', monospace;

  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;

  --text-2xs: 0.6875rem;
  --text-xs:  0.75rem;
  --text-sm:  0.875rem;
  --text-md:  1rem;
  --text-lg:  1.125rem;
  --text-xl:  1.375rem;
  --text-2xl: 1.75rem;
  --text-3xl: 2.25rem;
  --text-4xl: 3rem;
  --text-5xl: 4rem;
  --text-6xl: 5.25rem;

  --lh-tight: 1.05;
  --lh-snug: 1.2;
  --lh-normal: 1.5;
  --lh-relaxed: 1.65;
  --ls-tight: -0.01em;
  --ls-normal: 0;
  --ls-wide: 0.04em;
  --ls-wider: 0.08em;
  --ls-caps: 0.14em;

  --heading-font: var(--font-display);
  --heading-weight: var(--fw-bold);
  --heading-transform: uppercase;
  --heading-tracking: var(--ls-wider);

  --body-font: var(--font-body);
  --body-size: var(--text-md);
  --body-leading: var(--lh-relaxed);

  --eyebrow-font: var(--font-body);
  --eyebrow-size: var(--text-2xs);
  --eyebrow-weight: var(--fw-semibold);
  --eyebrow-tracking: var(--ls-caps);
}

/* CMC Dry Ice — Spacing & layout tokens */
:root {
  --space-0: 0;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 2.5rem;
  --space-8: 3rem;
  --space-9: 4rem;
  --space-10: 5rem;
  --space-11: 6rem;
  --space-12: 8rem;

  --container-max: 1200px;
  --container-wide: 1360px;
  --gutter: var(--space-5);
  --section-pad-y: var(--space-11);
}

/* CMC Dry Ice — Elevation, radii, borders, motion */
:root {
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 10px;
  --radius-xl: 16px;
  --radius-pill: 999px;

  --border-width: 1px;
  --border-width-strong: 2px;

  --shadow-xs: 0 1px 2px rgba(11, 44, 74, 0.08);
  --shadow-sm: 0 1px 3px rgba(11, 44, 74, 0.10), 0 1px 2px rgba(11, 44, 74, 0.06);
  --shadow-md: 0 4px 12px rgba(11, 44, 74, 0.10), 0 2px 4px rgba(11, 44, 74, 0.06);
  --shadow-lg: 0 12px 28px rgba(11, 44, 74, 0.14), 0 4px 10px rgba(11, 44, 74, 0.08);
  --shadow-xl: 0 24px 48px rgba(11, 44, 74, 0.18);
  --shadow-focus: 0 0 0 3px rgba(47, 189, 224, 0.45);

  --ease-standard: cubic-bezier(0.2, 0, 0.2, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --dur-fast: 120ms;
  --dur-base: 200ms;
  --dur-slow: 320ms;

  --z-base: 1;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 900;
  --z-modal: 1000;
  --z-toast: 1100;
}

/* CMC Dry Ice — Base element styles & helpers */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--body-size);
  line-height: var(--body-leading);
  color: var(--text-body);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.on-dark, .on-dark h1, .on-dark h2, .on-dark h3, .on-dark h4, .on-dark h5, .on-dark h6 {
  color: var(--text-inverse);
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--heading-font);
  font-weight: var(--heading-weight);
  color: var(--text-strong);
  line-height: var(--lh-tight);
  margin: 0 0 var(--space-4);
}
.cmc-display {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: var(--ls-wider);
  line-height: var(--lh-tight);
  color: var(--text-strong);
}
.cmc-subhead {
  font-family: var(--font-body);
  font-style: italic;
  font-weight: var(--fw-medium);
  color: var(--brand-primary);
}
.cmc-eyebrow {
  font-family: var(--eyebrow-font);
  font-size: var(--eyebrow-size);
  font-weight: var(--eyebrow-weight);
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
  color: var(--brand-accent);
}
p { margin: 0 0 var(--space-4); }
a {
  color: var(--text-link);
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-standard);
}
a:hover { color: var(--brand-primary-hover); }
::selection { background: var(--ice-300); color: var(--gray-950); }
:focus-visible {
  outline: none;
  box-shadow: var(--shadow-focus);
  border-radius: var(--radius-sm);
}
img { max-width: 100%; display: block; }

/* ============================================================
   Below: the approved v2 mockup's own shared + page-specific CSS
   (Home / B2C / B2B), reused verbatim from mockups/website-v2.html
   ============================================================ */
:root { color-scheme: light; }
.frame { width:1280px; background:var(--white); overflow:hidden; border-radius:7px;
  box-shadow:0 30px 80px rgba(11,44,74,0.28); font-family:var(--font-body); color:var(--text-body); }
.flabel { font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.12em; font-size:15px;
  font-weight:700; color:var(--gray-800); margin-bottom:14px; display:flex; align-items:center; gap:12px; }
.flabel .tag { font-family:var(--font-body); font-size:11px; letter-spacing:0.04em; font-weight:600;
  background:var(--white); color:var(--text-muted); padding:4px 10px; border-radius:5px; box-shadow:var(--shadow-xs); text-transform:none; }
.flabel .tag.b2c { color:var(--ice-700); }
.flabel .tag.b2b { color:var(--blue-700); }
.frame i[data-lucide]{ display:inline-block; vertical-align:middle; }
.frame svg.lucide{ flex-shrink:0; }
.frame h1,.frame h2,.frame h3,.frame h4{ margin:0; }
.frame p{ margin:0; } .frame a{ text-decoration:none; }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; border:2px solid transparent; line-height:1; }

.ubar{ display:flex; align-items:stretch; }
.ubar .seg{ flex:1; display:flex; align-items:center; justify-content:center; gap:9px; padding:11px;
  font-size:12px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; }

.logo{ display:flex; align-items:center; gap:11px; }
.logo .b{ width:40px;height:40px;border-radius:5px;background:var(--brand-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:14px;}
.logo .w1{ font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:0.05em;font-size:18px;line-height:0.95;white-space:nowrap;}
.logo .w1{ line-height:1; }
.logo .w2{ font-size:8px;letter-spacing:0.22em;text-transform:uppercase;color:var(--ice-600);font-weight:600;line-height:1;margin-top:5px;}
.logo .mark-wrap{ width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--blue-950);border-radius:6px;}
.logo .mark-wrap.onfoot{ background:var(--ice-500); }

#home .foot.rfoot, #b2c .foot.rfoot, #b2b .foot.rfoot{ display:block; padding:52px var(--pad) 26px; }
.rfoot .cols{ display:grid; grid-template-columns:1.7fr 1fr 1fr 1.4fr; gap:40px; align-items:start; }
.rfoot .brand .logo{ margin-bottom:16px; }
.rfoot .brand .tag{ font-size:12.5px; line-height:1.6; color:var(--gray-400); max-width:300px; }
.rfoot .social{ display:flex; gap:10px; margin-top:16px; }
.rfoot .social a{ width:34px; height:34px; border-radius:4px; background:rgba(255,255,255,0.08); color:#fff; display:flex; align-items:center; justify-content:center; }
.rfoot .social a:hover{ background:rgba(255,255,255,0.16); }
.rfoot h5{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.1em; font-size:12px; color:#fff; margin:0 0 15px; }
.rfoot .fl{ display:block; font-size:13px; color:var(--gray-400); margin-bottom:9px; }
.rfoot .fl:hover{ color:#fff; }
.rfoot .emg{ font-family:var(--font-display); font-size:19px; color:#fff; letter-spacing:0.02em; margin-bottom:4px; }
.rfoot .ln{ font-size:12.5px; color:var(--gray-400); line-height:1.55; margin-bottom:12px; }
.rfoot .ln b{ color:#fff; font-weight:600; }
.rfoot .vosb{ display:inline-flex; align-items:center; gap:9px; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.14); border-radius:5px; padding:9px 13px; font-size:11px; letter-spacing:0.02em; color:var(--gray-300); margin-top:4px; }
.rfoot .vosb i{ color:var(--brand-accent); }
.rfoot .bar{ border-top:1px solid rgba(255,255,255,0.1); margin-top:38px; padding-top:20px; display:flex; justify-content:space-between; align-items:center; font-size:11.5px; color:var(--gray-500); }
.rfoot .bar a{ color:var(--gray-500); }
.rfoot .bar a:hover{ color:var(--gray-300); }

#home{ --pad:72px; }
#home .ubar{ background:var(--gray-950); }
#home .ubar .seg{ color:var(--gray-400); cursor:pointer; }
#home .ubar .seg.on{ background:var(--white); color:var(--text-strong); }
#home .ubar .seg.on.c{ color:var(--ice-700); box-shadow:inset 0 -3px 0 var(--ice-500); }
#home .ubar .seg.on.b{ color:var(--blue-700); box-shadow:inset 0 -3px 0 var(--brand-primary); }
#home .nav{ display:flex; align-items:center; justify-content:space-between; padding:18px var(--pad); border-bottom:1px solid var(--border-subtle); }
#home .nav .w1{ color:var(--text-strong); }
#home .nav nav{ display:flex; align-items:center; gap:26px; }
#home .nav a.link{ font-size:14px; font-weight:500; color:var(--text-body); }
#home .nav .phone{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.05em; font-size:13px; color:var(--brand-primary); font-weight:600; display:flex; gap:7px; align-items:center; }

#home .hero{ background:radial-gradient(800px 420px at 50% -15%, var(--ice-100), transparent 70%), linear-gradient(180deg,var(--blue-50),#fff); padding:72px var(--pad) 28px; text-align:center; }
#home .hero .eb{ font-size:12px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--ice-600); }
#home .hero h1{ font-family:var(--font-display); font-weight:700; text-transform:uppercase; letter-spacing:0.02em; line-height:0.95; font-size:64px; color:var(--text-strong); margin:18px auto 0; max-width:880px; }
#home .hero .lead{ font-size:18px; color:var(--text-muted); margin:18px auto 0; max-width:620px; line-height:1.6; }

#home .fork{ display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:44px var(--pad) 8px; }
#home .fcard{ position:relative; border-radius:9px; overflow:hidden; padding:38px; min-height:300px; display:flex; flex-direction:column; }
#home .fcard.c{ background:linear-gradient(165deg,#fff,var(--ice-100)); border:1px solid var(--ice-200); }
#home .fcard.b{ background:linear-gradient(165deg,var(--blue-900),var(--gray-950)); color:#fff; }
#home .fcard .ic{ width:56px;height:56px;border-radius:7px;display:flex;align-items:center;justify-content:center;margin-bottom:22px; }
#home .fcard.c .ic{ background:var(--ice-500); color:#fff; }
#home .fcard.b .ic{ background:rgba(255,255,255,0.12); color:var(--brand-accent); }
#home .fcard .kicker{ font-size:11px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; }
#home .fcard.c .kicker{ color:var(--ice-700); }
#home .fcard.b .kicker{ color:var(--brand-accent); }
#home .fcard h2{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:30px; margin:10px 0 12px; }
#home .fcard.c h2{ color:var(--text-strong); }
#home .fcard.b h2{ color:#fff; }
#home .fcard p{ font-size:15px; line-height:1.6; }
#home .fcard.c p{ color:var(--text-muted); }
#home .fcard.b p{ color:var(--ice-200); }
#home .fcard ul{ list-style:none; padding:0; margin:18px 0 0; display:flex; flex-direction:column; gap:9px; }
#home .fcard li{ display:flex; gap:10px; align-items:center; font-size:13.5px; }
#home .fcard.c li{ color:var(--text-body); } #home .fcard.b li{ color:#dCEBF5; }
#home .fcard li i{ } #home .fcard.c li i{ color:var(--ice-600);} #home .fcard.b li i{ color:var(--brand-accent);}
#home .fcard .go{ margin-top:auto; padding-top:24px; }
#home .fcard.c .cbtn{ background:var(--ice-600); color:#fff; padding:14px 24px; border-radius:9px; font-family:var(--font-body); font-weight:600; font-size:14px; display:inline-flex; gap:8px; align-items:center; }
#home .fcard.b .cbtn{ background:#fff; color:var(--brand-deep); padding:14px 24px; border-radius:9px; font-family:var(--font-body); font-weight:600; font-size:14px; display:inline-flex; gap:8px; align-items:center; }
#home .fcard .tagrow{ position:absolute; top:32px; right:32px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.06em; padding:6px 11px; border-radius:6px; }
#home .fcard.c .tagrow{ background:var(--white); color:var(--ice-700); box-shadow:var(--shadow-xs); }
#home .fcard.b .tagrow{ background:rgba(255,255,255,0.14); color:#fff; }

#home .strip{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; padding:40px var(--pad); margin-top:24px; border-top:1px solid var(--border-subtle); }
#home .strip .cell{ text-align:center; border-right:1px solid var(--border-subtle); }
#home .strip .cell:last-child{ border-right:none; }
#home .strip .n{ font-family:var(--font-display); font-weight:700; font-size:40px; color:var(--brand-primary); line-height:1; }
#home .strip .l{ font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:var(--text-muted); font-weight:600; margin-top:8px; }
#home .foot{ background:var(--gray-950); color:var(--gray-400); padding:40px var(--pad); display:flex; justify-content:space-between; align-items:center; }
#home .foot .w1{ color:#fff; } #home .foot .small{ font-size:12px; }

#b2c{ --pad:64px; }
#b2c .ubar{ background:var(--gray-950); }
#b2c .ubar .seg{ color:var(--gray-400); cursor:pointer; }
#b2c .ubar .seg.on{ background:var(--white); color:var(--ice-700); box-shadow:inset 0 -3px 0 var(--ice-500); }
#b2c .nav{ display:flex; align-items:center; justify-content:space-between; padding:18px var(--pad); border-bottom:1px solid var(--border-subtle); }
#b2c .nav .w1{ color:var(--text-strong); } #b2c .logo .w2{ color:var(--ice-600); }
#b2c .nav nav{ display:flex; align-items:center; gap:24px; }
#b2c .nav a.link{ font-size:14px; font-weight:500; color:var(--text-body); }
#b2c .nav a.link.active{ color:var(--ice-700); font-weight:600; }
#b2c .cart{ background:var(--ice-600); color:#fff; padding:10px 16px; border-radius:9px; font-size:13px; font-weight:600; display:inline-flex; gap:8px; align-items:center; }
#b2c .cart .dot{ background:#fff; color:var(--ice-700); border-radius:5px; width:18px; height:18px; font-size:11px; display:flex; align-items:center; justify-content:center; }

#b2c .hero{ background:radial-gradient(800px 420px at 50% -15%, var(--ice-100), transparent 70%), linear-gradient(180deg,var(--blue-50),#fff); padding:54px var(--pad); display:grid; grid-template-columns:1fr 0.9fr; gap:40px; align-items:center; }
#b2c .hero .chip{ display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--border-subtle); box-shadow:var(--shadow-xs); padding:7px 14px; border-radius:8px; font-size:12.5px; color:var(--text-muted); font-weight:500; }
#b2c .hero .chip i{ color:var(--ice-600); }
#b2c .hero h1{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.02em; font-size:54px; line-height:0.96; color:var(--text-strong); margin:18px 0 0; }
#b2c .hero h1 em{ color:var(--ice-600); font-style:normal; }
#b2c .hero p{ font-size:16px; color:var(--text-muted); line-height:1.6; margin-top:16px; max-width:440px; }
#b2c .hero .b1{ background:var(--ice-600); color:#fff; padding:15px 26px; border-radius:9px; font-family:var(--font-body); font-weight:600; font-size:15px; margin-top:24px; display:inline-flex; gap:8px; align-items:center; }
#b2c .hero .art{ background:#fff; border:1px solid var(--border-subtle); border-radius:9px; box-shadow:var(--shadow-lg); padding:26px; }
#b2c .hero .art .pic{ aspect-ratio:800/446; border-radius:6px; background:linear-gradient(160deg,var(--ice-100),var(--blue-100)); display:flex; align-items:center; justify-content:center; color:var(--blue-400); overflow:hidden; }
#b2c .hero .art .pic img{ width:100%; height:100%; object-fit:cover; }
#b2c .hero .art .ship{ display:flex; align-items:center; gap:12px; margin-top:18px; }
#b2c .hero .art .ship .s{ flex:1; text-align:center; font-size:11px; color:var(--text-muted); }
#b2c .hero .art .ship .s .ico{ width:36px;height:36px;border-radius:5px;background:var(--surface-accent);color:var(--ice-700);display:flex;align-items:center;justify-content:center;margin:0 auto 7px;}

#b2c .fulfil{ padding:36px var(--pad) 0; display:grid; grid-template-columns:1fr 1fr; gap:20px; }
#b2c .fopt{ display:flex; gap:16px; align-items:flex-start; background:#fff; border:1px solid var(--border-subtle); border-radius:8px; padding:22px 24px; box-shadow:var(--shadow-sm); }
#b2c .fopt .ic{ width:46px;height:46px;border-radius:6px;background:var(--surface-accent);color:var(--ice-700);display:flex;align-items:center;justify-content:center;flex-shrink:0; }
#b2c .fopt h4{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:16px; color:var(--text-strong); display:flex; align-items:center; gap:10px; }
#b2c .fopt .tag{ font-family:var(--font-body); font-size:10px; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; color:var(--ice-700); background:var(--surface-accent); padding:3px 9px; border-radius:5px; }
#b2c .fopt p{ font-size:13px; color:var(--text-muted); line-height:1.55; margin-top:6px; }

#b2c .sec{ padding:56px var(--pad); }
#b2c .secHead{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:30px; }
#b2c .secHead .eb{ font-size:12px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--ice-600); }
#b2c .secHead h2{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:34px; color:var(--text-strong); margin-top:8px; }
#b2c .secHead .link{ font-size:13px; color:var(--ice-700); font-weight:600; }
#b2c .grid4{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
#b2c .pcard{ background:#fff; border:1px solid var(--border-subtle); border-radius:8px; overflow:hidden; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; }
#b2c .pcard .img{ aspect-ratio:800/446; background:linear-gradient(160deg,var(--ice-100),var(--blue-100)); display:flex; align-items:center; justify-content:center; color:var(--blue-400); overflow:hidden; }
#b2c .pcard .img img{ width:100%; height:100%; object-fit:cover; }
#b2c .pcard .body{ padding:18px; display:flex; flex-direction:column; gap:6px; flex:1; }
#b2c .pcard h3{ font-size:15px; color:var(--text-strong); }
#b2c .pcard .desc{ font-size:12px; color:var(--text-muted); line-height:1.45; }
#b2c .pcard .price{ font-family:var(--font-display); font-weight:700; font-size:21px; color:var(--ice-700); margin-top:auto; padding-top:4px; }
#b2c .pcard .price small{ font-size:11px; color:var(--text-subtle); font-weight:400; font-family:var(--font-body); }
#b2c .pcard .qty{ display:flex; align-items:center; justify-content:space-between; border:1px solid var(--border-default); border-radius:8px; padding:6px 10px; margin-top:6px; }
#b2c .pcard .qty button{ width:24px;height:24px;border-radius:3px;border:none;background:var(--surface-accent);color:var(--ice-700);font-weight:700;cursor:pointer; }
#b2c .pcard .qty span{ font-size:13px; font-weight:600; color:var(--text-strong); }
#b2c .pcard .add{ background:var(--ice-600); color:#fff; border:none; padding:11px; border-radius:9px; font-family:var(--font-body); font-weight:600; font-size:13px; cursor:pointer; margin-top:10px; display:flex; align-items:center; justify-content:center; gap:7px; }

#b2c .ship3{ background:var(--surface-page); border-radius:9px; padding:36px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
#b2c .ship3 .step{ display:flex; gap:14px; align-items:flex-start; }
#b2c .ship3 .num{ width:40px;height:40px;border-radius:6px;background:var(--ice-600);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;flex-shrink:0; }
#b2c .ship3 h4{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:15px; color:var(--text-strong); }
#b2c .ship3 p{ font-size:13px; color:var(--text-muted); margin-top:5px; line-height:1.5; }
#b2c .foot{ background:var(--blue-950); color:var(--gray-400); padding:40px var(--pad); display:flex; justify-content:space-between; align-items:center; }
#b2c .foot .w1{ color:#fff; } #b2c .foot .small{ font-size:12px; }

/* B2C — call-to-order fallback */
#b2c .callnote{ display:flex; align-items:center; gap:14px; background:var(--blue-50); border:1px solid var(--blue-100); border-radius:6px; padding:16px 20px; margin-top:24px; }
#b2c .callnote .ic{ width:40px;height:40px;border-radius:5px;background:#fff;border:1px solid var(--border-subtle);color:var(--brand-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0; }
#b2c .callnote .tx{ font-size:13.5px; color:var(--text-body); line-height:1.5; }
#b2c .callnote .tx b{ color:var(--text-strong); }
#b2c .callnote .num{ margin-left:auto; font-family:var(--font-display); font-size:20px; color:var(--brand-primary); letter-spacing:0.02em; white-space:nowrap; }

/* B2C — safety */
#b2c .safety{ padding:0 var(--pad) 18px; }
#b2c .safety .box{ background:var(--amber-100); border:1px solid #EFD9A8; border-radius:9px; padding:34px 36px; }
#b2c .safety .hd{ display:flex; align-items:center; gap:14px; margin-bottom:24px; }
#b2c .safety .hd .badge{ width:46px;height:46px;border-radius:6px;background:var(--amber-600);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
#b2c .safety .hd .eb{ font-size:11px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--amber-600); }
#b2c .safety .hd h2{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:26px; color:var(--text-strong); margin-top:3px; }
#b2c .safety .row{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
#b2c .safety .s{ display:flex; gap:13px; align-items:flex-start; }
#b2c .safety .s .ic{ width:40px;height:40px;border-radius:5px;background:#fff;color:var(--amber-600);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid #EAD7A6; }
#b2c .safety .s h4{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:15px; color:var(--text-strong); }
#b2c .safety .s p{ font-size:13px; color:var(--gray-700); line-height:1.55; margin-top:5px; }
#b2c .safety .sds{ display:inline-flex; align-items:center; gap:9px; margin-top:26px; background:var(--gray-950); color:#fff; padding:12px 18px; border-radius:9px; font-family:var(--font-body); font-weight:600; font-size:13px; }

/* B2C — cooler calculator promo */
#b2c .calc{ padding:44px var(--pad) 56px; }
#b2c .calc .band{ background:radial-gradient(500px 240px at 12% 0%, rgba(47,189,224,0.35), transparent 70%), linear-gradient(120deg,var(--brand-primary),var(--ice-700)); border-radius:10px; color:#fff; padding:38px 44px; display:flex; align-items:center; gap:26px; }
#b2c .calc .ic{ width:64px;height:64px;border-radius:8px;background:rgba(255,255,255,0.16);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
#b2c .calc .tx{ flex:1; }
#b2c .calc h3{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:24px; color:#fff; }
#b2c .calc p{ font-size:14.5px; color:var(--ice-100); margin-top:8px; line-height:1.55; max-width:520px; }
#b2c .calc .btn2{ background:#fff; color:var(--brand-deep); padding:14px 24px; border-radius:9px; font-family:var(--font-body); font-weight:600; font-size:14px; display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }

/* =====================================================================
   B2B — SOLUTIONS / SUPPLY (bold, industrial)
   ===================================================================== */
#b2b{ --pad:64px; }
#b2b .ubar{ background:var(--gray-950); }
#b2b .ubar .seg{ color:var(--gray-400); }
#b2b .ubar .seg.on{ background:var(--white); color:var(--blue-700); box-shadow:inset 0 -3px 0 var(--brand-primary); }
#b2b .nav{ display:flex; align-items:center; justify-content:space-between; padding:18px var(--pad); background:var(--gray-950); }
#b2b .nav .w1{ color:#fff; }
#b2b .nav nav{ display:flex; align-items:center; gap:26px; }
#b2b .nav a.link{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.06em; font-size:13px; font-weight:600; color:var(--gray-300); }
#b2b .nav a.link.active{ color:#fff; border-bottom:2px solid var(--brand-accent); padding-bottom:3px; }
#b2b .nav .quote{ background:var(--brand-accent); color:var(--gray-950); padding:11px 18px; border-radius:4px; font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.05em; font-size:12px; font-weight:600; }

#b2b .hero{ position:relative; background:radial-gradient(820px 440px at 80% -10%, rgba(47,189,224,0.26), transparent 60%), linear-gradient(165deg,#07223a,var(--gray-950)); color:#fff; padding:74px var(--pad); display:grid; grid-template-columns:1.1fr 0.9fr; gap:44px; align-items:center; }
#b2b .hero .eb{ font-size:12px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--brand-accent); }
#b2b .hero h1{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.02em; font-size:56px; line-height:0.94; color:#fff; margin:18px 0 0; }
#b2b .hero .sub{ font-style:italic; font-size:18px; color:var(--ice-200); margin-top:18px; max-width:460px; line-height:1.5; }
#b2b .hero .cta{ display:flex; gap:14px; margin-top:30px; }
#b2b .hero .c1{ background:var(--brand-accent); color:var(--gray-950); padding:16px 26px; border-radius:4px; font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.05em; font-size:14px; font-weight:600; }
#b2b .hero .c2{ background:transparent; border-color:rgba(255,255,255,0.4); color:#fff; padding:16px 26px; border-radius:4px; font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.05em; font-size:14px; font-weight:600; }
#b2b .map{ position:relative; height:330px; border:1px solid rgba(255,255,255,0.14); border-radius:5px; background:rgba(5,9,13,0.45); overflow:hidden; }
#b2b .map .ring{ position:absolute; border:1px solid rgba(47,189,224,0.35); border-radius:999px; }
#b2b .map .pin{ position:absolute; display:flex; flex-direction:column; align-items:center; gap:6px; transform:translate(-50%,-50%); }
#b2b .map .pin .d{ width:14px;height:14px;border-radius:999px;background:var(--brand-accent); box-shadow:0 0 0 6px rgba(47,189,224,0.2); }
#b2b .map .pin .t{ font-size:11px; font-weight:600; color:#fff; white-space:nowrap; }
#b2b .map .legend{ position:absolute; bottom:14px; left:14px; font-size:10.5px; color:var(--gray-400); }

#b2b .vals{ padding:64px var(--pad); }
#b2b .secHead .eb{ font-size:12px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--ice-600); }
#b2b .secHead h2{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:40px; color:var(--text-strong); margin-top:12px; }
#b2b .vgrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--border-subtle); border:1px solid var(--border-subtle); margin-top:36px; }
#b2b .vcell{ background:#fff; padding:32px; }
#b2b .vcell .ic{ width:50px;height:50px;border-radius:4px;background:var(--surface-accent);color:var(--ice-700);display:flex;align-items:center;justify-content:center; }
#b2b .vcell h4{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:18px; color:var(--text-strong); margin-top:16px; }
#b2b .vcell p{ font-size:14px; color:var(--text-muted); margin-top:8px; line-height:1.6; }

#b2b .indSec{ background:var(--gray-950); padding:56px var(--pad); }
#b2b .indSec .eb{ text-align:center; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--brand-accent); font-weight:600; }
#b2b .indSec h2{ text-align:center; font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:30px; color:#fff; margin:10px 0 44px; }
#b2b .indrow{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
#b2b .indrow .chip{ background:#0e1f30; border:1px solid rgba(255,255,255,0.1); color:#cfe0ec; border-radius:3px; padding:11px 18px; font-size:13.5px; font-weight:500; display:flex; align-items:center; gap:9px; }
#b2b .indrow .chip i{ color:var(--brand-accent); }
#b2b .indrow .chip{ white-space:nowrap; }
#b2b .icols{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; max-width:var(--container-max); margin:0 auto; background:rgba(255,255,255,0.09); border:1px solid rgba(255,255,255,0.09); }
#b2b .icol{ background:var(--gray-950); padding:26px 24px 30px; }
#b2b .icol .ih{ display:flex; align-items:center; gap:10px; min-height:47px; padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,0.09); margin-bottom:16px; color:var(--brand-accent); }
#b2b .icol .ih i, #b2b .icol .ih svg{ flex-shrink:0; }
#b2b .icol .ih h3{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.08em; font-size:12.5px; font-weight:600; color:#fff; line-height:1.3; }
#b2b .icol ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
#b2b .icol li{ font-size:14px; color:#cfe0ec; line-height:1.4; }

#b2b .quoteBand{ background:linear-gradient(120deg,var(--brand-primary),var(--ice-700)); color:#fff; padding:60px var(--pad); display:grid; grid-template-columns:1.2fr 0.8fr; gap:40px; align-items:center; }
#b2b .quoteBand h2{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:38px; color:#fff; line-height:1.02; }
#b2b .quoteBand p{ font-style:italic; font-size:16px; color:var(--ice-100); margin-top:14px; }
#b2b .qform{ background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.25); border-radius:6px; padding:24px; display:flex; flex-direction:column; gap:12px; }
#b2b .qform .f{ background:rgba(255,255,255,0.9); border-radius:4px; padding:12px 14px; font-size:13px; color:var(--text-muted); }
#b2b .qform .submit{ background:var(--gray-950); color:#fff; padding:14px; border-radius:4px; font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.05em; font-size:13px; font-weight:600; text-align:center; }
#b2b .foot{ background:var(--gray-950); color:var(--gray-400); padding:40px var(--pad); display:flex; justify-content:space-between; align-items:center; border-top:3px solid var(--brand-accent); }
#b2b .foot .w1{ color:#fff; } #b2b .foot .small{ font-size:12px; }

/* =====================================================================
   SHARED — Contact / order / quote forms (shop-contact.html, business-contact.html)
   ===================================================================== */
.cform-wrap{ padding:56px var(--pad) 72px; }
.cform{ max-width:640px; margin:0 auto; background:#fff; border:1px solid var(--border-subtle); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:40px; }
.cform h2{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:24px; color:var(--text-strong); margin-bottom:6px; }
.cform .csub{ font-size:13.5px; color:var(--text-muted); margin-bottom:28px; line-height:1.55; }
.cform .row2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cform .field{ display:flex; flex-direction:column; gap:6px; margin-bottom:18px; }
.cform label{ font-size:12.5px; font-weight:600; color:var(--text-strong); }
.cform label .req{ color:var(--red-500); margin-left:2px; }
.cform input[type=text], .cform input[type=email], .cform input[type=tel], .cform input[type=number], .cform input[type=date], .cform select, .cform textarea{
  font-family:var(--font-body); font-size:14.5px; color:var(--text-body); background:#fff;
  border:1px solid var(--border-default); border-radius:var(--radius-sm); padding:11px 13px; width:100%;
}
.cform textarea{ min-height:96px; resize:vertical; }
.cform select{ appearance:none; -webkit-appearance:none; background-repeat:no-repeat; background-position:right 13px center;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%236B7E8B'/></svg>");
  padding-right:34px; }
.cform .checks{ display:flex; flex-wrap:wrap; gap:9px 20px; }
.cform .check-item, .cform .radio-item{ display:flex; align-items:center; gap:7px; font-size:13.5px; color:var(--text-body); font-weight:400; }
.cform .radios{ display:flex; gap:20px; flex-wrap:wrap; }
.cform .hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.cform .submit-btn{ background:var(--ice-600); color:#fff; border:none; padding:14px 26px; border-radius:9px; font-family:var(--font-body); font-weight:600; font-size:14.5px; cursor:pointer; display:inline-flex; align-items:center; gap:8px; width:100%; justify-content:center; }
.cform .submit-btn:hover{ background:var(--ice-700); }
.cform .submit-btn.dark{ background:var(--brand-accent); color:var(--gray-950); }
.cform .submit-btn.dark:hover{ background:var(--ice-600); color:#fff; }
.cform .fnote{ font-size:12px; color:var(--text-subtle); margin-top:14px; text-align:center; }
.cform-msg{ display:none; max-width:640px; margin:0 auto 24px; border-radius:var(--radius-lg); padding:22px 28px; text-align:center; }
.cform-msg.show{ display:block; }
.cform-msg.success{ background:var(--green-100); border:1px solid #bfe3cd; }
.cform-msg.success h3{ color:var(--green-600); }
.cform-msg.error{ background:var(--red-100); border:1px solid #f0c4ba; }
.cform-msg.error h3{ color:var(--red-600); }
.cform-msg h3{ font-family:var(--font-display); text-transform:uppercase; font-size:16px; margin-bottom:4px; }
.cform-msg p{ font-size:13.5px; color:var(--text-body); margin:0; }

/* =====================================================================
   SHARED — Legal content pages (privacy-policy.html, terms-of-service.html)
   ===================================================================== */
.legal-wrap{ padding:56px var(--pad) 72px; }
.legal{ max-width:760px; margin:0 auto; }
.legal .updated{ font-size:12.5px; color:var(--text-subtle); margin-bottom:22px; }
.legal h1{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.02em; font-size:36px; color:var(--text-strong); margin-bottom:6px; }
.legal .intro{ font-size:15.5px; color:var(--text-muted); line-height:1.65; margin-bottom:8px; }
.legal h2{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.02em; font-size:17px; color:var(--text-strong); margin-top:34px; margin-bottom:10px; padding-top:26px; border-top:1px solid var(--border-subtle); }
.legal h2:first-of-type{ border-top:none; padding-top:0; margin-top:28px; }
.legal p{ font-size:14.5px; color:var(--text-body); line-height:1.7; margin-bottom:14px; }
.legal ul, .legal ol{ margin:0 0 14px; padding-left:22px; }
.legal li{ font-size:14.5px; color:var(--text-body); line-height:1.65; margin-bottom:7px; }
.legal a{ color:var(--text-link); }
.legal .contactbox{ background:var(--blue-50); border:1px solid var(--blue-100); border-radius:8px; padding:20px 24px; margin-top:8px; }
.legal .contactbox p{ margin-bottom:4px; font-size:14px; }
.legal .contactbox p:last-child{ margin-bottom:0; }

/* =====================================================================
   SHARED — About page (about.html)
   ===================================================================== */
.abt-hero{ background:radial-gradient(800px 420px at 50% -15%, var(--ice-100), transparent 70%), linear-gradient(180deg,var(--blue-50),#fff); padding:64px var(--pad) 48px; text-align:center; }
.abt-hero .eb{ font-size:12px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--ice-600); }
.abt-hero h1{ font-family:var(--font-display); font-weight:700; text-transform:uppercase; letter-spacing:0.02em; font-size:46px; color:var(--text-strong); margin:14px auto 0; max-width:760px; line-height:1.08; }
.abt-hero p{ font-size:17px; color:var(--text-muted); margin:16px auto 0; max-width:600px; line-height:1.6; }

.abt-sec{ padding:56px var(--pad); }
.abt-sec.narrow{ max-width:760px; margin:0 auto; }
.abt-sec .eb{ font-size:12px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--ice-600); display:block; margin-bottom:8px; }
.abt-sec h2{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:30px; color:var(--text-strong); margin-bottom:18px; }
.abt-sec p{ font-size:15px; color:var(--text-body); line-height:1.75; margin-bottom:16px; }

.abt-values{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:8px; }
.abt-vcell{ background:#fff; border:1px solid var(--border-subtle); border-radius:9px; padding:26px; box-shadow:var(--shadow-sm); }
.abt-vcell .ic{ width:44px;height:44px;border-radius:6px;background:var(--surface-accent);color:var(--ice-700);display:flex;align-items:center;justify-content:center;margin-bottom:16px; }
.abt-vcell h4{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.02em; font-size:15px; color:var(--text-strong); margin-bottom:8px; }
.abt-vcell p{ font-size:13.5px; color:var(--text-muted); line-height:1.55; margin:0; }

.abt-visit{ background:var(--surface-page); border-radius:10px; padding:40px; display:grid; grid-template-columns:1fr 1fr; gap:36px; margin-top:8px; }
.abt-visit h3{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.02em; font-size:19px; color:var(--text-strong); margin-bottom:10px; }
.abt-visit p{ font-size:14px; color:var(--text-body); line-height:1.65; margin-bottom:14px; }
.abt-visit .detail{ font-size:13.5px; color:var(--text-muted); margin-bottom:6px; }
.abt-visit .detail b{ color:var(--text-strong); }
.abt-visit .vlink{ font-size:13.5px; font-weight:600; color:var(--ice-700); display:inline-flex; align-items:center; gap:6px; }

.abt-cta{ background:linear-gradient(120deg,var(--brand-primary),var(--ice-700)); border-radius:10px; margin:0 var(--pad) 56px; padding:38px 44px; display:flex; align-items:center; justify-content:space-between; gap:24px; color:#fff; }
.abt-cta h3{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.02em; font-size:22px; color:#fff; margin-bottom:6px; }
.abt-cta p{ font-size:14px; color:var(--ice-100); margin:0; }
.abt-cta .btns{ display:flex; gap:12px; flex-shrink:0; }
.abt-cta .btn3{ background:#fff; color:var(--brand-deep); padding:13px 22px; border-radius:9px; font-family:var(--font-body); font-weight:600; font-size:14px; display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
.abt-cta .btn4{ background:transparent; border:2px solid rgba(255,255,255,0.5); color:#fff; padding:11px 20px; border-radius:9px; font-family:var(--font-body); font-weight:600; font-size:14px; white-space:nowrap; }

/* =====================================================================
   SHARED — About page: Meet the Team (about.html)
   ===================================================================== */
.abt-team{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:8px; }
.abt-person{ background:#fff; border:1px solid var(--border-subtle); border-radius:9px; padding:24px; box-shadow:var(--shadow-sm); }
.abt-person .avatar{ width:52px;height:52px;border-radius:999px;background:var(--ice-500);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:16px;margin-bottom:14px; }
.abt-person h4{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.02em; font-size:15px; color:var(--text-strong); margin-bottom:2px; }
.abt-person .role{ font-size:11.5px; font-weight:600; color:var(--ice-700); text-transform:uppercase; letter-spacing:0.04em; margin-bottom:10px; display:block; }
.abt-person p{ font-size:13px; color:var(--text-muted); line-height:1.55; margin:0; }

/* =====================================================================
   SHARED — Learn page: uses grid + safety panel (learn.html)
   ===================================================================== */
.lrn-uses{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:8px; }
.lrn-use{ background:#fff; border:1px solid var(--border-subtle); border-radius:8px; padding:20px; display:flex; gap:12px; align-items:flex-start; box-shadow:var(--shadow-sm); }
.lrn-use .ic{ width:38px;height:38px;border-radius:6px;background:var(--surface-accent);color:var(--ice-700);display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.lrn-use h4{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.02em; font-size:13px; color:var(--text-strong); margin-bottom:4px; }
.lrn-use p{ font-size:12.5px; color:var(--text-muted); line-height:1.5; margin:0; }

.dry-safety{ padding:0 var(--pad) 64px; }  /* bottom pad matches the 64px gap
   above the safety box, so it sits evenly between the DIY band and the CTA.
   Was 18px, which left the CTA visibly crowded against it. */
.dry-safety .box{ background:var(--amber-100); border:1px solid #EFD9A8; border-radius:9px; padding:34px 36px; }
.dry-safety .hd{ display:flex; align-items:center; gap:14px; margin-bottom:24px; }
.dry-safety .hd .badge{ width:46px;height:46px;border-radius:6px;background:var(--amber-600);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.dry-safety .hd .eb{ font-size:11px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--amber-600); }
.dry-safety .hd h2{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:26px; color:var(--text-strong); margin-top:3px; }
.dry-safety .row{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.dry-safety .s{ display:flex; gap:13px; align-items:flex-start; }
.dry-safety .s .ic{ width:40px;height:40px;border-radius:5px;background:#fff;color:var(--amber-600);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid #EAD7A6; }
.dry-safety .s h4{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:15px; color:var(--text-strong); }
.dry-safety .s p{ font-size:13px; color:var(--gray-700); line-height:1.55; margin-top:5px; }
.dry-safety .never{ margin-top:26px; padding-top:24px; border-top:1px solid #EFD9A8; display:grid; grid-template-columns:repeat(2,1fr); gap:10px 24px; }
.dry-safety .never .n{ display:flex; gap:9px; align-items:flex-start; font-size:13px; color:var(--gray-700); line-height:1.5; }
.dry-safety .never .n i, .dry-safety .never .n svg{ color:var(--red-600); flex-shrink:0; margin-top:2px; }
.dry-safety .sds{ display:inline-flex; align-items:center; gap:9px; margin-top:26px; background:var(--gray-950); color:#fff; padding:12px 18px; border-radius:9px; font-family:var(--font-body); font-weight:600; font-size:13px; }

/* =====================================================================
   SHARED — Learn page: DIY freezer steps (learn.html)
   ===================================================================== */
.dry-steps{ background:var(--surface-page); border-radius:9px; padding:36px; margin:8px 0 0; }
.dry-steps .steplist{ display:flex; flex-direction:column; gap:20px; }
.dry-steps .step{ display:flex; gap:16px; align-items:flex-start; }
.dry-steps .num{ width:36px;height:36px;border-radius:6px;background:var(--ice-600);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;flex-shrink:0;font-size:14px; }
.dry-steps h4{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.02em; font-size:14px; color:var(--text-strong); margin-bottom:4px; }
.dry-steps p{ font-size:13.5px; color:var(--text-muted); line-height:1.6; margin:0; }

/* =====================================================================
   SHARED — Cooler Calculator page (cooler-calculator.html)
   ===================================================================== */
.calc-wrap{ padding:0 var(--pad) 56px; }
.calc-card{ max-width:640px; margin:0 auto; background:#fff; border:1px solid var(--border-subtle); border-radius:var(--radius-lg); box-shadow:var(--shadow-md); padding:40px 44px; }
.calc-modes{ display:flex; gap:10px; margin-bottom:32px; }
.calc-mode{ flex:1; display:flex; align-items:center; justify-content:center; gap:8px; text-align:center; padding:13px; border-radius:9px; border:1px solid var(--border-default); background:#fff; font-family:var(--font-body); font-weight:600; font-size:13.5px; color:var(--text-muted); cursor:pointer; transition:all var(--dur-base) var(--ease-standard); }
.calc-mode.active{ background:var(--ice-600); border-color:var(--ice-600); color:#fff; }
.calc-field{ margin-bottom:30px; }
.calc-label{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:14px; }
.calc-label span:first-child{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.04em; font-size:13px; color:var(--text-strong); font-weight:600; }
.calc-val{ font-family:var(--font-display); font-size:18px; color:var(--ice-700); font-weight:700; }
.calc-range{ -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:99px; background:var(--border-default); outline:none; cursor:pointer; }
.calc-range::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:22px; height:22px; border-radius:999px; background:#fff; border:3px solid var(--ice-600); box-shadow:var(--shadow-sm); cursor:pointer; }
.calc-range::-moz-range-thumb{ width:22px; height:22px; border-radius:999px; background:#fff; border:3px solid var(--ice-600); box-shadow:var(--shadow-sm); cursor:pointer; border:none; }
.calc-result{ background:var(--surface-page); border-radius:9px; padding:30px; text-align:center; margin-bottom:26px; }
.calc-result-label{ font-size:11px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-muted); margin-bottom:10px; }
.calc-result-value{ font-family:var(--font-display); font-size:48px; font-weight:700; color:var(--brand-primary); line-height:1; }
.calc-note{ font-size:12px; color:var(--text-subtle); line-height:1.55; margin:16px auto 0; max-width:440px; }
.calc-cta{ display:flex; align-items:center; justify-content:center; gap:9px; background:var(--ice-600); color:#fff; padding:15px; border-radius:9px; font-family:var(--font-body); font-weight:600; font-size:15px; }
.calc-cta:hover{ background:var(--ice-700); color:#fff; }

.calc-tip{ display:flex; gap:16px; align-items:flex-start; background:var(--blue-50); border:1px solid var(--blue-100); border-radius:8px; padding:20px 24px; margin-top:8px; }
.calc-tip .ic{ width:40px;height:40px;border-radius:5px;background:#fff;border:1px solid var(--border-subtle);color:var(--brand-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.calc-tip p{ font-size:13.5px; color:var(--text-body); line-height:1.55; margin:0; }
.calc-tip a{ font-weight:600; }

/* =====================================================================
   ULTRAWIDE — full-bleed section backgrounds, capped content measure.
   padding-inline grows past --pad once the viewport exceeds --measure,
   so backgrounds still run edge to edge but no line of text gets longer
   than the intended measure. Small-screen rules in responsive.css use
   the padding shorthand and therefore still win below 1024px.
   Trial scope: the #b2b shell (business.html, business-contact.html).
   ===================================================================== */
.frame{ --measure:1240px; }

/* Every full-bleed, --pad-padded section. Backgrounds still span the
   viewport; the content column stops at --measure. */
#home .nav, #home .hero, #home .fork, #home .strip, #home .foot, #home .foot.rfoot,
#b2c .nav, #b2c .hero, #b2c .fulfil, #b2c .sec, #b2c .safety, #b2c .calc, #b2c .foot, #b2c .foot.rfoot,
#b2b .nav, #b2b .hero, #b2b .vals, #b2b .indSec, #b2b .quoteBand, #b2b .foot, #b2b .foot.rfoot,
.cform-wrap, .legal-wrap, .abt-hero, .abt-sec, .dry-safety, .calc-wrap{
  padding-inline: max(var(--pad), calc((100% - var(--measure)) / 2));
}
/* .abt-cta is inset by margin rather than padding */
.abt-cta{ margin-inline: max(var(--pad), calc((100% - var(--measure)) / 2)); }
/* .abt-sec.narrow is already max-width capped and centred, so it keeps the
   plain gutter — the max() padding would resolve against the full viewport
   and crush its content to zero width. */
.abt-sec.narrow{ padding-inline: var(--pad); }
#b2b .icols{ max-width:var(--measure); }

/* =====================================================================
   ABOUT — Our Story band + Meet The Team (photo layouts).
   Team photos are local WebP files in assets/images/team/.
   ===================================================================== */
/* --- Section rhythm helpers: break up runs of consecutive white sections.
   Guidelines call for white -> sunken gray -> white -> dark navy. --- */
.at-onGray{ background:var(--surface-sunken); }
/* sections that relied on a neighbour's padding need their own once tinted */
.calc-wrap.at-onGray{ padding-top:40px; }
#b2c .sec.at-onGray{ border-block:1px solid var(--border-subtle); }
.at-onGray .abt-vcell, .at-onGray .lrn-use{ box-shadow:var(--shadow-md); }
.at-onNavy{ background:radial-gradient(820px 440px at 82% -10%, rgba(47,189,224,0.22), transparent 62%), linear-gradient(165deg,#07223a,var(--gray-950)); color:#fff; }
.at-onNavy .eb{ color:var(--brand-accent) !important; }
.at-onNavy h2, .at-onNavy h3{ color:#fff; }
.at-onNavy p{ color:#c8dced; }
.at-onNavy .abt-vcell, .at-onNavy .lrn-use{ background:rgba(255,255,255,0.05); border-color:rgba(255,255,255,0.12); box-shadow:none; }
.at-onNavy .abt-vcell h4, .at-onNavy .lrn-use h4{ color:#fff; }
.at-onNavy .abt-vcell p, .at-onNavy .lrn-use p{ color:#a9c2d4; }
.at-onNavy .abt-vcell .ic, .at-onNavy .lrn-use .ic{ background:rgba(47,189,224,0.14); color:var(--brand-accent); }

/* Proof-point strip */
.at-strip{ background:var(--surface-sunken); display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--border-subtle); border-bottom:1px solid var(--border-subtle); padding-inline: max(var(--pad), calc((100% - var(--measure)) / 2)); }
.at-strip .cell{ text-align:center; padding:34px 12px; border-right:1px solid var(--border-subtle); }
.at-strip .cell:last-child{ border-right:none; }
.at-strip .n{ font-family:var(--font-display); font-weight:700; font-size:38px; color:var(--brand-primary); line-height:1; }
.at-strip .l{ font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:var(--text-muted); font-weight:600; margin-top:9px; }

.at-photo{ overflow:hidden; background:var(--blue-50); }
.at-photo img{ width:100%; height:100%; object-fit:cover; display:block; }

.at-story .at-two{ display:grid; grid-template-columns:1fr 1fr; gap:44px; }
.at-story p{ font-size:15px; color:var(--text-body); line-height:1.75; margin-bottom:16px; }
.at-sig{ display:flex; align-items:center; gap:14px; margin-top:8px; }
.at-sig .at-photo{ width:56px; height:56px; border-radius:50%; flex-shrink:0; }
.at-sig .nm{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.05em; font-size:13.5px; color:var(--text-strong); display:block; }
.at-sig .rl{ font-style:italic; font-size:13px; color:var(--text-muted); }

.at-tlead{ display:grid; grid-template-columns:340px 1fr; gap:44px; align-items:center; margin-top:36px; padding-bottom:40px; border-bottom:1px solid var(--border-subtle); }
.at-tlead .at-photo{ aspect-ratio:1/1; border-radius:50%; background:transparent; }
.at-tlead .eb{ font-size:11.5px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--ice-600); display:block; }
.at-tlead h3{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.03em; font-size:32px; color:var(--text-strong); margin:10px 0 4px; }
.at-tlead .role{ font-style:italic; font-size:16px; color:var(--text-muted); }
.at-tlead p{ font-size:15px; color:var(--text-body); line-height:1.75; margin-top:18px; max-width:620px; }

.at-tgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px 32px; margin-top:40px; }
.at-tmini{ display:flex; gap:16px; align-items:flex-start; }
.at-tmini .at-photo{ width:76px; height:76px; border-radius:50%; flex-shrink:0; }
.at-tmini h4{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.04em; font-size:14.5px; color:var(--text-strong); }
.at-tmini .role{ display:block; font-size:11.5px; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; color:var(--ice-600); margin:4px 0 8px; }
.at-tmini p{ font-size:12.5px; color:var(--text-muted); line-height:1.6; margin:0; }

/* =====================================================================
   SHOP — consumer "Uses" strip between the product grid and safety panel.
   Long-form content stays on learn.html; each card links through.
   ===================================================================== */
#b2c .uses-strip{ border-bottom:1px solid var(--border-subtle); padding-top:0; }
#b2c .ugrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
#b2c .ucard{ display:flex; gap:14px; align-items:flex-start; background:#fff; border:1px solid var(--border-subtle); border-radius:8px; padding:20px; box-shadow:var(--shadow-sm); text-decoration:none; transition:transform var(--motion-fast,160ms) var(--ease-standard,cubic-bezier(0.2,0,0.2,1)), box-shadow var(--motion-fast,160ms) var(--ease-standard,cubic-bezier(0.2,0,0.2,1)); }
#b2c .ucard:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
#b2c .ucard .ic{ width:40px; height:40px; border-radius:6px; background:var(--surface-accent); color:var(--ice-700); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
#b2c .ucard h4{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.02em; font-size:13.5px; color:var(--text-strong); margin-bottom:5px; }
#b2c .ucard p{ font-size:12.5px; color:var(--text-muted); line-height:1.55; margin:0; }

/* =====================================================================
   LEARN — full-width treatment for "The Basics" and the DIY cooler block
   (both were .abt-sec.narrow, capped at 760px).
   ===================================================================== */
.lrn-basics{ display:grid; grid-template-columns:1.4fr 0.9fr; gap:52px; align-items:start; }
.lrn-basics p{ font-size:15px; color:var(--text-body); line-height:1.75; margin-bottom:16px; }
.lrn-fcard{ background:var(--surface-accent); border:1px solid var(--ice-200); border-radius:var(--radius-lg); padding:28px 30px; }
.lrn-fcard h3{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.08em; font-size:12px; color:var(--ice-700); margin-bottom:18px; }
.lrn-fcard .r{ display:flex; justify-content:space-between; gap:18px; padding:13px 0; border-top:1px solid var(--ice-200); }
.lrn-fcard .r:first-of-type{ border-top:none; padding-top:0; }
.lrn-fcard .k{ font-size:13px; color:var(--text-muted); }
.lrn-fcard .v{ font-family:var(--font-display); font-weight:600; font-size:14px; color:var(--text-strong); text-align:right; white-space:nowrap; }
.lrn-diy .dry-steps .steplist{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px 32px; }

/* Learn — "Uses & Ideas" grouped into three columns (replaces the 12-card grid) */
.ug-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:0 40px; }
.ug-col .hd{ display:flex; align-items:center; gap:11px; padding-bottom:13px; border-bottom:2px solid var(--ice-500); margin-bottom:4px; }
.ug-col .hd .ic{ width:32px;height:32px;border-radius:6px;background:var(--surface-accent);color:var(--ice-700);display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.ug-col .hd h3{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.06em; font-size:13px; color:var(--text-strong); }
.ug-item{ padding:16px 0; border-bottom:1px solid var(--border-subtle); }
.ug-item:last-child{ border-bottom:none; }
.ug-item h4{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.02em; font-size:14px; color:var(--text-strong); margin-bottom:5px; }
.ug-item p{ font-size:13.5px; color:var(--text-muted); line-height:1.6; margin:0; }

/* =====================================================================
   LEARN — full-width treatments (Aug 2026).
   Two blocks previously sat at the global --measure (1240px) and read as
   narrow on wide screens. "The Basics" widens its measure; the DIY block
   becomes a full-bleed band with the heading beside the steps.
   ===================================================================== */

/* --- "The Basics": wider measure, same two-column shape --------------
   The wider measure is set once on the page shell (.frame.lrn-wide) rather
   than per section, so the hero, Basics, Uses grid, DIY band and Safety box
   all align to a single content edge. Overriding it per-block is what
   produced three different widths on one page. */
.lrn-basics{ grid-template-columns:minmax(0,1.25fr) minmax(300px,0.75fr); gap:72px; }
/* Cap the prose independently so the wider container never produces an
   uncomfortable line length. */
.lrn-prose{ max-width:78ch; }

/* --- "A Weekend Project": full-bleed band ---------------------------
   The section drops its own gutters; .band supplies a full-width tinted
   background and re-insets the content. Uses 100% rather than 100vw so a
   vertical scrollbar can't cause horizontal overflow. */
.lrn-diy.lrn-band{ padding-block:0; padding-inline:0; margin-block:8px 56px; }
.lrn-band .band{ background:var(--surface-page);
  padding:56px max(var(--pad), calc((100% - var(--measure)) / 2)); }
.lrn-band .inner{ display:grid; grid-template-columns:minmax(300px,0.62fr) minmax(0,2fr);
  gap:56px; align-items:start; }
.lrn-band .intro{ margin:0; }
/* The band already provides the tinted surface, so neutralise the inner
   .dry-steps panel rather than nesting one tint inside another. */
.lrn-band .dry-steps{ background:none; padding:0; margin:0; border-radius:0; }
.lrn-band .dry-steps .steplist{ display:grid; grid-template-columns:repeat(2,1fr); gap:26px 40px; }

/* Page-level measure for learn.html. Every full-bleed section on the page
   inherits this, so the tinted DIY band lines up with the Uses grid and the
   Safety box rather than sitting proud of them. */
.frame.lrn-wide{ --measure:1660px; }

/* The band is a tinted full-bleed slab; .dry-safety has no top padding of its
   own, so without this margin the amber safety box butts straight onto the
   band with a 0px seam. */
.lrn-band + .dry-safety{ padding-top:8px; }

/* Shipped orders must include a Styrofoam cooler, so that checkbox is ticked
   and held while "Ship to me" is selected. It stays enabled rather than
   disabled — a disabled input is not submitted with the form. */
.check-item.locked{ color:var(--text-muted); cursor:default; }
.check-item.locked input{ cursor:default; }
.check-note{ font-size:12.5px; line-height:1.55; color:var(--text-muted); margin-top:10px; }
.check-note[hidden]{ display:none; }

/* Quick-quote band on business.html. These were previously styled <div>s that
   looked like inputs but could not be typed into; they are now real fields
   that GET their values across to the full form on business-contact.html. */
#b2b .qform input.f{ width:100%; border:1px solid transparent; font-family:var(--font-body);
  font-size:13px; color:var(--text-strong); -webkit-appearance:none; appearance:none; }
#b2b .qform input.f::placeholder{ color:var(--text-muted); opacity:1; }
#b2b .qform input.f:focus{ outline:none; border-color:var(--gray-950);
  box-shadow:0 0 0 3px rgba(255,255,255,0.45); }
#b2b .qform .submit{ width:100%; border:none; cursor:pointer; }
#b2b .qform .submit:hover{ background:var(--gray-900); }
#b2b .qform .submit:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
/* Visually-hidden labels: the placeholders read as labels sighted, but screen
   readers need a real one. */
.vh{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0; }
