/* Homepage only. Outfit is a visual companion to the supplied logo, not its identified font.
   Source and SIL OFL license: assets/fonts/OFL-Outfit.txt. */
@font-face {
    font-family: "Outfit";
    src: url("../assets/fonts/Outfit-Variable.woff2") format("woff2");
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}

html[data-home-brand] .page-home {
    --brand-green: #42694c;
    --brand-forest: #284b35;
    --brand-sage: #adc9b0;
    --brand-mint: #7caaa0;
    --brand-white: #ffffff;
    --bg: #fafbf8;
    --bg-soft: #edf2e9;
    --surface: #ffffff;
    --surface-muted: #f1f5ee;
    --surface-strong: #e4eddf;
    --ink: #26392d;
    --ink-soft: #435749;
    --muted: #596b60;
    --line: #ccd9c9;
    --line-soft: rgba(66, 105, 76, .16);
    --primary: #42694c;
    --primary-strong: #284b35;
    --primary-soft: #e5efdf;
    --accent: #42694c;
    --accent-soft: #dcead6;
    --blue: #477b70;
    --header-bg: #ffffff;
    --header-border: #e0e7dc;
    --proof-bg: #f1f5ee;
    --diagram-grid: rgba(66, 105, 76, .1);
    --diagram-route: #42694c;
    --diagram-route-soft: rgba(66, 105, 76, .24);
    --diagram-node: #ffffff;
    --diagram-node-border: #42694c;
    --star-color: #719477;
    --deck-shadow: rgba(66, 105, 76, .12);
    --shadow: 0 24px 64px rgba(40, 75, 53, .09);
    --shadow-soft: 0 12px 36px rgba(40, 75, 53, .06);
    --font-display: "Outfit", "Segoe UI", sans-serif;
    --font-body: "Outfit", "Segoe UI", sans-serif;
    --nav-height: 88px;
    color: var(--ink);
    background: var(--bg);
    font-family: var(--font-body);
    font-weight: 400;
    line-height: 1.65;
}

/* An optional forest night palette; the homepage starts in the requested light palette. */
html[data-home-brand][data-theme="dark"] .page-home {
    --bg: #14251b;
    --bg-soft: #1d3023;
    --surface: #203628;
    --surface-muted: #243d2d;
    --surface-strong: #2e4b37;
    --ink: #eff5eb;
    --ink-soft: #d0dfcf;
    --muted: #b5c9b7;
    --line: #49634f;
    --line-soft: rgba(173, 201, 176, .18);
    --primary: #b4d0b1;
    --primary-strong: #deedd6;
    --primary-soft: #2e4935;
    --accent: #b4d0b1;
    --accent-soft: #344f3c;
    --blue: #a4cfc3;
    --proof-bg: #1d3023;
    --diagram-route: #b4d0b1;
    --diagram-node: #203628;
    --star-color: #adc9b0;
    --deck-shadow: rgba(173, 201, 176, .08);
}

html[data-home-brand] .page-home :is(h1, h2, h3, h4) {
    font-family: var(--font-display);
    color: var(--primary-strong);
    font-weight: 400;
    letter-spacing: -.035em;
    line-height: 1.16;
    overflow-wrap: break-word;
    text-wrap: balance;
}
html[data-home-brand] .page-home h2 {
    font-size: clamp(2rem, 3.8vw, 3.5rem);
}
html[data-home-brand] .page-home .eyebrow {
    color: var(--primary);
    font-size: .76rem;
    font-weight: 600;
    letter-spacing: .1em;
    line-height: 1.5;
}
html[data-home-brand] .page-home :is(button, input, select, textarea) { font-family: var(--font-body); }
html[data-home-brand] .page-home :is(a, button, input, textarea, select):focus-visible {
    outline: 3px solid var(--primary);
    outline-offset: 4px;
}
html[data-home-brand] .page-home ::selection { color: var(--brand-white); background: var(--brand-green); }
html[data-home-brand] .page-home .skip-link { color: var(--brand-white); background: var(--brand-green); }

