/* ═════════════════════════════════════════════════════════
   HAVEN HOME WELLNESS — single-file production build
   Light luxury · navy signature · technical minimalism
   ═════════════════════════════════════════════════════════ */
:root{
  /* Brand */
  --navy:#1B3A6B; --navy-deep:#122647; --navy-mid:#2A5298;
  --navy-soft:rgba(27,58,107,0.08); --navy-hairline:rgba(27,58,107,0.14);
  --sage:#7EAF7E; --sage-deep:#5F8F5F; --sage-pale:#EDF5ED;
  /* Surfaces */
  --paper:#FFFFFF; --bone:#FAFAF7; --fog:#F3F2ED; --mist:#E8E7E1;
  --surface-dark:#0E1A30; --surface-dark-2:#122647; --cream:#F9F8F4;
  /* Ink */
  --ink:#0E1420; --slate:#4A5260; --graphite:#6B7280; --silver:#9AA0AB;
  /* Borders */
  --hairline:rgba(14,20,32,0.08);
  --hairline-strong:rgba(14,20,32,0.14);
  /* Type */
  --font-display:'Playfair Display',Georgia,serif;
  --font-body:'Jost',-apple-system,BlinkMacSystemFont,sans-serif;
  /* Layout */
  --container:1200px; --nav-height:72px;
  /* Motion */
  --ease-out:cubic-bezier(0.22,1,0.36,1);
  --transition:0.35s var(--ease-out);
  --transition-fast:0.2s var(--ease-out);
  /* Shadows */
  --shadow-sm:0 2px 8px rgba(14,20,32,0.04),0 1px 2px rgba(14,20,32,0.03);
  --shadow-md:0 8px 24px rgba(14,20,32,0.06),0 2px 6px rgba(14,20,32,0.03);
  --shadow-lg:0 24px 48px -12px rgba(14,20,32,0.10),0 8px 16px -8px rgba(14,20,32,0.05);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-body);font-size:16px;font-weight:400;
  line-height:1.65;color:var(--ink);background:var(--paper);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;overflow-x:hidden;
}
img,svg,picture{max-width:100%;height:auto;display:block}
img{background:var(--bone)}
a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}
button{font:inherit;border:none;background:none;cursor:pointer;color:inherit}
::selection{background:var(--navy);color:var(--cream)}

.container{max-width:var(--container);margin:0 auto;padding:0 clamp(1.25rem,4vw,2rem)}

/* ─── Typography scale ─── */
h1,h2,h3,h4{
  font-family:var(--font-display);font-weight:500;line-height:1.08;
  letter-spacing:-0.02em;color:var(--ink);
  /* Balance distributes text evenly across lines — better for short headings */
  text-wrap:balance;
}
h1{font-size:clamp(2.25rem,5.5vw,4.25rem);letter-spacing:-0.035em}
h2{font-size:clamp(1.85rem,4vw,3rem);letter-spacing:-0.028em}
h3{font-size:clamp(1.3rem,2.2vw,1.65rem);line-height:1.25}
h4{font-size:clamp(1.05rem,1.6vw,1.2rem);line-height:1.3}
p{
  font-size:1.0625rem;font-weight:300;line-height:1.7;
  color:var(--slate);max-width:65ch;
  /* Pretty avoids widows/orphans on last line */
  text-wrap:pretty;
  orphans:3;widows:3;
}

.lede{
  font-size:clamp(1.1rem,1.8vw,1.3rem);font-weight:300;line-height:1.55;
  color:var(--slate);max-width:62ch;letter-spacing:-0.005em;
  text-wrap:pretty;
}
blockquote,.signature{text-wrap:pretty}
/* Card descriptions — short copy in narrow containers benefits most */
.stage p,.science-callout .desc,.evidence-card .label,
.tier-desc,.product-body p,.product-features li,
.principle-card p,.team-card p,.reg-card p,
.hero-badge-title,.hero-tagline,
.person-label .name,.eco-node .node-desc{text-wrap:pretty}

.eyebrow{
  display:inline-flex;align-items:center;gap:0.625rem;
  font-family:var(--font-body);font-size:0.6875rem;font-weight:500;
  letter-spacing:0.28em;text-transform:uppercase;color:var(--navy);
  margin-bottom:1.25rem;
}
.eyebrow::before{content:'';width:24px;height:1px;background:var(--navy);opacity:0.6}

.accent-italic{font-family:var(--font-display);font-style:italic;font-weight:400;color:var(--navy)}

/* ─── Skip link (a11y) ─── */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:2000;
  background:var(--navy);color:var(--paper);
  padding:0.75rem 1.25rem;border-radius:0 0 8px 0;
  font-size:0.9rem;font-weight:500;text-decoration:none;
}
.skip-link:focus{left:0}

