/* Public home only. No rules apply inside the signed-in household. */
.home-landing {
    --home-ink: #20372e;
    --home-green: #285e46;
    --home-muted: #52645a;
    --home-paper: #faf8f1;
    --home-line: #d9e2d7;
    max-width: 1240px;
    margin: 0 auto;
    padding: clamp(1rem, 3vw, 2.5rem) 0;
    color: var(--home-ink);
}
.home-landing *, .home-landing *::before, .home-landing *::after { box-sizing: border-box; }
.home-landing h1, .home-landing h2, .home-landing h3, .home-landing p, .home-landing figure { margin: 0; }
.home-landing h1, .home-landing h2, .home-landing h3 { color: var(--home-ink); text-wrap: balance; letter-spacing: -.035em; }
.home-landing p { line-height: 1.65; }
.home-landing .home-kicker { color: var(--home-green); font-size: .76rem; font-weight: 750; letter-spacing: .09em; line-height: 1.5; text-transform: uppercase; }
.home-landing .home-hero { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; padding: clamp(1.25rem, 3vw, 3rem); border-radius: 2rem; background: var(--home-paper); }
.home-landing .home-hero h1 { font-size: clamp(2.25rem, 4.3vw, 4.2rem); line-height: 1.05; margin: 1rem 0 1.5rem; font-weight: 800; }
.home-landing .home-hero h1 span { display: block; color: var(--home-green); }
.home-landing .home-lead { color: var(--home-muted); font-size: clamp(1rem, 1.3vw, 1.15rem); max-width: 35rem; }
.home-landing .home-actions { display: flex; flex-wrap: wrap; gap: 1rem 1.4rem; align-items: center; margin-top: 1.8rem; }
.home-landing .home-button { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; padding: .9rem 1.15rem; min-height: 48px; border-radius: .85rem; background: #eab19a; color: #322820; font-size: .95rem; font-weight: 750; text-decoration: none; line-height: 1.4; transition: background-color .15s ease; }
.home-landing .home-button:hover { background: #e59c7f; }
.home-landing .home-button span { font-size: 1.2rem; flex-shrink: 0; }
.home-landing .home-text-link { display: inline-flex; align-items: center; gap: .65rem; min-height: 44px; font-size: .95rem; font-weight: 700; color: var(--home-green); text-underline-offset: .25em; }
.home-landing .home-fineprint { color: var(--home-muted); font-size: .8rem; margin-top: 1rem; max-width: 33rem; }
.home-landing .home-hero__image { position: relative; min-width: 0; }
.home-landing .home-hero__image > img { display: block; width: 100%; height: clamp(300px, 35vw, 470px); object-fit: cover; object-position: 50% center; border-radius: 1.35rem; }
.home-landing .home-hero__image figcaption { position: absolute; bottom: 1rem; left: 1rem; right: 1rem; display: flex; align-items: center; gap: .8rem; padding: .95rem 1rem; background: #faf8f1; color: var(--home-ink); border-radius: .9rem; font-weight: 700; font-size: .95rem; }
.home-landing .home-hero__image figcaption > span { display: grid; place-items: center; flex: 0 0 32px; height: 32px; border-radius: 50%; background: #dce8d9; }
.home-landing .home-how { padding: clamp(2.5rem, 6vw, 5rem) clamp(.25rem, 2vw, 1.5rem); scroll-margin-top: 6rem; }
.home-landing .home-section-heading h2 { font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1.15; margin-top: .7rem; }
.home-landing .home-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; list-style: none; padding: 0; margin: 2.5rem 0; }
.home-landing .home-steps > li { display: flex; flex-direction: column; min-width: 0; padding-top: 1.1rem; border-top: 1px solid var(--home-line); }
.home-landing .home-step-number { color: var(--home-green); font-size: .85rem; font-weight: 750; }
.home-landing .home-steps h3 { margin: .9rem 0 .7rem; font-size: 1.3rem; line-height: 1.3; }
.home-landing .home-steps p { font-size: .95rem; color: var(--home-muted); margin-bottom: 1.3rem; }
.home-landing .home-step-example { margin-top: auto; padding: .8rem; border-radius: .75rem; background: #edf3e9; color: #37523f; font-size: .85rem; line-height: 1.5; }
.home-landing .home-step-example > span { margin-right: .25rem; font-weight: 800; }
.home-landing .home-week { padding: clamp(1rem, 2.5vw, 2rem); background: #eff3e9; border: 1px solid #dde5d6; border-radius: 1.5rem; }
.home-landing .home-week figcaption { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.home-landing .home-week h3 { margin-top: .4rem; font-size: clamp(1.25rem, 2vw, 1.7rem); line-height: 1.3; }
.home-landing .home-example-label { border: 1px solid #c4d2bd; border-radius: 2rem; padding: .3rem .65rem; color: #4c5f43; font-size: .72rem; flex-shrink: 0; }
.home-landing .home-week__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .6rem; list-style: none; margin: 1.5rem 0; padding: 0; }
.home-landing .home-week__days > li { display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 1rem .5rem; border-radius: .85rem; background: #fffef9; text-align: center; }
.home-landing .home-week__day { font-size: .73rem; color: var(--home-muted); font-weight: 650; }
.home-landing .home-week__icon { display: grid; place-items: center; width: 56px; height: 60px; font-size: 2rem; margin: .4rem 0; object-fit: contain; }
.home-landing .home-week__days strong { font-size: .85rem; font-weight: 700; overflow-wrap: anywhere; line-height: 1.4; }
.home-landing .home-week__days small { margin-top: .4rem; font-size: .7rem; line-height: 1.4; color: var(--home-muted); }
.home-landing .home-week__days .home-week__away { background: #e5ecdd; }
.home-landing .home-week__note { color: var(--home-muted); font-size: .86rem; max-width: 55rem; }
.home-landing .home-together { display: grid; grid-template-columns: 1fr 1fr; background: #233d31; border-radius: 1.5rem; overflow: hidden; }
.home-landing .home-together > img { display: block; width: 100%; height: 100%; min-height: 360px; object-fit: cover; }
.home-landing .home-together > div { padding: clamp(1.5rem, 4vw, 3.5rem); align-self: center; }
.home-landing .home-together .home-kicker { color: #c2d6af; }
.home-landing .home-together h2 { color: #faf8f1; font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1.15; margin: .8rem 0 1rem; }
.home-landing .home-together p { color: #e0e7da; }
.home-landing .home-together .home-button { margin-top: 1.5rem; }
.home-landing .home-button--light { background: #e5edda; }
.home-landing .home-button--light:hover { background: #ccddb9; }
.home-landing .home-access { padding: 2rem clamp(.25rem, 2vw, 1.5rem); }
.home-landing .home-access .card { background: var(--home-paper); border: 1px solid var(--home-line); border-radius: 1.1rem; padding: clamp(1.1rem, 2.5vw, 2rem); box-shadow: none; margin: 0; }
.home-landing .home-access h2 { font-size: 1.3rem; margin-bottom: .75rem; }
.home-landing .home-access p { font-size: .85rem; color: var(--home-muted); margin-top: .7rem; }
.home-landing .home-access a { color: var(--home-green); font-weight: 700; text-underline-offset: .2em; }
.home-landing .home-questions { display: grid; grid-template-columns: .8fr 1.2fr; gap: 2.5rem; padding: 1.5rem clamp(.25rem, 2vw, 1.5rem) 3rem; }
.home-landing .home-questions details { border-bottom: 1px solid var(--home-line); padding: 1.1rem 0; }
.home-landing .home-questions summary { cursor: pointer; font-size: 1rem; font-weight: 700; min-height: 28px; line-height: 1.6; }
.home-landing .home-questions details p { padding: .7rem 0 0; color: var(--home-muted); font-size: .95rem; }
.home-landing :focus-visible { outline: 3px solid #9d472c; outline-offset: 4px; }
@media (max-width: 1000px) {
    .home-landing .home-week__days { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .home-landing .home-hero { gap: 1.5rem; }
}
@media (max-width: 760px) {
    .home-landing .home-hero, .home-landing .home-together, .home-landing .home-questions { grid-template-columns: 1fr; }
    .home-landing .home-hero__image > img { height: 270px; }
    .home-landing .home-steps { grid-template-columns: 1fr; gap: 1.3rem; margin-top: 1.75rem; }
    .home-landing .home-steps h3 { margin-top: .5rem; }
    .home-landing .home-steps p { margin-bottom: .8rem; }
    .home-landing .home-week__days { grid-template-columns: 1fr; gap: .4rem; margin: 1rem 0; }
    .home-landing .home-week__days > li { display: grid; grid-template-columns: 6rem 34px minmax(0, 1fr); gap: .6rem; text-align: left; align-items: center; padding: .6rem .7rem; }
    .home-landing .home-week__icon { width: 34px; height: 34px; font-size: 1.4rem; margin: 0; }
    .home-landing .home-week__days small { grid-column: 3; margin: -.3rem 0 0; }
    .home-landing .home-week figcaption { flex-wrap: wrap; }
    .home-landing .home-together > img { min-height: 0; height: 240px; }
    .home-landing .home-questions { gap: 1rem; }
}
@media (max-width: 380px) {
    .home-landing .home-week__days > li { grid-template-columns: 5rem 28px minmax(0, 1fr); gap: .4rem; padding-inline: .5rem; }
    .home-landing .home-week__icon { width: 28px; }
}
@media (prefers-reduced-motion: reduce) { .home-landing .home-button { transition: none; } }