/* The original white logo pixels meet a solid white header, in both themes. */
html[data-home-brand] .page-home .site-header {
    --ink: #26392d;
    --ink-soft: #435749;
    --primary: #42694c;
    --primary-strong: #284b35;
    --surface: #ffffff;
    --surface-muted: #f1f5ee;
    --primary-soft: #e5efdf;
    --accent: #42694c;
    --accent-soft: #dcead6;
    --line: #ccd9c9;
    color-scheme: light;
    background: var(--brand-white);
    border-color: var(--header-border);
    backdrop-filter: none;
}
.page-home .site-header .brand { min-width: 0; gap: 0; }
.page-home .brand-logo { display: block; width: 290px; max-width: 100%; height: auto; }
.page-home .primary-nav a { font-size: .9rem; font-weight: 500; padding-inline: 10px; }
html[data-home-brand] .page-home .primary-nav a:is(:hover, :focus-visible, .is-active) {
    color: var(--primary-strong); background: var(--primary-soft);
}
html[data-home-brand] .page-home :is(.language-switch, .theme-toggle, .nav-toggle) {
    color: var(--primary); background: var(--surface); border-color: var(--line); box-shadow: none;
}
html[data-home-brand] .page-home .language-button.is-active { background: var(--primary-soft); border-color: var(--line); }
html[data-home-brand] .page-home .theme-toggle-thumb { background: var(--brand-green); }
html[data-home-brand] .page-home .site-header .primary-nav { background-color: var(--surface); }

/* Clear, quiet buttons and links, including forms and cookie preferences. */
html[data-home-brand] .page-home :is(.site-cta.site-cta, .button-primary, .consent-action-accept, .consent-action-save) {
    color: var(--brand-white); background: var(--brand-green); border-color: var(--brand-green);
    box-shadow: 0 5px 16px rgba(40, 75, 53, .1); font-weight: 500;
}
html[data-home-brand] .page-home :is(.site-cta.site-cta, .button-primary, .consent-action-accept, .consent-action-save):is(:hover, :focus-visible) {
    color: var(--brand-white); background: var(--brand-forest); border-color: var(--brand-forest); box-shadow: var(--shadow-soft);
}
html[data-home-brand] .page-home .site-cta.site-cta > i {
    color: var(--brand-forest); background: #e5efdf; border-color: transparent; box-shadow: none;
}
html[data-home-brand] .page-home :is(.site-cta.site-cta--secondary, .button-secondary) {
    color: var(--primary-strong); background: var(--surface); border-color: var(--line); box-shadow: none;
}
html[data-home-brand] .page-home :is(.site-cta.site-cta--secondary, .button-secondary):is(:hover, :focus-visible) {
    color: var(--primary-strong); background: var(--primary-soft); border-color: var(--primary);
}
.page-home .text-link { color: var(--primary); font-weight: 500; text-underline-offset: 5px; }
.page-home .text-link:hover { color: var(--primary-strong); }

