/* nourishME | Homepage responsive refinement | 30 Oct 2026
   Intentionally scoped to the homepage. Desktop (>= 941px), shared header,
   photographs, navigation, footer and legal pages are unchanged. */

/* A calm, consistent three-column metrics presentation on every viewport.
   This also fixes older deployments where the figures rendered as plain text. */
body.nd-home .nm-stats { background:transparent; }
body.nd-home .nm-stats-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
}
body.nd-home .nm-stat {
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
}
body.nd-home .nm-stat-number,
body.nd-home .nm-stat-label { display:block; }

/* Tablet: extend the centered desktop composition instead of squeezing
   the desktop two-column hero into an awkward intermediate width. */
@media (min-width:641px) and (max-width:940px) {
  body.nd-home .nd-home-hero { padding-top:38px; }
  body.nd-home .nd-home-hero-main {
    display:flex; flex-direction:column; align-items:center; gap:0;
    min-height:0;
  }
  body.nd-home .nd-home-hero-heading {
    width:100%; max-width:730px; text-align:center; padding:0;
  }
  body.nd-home .nd-home-hero h1 {
    font-size:clamp(64px,8vw,83px); line-height:.99;
    margin:20px 0 24px;
  }
  body.nd-home .nd-home-hero-heading>p {
    margin:0 auto 24px; max-width:560px; font-size:16px; line-height:1.65;
  }
  body.nd-home .nd-home-hero .nd-hero-btns { justify-content:center; }
  body.nd-home .nd-home-hero-art {
    width:min(540px,85%); height:440px; min-height:0;
    margin:42px auto 0;
  }
  body.nd-home .nd-hero-photo {
    width:330px; max-width:74%; height:428px;
    border-radius:45% 45% 31% 31%;
  }
  body.nd-home .nd-hero-halo {
    width:460px; max-width:92%; height:425px;
    top:0; left:50%; transform:translateX(-50%);
  }
  body.nd-home .nd-hero-float-top { left:0; top:22%; }
  body.nd-home .nd-hero-float-bottom { right:0; bottom:15%; }
  body.nd-home .nd-hero-bottom { padding:14px 0 22px; }
  body.nd-home .nm-stats { padding:10px 0 30px; }
  body.nd-home .nm-stats-grid { padding:27px 0; }
}

/* Phones: the hero is now a purposeful, compact cover, not a full-page
   vertical stack of oversized buttons and a cropped portrait. */