/* ─── Navigation ─── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:var(--nav-height);
  background:rgba(255,255,255,0.78);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid transparent;
  transition:background var(--transition),border-color var(--transition);
}
nav.scrolled{background:rgba(255,255,255,0.94);border-bottom:1px solid var(--hairline)}
.nav-inner{
  max-width:var(--container);margin:0 auto;padding:0 clamp(1.25rem,4vw,2rem);
  height:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.logo{
  font-family:var(--font-display);font-size:1.35rem;font-weight:500;
  letter-spacing:-0.02em;color:var(--ink);
  display:inline-flex;align-items:baseline;gap:0.3em;
  white-space:nowrap;
}
.logo span{font-weight:400;font-style:italic;color:var(--navy)}

.nav-links{display:flex;align-items:center;gap:0.5rem;list-style:none;margin:0;padding:0}
.nav-links a{
  font-size:0.875rem;font-weight:400;color:var(--slate);
  position:relative;
  padding:0.55rem 1rem;
  border-radius:999px;
  border:1px solid transparent;
  line-height:1;
  transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast);
}
.nav-links a:hover{color:var(--ink);background:var(--navy-soft)}
.nav-links a.active{
  color:var(--navy);
  background:var(--navy-soft);
  border-color:var(--navy-hairline);
  font-weight:500;
}

.nav-cta{
  background:var(--navy);color:var(--paper) !important;
  padding:0.625rem 1.25rem;border-radius:999px;
  font-weight:500;font-size:0.875rem;
  transition:background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);
}
.nav-cta:hover{background:var(--navy-deep);transform:translateY(-1px);box-shadow:0 12px 28px -8px rgba(27,58,107,0.35)}
.nav-cta::after{display:none !important}

/* Hamburger toggle — proper button reset, 44×44 touch target, animated icon swap */
.nav-toggle{
  display:none;
  width:44px;height:44px;
  padding:0;margin:0;
  background:transparent;border:0;border-radius:10px;
  color:var(--ink);
  cursor:pointer;
  position:relative;
  align-items:center;justify-content:center;
  -webkit-tap-highlight-color:transparent;
  transition:background var(--transition-fast);
}
.nav-toggle:hover{background:var(--navy-soft)}
.nav-toggle:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.nav-toggle svg{
  position:absolute;
  width:24px;height:24px;
  fill:none;stroke:currentColor;stroke-width:1.75;
  stroke-linecap:round;stroke-linejoin:round;
  transition:opacity 0.2s var(--ease-out),transform 0.3s var(--ease-out);
}
.nav-toggle .nav-toggle-close{opacity:0;transform:rotate(-45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-open{opacity:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-close{opacity:1;transform:rotate(0)}

/* Backdrop behind the open mobile panel */
.nav-backdrop{
  display:none;
  position:fixed;top:var(--nav-height);left:0;right:0;bottom:0;
  z-index:998;
  background:rgba(14,26,48,0);
  transition:background 0.3s var(--ease-out);
  -webkit-tap-highlight-color:transparent;
}
.nav-backdrop.open{display:block;background:rgba(14,26,48,0.35)}

/* Lock body scroll when the menu is open */
body.nav-open{overflow:hidden}

/* ─── Buttons ─── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;
  font-family:var(--font-body);font-size:0.9375rem;font-weight:500;
  padding:0.9rem 1.75rem;border-radius:999px;
  border:1px solid transparent;cursor:pointer;
  transition:all var(--transition);white-space:nowrap;line-height:1;
  letter-spacing:0.005em;
}
.btn-primary{background:var(--navy);color:var(--paper);box-shadow:0 1px 2px rgba(14,20,32,0.08)}
.btn-primary:hover{background:var(--navy-deep);transform:translateY(-1px);box-shadow:0 12px 32px -8px rgba(27,58,107,0.3)}
.btn-primary:active{transform:translateY(0)}
.btn-outline{background:transparent;color:var(--ink);border:1px solid var(--hairline-strong)}
.btn-outline:hover{border-color:var(--navy);color:var(--navy);background:var(--navy-soft)}
.btn-light{background:var(--paper);color:var(--navy-deep);box-shadow:0 1px 2px rgba(0,0,0,0.15)}
.btn-light:hover{transform:translateY(-1px);box-shadow:0 12px 28px -8px rgba(0,0,0,0.35)}
.btn-ghost-light{background:transparent;color:var(--cream);border:1px solid rgba(249,248,244,0.25)}
.btn-ghost-light:hover{border-color:var(--cream);background:rgba(249,248,244,0.06)}

/* ═══════════════════════════════════════════════════════
   HERO
   ═══════════════════════════════════════════════════════ */
.hero{
  position:relative;isolation:isolate;overflow:hidden;
  background:var(--surface-dark);color:var(--cream);
  padding:calc(var(--nav-height) + 4.5rem) 0 5rem;
  min-height:min(720px,100vh);
  display:flex;align-items:center;
}
.hero::before{
  content:'';position:absolute;inset:0;z-index:-2;
  background:
    radial-gradient(ellipse 80% 60% at 85% 10%, rgba(42,82,152,0.35) 0%, transparent 55%),
    radial-gradient(ellipse 60% 40% at 15% 90%, rgba(126,175,126,0.12) 0%, transparent 60%),
    linear-gradient(180deg,#0E1A30 0%,#122647 100%);
}
.hero::after{
  content:'';position:absolute;inset:0;z-index:-1;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");
  opacity:0.04;mix-blend-mode:overlay;pointer-events:none;
}

.hero-grid{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,5rem);align-items:center;width:100%;
}

.hero-eyebrow{color:var(--sage);margin-bottom:1.5rem}
.hero-eyebrow::before{background:var(--sage);opacity:0.8}

.hero h1{
  color:var(--cream);max-width:20ch;margin-bottom:1.5rem;
  animation:heroFade 1s var(--ease-out) forwards;opacity:0;
}
.hero h1 em{font-style:italic;font-weight:400;color:rgba(249,248,244,0.88)}

.hero .lede{
  color:rgba(249,248,244,0.78);max-width:48ch;margin-bottom:2.25rem;
  animation:heroFade 1s var(--ease-out) 0.15s forwards;opacity:0;
}

.hero-actions{
  display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2.25rem;
  animation:heroFade 1s var(--ease-out) 0.3s forwards;opacity:0;
}

.hero-tagline{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1rem;color:var(--sage);
  padding-top:1.25rem;border-top:1px solid rgba(249,248,244,0.1);
  max-width:38ch;
  animation:heroFade 1s var(--ease-out) 0.45s forwards;opacity:0;
}

@keyframes heroFade{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* Hero portrait — image + overlay waveform card */
.hero-visual{
  position:relative;aspect-ratio:4/5;
  border-radius:20px;overflow:hidden;
  box-shadow:0 32px 64px -16px rgba(0,0,0,0.5),0 0 0 1px rgba(249,248,244,0.08);
  animation:heroFade 1.2s var(--ease-out) 0.3s forwards;opacity:0;
  max-width:520px;justify-self:center;width:100%;
}
.hero-visual img{
  width:100%;height:100%;object-fit:cover;
  display:block;
}
.hero-visual::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(14,26,48,0.85) 100%);
}

.hero-badge{
  position:absolute;bottom:1.5rem;left:1.5rem;right:1.5rem;
  background:rgba(14,20,32,0.72);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(249,248,244,0.12);
  border-radius:14px;padding:1.1rem 1.25rem;
  display:grid;grid-template-columns:1fr auto;gap:0.75rem;align-items:center;
  z-index:2;
}
.hero-badge-meta{
  font-size:0.625rem;letter-spacing:0.22em;text-transform:uppercase;
  color:rgba(249,248,244,0.6);margin-bottom:0.35rem;
  display:flex;align-items:center;gap:0.5rem;
}
.hero-badge-meta .dot{
  width:6px;height:6px;border-radius:50%;background:var(--sage);
  animation:pulse 2s infinite;
}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.5;transform:scale(1.3)}}
.hero-badge-title{
  font-family:var(--font-display);font-weight:500;font-size:1.05rem;
  color:var(--cream);letter-spacing:-0.01em;line-height:1.3;
}
.hero-badge-stat{text-align:right}
.hero-badge-stat .num{
  font-family:var(--font-display);font-weight:500;font-size:1.6rem;
  color:var(--sage);line-height:1;letter-spacing:-0.02em;
}
.hero-badge-stat .lbl{
  font-size:0.6rem;letter-spacing:0.18em;text-transform:uppercase;
  color:rgba(249,248,244,0.55);margin-top:0.3rem;
}

/* ═══════════════════════════════════════════════════════
   TRUST STRIP — just below hero
   ═══════════════════════════════════════════════════════ */
.trust{
  background:var(--paper);
  padding:clamp(2.25rem,4vw,3.25rem) 0;
  border-bottom:1px solid var(--hairline);
}
.trust-inner{
  display:grid;grid-template-columns:auto repeat(4,1fr);
  align-items:center;gap:clamp(1.5rem,3vw,3rem);
}
.trust-label{
  font-size:0.6875rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--graphite);max-width:12ch;line-height:1.4;
  padding-right:2rem;border-right:1px solid var(--hairline);
}
.trust-stat{display:flex;flex-direction:column;gap:0.4rem}
.trust-stat .num{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(1.6rem,2.8vw,2.25rem);line-height:1;
  letter-spacing:-0.03em;color:var(--navy);
}
.trust-stat.sage .num{color:var(--sage-deep)}
.trust-stat .lbl{
  font-size:0.75rem;font-weight:400;letter-spacing:0.02em;
  color:var(--slate);line-height:1.45;max-width:22ch;
}

/* ═══════════════════════════════════════════════════════
   SECTIONS
   ═══════════════════════════════════════════════════════ */
section.surface-bone{background:var(--bone)}
section.surface-dark-2{background:var(--surface-dark-2);color:var(--cream)}
section.surface-dark-2 h2{color:var(--cream)}
section.surface-dark-2 p{color:rgba(249,248,244,0.72)}
section.surface-dark-2 .eyebrow{color:var(--sage)}
section.surface-dark-2 .eyebrow::before{background:var(--sage);opacity:0.8}

.section{padding:clamp(3.5rem,7vw,6rem) 0}
.section-head{max-width:640px;margin-bottom:clamp(2.5rem,5vw,4rem)}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head h2{margin-bottom:1rem;max-width:22ch}
.section-head.center h2{max-width:24ch;margin-inline:auto}

/* ═══════════════════════════════════════════════════════
   TODAY vs HAVEN cards
   ═══════════════════════════════════════════════════════ */
.compare-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;
  align-items:stretch;
}

.card-today{
  background:var(--fog);border:1px solid var(--mist);
  border-radius:16px;padding:clamp(1.75rem,3vw,2.5rem);
  position:relative;
}
.card-today::before{
  content:'TODAY';position:absolute;top:clamp(1.75rem,3vw,2.5rem);right:clamp(1.75rem,3vw,2.5rem);
  font-size:0.625rem;letter-spacing:0.28em;color:var(--graphite);font-weight:500;
}
.card-today h3{
  font-weight:500;color:var(--graphite);margin-bottom:1.5rem;
  max-width:18ch;line-height:1.2;
}
.card-today ul{list-style:none}
.card-today ul li{
  padding:0.85rem 0 0.85rem 2rem;position:relative;
  font-size:0.9375rem;font-weight:300;color:var(--graphite);line-height:1.55;
  border-bottom:1px solid rgba(14,20,32,0.05);
  text-decoration:line-through;
  text-decoration-color:rgba(14,20,32,0.15);
}
.card-today ul li:last-child{border-bottom:none;padding-bottom:0}
.card-today ul li::before{
  content:'—';position:absolute;left:0;top:0.85rem;color:var(--silver);
}