/* Preserve the original composition and interactions, with a light canvas. */
html[data-home-brand] .page-home .home-hero { color: var(--ink); background: var(--bg); }
html[data-home-brand] .page-home .home-hero-media { opacity: .09; filter: grayscale(1); }
html[data-home-brand] .page-home .home-hero-scrim {
    background: linear-gradient(90deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 86%, transparent) 50%, color-mix(in srgb, var(--primary-soft) 72%, transparent));
}
html[data-home-brand] .page-home .home-hero::after { background: linear-gradient(0deg, var(--bg), transparent); }
html[data-home-brand] .page-home .home-hero-inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px);
    padding-block: 66px 76px;
}
html[data-home-brand] .page-home .home-hero h1 {
    color: var(--primary-strong); font-size: clamp(2.4rem, 4.35vw, 4rem); line-height: 1.09; letter-spacing: -.04em;
}
html[data-home-brand] .page-home .home-hero .hero-lead { color: var(--ink-soft); font-size: 1.1rem; line-height: 1.7; }
.page-home .home-hero-accent { background: var(--line); }
.page-home .home-hero-accent::after { background: var(--brand-mint); }
html[data-home-brand] .page-home .home-service-pills a {
    color: var(--ink-soft); background: var(--surface); border-color: var(--line); backdrop-filter: none; font-weight: 500;
}
html[data-home-brand] .page-home .home-service-pills a:is(:hover, :focus-visible) {
    color: var(--primary-strong); background: var(--primary-soft); border-color: var(--primary);
}
.page-home .home-service-pills a::before { background: var(--primary); }
.page-home .home-service-pills a::before { display: none; }
html[data-home-brand] .page-home .home-system-map {
    color: var(--ink); background: var(--surface); border-color: var(--line); box-shadow: var(--shadow); backdrop-filter: none;
}
html[data-home-brand] .page-home .home-system-map:hover { border-color: var(--brand-sage); box-shadow: var(--shadow); }
html[data-home-brand] .page-home .home-system-map::before {
    background: conic-gradient(from 115deg, transparent 0 28%, color-mix(in srgb, var(--brand-sage) 15%, transparent) 34%, transparent 40% 76%, color-mix(in srgb, var(--brand-mint) 12%, transparent) 82%, transparent 88%);
}
html[data-home-brand] .page-home .home-system-map::after { background: none; }
html[data-home-brand] .page-home :is(.system-map-heading, .system-map-footer, .system-map-scan) { border-color: var(--line); }
html[data-home-brand] .page-home :is(.system-map-heading .home-note-kicker, .system-map-icon, .system-map-readout-arrow) { color: var(--primary); }
html[data-home-brand] .page-home :is(.system-map-heading > span:last-child, .system-map-node > span:last-child, .system-map-readout-copy span) { color: var(--muted); }
html[data-home-brand] .page-home :is(.system-map-node strong, .system-map-readout-copy strong) { color: var(--primary-strong); font-weight: 500; }
html[data-home-brand] .page-home .system-map-orbit { stroke: var(--line); }
html[data-home-brand] .page-home .system-map-route { stroke: var(--brand-sage); }
html[data-home-brand] .page-home .system-map-pulse { fill: var(--primary); stroke: var(--surface); }
html[data-home-brand] .page-home .system-map-scan::before { background: conic-gradient(from 0deg, transparent 0 77%, var(--brand-mint) 90%, transparent); }
html[data-home-brand] .page-home .system-map-node {
    color: var(--ink); background: var(--surface-muted); border-color: var(--line); box-shadow: var(--shadow-soft);
}
html[data-home-brand] .page-home .system-map-node:is(.is-active, :hover, :focus-visible) {
    background: var(--primary-soft); border-color: var(--primary); box-shadow: 0 0 0 6px var(--line-soft), var(--shadow-soft);
}
html[data-home-brand] .page-home .system-map-core {
    color: var(--brand-white); background: linear-gradient(145deg, #709778, var(--brand-green));
    border-color: var(--brand-sage); box-shadow: 0 0 0 8px var(--line-soft), var(--shadow-soft);
}
.page-home .system-map-core span { font-family: var(--font-display); font-weight: 400; }
html[data-home-brand] .page-home .system-map-core i { border-color: var(--brand-green); }
html[data-home-brand] .page-home .system-map-star { background: var(--brand-sage); }
html[data-home-brand] .page-home .system-map-readout-index { color: var(--primary-strong); background: var(--primary-soft); font-weight: 500; }
html[data-home-brand] .page-home .system-map-footer {
    margin-inline: -3px;
    padding-inline: 6px;
    border-radius: 0 0 12px 12px;
    transition: color 220ms ease, background-color 220ms ease;
}
html[data-home-brand] .page-home .system-map-footer:is(:hover, :focus-visible) {
    color: var(--primary-strong);
    background: var(--primary-soft);
    outline: none;
}
html[data-home-brand] .page-home .system-map-footer:is(:hover, :focus-visible) .system-map-readout-arrow {
    transform: translate(2px, -2px);
}

/* Full-width editorial hero with the original lotus mark as a cropped motif. */
html[data-home-brand] .page-home .home-hero {
    min-height: 0;
    align-items: center;
    color: var(--ink);
    background: var(--bg);
    border-bottom: 1px solid var(--line);
}

.page-home .home-hero::before,
.page-home .home-hero::after {
    display: none;
}

html[data-home-brand] .page-home .home-hero-inner {
    position: relative;
    z-index: 2;
    min-height: 0;
    display: block;
    padding-block: clamp(48px, 6vh, 72px) clamp(48px, 7vh, 76px);
}

.page-home .home-hero-copy {
    max-width: none;
}

.page-home .home-hero .eyebrow {
    margin-bottom: clamp(18px, 2.5vh, 24px);
    color: var(--primary);
    letter-spacing: .1em;
}

html[data-home-brand] .page-home .home-hero h1 {
    max-width: min(100%, 10.2em, 1020px);
    margin: 0;
    color: var(--primary-strong);
    font-size: clamp(3.8rem, 6.4vw, 6.5rem);
    font-weight: 400;
    letter-spacing: -.055em;
    line-height: .98;
    text-wrap: balance;
}

.page-home .home-hero-accent {
    width: clamp(78px, 9vw, 126px);
    height: 2px;
    display: block;
    margin: clamp(26px, 3.5vh, 36px) 0 clamp(24px, 3.5vh, 32px);
    overflow: hidden;
    background: var(--line);
}

.page-home .home-hero-accent::after {
    width: 62%;
    height: 100%;
    display: block;
    background: var(--brand-mint);
}

.page-home .home-hero-support {
    max-width: 1180px;
    display: grid;
    grid-template-columns: minmax(0, 680px) auto;
    align-items: start;
    gap: clamp(28px, 3vw, 48px);
}

html[data-home-brand] .page-home .home-hero .hero-lead {
    max-width: 680px;
    margin: 0;
    color: var(--ink-soft);
    font-size: clamp(1.04rem, 1.35vw, 1.18rem);
    line-height: 1.7;
}

.page-home .home-hero-action-stack {
    min-width: 0;
    align-self: start;
}

.page-home .home-hero .hero-actions {
    align-items: center;
    flex-wrap: nowrap;
    gap: 24px;
}

.page-home .home-hero .home-hero-package-link {
    min-width: 0;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    color: var(--primary);
    background: transparent;
    border: 0;
    border-radius: 2px;
    box-shadow: none;
    font-size: .95rem;
    font-weight: 500;
    line-height: 1.5;
    text-decoration: none;
    transition: color 180ms ease;
}

.page-home .home-hero .home-hero-package-link > i {
    flex: 0 0 auto;
    font-size: 1.2em;
    font-style: normal;
    transition: transform 180ms ease;
}

.page-home .home-hero .home-hero-package-link:is(:hover, :focus-visible) {
    color: var(--primary-strong);
}

.page-home .home-hero .home-hero-package-link:is(:hover, :focus-visible) > span {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
}

.page-home .home-hero .home-hero-package-link:is(:hover, :focus-visible) > i {
    transform: translateX(3px);
}

.page-home .home-hero-lotus {
    --hero-lotus-x: 0px;
    --hero-lotus-y: 0px;
    --hero-lotus-offset-x: -30px;
    --hero-lotus-offset-y: 50px;
    position: absolute;
    top: 36%;
    right: clamp(-25px, calc(-10.5vw + 185px), 50px);
    z-index: 1;
    width: clamp(330px, 31vw, 490px);
    height: clamp(330px, 34.3vw, 475px);
    overflow: hidden;
    opacity: 1;
    pointer-events: none;
    user-select: none;
    -webkit-mask-image: url("../assets/meditative-media-logo-transparent.png");
    mask-image: url("../assets/meditative-media-logo-transparent.png");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: left center;
    mask-position: left center;
    -webkit-mask-size: auto 180%;
    mask-size: auto 180%;
    transform: translate3d(
        calc(var(--hero-lotus-x) + var(--hero-lotus-offset-x)),
        calc(-50% + var(--hero-lotus-y) + var(--hero-lotus-offset-y)),
        0
    ) scale(1);
    transform-origin: 62% 50%;
    transition: transform 700ms cubic-bezier(.2, .72, .25, 1);
}

.page-home .home-hero-lotus::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("../assets/meditative-media-logo-transparent.png");
    background-repeat: no-repeat;
    background-position: left center;
    background-size: auto 180%;
    opacity: .068;
    pointer-events: none;
}

