/* Homepage composition. Shared inner-page styles remain in styles.css. */
.home-page { --home-navy: #0b2852; --home-gold: #b58a3d; }
.home-page .site-header .nav-wrap { height: 94px; }
.home-page .site-header .brand { min-width: 104px; }
.home-page .site-header .brand img { width: 104px; height: 86px; }
.home-page .nav-cta { padding: 12px 20px; box-shadow: none; font-size: .88rem; }
.home-page .topbar .container { min-height: 32px; font-size: .76rem; }
.home-page .preview-notice { padding: 7px 20px; font-size: .76rem; }
.home-page .container { width: min(1180px, calc(100% - 64px)); }
.home-page h1,.home-page h2,.home-page h3 { text-wrap: balance; }
.home-page .eyebrow { font: 700 .7rem/1.5 Arial,sans-serif; letter-spacing: .14em; }
.home-page .premium-hero { background: #f5f8fc; padding: 58px 0 46px; }
.home-page .premium-hero::before { background: radial-gradient(ellipse at 90% 15%, #ece6d947, transparent 48%); }
.home-page .premium-grid { grid-template-columns: 1.05fr 1fr; gap: 64px; align-items: center; }
.home-page .premium-hero h1 { font-size: clamp(2.7rem,4.5vw,4.1rem); letter-spacing: -.055em; line-height: 1.08; margin: 18px 0 22px; max-width: 570px; }
.home-page .premium-hero h1 em { display: block; }
.home-page .hero-intro { font-size: 1.06rem; line-height: 1.8; max-width: 460px; margin: 0; }
.home-page .hero-actions { margin-top: 26px; gap: 12px; }
.home-page .btn { border-radius: 10px; padding: 13px 20px; font-size: .88rem; min-height: 48px; }
.home-page .btn-primary { box-shadow: 0 6px 16px #0048b918; }
.home-page .hero-signals { margin-top: 25px; gap: 8px 18px; }
.home-page .signal { padding: 0; border: 0; background: none; font-size: .72rem; font-weight: 500; gap: 6px; }
.home-page .signal::before { content: '✓'; background: none; color: #247053; width: auto; height: auto; font-size: .8rem; }
.home-page .care-canvas { min-height: 430px; border-radius: 20px; box-shadow: 0 18px 40px #0b285212; padding: 0; }
.home-page .care-canvas::before { display: none; }
.home-page .care-canvas::after { background: linear-gradient(180deg,transparent 30%,#071e40d9 100%); }
.home-page .hero-photo { opacity: 1; object-position: 58% 35%; }
.home-page .care-head { position: absolute; top: 22px; left: 22px; }
.home-page .care-head img { display: none; }
.home-page .care-status { font-size: .62rem; letter-spacing: .09em; background: #ffffffed; color: var(--home-navy); padding: 7px 12px; border: 0; border-radius: 6px; }
.home-page .care-card { left: 26px; right: 26px; bottom: 26px; padding: 0; border-radius: 0; box-shadow: none; background: none; color: white; }
.home-page .care-card .eyebrow { color: #eed5a5; font-size: .65rem; }
.home-page .care-card h2 { color: white; font-size: 1.5rem; line-height: 1.25; max-width: 330px; margin: 9px 0; }
.home-page .care-card p { color: #e3e9f1; font-size: .85rem; max-width: 360px; }
.home-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 38px; padding-top: 24px; border-top: 1px solid #dce4ef; }
.home-step { display: flex; gap: 14px; align-items: center; padding: 0 24px; border-right: 1px solid #dce4ef; }
.home-step:first-child { padding-left: 0; }
.home-step:last-child { border: 0; }
.home-step b { color: var(--home-gold); font-size: .9rem; font-weight: 500; }
.home-step span { display: block; color: var(--home-navy); font-size: .9rem; font-weight: 700; }
.home-step small { display: block; color: #637087; font-size: .75rem; margin-top: 2px; }
.home-page .section { padding: 76px 0; }
.home-page .section-head { align-items: end; gap: 55px; margin-bottom: 30px; }
.home-page .section-head > div { max-width: 580px; flex: 1.25; }
.home-page .section-head > p { flex: 1; max-width: 400px; font-size: .95rem; line-height: 1.8; }
.home-page .section h2 { font-size: clamp(1.75rem,2.8vw,2.5rem); line-height: 1.2; letter-spacing: -.04em; margin-top: 10px; }
.home-page .service-rail { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.home-page .service-feature,.home-page .service-mini { display: flex; flex-direction: column; min-height: 305px; padding: 30px; border-radius: 14px; border: 1px solid #dce4ef; background: white; color: var(--home-navy); transition: border-color .2s, transform .2s, box-shadow .2s; }
.home-page .service-feature { background: var(--home-navy); color: white; border-color: var(--home-navy); }
.home-page .service-feature::after,.home-page .service-mini::after { display: none; }
.home-page .service-feature > span:first-child,.home-page .service-mini > span:first-child { font-size: .65rem; letter-spacing: .11em; font-weight: 700; }
.home-page .service-feature > span:first-child { color: #e6cb99; }
.home-page .service-mini > span:first-child { color: #6c7482; }
.home-page .service-feature h3,.home-page .service-mini h3 { margin-top: 35px; font-size: 1.35rem; line-height: 1.35; }
.home-page .service-feature p,.home-page .service-mini p { font-size: .9rem; line-height: 1.7; margin: 14px 0 24px; opacity: .85; }
.home-page .service-link { margin-top: auto; font-size: .84rem; padding-top: 17px; border-top: 1px solid #dce4ef; }
.home-page .service-feature .service-link { border-color: #ffffff30; }
.home-page .service-feature:hover,.home-page .service-mini:hover { transform: translateY(-4px); border-color: var(--home-gold); box-shadow: 0 12px 30px #0b28520c; }
.home-page .section-wash { background: #f6f8fb; }
.home-page .journey-panel { grid-template-columns: .95fr 1.05fr; align-items: center; gap: 65px; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
.home-page .journey-photo { width: 100%; height: 550px; object-fit: cover; object-position: 50% 50%; border-radius: 18px; margin: 0; box-shadow: none; }
.home-page .journey-copy > .lead { font-size: .95rem; line-height: 1.8; }
.home-page .journey-list { gap: 0; margin: 22px 0; }
.home-page .journey-item { grid-template-columns: 34px 1fr; gap: 14px; padding: 17px 0; }
.home-page .journey-item:first-child { padding-top: 0; }
.home-page .journey-item:last-child { border: 0; }
.home-page .journey-no { font: 500 .85rem/1.7 Arial,sans-serif; color: var(--home-gold); }
.home-page .journey-item h3 { font-size: 1rem; margin-bottom: 6px; }
.home-page .journey-item p { font-size: .85rem; line-height: 1.75; }
.home-page .proof-band { border-radius: 18px; padding: 44px 48px; gap: 65px; background: var(--home-navy); }
.home-page .proof-band h2 { font-size: 2rem; margin-top: 12px; }
.home-page .proof-band p { color: #d2ddec; font-size: .9rem; line-height: 1.8; margin-bottom: 0; }
.home-page .proof-band .eyebrow { color: #e6cb99; }
.home-page .proof-item { font-size: .85rem; padding: 12px 0; }
.home-page .proof-item strong { color: #e6cb99; font-weight: 500; }
.home-page .proof-list .btn { justify-self: start; margin-top: 12px; }
.home-page .cookie-banner { left: 24px; right: 24px; bottom: 20px; padding: 20px 26px; border-radius: 14px; }
.home-page .cookie-inner { font-size: .8rem; gap: 28px; }
.home-page .cookie-inner > div:first-child { max-width: 660px; }
.home-page .cookie-actions { flex-wrap: nowrap; flex-shrink: 0; }
.home-page .cookie-actions button { white-space: nowrap; cursor: pointer; min-height: 44px; }
@media(max-width:1100px) {
 .home-page .premium-grid { gap: 35px; }
 .home-page .hero-actions { flex-direction: column; align-items: start; }
 .home-page .journey-panel { gap: 35px; }
 .home-page .cookie-inner { flex-direction: column; align-items: start; gap: 12px; }
 .home-page .cookie-inner > div:first-child { max-width: none; }
}
@media(max-width:980px) {
 .home-page .main-nav { top: 94px; }
 .home-page .premium-grid { grid-template-columns: 1fr 1fr; }
 .home-page .premium-hero h1 { font-size: 2.8rem; }
 .home-page .service-feature { grid-column: auto; }
 .home-page .service-feature,.home-page .service-mini { padding: 24px; }
 .home-page .section-head { gap: 30px; }
 .home-page .proof-band { grid-template-columns: 1fr 1fr; gap: 32px; padding: 34px; }
}
@media(max-width:760px) {
 .home-page .container { width: calc(100% - 40px); }
 .home-page .site-header .nav-wrap { height: 80px; }
 .home-page .site-header .brand img { width: 88px; height: 72px; }
 .home-page .main-nav { top: 80px; }
 .home-page .premium-hero { padding: 38px 0 28px; }
 .home-page .premium-grid { grid-template-columns: 1fr; gap: 30px; }
 .home-page .premium-hero h1 { font-size: clamp(2.4rem,8.5vw,3.3rem); margin: 16px 0 20px; }
 .home-page .hero-intro { font-size: 1rem; }
 .home-page .hero-actions { flex-direction: row; align-items: stretch; }
 .home-page .hero-signals { margin-top: 22px; }
 .home-page .care-canvas { min-height: 360px; }
 .home-page .care-card { left: 23px; right: 23px; bottom: 22px; }
 .home-steps { grid-template-columns: 1fr; gap: 17px; margin-top: 25px; padding-top: 23px; }
 .home-step { padding: 0; border: 0; gap: 16px; }
 .home-step b { width: 24px; }
 .home-page .section { padding: 50px 0; }
 .home-page .section-head { display: block; }
 .home-page .section-head > p { margin-top: 16px; }
 .home-page .service-rail { grid-template-columns: 1fr; gap: 15px; }
 .home-page .service-feature,.home-page .service-mini { min-height: 0; padding: 26px; }
 .home-page .service-feature h3,.home-page .service-mini h3 { margin-top: 23px; max-width: 400px; }
 .home-page .journey-panel { grid-template-columns: 1fr; gap: 30px; }
 .home-page .journey-photo { height: 320px; object-position: center 38%; }
 .home-page .proof-band { grid-template-columns: 1fr; gap: 24px; padding: 30px 25px; }
 .home-page .proof-band h2 { font-size: 1.8rem; }
 .home-page .cookie-banner { left: 12px; right: 12px; bottom: 12px; padding: 18px; }
 .home-page .cookie-actions { width: 100%; flex-wrap: wrap; gap: 8px; }
 .home-page .cookie-actions button { font-size: .72rem; padding: 10px 12px; }
}
@media(max-width:380px) {
 .home-page .hero-actions { flex-direction: column; }
 .home-page .hero-signals { flex-direction: column; }
 .home-page .care-canvas { min-height: 340px; }
}
/* Stable-height text carousel: every panel participates in the same grid cell. */
.home-page .hero-carousel { min-width: 0; }
.home-page .hero-slides { display: grid; }
.home-page .hero-slide { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .65s ease, transform .65s ease, visibility .65s; pointer-events: none; }
.home-page .hero-slide.is-active { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
.home-page .premium-hero .hero-slide-title { font-family: inherit; font-weight: 800; color: var(--home-navy); font-size: clamp(2.7rem,4.5vw,4.1rem); letter-spacing: -.055em; line-height: 1.08; margin: 18px 0 22px; max-width: 570px; }
.home-page .hero-slide-title em { display: block; color: #0048b9; font-style: normal; }
.home-page .hero-controls { display: flex; align-items: center; gap: 15px; margin-top: 24px; max-width: 460px; }
.home-page .hero-controls[hidden] { display: none; }
.home-page .hero-dots,.home-page .hero-playback { display: flex; align-items: center; gap: 3px; }
.home-page .hero-controls button { display: inline-grid; place-items: center; width: 44px; height: 44px; border: 1px solid transparent; background: transparent; color: #173759; border-radius: 50%; cursor: pointer; padding: 0; }
.home-page .hero-controls button:hover { background: #e5ecf6; }
.home-page .hero-controls button:focus-visible { outline: 3px solid #0048b9; outline-offset: 2px; }
.home-page .hero-dot span { display: block; width: 8px; height: 8px; background: #93a2b9; border-radius: 6px; transition: width .35s ease, background .35s ease; }
.home-page .hero-dot[aria-pressed="true"] span { width: 26px; background: #0048b9; }
.home-page .hero-slide-count { font: 600 .7rem/1 Arial,sans-serif; color: #5c6d83; white-space: nowrap; letter-spacing: .06em; }
.home-page .hero-playback { margin-left: auto; }
.home-page .hero-playback button { border-color: #dce4ef; font-size: 1rem; }
@media(max-width:980px) { .home-page .premium-hero .hero-slide-title { font-size: 2.8rem; } .home-page .hero-controls { gap: 6px; } }
@media(max-width:760px) { .home-page .premium-hero .hero-slide-title { font-size: clamp(2.4rem,8.5vw,3.3rem); margin: 16px 0 20px; } }
@media(prefers-reduced-motion:reduce) { .home-page .hero-slide,.home-page .hero-dot span { transition: none; transform: none; } }