.card-haven{
  background:var(--paper);border:1px solid var(--hairline);
  border-radius:16px;padding:clamp(1.75rem,3vw,2.5rem);
  position:relative;overflow:hidden;box-shadow:var(--shadow-sm);
  transition:transform var(--transition),box-shadow var(--transition);
}
.card-haven:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.card-haven::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--navy) 0%,var(--sage) 100%);
}
.card-haven::after{
  content:'HAVEN';position:absolute;top:clamp(1.75rem,3vw,2.5rem);right:clamp(1.75rem,3vw,2.5rem);
  font-size:0.625rem;letter-spacing:0.28em;color:var(--navy);font-weight:500;
}
.card-haven h3{font-weight:500;color:var(--ink);margin-bottom:1.5rem;max-width:18ch;line-height:1.2}
.card-haven ul{list-style:none}
.card-haven ul li{
  padding:0.85rem 0 0.85rem 2rem;position:relative;
  font-size:0.9375rem;font-weight:300;color:var(--ink);line-height:1.55;
  border-bottom:1px solid var(--hairline);
}
.card-haven ul li:last-child{border-bottom:none;padding-bottom:0}
.card-haven ul li::before{
  content:'';position:absolute;left:0;top:1.15rem;
  width:14px;height:1px;background:var(--navy);
}
.card-haven ul li em{font-family:var(--font-display);font-style:italic;font-weight:400;color:var(--navy)}

/* ═══════════════════════════════════════════════════════
   WHO HAVEN IS FOR — representation strip
   ═══════════════════════════════════════════════════════ */
.people-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:clamp(0.75rem,1.5vw,1.25rem);
}
.person{
  position:relative;border-radius:14px;overflow:hidden;
  aspect-ratio:3/4;
  box-shadow:var(--shadow-sm);
  transition:transform 0.5s var(--ease-out),box-shadow 0.5s var(--ease-out),outline-color 0.3s var(--ease-out);
  cursor:pointer;
  outline:2px solid transparent;outline-offset:3px;
}
.person img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1s var(--ease-out);
}
.person::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 50%,rgba(14,26,48,0.72) 100%);
  transition:background 0.5s var(--ease-out);
}
.person:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.person:hover img{transform:scale(1.04)}
.person[aria-selected="true"]{
  outline-color:var(--navy);
  box-shadow:var(--shadow-md);
}
.person[aria-selected="true"]::after{
  background:linear-gradient(180deg,transparent 40%,rgba(14,26,48,0.85) 100%);
}
.person:focus-visible{outline-color:var(--navy);outline-offset:3px}
.person-label{
  position:absolute;bottom:1rem;left:1rem;right:1rem;z-index:1;
  color:var(--cream);
}
.person-label .name{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1rem;line-height:1.3;color:rgba(249,248,244,0.95);
}
.person-label .ctx{
  font-size:0.6875rem;letter-spacing:0.18em;text-transform:uppercase;
  color:rgba(249,248,244,0.7);margin-top:0.25rem;
}

/* Full-width featured testimonial */
.testimonial{
  margin:clamp(2rem,4vw,3rem) 0 0;
  padding:clamp(2.25rem,4.5vw,3.5rem) clamp(2rem,5vw,4.5rem);
  background:var(--bone);
  border:1px solid var(--hairline);border-radius:20px;
  position:relative;
  overflow:hidden;
}
.testimonial-mark{
  position:absolute;
  top:clamp(1.5rem,2.5vw,2rem);
  left:clamp(1.5rem,3vw,2.5rem);
  width:clamp(32px,3.5vw,44px);height:auto;
  color:var(--navy);opacity:0.1;
}
.testimonial-track{
  position:relative;
  min-height:clamp(10rem,20vw,12rem);
  padding-left:clamp(0rem,4vw,3rem);
}
.testimonial-quote{
  margin:0;padding:0;
  animation:quoteIn 0.5s var(--ease-out);
}
@keyframes quoteIn{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}
.testimonial-quote[hidden]{display:none}
.testimonial-quote p{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(1.2rem,2.2vw,1.65rem);line-height:1.45;
  color:var(--ink);letter-spacing:-0.01em;
  max-width:58ch;margin-bottom:1.5rem;
  text-wrap:pretty;
}
.testimonial-quote figcaption{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:0.25rem;
  font-size:0.875rem;font-weight:300;color:var(--slate);
}
.testimonial-quote figcaption strong{
  color:var(--navy);font-weight:500;
  font-size:0.6875rem;letter-spacing:0.22em;text-transform:uppercase;
}
.testimonial-quote figcaption span{
  font-size:0.6875rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--graphite);
}
.testimonial-dots{
  display:flex;gap:0.5rem;
  margin-top:clamp(1.5rem,2.5vw,2rem);
  padding-left:clamp(0rem,4vw,3rem);
}
.testimonial-dot{
  width:28px;height:3px;border-radius:2px;
  background:var(--hairline);
  border:none;padding:0;cursor:pointer;
  transition:background var(--transition-fast),width var(--transition-fast);
}
.testimonial-dot:hover{background:var(--navy-hairline)}
.testimonial-dot.active{
  background:var(--navy);width:44px;
}
.testimonial-dot:focus-visible{outline:2px solid var(--navy);outline-offset:3px}

/* ═══════════════════════════════════════════════════════
   ECOSYSTEM diagram — 5 platforms
   ═══════════════════════════════════════════════════════ */
.eco{
  position:relative;overflow:hidden;
}
.eco::before{
  content:'';position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(ellipse 50% 40% at 20% 20%, rgba(42,82,152,0.25) 0%, transparent 60%),
    radial-gradient(ellipse 50% 40% at 80% 80%, rgba(126,175,126,0.08) 0%, transparent 60%);
  pointer-events:none;
}
.eco > .container{position:relative;z-index:1}
.eco .section-head p .sage-italic{
  font-family:var(--font-display);font-style:italic;color:var(--sage);font-weight:400;
}

.eco-diagram{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr 1fr;
  min-height:380px;align-items:stretch;position:relative;
}
.eco-column{
  padding:2rem 1.5rem;display:flex;flex-direction:column;position:relative;
}
.eco-col-label{
  font-size:0.625rem;letter-spacing:0.28em;text-transform:uppercase;
  color:rgba(249,248,244,0.4);margin-bottom:2rem;text-align:center;
  padding-bottom:1rem;border-bottom:1px solid rgba(249,248,244,0.08);
}
.eco-nodes{display:flex;flex-direction:column;gap:1rem;flex:1;justify-content:center}
.eco-node{
  background:rgba(14,20,32,0.35);border:1px solid rgba(249,248,244,0.08);
  border-radius:14px;padding:1.25rem 1.35rem;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  transition:all 0.4s var(--ease-out);position:relative;
}
.eco-node:hover{
  transform:translateY(-2px);
  border-color:rgba(126,175,126,0.35);
  background:rgba(14,20,32,0.55);
}
.eco-node .node-name{
  font-family:var(--font-display);font-weight:500;font-size:1.15rem;
  color:var(--cream);letter-spacing:-0.015em;
  display:flex;align-items:baseline;gap:0.35rem;
}
.eco-node .node-name .tm{
  font-size:0.55rem;color:var(--sage);opacity:0.8;
  font-family:var(--font-body);transform:translateY(-0.4em);
}
.eco-node .node-tag{
  font-size:0.6rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage);opacity:0.75;margin-top:0.2rem;margin-bottom:0.75rem;
}
.eco-node .node-desc{font-size:0.8125rem;color:rgba(249,248,244,0.6);line-height:1.45;font-weight:300}

.eco-column.center{
  background:linear-gradient(180deg,rgba(27,58,107,0.35) 0%,rgba(27,58,107,0.15) 100%);
  border-left:1px solid rgba(249,248,244,0.08);
  border-right:1px solid rgba(249,248,244,0.08);
}
.eco-anchor{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}
.eco-anchor-inner{
  text-align:center;padding:2rem 1.5rem;
  border:1px solid var(--sage);border-radius:16px;
  background:rgba(18,38,71,0.7);position:relative;max-width:260px;
}
.eco-anchor-inner::before,.eco-anchor-inner::after{
  content:'';position:absolute;width:8px;height:8px;
  background:var(--sage);border-radius:50%;
}
.eco-anchor-inner::before{top:-4px;left:-4px}
.eco-anchor-inner::after{bottom:-4px;right:-4px}
.eco-anchor-inner .node-name{justify-content:center;font-size:1.4rem}
.eco-anchor-inner .node-tag{color:var(--sage);opacity:1;font-weight:600}
.eco-anchor-inner .node-desc{color:rgba(249,248,244,0.78);font-size:0.85rem}
.eco-anchor-inner .node-privacy{
  margin-top:1rem;padding-top:1rem;
  border-top:1px solid rgba(126,175,126,0.2);
  font-family:var(--font-display);font-style:italic;
  font-size:0.875rem;color:var(--sage);
}