.page-home .home-hero-lotus-sheen {
    position: absolute;
    top: -12%;
    bottom: -12%;
    left: -34%;
    width: 20%;
    display: block;
    background: linear-gradient(
        90deg,
        transparent,
        color-mix(in srgb, var(--brand-white) 74%, var(--brand-sage)) 48%,
        color-mix(in srgb, var(--brand-white) 88%, var(--brand-sage)) 52%,
        transparent
    );
    opacity: .16;
    filter: blur(2px);
    pointer-events: none;
    transform: translate3d(-120%, 0, 0) skewX(-14deg);
    animation: home-lotus-sheen 8.6s linear infinite;
    will-change: transform;
}

html.motion-ready .page-home .home-hero-lotus {
    animation: home-lotus-enter 1100ms cubic-bezier(.2, .72, .25, 1) 100ms both;
}

html[data-home-brand][data-theme="dark"] .page-home .home-hero-lotus::before {
    opacity: .08;
    filter: brightness(1.65) saturate(.48);
}

@keyframes home-lotus-enter {
    from {
        opacity: 0;
        transform: translate3d(
            calc(var(--hero-lotus-x) + var(--hero-lotus-offset-x)),
            calc(-50% + var(--hero-lotus-y) + var(--hero-lotus-offset-y)),
            0
        ) scale(.955);
    }
    to {
        transform: translate3d(
            calc(var(--hero-lotus-x) + var(--hero-lotus-offset-x)),
            calc(-50% + var(--hero-lotus-y) + var(--hero-lotus-offset-y)),
            0
        ) scale(1);
    }
}

