/* Public homepage only; account screens retain their existing shared theme. */
.hb-home {
    --home-bg: #fbfaf6;
    --home-soft: #eff3ed;
    --home-surface: #fff;
    --home-ink: #233d32;
    --home-muted: #54665d;
    --home-accent: #087b59;
    --home-line: #dce4da;
    background: var(--home-bg);
    color: var(--home-ink);
}
[data-bs-theme="dark"] .hb-home {
    --home-bg: #111a24;
    --home-soft: #172631;
    --home-surface: #1b2d37;
    --home-ink: #edf4ef;
    --home-muted: #b6c5c6;
    --home-accent: #6edcb1;
    --home-line: #33464c;
}
.hb-home *, .hb-home *::before, .hb-home *::after { box-sizing: border-box; }
.home-wrap { width: min(1180px, calc(100% - 64px)); margin-inline: auto; }
.hb-home img { display: block; max-width: 100%; }
.hb-home p { margin: 0 0 1.2rem; }
.hb-home h1, .hb-home h2, .hb-home h3, .hb-home h4 { color: var(--home-ink); }
.hb-home .home-eyebrow { color: var(--home-accent); font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 1.25rem; }
.home-eyebrow i { margin-right: .45rem; }
.hb-home .home-small { color: var(--home-muted); font-size: .82rem; line-height: 1.6; }
.hb-home .home-accent { color: var(--home-accent); }
.home-hero { display: grid; grid-template-columns: 1.04fr 1fr; gap: 3rem; align-items: center; padding-block: 88px 82px; }
.home-hero-copy { padding-bottom: 1.5rem; }
.hb-theme .hb-home .home-hero h1 { font-size: clamp(2.7rem, 4.55vw, 4.15rem); line-height: 1.08; letter-spacing: -.047em; font-weight: 700; margin-bottom: 1.6rem; }
.home-hero h1 span { display: block; color: var(--home-accent); }
.hb-home .home-lead { color: var(--home-muted); font-size: 1.16rem; line-height: 1.75; max-width: 440px; margin-bottom: 1.7rem; }
.home-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.5rem; }
.hb-theme .hb-home .home-primary { display: inline-flex; align-items: center; justify-content: center; gap: 1.4rem; min-height: 52px; padding: .8rem 1.35rem; }
.home-text-link { display: inline-flex; align-items: center; gap: .65rem; color: var(--home-ink); font-size: .94rem; font-weight: 600; text-decoration: none; min-height: 44px; }
.home-text-link:hover { color: var(--home-accent); text-decoration: underline; }
.hb-home .home-signup-note { margin: 1rem 0 2.4rem; }
.home-hero-features { display: flex; flex-wrap: wrap; gap: 1.25rem; padding: 0; margin: 0; list-style: none; color: var(--home-muted); font-size: .8rem; }
.home-hero-features li { display: flex; align-items: center; gap: .4rem; }
.home-hero-features i { color: var(--home-accent); font-size: 1rem; }
.home-hero-visual { position: relative; min-width: 0; padding: 0 24px 75px 0; margin: 0; }
.home-meal-picture { display: block; }
.home-meal-photo { width: 100%; height: 480px; object-fit: cover; object-position: 58% center; border-radius: 32px 100px 32px 32px; }
.home-day-preview { position: absolute; right: -4px; bottom: 28px; width: 43%; background: #172331; border: 5px solid var(--home-surface); border-radius: 20px; overflow: hidden; box-shadow: 0 20px 55px #0003; }
.home-preview-label { display: flex; align-items: center; gap: .4rem; background: #172331; color: #edf4f1; padding: .65rem .8rem; font-size: .67rem; font-weight: 600; }
.home-live-dot { width: 6px; height: 6px; border-radius: 50%; background: #6edcb1; flex-shrink: 0; }
.home-day-preview img { width: 100%; height: auto; max-height: 285px; object-fit: cover; object-position: top; }
.home-hero-visual figcaption { color: var(--home-ink); font-size: .87rem; font-weight: 600; padding: 1rem 47% 0 .4rem; }
.home-hero-visual figcaption span { display: block; color: var(--home-muted); font-size: .7rem; font-weight: 400; margin-top: .25rem; }
.home-section { padding-block: 84px; }
.hb-theme .hb-home h2 { font-size: clamp(2rem, 3.2vw, 2.8rem); letter-spacing: -.04em; line-height: 1.15; font-weight: 650; margin-bottom: 1.2rem; }
.hb-home .home-section-intro { color: var(--home-muted); font-size: 1.04rem; line-height: 1.75; max-width: 470px; }
.home-walkthrough { background: var(--home-soft); scroll-margin-top: 30px; }
.home-walkthrough-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 5.5rem; }
.home-steps { margin-top: 2rem; }
.home-step { display: grid; grid-template-columns: 30px 1fr 16px; gap: 1rem; width: 100%; text-align: left; padding: 1.1rem .85rem; margin-bottom: .3rem; border: 1px solid transparent; border-radius: 12px; background: transparent; color: var(--home-muted); line-height: 1.55; }
.home-step[aria-selected="true"] { background: var(--home-surface); border-color: var(--home-line); }
.home-step-number { color: var(--home-accent); font-size: .83rem; font-weight: 700; padding-top: .18rem; }
.home-step strong { display: block; font-size: 1.03rem; color: var(--home-ink); margin-bottom: .3rem; }
.home-step span span { display: block; font-size: .88rem; }
.home-step > i { color: var(--home-accent); align-self: center; opacity: 0; }
.home-step[aria-selected="true"] > i { opacity: 1; }
.home-step:hover { border-color: var(--home-line); }
.home-walkthrough-display { min-width: 0; width: 100%; max-width: 470px; justify-self: center; }
.home-app-screen { margin: 0; background: #111a24; border: 1px solid var(--home-line); border-radius: 20px; overflow: hidden; box-shadow: 0 20px 55px #00000012; }
.home-app-screen[hidden] { display: none; }
.home-screen-heading { display: flex; align-items: center; gap: .6rem; padding: 1rem 1.3rem; color: #edf4f1; font-size: .84rem; border-bottom: 1px solid #344452; }
.home-screen-heading i { color: #6edcb1; }
.home-app-screen img { width: 100%; height: 535px; object-fit: contain; object-position: center; }
#home-screen-review img { height: auto; }
.home-app-screen figcaption { padding: .8rem 1rem; color: #b6c5c6; font-size: .72rem; text-align: center; border-top: 1px solid #344452; }
.home-section-heading { max-width: 680px; margin-bottom: 2.8rem; }
.home-benefit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem; }
.home-benefit-grid article { border-top: 1px solid var(--home-line); padding-top: 1.6rem; }
.home-benefit-grid article > i { color: var(--home-accent); font-size: 1.7rem; display: block; margin-bottom: 1.3rem; }
.hb-home h3 { font-size: 1.2rem; font-weight: 650; line-height: 1.3; margin-bottom: .7rem; }
.home-benefit-grid p { color: var(--home-muted); font-size: .95rem; margin-bottom: 0; }
.home-planner-section { padding-top: 10px; }
.home-planner-grid { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 4rem; }
.home-planner-preview { min-width: 0; margin: 0; background: var(--home-soft); padding: 22px 22px 0; border-radius: 28px; }
.home-planner-preview img { width: 100%; height: auto; max-height: 420px; object-fit: cover; object-position: top; border-radius: 12px; border: 1px solid var(--home-line); }
.home-planner-preview figcaption { text-align: center; color: var(--home-muted); font-size: .72rem; padding: .85rem; }
.home-planner-flow { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; list-style-position: inside; padding: 0; margin: 1.8rem 0; font-size: .83rem; color: var(--home-accent); font-weight: 600; }
.home-extra { border-top: 1px solid var(--home-line); }
.home-extra-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; }
.home-extra-grid article { display: flex; align-items: flex-start; gap: 1.2rem; }
.home-extra-grid article > i { color: var(--home-accent); font-size: 1.5rem; margin-top: .1rem; }
.home-extra-grid p { color: var(--home-muted); font-size: .92rem; }
.home-extra-grid .home-small { margin-bottom: .55rem; font-size: .78rem; }
.home-extra-grid .home-text-link { color: var(--home-accent); }
.home-start { background: var(--home-soft); }
.home-start-content { max-width: 680px; text-align: center; }
.home-start-content > div > p { color: var(--home-muted); }
.home-start-content > div > .home-eyebrow { color: var(--home-accent); }
.home-start-content .home-section-intro { margin-inline: auto; }
.home-start .home-actions { margin-top: 1.8rem; justify-content: center; align-items: center; }
.hb-home .home-returning { margin: 1.2rem 0 0; }
.home-returning a { color: var(--home-accent); }
@media (min-width: 1440px) { .home-hero { gap: 4rem; } }
@media (max-width: 991px) {
    .home-wrap { width: calc(100% - 48px); }
    .home-hero { gap: 2rem; padding-block: 60px; }
    .home-meal-photo { height: 430px; border-top-right-radius: 70px; }
    .home-day-preview { width: 51%; }
    .home-hero-visual figcaption { padding-right: 52%; }
    .home-hero-features { gap: .7rem; }
    .home-walkthrough-grid { gap: 2.5rem; }
    .home-planner-grid { gap: 2rem; }
    .home-benefit-grid { gap: 1.5rem; }
    .home-extra-grid { gap: 2rem; }
}
@media (max-width: 767px) {
    .home-wrap { width: calc(100% - 40px); }
    .home-hero { grid-template-columns: 1fr; gap: 2.3rem; padding-block: 44px 40px; }
    .home-hero-copy { padding: 0; }
    .hb-theme .hb-home .home-hero h1 { font-size: clamp(2.55rem, 8.8vw, 3.65rem); max-width: 570px; }
    .hb-home .home-eyebrow { font-size: .69rem; margin-bottom: 1rem; }
    .hb-home .home-lead { font-size: 1.04rem; margin-bottom: 1.4rem; }
    .home-actions { gap: .8rem 1.35rem; }
    .hb-home .home-signup-note { margin-bottom: 1.4rem; }
    .home-hero-features { font-size: .73rem; gap: .7rem 1rem; }
    .home-hero-visual { width: min(100%, 540px); justify-self: center; padding: 0 20px 56px 0; }
    .home-meal-photo { height: clamp(285px, 80vw, 400px); border-radius: 22px 70px 22px 22px; }
    .home-day-preview { width: 43%; right: 0; bottom: 4px; border-width: 4px; border-radius: 15px; }
    .home-preview-label { font-size: .55rem; padding: .45rem; gap: .3rem; }
    .home-day-preview img { max-height: 245px; }
    .home-hero-visual figcaption { padding: .8rem 48% 0 .2rem; font-size: .76rem; }
    .home-hero-visual figcaption span { font-size: .65rem; }
    .home-section { padding-block: 56px; }
    .home-walkthrough-grid, .home-planner-grid { grid-template-columns: 1fr; gap: 2rem; }
    .home-app-screen img { height: 490px; }
    .home-section-heading { margin-bottom: 2rem; }
    .home-benefit-grid { grid-template-columns: 1fr; gap: 1.8rem; }
    .home-benefit-grid article { padding-top: 1.2rem; }
    .home-benefit-grid article > i { margin-bottom: .7rem; font-size: 1.4rem; }
    .home-planner-section { padding-top: 0; }
    .home-planner-copy { grid-row: 1; }
    .home-planner-preview { padding: 14px 14px 0; }
    .home-extra-grid { grid-template-columns: 1fr; gap: 2rem; }
    .home-extra-grid article { gap: .9rem; }
}
@media (max-width: 374px) {
    .home-wrap { width: calc(100% - 32px); }
    .home-actions { align-items: flex-start; flex-direction: column; gap: .4rem; }
    .home-step { grid-template-columns: 23px 1fr 12px; gap: .6rem; padding-inline: .65rem; }
    .home-app-screen img { height: 420px; }
}
@media (prefers-reduced-motion: no-preference) {
    .home-step { transition: background-color .15s ease, border-color .15s ease; }
}