.eco-lines{position:absolute;inset:0;pointer-events:none;z-index:0}
.eco-lines path{stroke:rgba(126,175,126,0.25);stroke-width:1;stroke-dasharray:3 4;fill:none}

.eco-footnote{
  text-align:center;margin-top:3rem;
  font-size:0.8125rem;color:rgba(249,248,244,0.5);letter-spacing:0.02em;
}
.eco-footnote strong{color:var(--sage);font-weight:500}

/* Product showcase — actual renders from technology.html */
.products-showcase{
  margin-top:clamp(3rem, 6vw, 5rem);
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  gap:clamp(1rem, 2vw, 1.5rem);
}
/* Layout: row 1 — Steadfast (span 3) + Stride (span 3)
           row 2 — Vigil (span 2) + Anchor (span 2) + Beacon (span 2) */
.products-showcase .product-card:nth-child(1){grid-column:span 3}
.products-showcase .product-card:nth-child(2){grid-column:span 3}
.products-showcase .product-card:nth-child(3){grid-column:span 2}
.products-showcase .product-card:nth-child(4){grid-column:span 2}
.products-showcase .product-card:nth-child(5){grid-column:span 2}

.product-card{
  background:rgba(14,20,32,0.5);
  border:1px solid rgba(249,248,244,0.08);
  border-radius:18px;overflow:hidden;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  display:flex;flex-direction:column;
  transition:border-color var(--transition),transform var(--transition),background var(--transition);
}
.product-card:hover{
  border-color:rgba(126,175,126,0.35);
  background:rgba(14,20,32,0.65);
  transform:translateY(-3px);
}
.product-img{
  position:relative;
  background:radial-gradient(ellipse at 50% 40%, #1b2842 0%, #0e1a30 70%);
  overflow:hidden;
}
.product-img img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 0.8s var(--ease-out);
}
.product-card:hover .product-img img{transform:scale(1.03)}

/* Hardware products — landscape 16:9 */
.product-card-hardware .product-img{aspect-ratio:16/9}
/* Stride watch photo — match source aspect (944/1131) so subject fills the frame with no dead space */
.product-card-stride .product-img{
  aspect-ratio:944/1131;
  background:#0c1628;
  padding:0;
}
.product-card-stride .product-img img{
  object-fit:cover;
  object-position:center 35%;
  width:100%;height:100%;
}
.product-card-beacon .product-img{
  aspect-ratio:1/1.25;
  background:linear-gradient(180deg, #111b32 0%, #0a1426 100%);
  padding:1.25rem 22%;display:flex;align-items:center;justify-content:center;
}
.product-card-beacon .product-img img{
  object-fit:cover;object-position:top;
  width:100%;height:100%;max-height:100%;
  border-radius:26px;
  box-shadow:0 24px 60px -12px rgba(0,0,0,0.75), 0 0 0 1px rgba(249,248,244,0.08);
}

.product-body{padding:1.5rem 1.6rem 1.75rem;flex:1;display:flex;flex-direction:column}
.product-body .product-name{
  font-family:var(--font-display);font-weight:500;font-size:1.4rem;
  color:var(--cream);letter-spacing:-0.02em;
  display:flex;align-items:baseline;gap:0.35rem;line-height:1.1;
}
.product-body .product-name .tm{
  font-size:0.55rem;color:var(--sage);opacity:0.8;
  font-family:var(--font-body);transform:translateY(-0.45em);letter-spacing:0;
}
.product-body .product-tag{
  font-size:0.6rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage);opacity:0.85;
  margin-top:0.35rem;margin-bottom:1rem;font-weight:500;
}
.product-body p{
  font-size:0.9rem;color:rgba(249,248,244,0.7);line-height:1.55;
  font-weight:300;margin-bottom:1rem;max-width:none;
}
.product-features{
  list-style:none;padding:0;margin:auto 0 0;
  padding-top:1rem;border-top:1px solid rgba(249,248,244,0.08);
}
.product-features li{
  font-size:0.8125rem;color:rgba(249,248,244,0.62);line-height:1.5;
  padding:0.35rem 0 0.35rem 1.15rem;position:relative;font-weight:300;
}
.product-features li::before{
  content:'';position:absolute;left:0;top:0.9rem;
  width:8px;height:1px;background:var(--sage);opacity:0.8;
}


/* ═══════════════════════════════════════════════════════
   FAMILY SIDE — Beacon dashboard context
   ═══════════════════════════════════════════════════════ */
.family{background:var(--bone)}
.family-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);
  align-items:center;
}
.family-image{
  position:relative;border-radius:20px;overflow:hidden;
  aspect-ratio:4/5;
  box-shadow:var(--shadow-lg);
  max-width:520px;
}
.family-image img{width:100%;height:100%;object-fit:cover}
.family-image::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(215deg,transparent 60%,rgba(27,58,107,0.15) 100%);
}

.family-content h2{margin-bottom:1.25rem}
.family-content p{margin-bottom:1.25rem;max-width:50ch}
.family-content .signature{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.15rem;color:var(--navy);
  padding-left:1.25rem;border-left:2px solid var(--sage);
  margin-top:2rem;line-height:1.5;
}

/* ═══════════════════════════════════════════════════════
   WAITLIST CTA — closing
   ═══════════════════════════════════════════════════════ */
.cta{
  position:relative;overflow:hidden;isolation:isolate;
  background:var(--surface-dark);color:var(--cream);
  padding:clamp(4rem,8vw,6.5rem) 0;
}
.cta::before{
  content:'';position:absolute;inset:0;z-index:-2;
  background:
    radial-gradient(ellipse 60% 50% at 50% 0%, rgba(42,82,152,0.3) 0%, transparent 60%),
    radial-gradient(ellipse 40% 30% at 50% 100%, rgba(126,175,126,0.1) 0%, transparent 60%),
    var(--surface-dark);
}
.cta-grid{
  display:grid;grid-template-columns:1.2fr 1fr;
  gap:clamp(2rem,5vw,4rem);align-items:center;
}
.cta-image{
  position:relative;border-radius:20px;overflow:hidden;
  aspect-ratio:4/5;max-width:460px;
  box-shadow:0 40px 80px -20px rgba(0,0,0,0.6);
}
.cta-image img{width:100%;height:100%;object-fit:cover}
.cta-image::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(210deg,transparent 50%,rgba(14,26,48,0.4) 100%);
  pointer-events:none;
}

.cta h2{color:var(--cream);margin-bottom:1.25rem;max-width:16ch}
.cta p{color:rgba(249,248,244,0.75);max-width:46ch;margin-bottom:2rem}
.cta .benefits{
  list-style:none;margin:0 0 2.25rem;padding:0;
  display:flex;flex-direction:column;gap:0.75rem;
}
.cta .benefits li{
  font-size:0.9375rem;color:rgba(249,248,244,0.85);font-weight:300;
  padding-left:1.75rem;position:relative;line-height:1.5;
}
.cta .benefits li::before{
  content:'';position:absolute;left:0;top:0.65rem;
  width:12px;height:1px;background:var(--sage);
}
.cta-actions{display:flex;gap:1rem;flex-wrap:wrap}
.cta-address{
  margin-top:2.25rem;padding-top:1.5rem;
  border-top:1px solid rgba(249,248,244,0.08);
  font-size:0.8125rem;color:rgba(249,248,244,0.45);
  line-height:1.7;font-weight:300;
}

/* ═══════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════ */
footer{
  background:var(--surface-dark-2);color:rgba(249,248,244,0.6);
  padding:clamp(3rem,6vw,4.5rem) 0 2.25rem;
}
.footer-grid{
  display:grid;grid-template-columns:1.6fr 1fr 1.3fr 1fr 1fr;
  gap:clamp(2rem,3.5vw,3rem);margin-bottom:3rem;
}
.footer-brand .logo{font-size:1.5rem;color:var(--cream);margin-bottom:1rem;display:inline-block}
.footer-brand .logo span{color:var(--sage)}
.footer-brand p{color:rgba(249,248,244,0.5);font-size:0.9375rem;max-width:320px}
.footer-brand .signature{
  font-family:var(--font-display);font-style:italic;color:var(--sage);
  margin-top:1rem;font-size:0.95rem;
}
.footer-col h4{
  font-family:var(--font-body);font-size:0.6875rem;font-weight:500;
  letter-spacing:0.22em;text-transform:uppercase;color:var(--sage);
  margin-bottom:1.25rem;
}
.footer-col a{
  display:block;font-size:0.9375rem;font-weight:300;
  color:rgba(249,248,244,0.55);margin-bottom:0.75rem;
  transition:color var(--transition-fast);
}
.footer-col a:hover{color:var(--cream)}