@keyframes home-lotus-sheen {
    from {
        transform: translate3d(-120%, 0, 0) skewX(-14deg);
    }
    to {
        transform: translate3d(720%, 0, 0) skewX(-14deg);
    }
}

html[data-home-brand][data-theme="dark"] .page-home .closing-guidance-form .contact-form {
    background:
        radial-gradient(circle at 94% 5%, rgba(173, 201, 176, .1), transparent 27%),
        linear-gradient(145deg, #203628, #1b3023);
    border-color: #49634f;
    box-shadow: 10px 10px 0 rgba(173, 201, 176, .045), 0 24px 64px rgba(0, 0, 0, .24);
}

html[data-home-brand][data-theme="dark"] .page-home .closing-guidance-form .field label,
html[data-home-brand][data-theme="dark"] .page-home .closing-guidance-form .field--service legend {
    color: #deedd6;
}

html[data-home-brand][data-theme="dark"] .page-home .closing-guidance-form :is(.field input, .field select, .field textarea) {
    color: #eff5eb;
    background: #243d2d;
    border-color: #49634f;
}

html[data-home-brand][data-theme="dark"] .page-home .closing-guidance-form :is(.field input, .field select, .field textarea):focus {
    color: #eff5eb;
    background: #2e4935;
    border-color: #b4d0b1;
    box-shadow: 0 0 0 4px rgba(173, 201, 176, .2);
}

/* Secondary sections and the scroll-stacking service cards. */
html[data-home-brand] .page-home :is(.home-problem-band, .home-proof-section) { background: var(--bg-soft); }
html[data-home-brand] .page-home :is(.home-problem-band, .home-proof-section)::before { opacity: .05; filter: grayscale(1); }
html[data-home-brand] .page-home :is(.home-problem-band, .home-proof-section)::after { background: linear-gradient(90deg, var(--bg-soft), transparent); }
html[data-home-brand] .page-home .problem-matrix { background: var(--surface); border-color: var(--line); box-shadow: var(--shadow-soft); }
html[data-home-brand] .page-home .problem-matrix strong { font-weight: 500; }

/* Four independent choices: clear grouping without a decorative connector. */
html[data-home-brand] .page-home .problem-matrix {
    gap: 14px;
    overflow: visible;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
html[data-home-brand] .page-home .problem-matrix::after {
    display: none;
}
html[data-home-brand] .page-home .problem-matrix li {
    min-height: 152px;
    padding: 26px 28px;
    background:
        radial-gradient(circle at 100% 0, rgba(173, 201, 176, .15), transparent 42%),
        linear-gradient(145deg, var(--surface) 0%, var(--surface-muted) 100%);
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: 0 12px 30px rgba(40, 75, 53, .075);
}
html[data-home-brand] .page-home .problem-matrix li:hover {
    background:
        radial-gradient(circle at 100% 0, rgba(173, 201, 176, .28), transparent 46%),
        linear-gradient(145deg, var(--surface) 0%, var(--primary-soft) 100%);
    border-color: var(--brand-sage);
    box-shadow: 0 16px 34px rgba(40, 75, 53, .12);
    transform: translateY(-3px);
}
html[data-home-brand] .page-home .problem-matrix strong {
    max-width: 310px;
    font-size: clamp(1rem, 1.25vw, 1.16rem);
    line-height: 1.45;
}
html[data-home-brand] .page-home .problem-matrix i {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    color: var(--primary-strong);
    background: var(--primary-soft);
    border: 1px solid var(--line);
    border-radius: 50%;
    font-size: 1.35rem;
    opacity: 1;
}
html[data-home-brand] .page-home .problem-matrix li:hover i {
    color: var(--brand-white);
    background: var(--primary);
    border-color: var(--primary);
    transform: translate(2px, -2px);
}
html[data-home-brand] .page-home .home-services .service-grid--deck .service-card {
    min-height: 260px;
    grid-template-columns: 74px minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    align-content: center;
    column-gap: clamp(24px, 3vw, 38px);
    padding: clamp(26px, 3.2vw, 36px);
    background:
        radial-gradient(circle at 94% 4%, rgba(173, 201, 176, .22), transparent 28%),
        repeating-linear-gradient(135deg, rgba(66, 105, 76, .025) 0 1px, transparent 1px 12px),
        linear-gradient(155deg, var(--surface) 0%, var(--surface) 48%, var(--surface-muted) 100%);
    border-color: var(--line);
    border-radius: 20px;
    box-shadow: 0 6px 0 var(--deck-shadow), var(--shadow-soft);
}
html[data-home-brand] .page-home .home-services .service-grid--deck .service-card:is(:hover, :focus-within) {
    border-color: var(--brand-sage); box-shadow: 0 6px 0 var(--deck-shadow), var(--shadow);
}
.page-home .home-services .service-grid--deck .service-card::before { background: linear-gradient(var(--brand-sage), var(--brand-mint)); }
html[data-home-brand] .page-home .service-grid--deck .service-card h3 {
    max-width: 100%; margin-right: 10px; font-size: clamp(1.65rem, 3.2vw, 3rem); line-height: 1.15;
    overflow-wrap: anywhere; hyphens: auto;
}
.page-home .service-grid--deck .service-card-meta {
    align-self: stretch;
    justify-content: flex-start;
    padding-right: clamp(18px, 2.4vw, 28px);
}
.page-home .service-grid--deck .service-card-index {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    color: var(--primary-strong);
    background: var(--primary-soft);
    border: 1px solid var(--line);
    border-radius: 16px;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1;
}
.page-home .service-grid--deck .service-card p { margin-bottom: 20px; }

/* A single deep forest section provides contrast amongst the light surfaces. */
html[data-home-brand] .page-home .home-feature-band {
    --primary: #c8dec2; --primary-strong: #f4f8ee;
    color: #edf4e8; background: var(--brand-forest);
}
html[data-home-brand] .page-home .home-feature-band::before { opacity: .04; filter: grayscale(1); }
html[data-home-brand] .page-home .home-feature-band::after { background: linear-gradient(90deg, var(--brand-forest), rgba(40, 75, 53, .7)); }
html[data-home-brand] .page-home .home-feature-band p { color: #d6e4d0; opacity: 1; }
.page-home .feature-orbit::before { background: radial-gradient(circle, rgba(173, 201, 176, .18), transparent 68%); }
.page-home .feature-orbit-ring { border-color: rgba(173, 201, 176, .28); }
.page-home .feature-orbit-tracer::after { background: var(--brand-sage); border-color: var(--brand-forest); box-shadow: 0 0 0 8px rgba(173, 201, 176, .08); }
.page-home .feature-orbit-core { background: #2e543b; border-color: #779b77; box-shadow: 0 0 0 12px rgba(173, 201, 176, .05), var(--shadow); }
.page-home .feature-orbit-core h3 { font-weight: 500; letter-spacing: -.02em; }
.page-home .feature-orbit-core { gap: 14px; }
.page-home .feature-orbit-node { color: #f4f8ee; background: #375c42; border-color: #719477; box-shadow: var(--shadow-soft); }
.page-home .feature-orbit-node { gap: 0; padding: 22px; }
.page-home .feature-orbit-node strong {
    max-width: 132px;
    min-height: 2.5em;
    display: grid;
    place-items: center;
    margin: 0;
}
.page-home .feature-orbit-node:is(:hover, :focus-visible, .is-active) {
    color: var(--brand-forest); background: #dcead6; border-color: var(--brand-sage); box-shadow: 0 0 0 8px rgba(173, 201, 176, .08);
}
html[data-home-brand] .page-home .home-process-media { border-color: var(--line); box-shadow: var(--shadow-soft); }
.page-home .process-route-thumb { color: var(--brand-white); background: var(--brand-green); box-shadow: 0 0 0 1px var(--primary), var(--shadow-soft); }
html[data-home-brand].motion-ready .page-home .process-list--visual .process-step,
html[data-home-brand] .page-home .process-list--single-thumb .process-step { opacity: 1; }
html[data-home-brand] .page-home .closing-guidance-card { box-shadow: var(--shadow-soft); border-color: var(--line); }
.page-home .closing-guidance-card::before { background: linear-gradient(var(--brand-sage), var(--brand-mint)); }
.page-home .closing-guidance-card {
    grid-template-rows: 1fr;
    align-items: start;
    padding-block: clamp(42px, 5vw, 62px);
}
.page-home .closing-guidance-copy {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    padding-top: clamp(8px, 1.5vw, 22px);
}
.page-home .closing-guidance-form { grid-column: 2; grid-row: 1; }
.page-home .closing-guidance-form .contact-form {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(24px, 3vw, 36px);
    background:
        radial-gradient(circle at 94% 5%, rgba(173, 201, 176, .18), transparent 27%),
        linear-gradient(145deg, #ffffff, #f6f9f3);
    border-color: var(--line);
    border-radius: 24px;
    box-shadow: 8px 8px 0 rgba(66, 105, 76, .07), 0 24px 58px rgba(40, 75, 53, .09);
}
.page-home .closing-guidance-form .contact-form::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: linear-gradient(180deg, var(--brand-sage), var(--brand-green));
}
.page-home .field :is(input, select, textarea) { background: var(--surface); border-color: var(--line); color: var(--ink); font-size: 1rem; }
.page-home .select-control select { padding-right: 52px; font-size: .92rem; }
.page-home .select-control::before { right: 42px; }
.page-home .select-control::after { right: 16px; }
.page-home .closing-guidance-options span { font-weight: 500; font-size: .8rem; }
.page-home .site-footer { background: #243f2e; }
.page-home :is(.footer-links, .footer-contact) > span { color: #c8dec2; }
.page-home .site-footer :is(a, button):hover { color: #dcead6; }
.page-home .footer-brand {
    width: min(100%, 330px);
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.page-home .footer-brand-logo-wrap {
    display: block;
    width: 100%;
    background: transparent;
}
.page-home .footer-brand-logo {
    display: block;
    width: 100%;
    height: auto;
    filter: brightness(1.72) saturate(.72) drop-shadow(0 4px 14px rgba(173, 201, 176, .2));
}

@media (min-width: 1121px) and (max-width: 1240px) {
    .page-home .brand-logo { width: 250px; }
    .page-home .nav-shell { gap: 10px; }
    .page-home .primary-nav a { padding-inline: 7px; font-size: .85rem; }
}
@media (max-width: 1120px) {
    html[data-home-brand] .page-home .home-services .service-grid--deck .service-card {
        grid-template-columns: 66px minmax(0, 1fr); gap: 22px; padding: 28px;
    }
    .page-home .service-grid--deck .service-card-meta { padding-right: 14px; }
    html[data-home-brand] .page-home .service-grid--deck .service-card h3 { font-size: clamp(1.6rem, 2.8vw, 2.1rem); }
}
@media (max-width: 1050px) {
    .page-home .closing-guidance-card { grid-template-rows: auto; }
    .page-home .closing-guidance-copy,
    .page-home .closing-guidance-form { grid-column: 1; grid-row: auto; }
}
@media (max-width: 960px) {
    html[data-home-brand] .page-home .home-hero-inner { min-height: auto; padding-block: 48px 60px; }
    html[data-home-brand] .page-home .home-hero h1 { max-width: 760px; font-size: clamp(3.4rem, 8vw, 5.35rem); }
    .page-home .home-hero-support { max-width: 760px; grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .page-home .home-hero-lotus { top: 34%; right: 35px; width: 392px; height: 392px; }
}
@media (max-width: 760px) {
    html[data-home-brand] .page-home { --nav-height: 80px; }
    .page-home .brand-logo { width: 270px; }
    html[data-home-brand] .page-home .home-hero { min-height: auto; }
    html[data-home-brand] .page-home .home-hero-inner { min-height: auto; padding-block: 36px 48px; }
    html[data-home-brand] .page-home .home-hero h1 { max-width: 650px; font-size: clamp(2rem, 10.4vw, 4.4rem); line-height: 1.02; letter-spacing: -.045em; }
    html[data-home-brand] .page-home .home-hero .hero-lead { max-width: 590px; font-size: 1rem; }
    .page-home .home-hero-accent { margin-block: 24px; }
    .page-home .home-hero .hero-actions { width: min(100%, 620px); flex-wrap: wrap; gap: 12px 24px; }
    .page-home .home-hero-lotus {
        --hero-lotus-offset-x: -20px;
        --hero-lotus-offset-y: 42px;
        top: 32%;
        right: 8px;
        width: 273px;
        height: 273px;
    }
    .page-home .home-hero-lotus::before { opacity: .055; }
    .page-home .home-hero-lotus-sheen { opacity: .11; animation-duration: 10s; }
    html[data-home-brand] .page-home .home-services .service-grid--deck .service-card { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 26px 24px; }
    .page-home .service-grid--deck .service-card-meta { padding: 0 0 14px; }
    html[data-home-brand] .page-home .service-grid--deck .service-card h3 { font-size: clamp(1.65rem, 6.8vw, 2.2rem); margin-bottom: 6px; }
    .page-home .service-grid--deck .service-card-index { width: 48px; height: 48px; font-size: 1.25rem; }
    .page-home .home-services .service-grid--deck .service-card::after { top: 14px; right: 14px; width: 9px; height: 9px; }
    /* On phones, the same four controls and changing readout have room for full text. */
    .page-home .feature-orbit { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; aspect-ratio: auto; }
    .page-home :is(.feature-orbit-ring, .feature-orbit-tracer) { display: none; }
    .page-home .feature-orbit .feature-orbit-node {
        position: static; order: 1; width: 100%; min-height: 106px; aspect-ratio: auto;
        transform: none; border-radius: 18px; padding: 18px 12px; gap: 10px;
    }
    .page-home .feature-orbit-node strong { max-width: 100%; font-size: .95rem; font-weight: 500; line-height: 1.35; overflow-wrap: anywhere; }
    .page-home .feature-orbit-node strong { min-height: 0; }
    .page-home .feature-orbit-core {
        position: static; order: 2; grid-column: 1 / -1; width: 100%; min-height: 210px;
        aspect-ratio: auto; transform: none; border-radius: 20px; padding: 28px 24px;
        gap: 12px; margin-top: 10px; box-shadow: none;
    }
    .page-home .feature-orbit-core h3 { max-width: 100%; font-size: 1.4rem; }
    .page-home .feature-orbit-core p { max-width: 100%; max-height: none; overflow: visible; font-size: 1rem; line-height: 1.6; }
    .page-home .closing-guidance-card { grid-template-rows: auto; padding: 34px 20px 28px; }
    .page-home .closing-guidance-copy,
    .page-home .closing-guidance-form { grid-column: 1; grid-row: auto; }
    .page-home .closing-guidance-form .contact-form { padding: 20px 16px; }
}

@media (prefers-reduced-motion: reduce) {
    html.motion-ready .page-home .home-hero-lotus {
        animation: none;
    }

    .page-home .home-hero-lotus {
        transition: none;
        transform: translate3d(
            var(--hero-lotus-offset-x),
            calc(-50% + var(--hero-lotus-offset-y)),
            0
        ) scale(1);
    }

    .page-home .home-hero-lotus-sheen {
        animation: none;
        opacity: 0;
        transform: none;
    }

    .page-home .home-hero .home-hero-package-link,
    .page-home .home-hero .home-hero-package-link > i {
        transition: none;
        transform: none;
    }

    .page-home .feature-orbit-tracer,
    .page-home .feature-orbit-node {
        transition: none;
    }
}
@media (max-width: 580px) {
    html[data-home-brand] .page-home { --nav-height: 116px; }
    .page-home .nav-shell { grid-template-columns: minmax(0, 1fr) auto auto; grid-template-rows: 56px 52px; gap: 0 10px; padding-block: 4px; }
    .page-home .site-header .brand { grid-column: 1 / 3; grid-row: 1; }
    .page-home .brand-logo { width: 280px; }
    .page-home .nav-toggle { grid-column: 3; grid-row: 1; }
    .page-home .language-switch { grid-column: 2; grid-row: 2; justify-self: end; }
    .page-home .theme-toggle { grid-column: 3; grid-row: 2; }
    .page-home .primary-nav { top: calc(100% + 4px); }
    .page-home .language-button { width: 38px; height: 38px; }
}
.page-home .home-process-media figcaption {
    position: relative;
    z-index: 2;
    padding: 24px 22px 20px;
    background: var(--surface);
}