@media (max-width:640px) {
  body.nd-home .nd-home-hero { padding-top:28px; }
  body.nd-home .nd-home-hero-main {
    display:flex; flex-direction:column; align-items:center;
    gap:0; min-height:0;
  }
  body.nd-home .nd-home-hero-heading {
    width:100%; padding:0; text-align:center;
  }
  body.nd-home .nd-home-hero .nd-label {
    display:inline-flex; align-items:center; justify-content:center;
    max-width:100%; font-size:9px; letter-spacing:.105em;
    line-height:1.4; gap:8px;
  }
  body.nd-home .nd-home-hero .nd-label-star { font-size:18px; }
  body.nd-home .nd-home-hero h1 {
    font-size:clamp(41px,11.2vw,61px);
    line-height:1.015; letter-spacing:-.072em;
    margin:18px auto 18px; max-width:100%;
  }
  body.nd-home .nd-home-hero h1 em {
    display:inline; white-space:nowrap; letter-spacing:-.055em;
  }
  body.nd-home .nd-home-hero-heading>p {
    font-size:14px; line-height:1.6;
    max-width:355px; margin:0 auto 23px;
    text-wrap:pretty;
  }
  body.nd-home .nd-home-hero .nd-hero-btns {
    display:flex; flex-wrap:nowrap; align-items:stretch;
    justify-content:center; width:100%; max-width:358px; gap:9px;
  }
  body.nd-home .nd-hero-btns .nd-btn {
    min-width:0; min-height:49px; margin:0;
    padding:10px 14px; border-radius:100px;
    display:inline-flex; align-items:center;
    gap:8px; justify-content:center;
    font-size:11.5px; font-weight:750;
    line-height:1.25; white-space:nowrap;
    letter-spacing:-.013em;
  }
  body.nd-home .nd-hero-btns .nd-btn-solid { flex:1.13 1 0; }
  body.nd-home .nd-hero-btns .nd-btn-outline { flex:1 1 0; }
  body.nd-home .nd-hero-btns .nd-btn svg {
    width:15px; height:15px; flex:none;
  }
  body.nd-home .nd-home-hero-art {
    width:100%; height:325px; min-height:0;
    margin:28px auto 0;
  }
  body.nd-home .nd-hero-halo {
    width:310px; max-width:88%; height:305px;
    aspect-ratio:1; top:5px; left:50%;
    transform:translateX(-50%);
  }
  body.nd-home .nd-hero-halo:before { inset:20px; }
  body.nd-home .nd-hero-photo {
    width:248px; max-width:70%; height:309px;
    border-width:5px; border-radius:44% 44% 29% 29%;
    box-shadow:0 18px 45px rgba(45,68,28,.09);
  }
  body.nd-home .nd-hero-photo img { object-position:center top; }
  body.nd-home .nd-hero-float { font-size:8px; letter-spacing:.015em; }
  body.nd-home .nd-hero-float-top {
    left:1%; top:24%; padding:10px 11px;
    border-radius:10px; transform:rotate(-6deg);
  }
  body.nd-home .nd-hero-float-bottom {
    right:0; bottom:13%; padding:9px 10px; gap:7px;
    border-radius:10px; background:rgba(255,255,251,.93);
  }
  body.nd-home .nd-hero-float-bottom span { font-size:23px; }
  /* The photograph already anchors the end of the hero on phones. */
  body.nd-home .nd-hero-bottom { display:none; }

  body.nd-home .nm-stats { padding:16px 0 23px; }
  body.nd-home .nm-stats-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    background:rgba(255,255,251,.72);
    border:1px solid rgba(255,255,255,.82);
    border-radius:20px;
    padding:20px 5px 18px;
    box-shadow:0 10px 28px rgba(41,65,27,.035);
  }
  body.nd-home .nm-stat { gap:7px; padding:0 3px; }
  body.nd-home .nm-stat+.nm-stat { border-left:1px solid rgba(49,84,39,.13); }
  body.nd-home .nm-stat-number {
    font-size:clamp(23px,6.5vw,30px);
    font-weight:700; line-height:1;
    letter-spacing:-.065em; white-space:nowrap;
  }
  body.nd-home .nm-stat-number span { font-size:.72em; }
  body.nd-home .nm-stat-label {
    max-width:106px; min-height:27px;
    font-size:10px; font-weight:600;
    line-height:1.35; color:#4e624a;
    letter-spacing:-.008em;
  }
  body.nd-home .nm-intro { padding-top:52px; }
}

/* Small phones: preserve two neat CTAs and keep the photograph inside the
   content width rather than letting the floating labels clip at the edges. */
@media (max-width:360px) {
  body.nd-home .nd-home-hero { padding-top:24px; }
  body.nd-home .nd-home-hero h1 { font-size:clamp(38px,11.2vw,42px); }
  body.nd-home .nd-home-hero-heading>p { font-size:13px; }
  body.nd-home .nd-hero-btns .nd-btn {
    padding:9px 7px; font-size:10.4px; gap:4px; min-height:47px;
  }
  body.nd-home .nd-hero-btns .nd-btn svg { width:13px; height:13px; }
  body.nd-home .nd-home-hero-art { height:284px; margin-top:25px; }
  body.nd-home .nd-hero-halo { width:270px; height:270px; }
  body.nd-home .nd-hero-photo { width:210px; height:270px; }
  body.nd-home .nd-hero-float-top { left:0; top:22%; }
  body.nd-home .nd-hero-float-bottom { right:0; bottom:12%; }
  body.nd-home .nm-stats-grid { padding:18px 2px 17px; }
  body.nd-home .nm-stat-number { font-size:22px; }
  body.nd-home .nm-stat-label { font-size:9px; }
  body.nd-home .nm-intro { padding-top:43px; }
}

@media (prefers-reduced-motion:reduce) {
  body.nd-home .nd-hero-float-top { transform:rotate(-6deg); }
}