.footer-bottom{
  border-top:1px solid rgba(249,248,244,0.08);
  padding-top:2rem;display:flex;justify-content:space-between;
  align-items:center;font-size:0.8125rem;color:rgba(249,248,244,0.4);
  flex-wrap:wrap;gap:1rem;
}

/* ═══════════════════════════════════════════════════════
   THE SCIENCE — gait predicts falls
   ═══════════════════════════════════════════════════════ */
.science{background:var(--paper)}
.science-grid{
  display:grid;grid-template-columns:1.1fr 1fr;
  gap:clamp(2.5rem,5vw,4.5rem);align-items:start;
}
.science-text p{margin-bottom:1.25rem}
.science-text p:last-child{margin-bottom:0}
.science-text blockquote{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.5;
  color:var(--navy);margin:2rem 0;
  padding-left:1.25rem;border-left:2px solid var(--sage);
}
.science-text blockquote cite{
  display:block;font-style:normal;font-size:0.8125rem;
  letter-spacing:0.12em;text-transform:uppercase;
  color:var(--graphite);margin-top:0.75rem;
  font-family:var(--font-body);font-weight:400;
}
.science-callouts{display:flex;flex-direction:column;gap:1rem}
.science-callout{
  background:var(--bone);border:1px solid var(--hairline);
  border-radius:14px;padding:1.5rem 1.75rem;
  transition:border-color var(--transition),transform var(--transition);
}
.science-callout:hover{border-color:var(--navy-hairline);transform:translateY(-2px)}
.science-callout .metric{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(1.85rem,3vw,2.4rem);line-height:1;
  letter-spacing:-0.03em;color:var(--navy);margin-bottom:0.5rem;
}
.science-callout .metric.sage{color:var(--sage-deep)}
.science-callout .desc{
  font-size:0.9375rem;color:var(--slate);line-height:1.5;font-weight:300;
  margin-bottom:0.5rem;
}
.science-callout .source{
  font-size:0.6875rem;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--graphite);
  display:inline-block;
  transition:color var(--transition-fast);
}
a.source{text-decoration:none}
a.source:hover{color:var(--navy)}

/* Research library grid — outbound links to all 6 research reports + white paper */
.research-library{
  margin-top:clamp(2.5rem,5vw,4rem);
  padding-top:clamp(2rem,4vw,2.75rem);
  border-top:1px solid var(--hairline);
}
.research-label{
  font-size:0.6875rem;letter-spacing:0.28em;text-transform:uppercase;
  color:var(--navy);font-weight:500;margin-bottom:1.5rem;
  display:flex;align-items:center;gap:0.625rem;
}
.research-label::before{content:'';width:24px;height:1px;background:var(--navy);opacity:0.6}
.research-links{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:0.75rem;
}
.research-link{
  display:flex;flex-direction:column;gap:0.25rem;
  padding:1rem 1.25rem;
  background:var(--bone);
  border:1px solid var(--hairline);
  border-radius:10px;
  transition:border-color var(--transition),background var(--transition),transform var(--transition);
  text-decoration:none;
  color:var(--ink);
  position:relative;
}
.research-link::after{
  content:'↗';
  position:absolute;top:0.85rem;right:1rem;
  font-size:0.875rem;color:var(--graphite);
  transition:color var(--transition-fast),transform var(--transition-fast);
}
.research-link:hover{border-color:var(--navy-hairline);background:var(--paper);transform:translateY(-1px)}
.research-link:hover::after{color:var(--navy);transform:translate(1px,-1px)}
.research-link-title{
  font-weight:500;font-size:0.9375rem;line-height:1.3;
  color:var(--ink);padding-right:1.5rem;
}
.research-link-meta{
  font-size:0.6875rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--graphite);
}

/* ═══════════════════════════════════════════════════════
   PREDICTION TIMELINE — how prediction actually works
   ═══════════════════════════════════════════════════════ */
.timeline{background:var(--bone)}
.timeline-stages{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:clamp(0.75rem,1.5vw,1.25rem);
  counter-reset:stage;
  position:relative;
}
.timeline-stages::before{
  content:'';position:absolute;top:2.5rem;
  left:7%;right:7%;height:1px;
  background:linear-gradient(90deg,var(--navy) 0%,var(--sage) 100%);
  opacity:0.25;z-index:0;
}
.stage{
  position:relative;counter-increment:stage;
  padding:1.25rem;text-align:left;
  background:var(--paper);border:1px solid var(--hairline);
  border-radius:14px;
  transition:border-color var(--transition),transform var(--transition);
}
.stage:hover{border-color:var(--navy-hairline);transform:translateY(-3px)}
.stage .stage-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:2.25rem;height:2.25rem;margin-bottom:1rem;
  border-radius:50%;background:var(--paper);
  border:1px solid var(--navy-hairline);
  font-family:var(--font-display);font-weight:500;font-size:0.95rem;
  color:var(--navy);position:relative;z-index:1;
}
.stage.final .stage-num{
  background:var(--sage);color:var(--cream);border-color:var(--sage);
}
.stage .stage-label{
  font-size:0.625rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--navy);font-weight:500;margin-bottom:0.5rem;
}
.stage.final .stage-label{color:var(--sage-deep)}
.stage h4{
  font-weight:500;font-size:1.05rem;margin-bottom:0.5rem;
  color:var(--ink);line-height:1.25;
}
.stage p{
  font-size:0.875rem;color:var(--slate);line-height:1.5;
  font-weight:300;
}

/* ═══════════════════════════════════════════════════════
   EVIDENCE / RESEARCH — peer-reviewed citations
   ═══════════════════════════════════════════════════════ */
.evidence{background:var(--surface-dark-2);color:var(--cream);position:relative;overflow:hidden}
.evidence::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse 50% 40% at 80% 20%, rgba(42,82,152,0.3) 0%, transparent 60%),
    radial-gradient(ellipse 40% 30% at 20% 80%, rgba(126,175,126,0.1) 0%, transparent 60%);
}
.evidence > .container{position:relative;z-index:1}
.evidence .eyebrow{color:var(--sage)}
.evidence .eyebrow::before{background:var(--sage);opacity:0.8}
.evidence h2{color:var(--cream)}
.evidence p{color:rgba(249,248,244,0.72)}

.evidence-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1.25rem;
}
.evidence-card{
  padding:1.75rem 1.5rem;
  background:rgba(14,20,32,0.4);
  border:1px solid rgba(249,248,244,0.08);
  border-radius:14px;
  transition:border-color var(--transition),transform var(--transition),background var(--transition);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.evidence-card:hover{
  border-color:rgba(126,175,126,0.35);
  transform:translateY(-3px);
  background:rgba(14,20,32,0.6);
}
.evidence-card .metric{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(1.85rem,3vw,2.5rem);line-height:1;
  letter-spacing:-0.03em;color:var(--sage);margin-bottom:0.75rem;
}
.evidence-card .label{
  font-size:0.9375rem;color:rgba(249,248,244,0.85);line-height:1.5;
  font-weight:300;margin-bottom:0.75rem;
}
.evidence-card .cite{
  font-size:0.6875rem;letter-spacing:0.18em;text-transform:uppercase;
  color:rgba(249,248,244,0.45);font-style:normal;
  padding-top:0.75rem;border-top:1px solid rgba(249,248,244,0.08);
  display:block;
}

/* ═══════════════════════════════════════════════════════
   REGULATORY & REIMBURSEMENT
   ═══════════════════════════════════════════════════════ */
.regulatory{background:var(--paper)}
.reg-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,3vw,2rem)}
.reg-card{
  padding:2.25rem 2rem;
  background:var(--bone);border:1px solid var(--hairline);
  border-radius:16px;position:relative;
  transition:border-color var(--transition),transform var(--transition);
}
.reg-card:hover{border-color:var(--navy-hairline);transform:translateY(-2px)}
.reg-card .reg-label{
  font-size:0.625rem;letter-spacing:0.28em;text-transform:uppercase;
  color:var(--navy);font-weight:500;margin-bottom:0.75rem;
}
.reg-card h3{font-weight:500;margin-bottom:1rem;color:var(--ink)}
.reg-card p{font-size:0.9375rem;color:var(--slate);line-height:1.6;font-weight:300}
.reg-card p + p{margin-top:0.875rem}

/* ═══════════════════════════════════════════════════════
   PRINCIPLES — about Haven
   ═══════════════════════════════════════════════════════ */
