/* Stable, server-rendered home identity. Motion decorates the surface, never delays content. */
.home-welcome{--home-surface:#f5f6f8;--home-logo-surface:#fff;--home-ink:#17202b;--home-muted:#526070;--home-line:#e3e6eb;--home-accent:var(--bs-primary,#ffcb35);position:relative;isolation:isolate;overflow:hidden;background:var(--home-surface);color:var(--home-ink)}
[data-bs-theme=dark] .home-welcome{--home-surface:var(--ep-canvas);--home-logo-surface:#dfe3e8;--home-ink:var(--ep-text);--home-muted:var(--ep-muted);--home-line:var(--ep-border)}
.home-welcome-atmosphere{position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 85% 15%,color-mix(in srgb,var(--home-ink) 4%,transparent),transparent 58%)}
/* Let the Expo E bleed through the top/right edges, with its bottom tip clear of the hero edge. */
.home-welcome-atmosphere:after{content:"";position:absolute;width:clamp(320px,44vw,680px);height:clamp(320px,44vw,680px);right:clamp(-100px,-5vw,-32px);bottom:24px;background:linear-gradient(145deg,color-mix(in srgb,var(--home-ink) 6%,transparent),color-mix(in srgb,var(--home-ink) 1%,transparent) 80%);-webkit-mask:url(/_assets/images/expo-e.svg) center/contain no-repeat;mask:url(/_assets/images/expo-e.svg) center/contain no-repeat;animation:home-atmosphere-arrive 1.6s ease-out both}
.home-welcome-inner{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);align-items:center;gap:clamp(32px,6vw,96px);padding-block:clamp(32px,4vw,56px)}
.home-welcome-eyebrow{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin:0 0 18px;color:var(--home-muted)}
.home-welcome h1{font-size:clamp(32px,4.2vw,56px);font-weight:600;line-height:1.08;letter-spacing:-.035em;text-wrap:balance;margin:0 0 20px;overflow-wrap:anywhere;color:var(--home-ink)}
.home-welcome-meta{display:flex;flex-wrap:wrap;gap:10px 24px;color:var(--home-muted);font-size:14px;line-height:1.5;margin-bottom:32px}.home-welcome-meta span{display:inline-flex;align-items:baseline;gap:8px}
.home-welcome h2{font-size:clamp(20px,2vw,26px);font-weight:500;letter-spacing:-.015em;line-height:1.3;margin:0 0 12px;color:var(--home-ink)}
.home-welcome-description{max-width:54ch;font-size:16px;line-height:1.65;color:var(--home-muted);margin:0 0 28px}
.home-welcome-actions{display:flex;flex-wrap:wrap;gap:12px}.home-welcome-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:44px;padding:12px 20px;font-size:14px;font-weight:500;border-radius:8px;line-height:1.5}.home-welcome-actions .btn-primary{background:var(--home-accent);border-color:var(--ec-primary-border,var(--home-ink));color:var(--bs-primary-contrast,#17202b)}.home-welcome-actions .btn-outline-secondary{color:var(--home-ink);border-color:var(--home-muted);background:transparent}.home-welcome-actions .btn:hover{box-shadow:inset 0 0 0 1px currentColor}.home-welcome-actions a:focus-visible{outline:2px solid var(--ec-focus,var(--home-ink));outline-offset:3px}
.home-welcome-brand{position:relative;text-align:center;min-width:0;padding:0}.home-welcome-logo{display:grid;place-items:center;aspect-ratio:16/9;background:var(--home-logo-surface);border:0;border-radius:12px;padding:clamp(8px,1vw,12px)}.home-welcome-logo img{width:100%;height:100%;max-height:200px;object-fit:contain;display:block}
#home-services{scroll-margin-top:180px;padding-block:40px 16px}#home-services>.container>h2{font-size:26px;font-weight:600;letter-spacing:-.02em;margin-bottom:8px}#home-services>.container>p{font-size:15px;color:var(--bs-secondary-color);margin-bottom:24px}#home-services>section{padding-bottom:0}#home-services .card{opacity:1!important;transform:none!important}#home-services .card h5{font-size:17px;font-weight:600}#home-services .card span{font-size:14px}#home-services a:focus-visible{outline:2px solid var(--ec-focus,currentColor);outline-offset:3px}
@keyframes home-atmosphere-arrive{from{transform:translate(12px,6px)}to{transform:none}}
@media(max-width:767.98px){.home-welcome-inner{grid-template-columns:1fr;gap:24px;padding-block:28px}.home-welcome-brand{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;text-align:left;gap:12px 20px;padding:0}.home-welcome-logo{width:160px;flex-shrink:0;padding:8px;margin:0;border-radius:12px}.home-welcome-meta{margin-bottom:24px}.home-welcome-actions .btn{flex:1 1 190px}#home-services{padding-top:32px}}
@media(prefers-reduced-motion:reduce){.home-welcome-atmosphere:after{animation:none}}
@media(forced-colors:active){.home-welcome-logo{border:1px solid CanvasText}}

.home-welcome:not(:has(.home-welcome-logo)) .home-welcome-inner{grid-template-columns:1fr}.home-welcome:not(:has(.home-welcome-logo)) .home-welcome-brand{display:none}

/* Keep the final service row clear of the footer when recommendations are absent. */
.homesection:not(:has(.rec-section)) #home-services{padding-bottom:clamp(32px,4vw,56px)}

/* Service availability is a calm content state, not an empty catalog or recommendation slot. */
.home-services-empty{display:flex;align-items:flex-start;gap:16px;padding:24px;border:1px solid var(--ep-border);border-radius:12px;background:var(--ep-surface);color:var(--ep-text)}
.home-services-empty>i{flex:0 0 auto;font-size:24px;color:var(--ep-muted)}
.home-services-empty h2{font-size:22px;line-height:1.4;margin:0 0 8px;color:var(--ep-text)}
.home-services-empty p{max-width:65ch;font-size:15px;line-height:1.6;margin:0 0 16px;color:var(--ep-muted)}
.home-services-empty .btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 14px;border:1px solid var(--ep-control-border);border-radius:8px;color:var(--ep-text);background:transparent;font-size:14px;text-decoration:none}
.home-services-empty .btn:hover{background:var(--ep-hover)}
.home-services-empty .btn:focus-visible{outline:2px solid var(--ec-focus,var(--ep-text));outline-offset:3px}
@media(max-width:575px){.home-services-empty{padding:20px 16px;gap:12px}.home-services-empty h2{font-size:20px}}