.principles{background:var(--paper)}
.principles-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(1.25rem,2.5vw,1.75rem);
  margin-bottom:clamp(2.5rem,4vw,3.5rem);
}
.principle-card{
  padding:2rem 1.75rem;background:var(--bone);
  border:1px solid var(--hairline);border-radius:16px;
  transition:border-color var(--transition),transform var(--transition),box-shadow var(--transition);
}
.principle-card:hover{
  border-color:var(--navy-hairline);transform:translateY(-3px);
  box-shadow:var(--shadow-sm);
}
.principle-icon{
  width:44px;height:44px;margin-bottom:1.25rem;
  color:var(--navy);display:grid;place-items:center;
  background:var(--navy-soft);border-radius:12px;
}
.principle-icon svg{width:22px;height:22px}
.principle-card h3{font-weight:500;font-size:1.2rem;margin-bottom:0.75rem;color:var(--ink);letter-spacing:-0.015em}
.principle-card p{font-size:0.9375rem;color:var(--slate);line-height:1.6;font-weight:300}

.company-meta{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1.5rem;
  padding:1.75rem 2rem;
  background:var(--bone);border:1px solid var(--hairline);
  border-radius:14px;
  max-width:860px;margin:0 auto;
}
.meta-item{display:flex;flex-direction:column;gap:0.35rem}
.meta-label{
  font-size:0.625rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--graphite);font-weight:500;
}
.meta-value{
  font-family:var(--font-display);font-weight:500;font-size:1rem;
  color:var(--ink);letter-spacing:-0.01em;
}

/* ═══════════════════════════════════════════════════════
   TEAM
   ═══════════════════════════════════════════════════════ */
.team{background:var(--bone)}
.team-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(1.5rem,3vw,2rem);max-width:880px;margin:0 auto;
}
.team-card{
  padding:2.25rem 2rem;background:var(--paper);
  border:1px solid var(--hairline);border-radius:16px;
  transition:border-color var(--transition),transform var(--transition),box-shadow var(--transition);
  box-shadow:var(--shadow-sm);
}
.team-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--navy-hairline)}
.team-initial{
  width:56px;height:56px;border-radius:50%;
  display:grid;place-items:center;
  background:var(--navy-soft);color:var(--navy);
  font-family:var(--font-display);font-weight:500;font-size:1.25rem;
  margin-bottom:1.25rem;letter-spacing:-0.01em;
}
.team-card h3{
  font-weight:500;font-size:1.35rem;margin-bottom:0.25rem;color:var(--ink);
}
.team-role{
  font-size:0.6875rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--navy);margin-bottom:1rem;font-weight:500;
}
.team-card p{font-size:0.9375rem;line-height:1.6;color:var(--slate);font-weight:300}

/* ═══════════════════════════════════════════════════════
   PRICING
   ═══════════════════════════════════════════════════════ */
.pricing{background:var(--paper)}
.pricing-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1rem;
}
.tier{
  padding:2rem 1.5rem;
  background:var(--paper);border:1px solid var(--hairline);
  border-radius:16px;display:flex;flex-direction:column;
  transition:all var(--transition);
  position:relative;
}
.tier:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--navy-hairline)}
.tier.featured{
  border-color:var(--navy);
  background:linear-gradient(180deg,rgba(27,58,107,0.02) 0%,var(--paper) 100%);
}
.tier.featured::before{
  content:'Most popular';
  position:absolute;top:-0.6rem;left:50%;transform:translateX(-50%);
  background:var(--navy);color:var(--cream);
  font-size:0.625rem;letter-spacing:0.18em;text-transform:uppercase;
  padding:0.35rem 0.85rem;border-radius:999px;
  font-weight:500;
}
.tier-name{
  font-family:var(--font-display);font-weight:500;font-size:1.35rem;
  color:var(--ink);margin-bottom:0.5rem;letter-spacing:-0.015em;
}
.tier-price{
  font-family:var(--font-display);font-weight:500;
  font-size:2rem;color:var(--navy);line-height:1;
  letter-spacing:-0.035em;margin-bottom:0.25rem;
}
.tier-price .per{
  font-size:0.875rem;color:var(--graphite);font-weight:400;letter-spacing:0;
}
.tier-desc{
  font-size:0.8125rem;color:var(--slate);
  margin-bottom:1.5rem;line-height:1.4;min-height:2.4em;
}
.tier ul{list-style:none;flex:1;margin-bottom:0}
.tier ul li{
  padding:0.5rem 0 0.5rem 1.5rem;position:relative;
  font-size:0.8125rem;color:var(--slate);line-height:1.5;
  font-weight:300;
}
.tier ul li::before{
  content:'';position:absolute;left:0;top:0.85rem;
  width:10px;height:1px;background:var(--sage);
}

/* ═══════════════════════════════════════════════════════
   FAQ
   ═══════════════════════════════════════════════════════ */
.faq{background:var(--bone)}
.faq-list{max-width:780px;margin:0 auto}
.faq-item{
  border-bottom:1px solid var(--hairline);
  transition:background var(--transition-fast);
}
.faq-item summary{
  padding:1.5rem 1rem 1.5rem 0;cursor:pointer;
  list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:1.5rem;
  font-family:var(--font-display);font-weight:500;font-size:clamp(1.05rem,1.8vw,1.2rem);
  color:var(--ink);letter-spacing:-0.01em;line-height:1.35;
  transition:color var(--transition-fast);
  text-wrap:balance;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:var(--navy)}
.faq-item summary::after{
  content:'+';
  font-family:var(--font-body);font-weight:300;font-size:1.75rem;
  color:var(--navy);transition:transform var(--transition);
  line-height:1;flex-shrink:0;
}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item .answer{
  padding:0 3rem 1.75rem 0;
  font-size:0.9375rem;color:var(--slate);line-height:1.65;font-weight:300;
}
.faq-item .answer p + p{margin-top:0.875rem}

/* ═══════════════════════════════════════════════════════
   MODAL (Privacy / Terms)
   ═══════════════════════════════════════════════════════ */
.modal{
  position:fixed;inset:0;z-index:2000;
  display:flex;align-items:center;justify-content:center;
  padding:clamp(1rem,3vw,2rem);
  animation:modalIn 0.35s var(--ease-out);
}
.modal[hidden]{display:none}
@keyframes modalIn{from{opacity:0}to{opacity:1}}
.modal-backdrop{
  position:absolute;inset:0;background:rgba(14,20,32,0.72);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  cursor:pointer;
}
.modal-panel{
  position:relative;z-index:1;
  width:min(760px,100%);max-height:min(85vh,900px);
  background:var(--paper);border-radius:20px;
  box-shadow:0 48px 96px -24px rgba(0,0,0,0.5), 0 0 0 1px var(--hairline);
  overflow:hidden;
  display:flex;flex-direction:column;
  animation:modalPanelIn 0.5s var(--ease-out);
}
@keyframes modalPanelIn{from{opacity:0;transform:translateY(20px) scale(0.98)}to{opacity:1;transform:none}}
.modal-close{
  position:absolute;top:1rem;right:1rem;z-index:2;
  width:40px;height:40px;border-radius:50%;
  display:grid;place-items:center;
  background:var(--paper);color:var(--slate);
  border:1px solid var(--hairline);
  transition:all var(--transition-fast);cursor:pointer;
}
.modal-close:hover{color:var(--ink);border-color:var(--hairline-strong);transform:scale(1.05)}
.modal-close svg{width:18px;height:18px}
.modal-body{
  padding:clamp(2rem,4vw,3rem) clamp(1.5rem,4vw,3rem);
  overflow-y:auto;flex:1;
  -webkit-overflow-scrolling:touch;
}
.modal-body h2{margin-bottom:0.75rem;margin-top:0}
.modal-body h3{
  font-size:1.1rem;font-weight:500;margin-top:2rem;margin-bottom:0.75rem;
  color:var(--ink);letter-spacing:-0.01em;
}
.modal-body h3:first-of-type{margin-top:2.5rem}
.modal-body p{font-size:0.9375rem;line-height:1.65;color:var(--slate);margin-bottom:0.75rem;max-width:none}
.modal-body p strong{color:var(--ink);font-weight:500}
.modal-body a{color:var(--navy);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.modal-body a:hover{color:var(--navy-deep)}
.modal-meta{
  font-size:0.6875rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--graphite);margin-bottom:1.25rem !important;font-weight:500;
}
.modal-lede{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.15rem !important;line-height:1.55;color:var(--ink) !important;
  padding-bottom:1.5rem;border-bottom:1px solid var(--hairline);
  margin-bottom:1.5rem !important;
}
.modal-footer-note{
  margin-top:2rem !important;padding-top:1.5rem;
  border-top:1px solid var(--hairline);
  font-size:0.8125rem !important;color:var(--graphite) !important;
  font-family:var(--font-display);font-style:italic;
}
body.modal-open{overflow:hidden}
@media (max-width:540px){
  .modal-panel{max-height:92vh;border-radius:16px}
  .modal-close{top:0.75rem;right:0.75rem;width:36px;height:36px}
  .modal-body h3{font-size:1rem;margin-top:1.5rem}
}



/* 1200 — desktop compression */
@media (max-width:1200px){
  .hero{padding-top:calc(var(--nav-height) + 3.5rem);padding-bottom:4rem;min-height:auto}
}

/* 960 — tablet landscape */
@media (max-width:960px){
  .hero-grid{grid-template-columns:1fr;gap:3rem;max-width:600px;margin:0 auto}
  .hero-visual{aspect-ratio:1/1;max-width:440px}
  .hero h1,.hero .lede{max-width:none}

  .trust-inner{grid-template-columns:1fr 1fr;gap:1.75rem 2.5rem}
  .trust-label{grid-column:1/-1;padding-right:0;border-right:none;border-bottom:1px solid var(--hairline);padding-bottom:1rem;max-width:none}

  .compare-grid{grid-template-columns:1fr}
  .people-grid{grid-template-columns:repeat(2,1fr)}

  .eco-diagram{grid-template-columns:1fr;gap:1rem;min-height:auto}
  .eco-column{padding:1.5rem 1.25rem}
  .eco-column.center{
    border-left:none;border-right:none;
    border-top:1px solid rgba(249,248,244,0.08);
    border-bottom:1px solid rgba(249,248,244,0.08);
  }
  .eco-anchor-inner{max-width:420px;width:100%}
  .eco-lines{display:none}

  .family-grid,.cta-grid{grid-template-columns:1fr;gap:2.5rem}
  .family-image,.cta-image{max-width:480px;margin:0 auto}
  .family-content,.cta-content{max-width:560px}
  .family-content .signature{margin-left:auto;margin-right:auto;max-width:38ch}

  .science-grid{grid-template-columns:1fr;gap:2.5rem}
  .timeline-stages{grid-template-columns:1fr 1fr}
  .timeline-stages::before{display:none}
  .evidence-grid{grid-template-columns:1fr 1fr}
  .reg-grid{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr}
  .pricing-grid{grid-template-columns:1fr 1fr;gap:1rem}
  .principles-grid{grid-template-columns:1fr;gap:1rem}
  .company-meta{grid-template-columns:1fr 1fr;gap:1.25rem;padding:1.5rem}
  .research-links{grid-template-columns:1fr 1fr}

  /* Products showcase → 2 columns */
  .products-showcase{grid-template-columns:repeat(2, 1fr)}
  .products-showcase .product-card:nth-child(1),
  .products-showcase .product-card:nth-child(2),
  .products-showcase .product-card:nth-child(3),
  .products-showcase .product-card:nth-child(4),
  .products-showcase .product-card:nth-child(5){grid-column:span 1}
  .products-showcase .product-card:nth-child(5){grid-column:span 2}
  /* Stride keeps its source aspect at all sizes — Beacon matches */
  .product-card-beacon .product-img{aspect-ratio:4/5}

  .footer-grid{grid-template-columns:1fr 1fr 1fr;gap:2.5rem 2rem}
  .footer-brand{grid-column:1/-1}
}

/* 860 — nav switches to mobile drawer earlier than the rest of the layout */
@media (max-width:860px){
  .nav-toggle{display:inline-flex}
  .nav-links{
    position:fixed;top:var(--nav-height);left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0.25rem;
    background:var(--paper);
    padding:1.25rem 1.25rem 1.75rem;
    max-height:calc(100vh - var(--nav-height));
    overflow-y:auto;-webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    transform:translateY(-110%);
    visibility:hidden;
    transition:transform 0.35s var(--ease-out),visibility 0s linear 0.35s;
    border-bottom:1px solid var(--hairline);
    box-shadow:0 24px 48px -16px rgba(14,26,48,0.18);
  }
  .nav-links.open{
    transform:translateY(0);
    visibility:visible;
    transition:transform 0.35s var(--ease-out),visibility 0s linear 0s;
  }
  .nav-links li{width:100%}
  .nav-links a{
    display:flex;align-items:center;
    width:100%;
    font-size:1rem;
    padding:0.95rem 1rem;
    border-radius:12px;
    min-height:48px;
    line-height:1.2;
  }
  .nav-links a.active{
    background:var(--navy-soft);
    border-color:var(--navy-hairline);
  }
  .nav-links .nav-cta{
    justify-content:center;
    margin-top:0.75rem;
    padding:1rem 1.5rem;
    font-size:0.9375rem;
    min-height:48px;
  }
  .nav-links .nav-cta:hover{transform:none}
}

/* 720 — tablet portrait */
@media (max-width:720px){
  .hero-actions{flex-direction:column;align-items:stretch;width:100%}
  .hero-actions .btn{width:100%}
  .hero-tagline{padding-top:1rem}

  .hero-badge{left:1rem;right:1rem;bottom:1rem;padding:0.9rem 1rem;grid-template-columns:1fr auto;gap:0.5rem}
  .hero-badge-title{font-size:0.95rem}
  .hero-badge-stat .num{font-size:1.3rem}
}

/* 540 — mobile-L */
@media (max-width:540px){
  .trust-inner{grid-template-columns:1fr 1fr;gap:1.25rem 1.5rem}
  .trust-stat .num{font-size:1.65rem}
  .trust-stat .lbl{font-size:0.7rem}

  .card-today::before,.card-haven::after{
    position:static;display:block;margin-bottom:0.75rem;
  }

  .eco-node{padding:1rem 1.15rem}
  .eco-anchor-inner{padding:1.5rem 1.25rem}
  .eco-anchor-inner .node-name{font-size:1.2rem}

  .footer-grid{grid-template-columns:1fr;gap:2rem}
  .footer-bottom{flex-direction:column;align-items:flex-start;text-align:left}

  .cta .benefits li{font-size:0.875rem}
  .cta-actions{flex-direction:column;align-items:stretch}
  .cta-actions .btn{width:100%}

  .timeline-stages{grid-template-columns:1fr;gap:0.875rem}
  .evidence-grid{grid-template-columns:1fr}
  .pricing-grid{grid-template-columns:1fr;gap:0.875rem}
  .tier.featured::before{font-size:0.55rem;padding:0.3rem 0.7rem}
  .faq-item summary{font-size:1rem;padding:1.25rem 0.5rem 1.25rem 0;gap:1rem}
  .faq-item .answer{padding-right:1.5rem}

  .products-showcase{grid-template-columns:1fr;gap:1rem}
  .products-showcase .product-card:nth-child(5){grid-column:span 1}
  .product-card-beacon .product-img{aspect-ratio:1/1.1;padding:1rem 14%}

  .testimonial{padding:2rem 1.5rem}
  .testimonial-mark{top:1rem;left:1rem;width:28px}
  .testimonial-track{padding-left:0;min-height:auto}
  .testimonial-dots{padding-left:0;margin-top:1.5rem}

  .research-links{grid-template-columns:1fr}
}

/* 400 — small mobile */
@media (max-width:400px){
  .trust-inner{grid-template-columns:1fr;gap:1.25rem}
  .trust-label{padding-bottom:0.75rem}
  .hero-badge{padding:0.8rem 0.9rem}
  .hero-badge-meta{font-size:0.55rem}
  .person-label .name{font-size:0.9rem}
  .science-callout{padding:1.25rem}
  .reg-card,.team-card{padding:1.75rem 1.5rem}
}

/* Landscape phones */
@media (max-height:520px) and (orientation:landscape){
  .hero{padding-top:calc(var(--nav-height) + 1.5rem);padding-bottom:2.5rem;min-height:auto}
  .hero-visual{aspect-ratio:2/1}
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important}
  .hero h1,.hero .lede,.hero-actions,.hero-tagline,.hero-visual{opacity:1;animation:none}
  .hero-badge-meta .dot{animation:none}
  html{scroll-behavior:auto}
  .nav-links{transition:none}
  .nav-toggle svg{transition:none}
  .nav-backdrop{transition:none}
}

/* Forced colors */
@media (forced-colors:active){
  .card-today,.card-haven,.eco-node,.eco-anchor-inner,.hero-visual,.hero-badge,.person,.family-image,.cta-image{border:1px solid CanvasText}
  .trust-stat .num,.stat-value{color:CanvasText}
}

/* ─── Reveal on scroll ─── */
.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.8s var(--ease-out),transform 0.8s var(--ease-out);will-change:opacity,transform}
.reveal.visible{opacity:1;transform:none}

/* ─── Focus ─── */
:focus-visible{outline:2px solid var(--navy);outline-offset:3px;border-radius:2px}
.hero :focus-visible,.cta :focus-visible{outline-color:var(--sage)}

/* ═══════════════════════════════════════════════════════
   ARTICLE PAGES — research reports, legal, white paper
   ═══════════════════════════════════════════════════════ */
.page-hero{
  padding-top:calc(var(--nav-height) + clamp(3rem,6vw,5rem));
  padding-bottom:clamp(2.5rem,5vw,3.5rem);
  background:var(--bone);
  border-bottom:1px solid var(--hairline);
}
.page-hero .container{max-width:880px}
.page-hero .meta{
  font-size:0.6875rem;letter-spacing:0.28em;text-transform:uppercase;
  color:var(--navy);font-weight:500;margin-bottom:1.5rem;
  display:inline-flex;align-items:center;gap:0.625rem;
}
.page-hero .meta::before{content:'';width:24px;height:1px;background:var(--navy);opacity:0.6}
.page-hero h1{
  font-size:clamp(2rem,4.5vw,3.75rem);
  letter-spacing:-0.035em;line-height:1.05;
  color:var(--ink);margin-bottom:1.25rem;
  text-wrap:balance;
}
.page-hero .lede{
  font-size:clamp(1.15rem,1.8vw,1.35rem);
  color:var(--slate);max-width:60ch;
  font-weight:300;line-height:1.55;
}
.page-hero .stats{
  display:flex;flex-wrap:wrap;gap:2rem;
  margin-top:2rem;padding-top:2rem;
  border-top:1px solid var(--hairline);
  font-size:0.8125rem;color:var(--graphite);
  letter-spacing:0.12em;text-transform:uppercase;font-weight:500;
}
.page-hero .stats span{display:inline-flex;align-items:center;gap:0.5rem}
.page-hero .stats span::before{content:'';width:6px;height:6px;background:var(--navy);border-radius:50%;opacity:0.45}

/* Article body */
.article{
  padding:clamp(3rem,6vw,5rem) 0;
  background:var(--paper);
}
.article .container{max-width:760px}
.article h2{
  font-size:clamp(1.5rem,2.8vw,2rem);
  margin-top:clamp(2.5rem,5vw,3.5rem);
  margin-bottom:1.25rem;
  letter-spacing:-0.022em;
  color:var(--ink);
}
.article h2:first-child{margin-top:0}
.article h3{
  font-size:clamp(1.15rem,1.9vw,1.3rem);
  font-weight:500;
  margin-top:2.25rem;margin-bottom:0.875rem;
  color:var(--ink);
  letter-spacing:-0.015em;
}
.article p{
  font-size:1.0625rem;line-height:1.75;color:var(--slate);
  margin-bottom:1.25rem;max-width:none;font-weight:300;
}
.article p strong{color:var(--ink);font-weight:500}
.article p em{font-style:italic}
.article ul,.article ol{
  padding-left:1.5rem;margin:0 0 1.5rem;
  color:var(--slate);font-weight:300;
}
.article ul li,.article ol li{
  font-size:1.0625rem;line-height:1.65;
  margin-bottom:0.625rem;padding-left:0.25rem;
}
.article ul{list-style:none;padding-left:0}
.article ul li{position:relative;padding-left:1.5rem}
.article ul li::before{
  content:'';position:absolute;left:0;top:0.85rem;
  width:10px;height:1px;background:var(--navy);opacity:0.5;
}
.article blockquote{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(1.15rem,1.8vw,1.35rem);line-height:1.55;
  color:var(--ink);padding:0 0 0 1.5rem;
  border-left:2px solid var(--sage);
  margin:2rem 0;
}
.article a:not(.btn){
  color:var(--navy);text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:3px;
}
.article a:not(.btn):hover{color:var(--navy-deep)}
.article .references{
  margin-top:3.5rem;padding-top:2rem;
  border-top:1px solid var(--hairline);
}
.article .references h3{
  font-size:0.6875rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--navy);margin-top:0;margin-bottom:1.25rem;font-weight:500;
}
.article .references p{
  font-size:0.875rem;color:var(--graphite);
  line-height:1.6;margin-bottom:0.75rem;
}

/* Pull quote / callout box */
.article .callout{
  background:var(--bone);border:1px solid var(--hairline);
  border-radius:12px;padding:1.75rem 2rem;
  margin:2rem 0;
}
.article .callout p:last-child{margin-bottom:0}

/* CTA block at end of articles */
.article-cta{
  background:var(--bone);border:1px solid var(--hairline);
  border-radius:16px;padding:2.5rem 2rem;
  margin:3rem 0 0;
  text-align:left;
}
.article-cta h3{
  font-weight:500;font-size:1.25rem;margin-top:0;margin-bottom:0.75rem;
  color:var(--ink);
}
.article-cta p{font-size:0.9375rem;line-height:1.55;margin-bottom:1.5rem}
.article-cta .btn{font-size:0.875rem}

/* Related reading — end-of-article grid */
.related-reading{
  background:var(--bone);
  padding:clamp(3rem,5vw,4rem) 0;
  border-top:1px solid var(--hairline);
}
.related-reading .container{max-width:var(--container)}
.related-reading h3{
  font-size:0.6875rem;letter-spacing:0.28em;text-transform:uppercase;
  color:var(--navy);font-weight:500;margin-bottom:1.5rem;
  display:inline-flex;align-items:center;gap:0.625rem;
}
.related-reading h3::before{content:'';width:24px;height:1px;background:var(--navy);opacity:0.6}
.related-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1rem;
}
.related-card{
  padding:1.75rem 1.5rem;
  background:var(--paper);border:1px solid var(--hairline);
  border-radius:14px;
  text-decoration:none;color:var(--ink);
  transition:border-color var(--transition),transform var(--transition),box-shadow var(--transition);
  display:flex;flex-direction:column;gap:0.5rem;
}
.related-card:hover{border-color:var(--navy-hairline);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.related-card .kicker{
  font-size:0.6875rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--navy);font-weight:500;
}
.related-card h4{
  font-weight:500;font-size:1.05rem;line-height:1.3;
  color:var(--ink);margin-bottom:0.5rem;
}
.related-card p{
  font-size:0.875rem;color:var(--slate);line-height:1.5;
  margin-bottom:0;font-weight:300;
}

/* Article mobile */
@media (max-width:720px){
  .related-grid{grid-template-columns:1fr;gap:0.75rem}
  .article .container{padding:0 clamp(1.25rem,5vw,2rem)}
}
@media (max-width:540px){
  .page-hero .stats{flex-direction:column;gap:0.5rem;align-items:flex-start}
}

/* ═══════════════════════════════════════════════════════
   PITCH DECK — slide-style scroll presentation
   ═══════════════════════════════════════════════════════ */
.deck-section{
  min-height:auto;padding:clamp(3.5rem,6vw,5rem) 0;
  border-bottom:1px solid var(--hairline);
}
.deck-section:last-child{border-bottom:none}
.deck-section .slide-num{
  font-size:0.6875rem;letter-spacing:0.28em;text-transform:uppercase;
  color:var(--navy);font-weight:500;margin-bottom:1rem;
  display:inline-flex;align-items:center;gap:0.625rem;
}
.deck-section .slide-num::before{content:'';width:24px;height:1px;background:var(--navy);opacity:0.6}
.deck-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.5rem}
.deck-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.5rem}
.deck-stat{
  padding:1.75rem 1.5rem;background:var(--bone);
  border:1px solid var(--hairline);border-radius:12px;
}
.deck-stat .val{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(1.85rem,3vw,2.35rem);color:var(--navy);
  line-height:1;letter-spacing:-0.03em;margin-bottom:0.5rem;
}
.deck-stat .lbl{
  font-size:0.875rem;color:var(--slate);line-height:1.45;
  font-weight:300;
}
.deck-stat .cite{
  font-size:0.625rem;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--graphite);margin-top:0.75rem;display:block;
}
@media (max-width:960px){
  .deck-grid-4,.deck-grid-3{grid-template-columns:1fr 1fr}
}
@media (max-width:540px){
  .deck-grid-4,.deck-grid-3{grid-template-columns:1fr}
}
