:root {
  --ec-ink: #102a33;
  --ec-ink-soft: #29444c;
  --ec-night: #0d2b33;
  --ec-teal: #126b68;
  --ec-mint: #85c7b0;
  --ec-coral: #c04e3a;
  --ec-sand: #efe2cf;
  --ec-cream: #fbf8f2;
  --ec-paper: #fffdf9;
  --ec-muted: #617477;
  --ec-line: #dce5e2;
  --ec-shadow: 0 24px 70px rgba(17, 45, 53, .14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.eldercare-management-page { margin: 0; color: var(--ec-ink); background: var(--ec-paper); font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; }
body.eldercare-management-page main { overflow: visible; }
body.eldercare-management-page img { display: block; max-width: 100%; }
body.eldercare-management-page a { color: inherit; text-decoration: none; }
body.eldercare-management-page button { font: inherit; }
body.eldercare-management-page main :where(h1, h2, h3) { width: 100%; max-width: 100%; min-width: 0; overflow: visible; text-overflow: clip; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; }
.shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.ec-heading { min-width: 0; margin-bottom: 38px; }
.ec-heading--split, .ec-heading--dark { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); align-items: end; gap: 58px; }
.ec-kicker, .ec-overline { margin: 0 0 12px; color: var(--ec-coral); font-size: 11px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.ec-heading h2, .reality-lead h2, .medication-copy h2, .family-copy h2 { width: 100%; min-width: 0; margin: 0; font-size: clamp(31px, 3.35vw, 48px); font-weight: 950; letter-spacing: -.052em; line-height: 1.08; white-space: nowrap; overflow: visible; }
.ec-heading > p, .ec-heading--split > p, .ec-heading--dark > p { margin: 0; color: var(--ec-muted); font-size: 13px; line-height: 1.85; }
.ec-button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 20px; border: 1px solid transparent; border-radius: 10px; font-size: 12px; font-weight: 900; transition: transform .18s ease, color .18s ease, border-color .18s ease, background .18s ease; }
.ec-button:hover { transform: translateY(-2px); }
.ec-button--primary { color: #fff; background: var(--ec-coral); box-shadow: 0 12px 26px rgba(231,123,97,.25); }
.ec-button--ghost { color: #fff; border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.08); backdrop-filter: blur(10px); }
.ec-button--outline { color: #fff; border-color: rgba(255,255,255,.28); background: transparent; }

.ec-hero { position: relative; isolation: isolate; min-height: 720px; overflow: hidden; color: #fff; background: var(--ec-night); }
.ec-hero__media { position: absolute; inset: 0; z-index: -2; }
.ec-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 8%; }
.ec-hero__media::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgba(7,25,31,.97) 0%, rgba(7,25,31,.88) 38%, rgba(7,25,31,.22) 65%, rgba(7,25,31,.05) 100%), linear-gradient(180deg, rgba(7,25,31,.08), rgba(7,25,31,.35)); }
.ec-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; min-height: 720px; padding: 74px 0; }
.ec-hero__copy { min-width: 0; max-width: 760px; }
.ec-overline { color: #9edbc5; }
.ec-hero h1 { width: 100%; min-width: 0; margin: 0; color: #fff; font-size: clamp(48px, 5.25vw, 76px); font-weight: 950; letter-spacing: -.062em; line-height: 1.02; white-space: nowrap; overflow: visible; }
.ec-hero__claim { max-width: 740px; margin: 20px 0 0; color: #fff; font-size: clamp(22px, 2.35vw, 34px); font-weight: 900; letter-spacing: -.035em; line-height: 1.2; }
.ec-hero__lead { max-width: 700px; margin: 18px 0 0; color: rgba(255,255,255,.68); font-size: 14px; line-height: 1.85; }
.ec-hero__actions { display: flex; gap: 10px; margin-top: 28px; }
.ec-hero__proof { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 720px; margin: 30px 0 0; padding: 0; border-top: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); list-style: none; }
.ec-hero__proof li { min-width: 0; padding: 15px 16px; border-right: 1px solid rgba(255,255,255,.14); }
.ec-hero__proof li:first-child { padding-left: 0; }
.ec-hero__proof li:last-child { padding-right: 0; border-right: 0; }
.ec-hero__proof strong, .ec-hero__proof span { display: block; }
.ec-hero__proof strong { font-size: 13px; }
.ec-hero__proof span { margin-top: 5px; color: rgba(255,255,255,.52); font-size: 9px; line-height: 1.4; }

.ec-anchor { position: sticky; top: var(--header-height, 0px); z-index: 62; display: none; border-bottom: 1px solid var(--ec-line); background: rgba(255,253,249,.94); backdrop-filter: blur(14px); }
.ec-anchor__scroll { display: flex; justify-content: center; overflow-x: auto; scrollbar-width: none; }
.ec-anchor__scroll::-webkit-scrollbar { display: none; }
.ec-anchor__scroll a { display: inline-flex; align-items: center; flex: 0 0 auto; min-height: 48px; padding: 0 18px; border-bottom: 2px solid transparent; color: var(--ec-muted); font-size: 11px; font-weight: 850; white-space: nowrap; }
.ec-anchor__scroll a.is-active { color: var(--ec-coral); border-color: var(--ec-coral); }
body.xb-shell-embedded .ec-anchor { top: 0; display: block; }

.ec-positioning { padding: 92px 0 82px; }
.role-strand { display: grid; grid-template-columns: repeat(5,1fr); margin-top: 44px; border-top: 1px solid var(--ec-line); border-bottom: 1px solid var(--ec-line); }
.role-strand article { min-width: 0; padding: 24px 20px; border-right: 1px solid var(--ec-line); }
.role-strand article:first-child { padding-left: 0; }
.role-strand article:last-child { padding-right: 0; border-right: 0; }
.role-strand span { color: var(--ec-teal); font-size: 9px; font-weight: 900; letter-spacing: .05em; }
.role-strand h3 { width: 100%; min-width: 0; margin: 9px 0 0; font-size: 15px; white-space: nowrap; overflow: visible; }
.role-strand p { margin: 7px 0 0; color: var(--ec-muted); font-size: 10px; line-height: 1.7; }
.reality-layout { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 82px; align-items: start; margin-top: 88px; }
.reality-lead p:not(.ec-kicker) { margin: 18px 0 0; color: var(--ec-muted); font-size: 13px; line-height: 1.85; }
.reality-lead blockquote { margin: 23px 0 0; padding: 18px 0 0 19px; border-top: 1px solid var(--ec-line); border-left: 3px solid var(--ec-coral); color: var(--ec-ink-soft); font-size: 13px; font-weight: 780; line-height: 1.75; }
.reality-ledger { margin: 0; padding: 0; border-top: 1px solid var(--ec-line); list-style: none; }
.reality-ledger li { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--ec-line); }
.reality-ledger > li > span { color: var(--ec-coral); font-size: 10px; font-weight: 900; }
.reality-ledger h3 { width: 100%; min-width: 0; margin: 0; font-size: 16px; white-space: nowrap; overflow: visible; }
.reality-ledger p { margin: 6px 0 0; color: var(--ec-muted); font-size: 10px; line-height: 1.65; }

.ec-journey { padding: 88px 0; color: #fff; background: var(--ec-night); }
.ec-heading--dark h2 { color: #fff; }
.ec-heading--dark > p { color: rgba(255,255,255,.58); }
.admission-scene, .care-scene, .medication-scene, .nutrition-scene, .family-scene, .operations-scene, .scenario-scene { position: relative; overflow: hidden; margin: 0; border-radius: 22px; background: #dfe6e3; box-shadow: var(--ec-shadow); }
.admission-scene img, .care-scene img, .medication-scene img, .nutrition-scene img, .family-scene img, .operations-scene img, .scenario-scene img { width: 100%; height: auto; }
.admission-scene figcaption, .care-scene figcaption, .medication-scene figcaption, .nutrition-scene figcaption, .family-scene figcaption, .operations-scene figcaption, .scenario-scene figcaption { position: absolute; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 16px 20px; color: #fff; background: linear-gradient(180deg,transparent,rgba(6,29,34,.9)); }
figcaption span { font-size: 9px; font-weight: 850; }
figcaption strong { max-width: 64%; font-size: 11px; text-align: right; }
.journey-line { display: grid; grid-template-columns: repeat(8,1fr); margin: 38px 0 0; padding: 0; border-top: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); list-style: none; }
.journey-line li { min-width: 0; padding: 19px 13px; border-right: 1px solid rgba(255,255,255,.12); }
.journey-line li:last-child { border-right: 0; }
.journey-line span { color: var(--ec-mint); font-size: 9px; font-weight: 900; }
.journey-line h3 { width: 100%; min-width: 0; margin: 8px 0 0; color: #fff; font-size: 13px; white-space: nowrap; overflow: visible; }
.journey-line p { margin: 6px 0 0; color: rgba(255,255,255,.5); font-size: 8px; line-height: 1.55; }
.resident-trace { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.4fr); gap: 32px 48px; margin-top: 34px; padding: 28px; border: 1px solid rgba(255,255,255,.16); border-radius: 20px; background: rgba(255,255,255,.05); }
.resident-trace h3 { width: 100%; min-width: 0; margin: 0; color: #fff; font-size: 21px; white-space: nowrap; overflow: visible; }
.resident-trace p:not(.ec-kicker) { margin: 10px 0 0; color: rgba(255,255,255,.5); font-size: 10px; line-height: 1.7; }
.resident-trace__controls { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.resident-trace__controls button { min-height: 34px; padding: 0 13px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: rgba(255,255,255,.64); background: transparent; cursor: pointer; font-size: 9px; font-weight: 850; }
.resident-trace__controls button:hover, .resident-trace__controls button.is-selected { color: #fff; border-color: var(--ec-coral); background: var(--ec-coral); }
.resident-trace dl { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3,1fr); margin: 0; border-top: 1px solid rgba(255,255,255,.14); }
.resident-trace dl div { padding: 18px 18px 0; border-right: 1px solid rgba(255,255,255,.1); }
.resident-trace dl div:first-child { padding-left: 0; }
.resident-trace dl div:last-child { border-right: 0; }
.resident-trace dt { color: rgba(255,255,255,.42); font-size: 8px; }
.resident-trace dd { margin: 6px 0 0; color: #fff; font-size: 12px; font-weight: 850; }

.ec-care { padding: 92px 0; }
.care-stage { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); align-items: center; gap: 24px; }
.care-scene { width: 100%; }
.handover-desk { overflow: hidden; border: 1px solid var(--ec-line); border-radius: 18px; background: #fff; box-shadow: 0 18px 50px rgba(17,45,53,.1); }
.handover-desk header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; color: #fff; background: var(--ec-night); }
.handover-desk small { color: rgba(255,255,255,.55); font-size: 7px; }
.handover-desk h3 { width: 100%; min-width: 0; margin: 5px 0 0; color: #fff; font-size: 17px; white-space: nowrap; overflow: visible; }
.handover-desk header > span { padding: 6px 9px; border-radius: 999px; color: #fff; background: var(--ec-coral); font-size: 8px; font-weight: 900; }
.handover-desk ol { margin: 0; padding: 6px 20px; list-style: none; }
.handover-desk li { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--ec-line); }
.handover-desk li > em { color: var(--ec-coral); font-size: 9px; font-style: normal; font-weight: 900; }
.handover-desk li strong, .handover-desk li small { display: block; }
.handover-desk li strong { color: var(--ec-ink); font-size: 11px; }
.handover-desk li small { margin-top: 4px; color: var(--ec-muted); }
.handover-desk li b { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: var(--ec-teal); background: #e6f3ef; font-size: 8px; }
.handover-desk button { width: calc(100% - 40px); min-height: 38px; margin: 10px 20px 20px; border: 0; border-radius: 9px; color: #fff; background: var(--ec-teal); cursor: pointer; font-size: 9px; font-weight: 900; }
.handover-desk button:hover { background: var(--ec-coral); }
.care-capabilities { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 36px; border-top: 1px solid var(--ec-line); border-bottom: 1px solid var(--ec-line); }
.care-capabilities article { min-width: 0; padding: 24px 20px; border-right: 1px solid var(--ec-line); }
.care-capabilities article:first-child { padding-left: 0; }
.care-capabilities article:last-child { padding-right: 0; border-right: 0; }
.care-capabilities span { color: var(--ec-coral); font-size: 8px; font-weight: 900; }
.care-capabilities h3 { width: 100%; min-width: 0; margin: 9px 0 0; font-size: 14px; white-space: nowrap; overflow: visible; }
.care-capabilities p { margin: 8px 0 0; color: var(--ec-muted); font-size: 10px; line-height: 1.7; }
.care-capabilities em { display: block; margin-top: 10px; color: var(--ec-teal); font-size: 8px; font-style: normal; font-weight: 800; }

.ec-medication { padding: 92px 0; color: #fff; background: #102f37; }
.medication-layout { display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr); align-items: center; gap: 66px; }
.medication-copy h2 { color: #fff; }
.medication-copy > p:not(.ec-kicker) { margin: 17px 0 0; color: rgba(255,255,255,.58); font-size: 13px; line-height: 1.85; }
.medication-copy ul { margin: 25px 0 0; padding: 0; border-top: 1px solid rgba(255,255,255,.14); list-style: none; }
.medication-copy li { display: grid; grid-template-columns: 36px minmax(0,1fr); gap: 12px; padding: 15px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.medication-copy li > span { color: var(--ec-mint); font-size: 9px; font-weight: 900; }
.medication-copy h3 { width: 100%; min-width: 0; margin: 0; color: #fff; font-size: 14px; white-space: nowrap; overflow: visible; }
.medication-copy li p { margin: 5px 0 0; color: rgba(255,255,255,.48); font-size: 9px; line-height: 1.65; }

.ec-nutrition { padding: 92px 0; background: var(--ec-cream); }
.nutrition-stage { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(320px,.75fr); align-items: center; gap: 0; }
.nutrition-scene { z-index: 1; }
.daily-life-board { padding: 26px 28px; border: 1px solid var(--ec-line); border-radius: 20px; background: #fff; box-shadow: 0 18px 50px rgba(17,45,53,.1); }
.daily-life-board header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--ec-line); }
.daily-life-board header span { color: var(--ec-teal); font-size: 11px; font-weight: 900; }
.daily-life-board header strong { color: var(--ec-muted); font-size: 9px; }
.daily-life-board dl { display: grid; grid-template-columns: repeat(2,1fr); margin: 0; }
.daily-life-board dl div { padding: 18px 12px; border-right: 1px solid var(--ec-line); border-bottom: 1px solid var(--ec-line); }
.daily-life-board dl div:nth-child(2n) { border-right: 0; }
.daily-life-board dt { color: var(--ec-muted); font-size: 8px; }
.daily-life-board dd { margin: 5px 0 0; font-size: 22px; font-weight: 950; }
.daily-life-board dl small { display: block; margin-top: 4px; color: var(--ec-coral); font-size: 7px; }
.daily-life-board ol { margin: 14px 0 0; padding: 0; list-style: none; }
.daily-life-board li { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--ec-line); font-size: 9px; }
.daily-life-board li b { color: var(--ec-ink); }
.daily-life-board li em { color: var(--ec-teal); font-style: normal; }
.daily-life-board footer { margin-top: 15px; color: var(--ec-muted); font-size: 7px; line-height: 1.6; }

.ec-family { padding: 92px 0; background: var(--ec-sand); }
.family-layout { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); align-items: center; gap: 62px; }
.family-copy > p:not(.ec-kicker):not(.family-permissions__result) { margin: 17px 0 0; color: var(--ec-ink-soft); font-size: 13px; line-height: 1.85; }
.family-permissions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 25px; }
.family-permissions button { min-height: 34px; padding: 0 13px; border: 1px solid rgba(16,42,51,.18); border-radius: 999px; color: var(--ec-ink-soft); background: rgba(255,255,255,.5); cursor: pointer; font-size: 9px; font-weight: 850; }
.family-permissions button:hover, .family-permissions button.is-selected { color: #fff; border-color: var(--ec-teal); background: var(--ec-teal); }
.family-permissions__result { min-height: 48px; margin: 12px 0 0; padding: 13px 15px; border-left: 3px solid var(--ec-coral); color: var(--ec-ink-soft); background: rgba(255,255,255,.55); font-size: 10px; line-height: 1.65; }
.family-copy ul { margin: 20px 0 0; padding: 0; border-top: 1px solid rgba(16,42,51,.16); list-style: none; }
.family-copy li { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 0; border-bottom: 1px solid rgba(16,42,51,.14); }
.family-copy li strong { font-size: 11px; }
.family-copy li span { color: var(--ec-muted); font-size: 9px; text-align: right; }

.ec-console { padding: 92px 0; }
.console-rails { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 34px; border-top: 1px solid var(--ec-line); border-bottom: 1px solid var(--ec-line); }
.console-rails article { min-width: 0; padding: 23px 20px; border-right: 1px solid var(--ec-line); }
.console-rails article:first-child { padding-left: 0; }
.console-rails article:last-child { padding-right: 0; border-right: 0; }
.console-rails span { color: var(--ec-coral); font-size: 8px; font-weight: 900; }
.console-rails h3 { width: 100%; min-width: 0; margin: 8px 0 0; font-size: 14px; white-space: nowrap; overflow: visible; }
.console-rails p { margin: 7px 0 0; color: var(--ec-muted); font-size: 10px; line-height: 1.7; }

.ec-scenarios { padding: 92px 0; background: #f1f5f3; }
.scenario-index { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 34px; border-top: 1px solid var(--ec-line); border-left: 1px solid var(--ec-line); }
.scenario-index article { min-width: 0; padding: 20px; border-right: 1px solid var(--ec-line); border-bottom: 1px solid var(--ec-line); background: rgba(255,255,255,.55); }
.scenario-index span { color: var(--ec-coral); font-size: 9px; font-weight: 900; }
.scenario-index h3 { width: 100%; min-width: 0; margin: 8px 0 0; font-size: 14px; white-space: nowrap; overflow: visible; }
.scenario-index p { margin: 7px 0 0; color: var(--ec-muted); font-size: 9px; line-height: 1.7; }
.care-boundary { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); gap: 70px; margin-top: 68px; padding: 38px; border-radius: 22px; color: #fff; background: var(--ec-night); }
.care-boundary h2 { width: 100%; min-width: 0; margin: 0; color: #fff; font-size: clamp(27px,2.8vw,40px); font-weight: 950; letter-spacing: -.045em; line-height: 1.1; white-space: nowrap; overflow: visible; }
.care-boundary p:not(.ec-kicker) { margin: 14px 0 0; color: rgba(255,255,255,.5); font-size: 10px; line-height: 1.7; }
.care-boundary ul { margin: 0; padding: 0; list-style: none; }
.care-boundary li { position: relative; padding: 8px 0 8px 18px; border-bottom: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.62); font-size: 9px; line-height: 1.65; }
.care-boundary li::before { position: absolute; top: 14px; left: 0; width: 6px; height: 6px; border-radius: 50%; content: ""; background: var(--ec-mint); }

.ec-faq { padding: 88px 0; }
.faq-list { border-top: 1px solid var(--ec-line); }
.faq-list details { border-bottom: 1px solid var(--ec-line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 67px; cursor: pointer; list-style: none; color: var(--ec-ink); font-size: 13px; font-weight: 850; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary i { position: relative; flex: 0 0 auto; width: 20px; height: 20px; }
.faq-list summary i::before, .faq-list summary i::after { position: absolute; top: 50%; left: 50%; width: 14px; height: 2px; content: ""; background: var(--ec-teal); transform: translate(-50%,-50%); transition: transform .2s ease; }
.faq-list summary i::after { transform: translate(-50%,-50%) rotate(90deg); }
.faq-list details[open] summary i::after { transform: translate(-50%,-50%) rotate(0); }
.faq-list details p { max-width: 920px; margin: -3px 0 21px; color: var(--ec-muted); font-size: 12px; line-height: 1.8; }

.ec-contact { padding: 70px 0; color: #fff; background: linear-gradient(125deg,#0e3038,#174950); }
.ec-contact__inner { display: flex; align-items: center; justify-content: space-between; gap: 54px; }
.ec-contact h2 { width: 100%; min-width: 0; margin: 0; color: #fff; font-size: clamp(29px,3vw,44px); font-weight: 950; letter-spacing: -.045em; white-space: nowrap; overflow: visible; }
.ec-contact p:not(.ec-kicker) { max-width: 760px; margin: 13px 0 0; color: rgba(255,255,255,.58); font-size: 12px; line-height: 1.8; }
.ec-contact__actions { display: flex; flex: 0 0 auto; gap: 10px; }
.ec-footer { color: #fff; background: #071c22; }
.ec-footer__inner { display: flex; align-items: center; justify-content: space-between; gap: 26px; min-height: 88px; }
.ec-footer__brand { display: flex; align-items: center; gap: 10px; }
.ec-footer__brand img { width: 36px; height: 36px; border-radius: 10px; }
.ec-footer__brand strong, .ec-footer__brand small { display: block; }
.ec-footer__brand strong { font-size: 12px; }
.ec-footer__brand small { margin-top: 3px; color: rgba(255,255,255,.42); font-size: 7px; }
.ec-footer p { color: rgba(255,255,255,.45); font-size: 9px; }
.ec-footer__inner > div { display: flex; gap: 18px; font-size: 9px; }
.ec-toast { position: static; z-index: 100; max-width: 360px; padding: 13px 16px; border-radius: 12px; color: #fff; background: var(--ec-night); box-shadow: var(--ec-shadow); font-size: 10px; line-height: 1.6; opacity: 0; pointer-events: none; transform: translateY(10px); transition: opacity .2s ease, transform .2s ease; }
.ec-toast.is-visible { opacity: 1; transform: translateY(0); }
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1260px) {
  .ec-anchor { display: block; }
  .ec-hero__inner { grid-template-columns: 1fr; gap: 0; }
}

@media (max-width: 1040px) {
  .shell { width: min(100% - 40px, 960px); }
  .ec-hero { display: flex; min-height: 0; flex-direction: column; }
  .ec-hero__inner { order: 1; display: block; min-height: 0; padding: 48px 0 34px; }
  .ec-hero__copy { max-width: none; }
  .ec-hero__media { position: relative; inset: auto; order: 2; aspect-ratio: 16/10; }
  .ec-hero__media::after { background: linear-gradient(180deg,#0d2b33 0%,rgba(13,43,51,.15) 36%,rgba(13,43,51,.02) 100%); }
  .ec-hero__media img { object-position: 72% center; }
  .ec-hero h1 { font-size: clamp(39px,7vw,59px); }
  .ec-hero__claim { font-size: clamp(21px,3.6vw,31px); }
  .ec-heading--split, .ec-heading--dark { gap: 34px; }
  .role-strand { grid-template-columns: repeat(3,1fr); border-left: 1px solid var(--ec-line); }
  .role-strand article, .role-strand article:first-child, .role-strand article:last-child { padding: 20px; border-right: 1px solid var(--ec-line); border-bottom: 1px solid var(--ec-line); }
  .role-strand article:nth-child(3n) { border-right: 0; }
  .journey-line { grid-template-columns: repeat(4,1fr); }
  .journey-line li:nth-child(4n) { border-right: 0; }
  .resident-trace { grid-template-columns: 1fr; }
  .resident-trace dl { grid-column: auto; }
  .care-stage { grid-template-columns: minmax(0,1.05fr) minmax(300px,.95fr); min-height: 0; gap: 20px; }
  .care-scene, .handover-desk { width: 100%; }
  .medication-layout, .family-layout { gap: 38px; }
  .nutrition-stage { grid-template-columns: minmax(0,1.1fr) minmax(290px,.9fr); }
  .daily-life-board { margin: 0; padding: 24px; }
}

@media (max-width: 820px) {
  .shell { width: min(100% - 32px, 720px); }
  .ec-hero__media { aspect-ratio: 4/3; }
  .ec-hero h1 { font-size: clamp(37px,9vw,55px); }
  .ec-hero__claim { font-size: clamp(20px,5.3vw,29px); }
  .ec-heading--split, .ec-heading--dark { display: block; }
  .ec-heading--split > p, .ec-heading--dark > p { margin-top: 16px; }
  .ec-positioning, .ec-care, .ec-medication, .ec-nutrition, .ec-family, .ec-console, .ec-scenarios { padding: 70px 0; }
  .role-strand { grid-template-columns: repeat(2,1fr); }
  .role-strand article:nth-child(3n) { border-right: 1px solid var(--ec-line); }
  .role-strand article:nth-child(2n) { border-right: 0; }
  .reality-layout, .medication-layout, .family-layout { grid-template-columns: 1fr; gap: 42px; }
  .journey-line { grid-template-columns: repeat(2,1fr); }
  .journey-line li:nth-child(2n) { border-right: 0; }
  .resident-trace dl { grid-template-columns: 1fr; }
  .resident-trace dl div, .resident-trace dl div:first-child { padding: 13px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.1); }
  .care-stage { grid-template-columns: 1fr; }
  .care-scene, .handover-desk { width: 100%; margin: 0; }
  .care-capabilities, .console-rails { grid-template-columns: repeat(2,1fr); border-left: 1px solid var(--ec-line); }
  .care-capabilities article, .care-capabilities article:first-child, .care-capabilities article:last-child, .console-rails article, .console-rails article:first-child, .console-rails article:last-child { padding: 20px; border-right: 1px solid var(--ec-line); border-bottom: 1px solid var(--ec-line); }
  .care-capabilities article:nth-child(2n), .console-rails article:nth-child(2n) { border-right: 0; }
  .nutrition-stage { grid-template-columns: 1fr; }
  .daily-life-board { margin: 0; padding: 22px; border-radius: 18px; }
  .scenario-index { grid-template-columns: repeat(2,1fr); }
  .care-boundary { grid-template-columns: 1fr; gap: 30px; padding: 30px; }
  .ec-contact__inner { display: block; }
  .ec-contact__actions { margin-top: 26px; }
  .ec-footer__inner { align-items: flex-start; flex-direction: column; padding: 26px 0; }
}

@media (max-width: 560px) {
  .shell { width: calc(100% - 24px); }
  .ec-hero__inner { padding: 40px 0 28px; }
  .ec-hero h1 { font-size: clamp(30px,8.7vw,42px); }
  .ec-hero__claim { font-size: clamp(18px,5.1vw,25px); }
  .ec-hero__actions { display: grid; grid-template-columns: 1fr 1fr; }
  .ec-button { min-height: 43px; padding: 0 10px; font-size: 10px; }
  .ec-hero__proof li { padding: 13px 5px; text-align: center; }
  .ec-hero__proof li:first-child { padding-left: 5px; }
  .ec-hero__proof strong { font-size: 10px; }
  .ec-hero__proof span { font-size: 7px; }
  .ec-anchor__scroll { justify-content: flex-start; }
  .ec-anchor__scroll a { min-height: 44px; padding: 0 13px; }
  .role-strand, .care-capabilities, .console-rails, .scenario-index { grid-template-columns: 1fr; }
  .role-strand article, .role-strand article:nth-child(2n), .role-strand article:nth-child(3n), .care-capabilities article, .care-capabilities article:nth-child(2n), .console-rails article, .console-rails article:nth-child(2n) { border-right: 0; }
  .admission-scene figcaption, .care-scene figcaption, .medication-scene figcaption, .nutrition-scene figcaption, .family-scene figcaption, .operations-scene figcaption, .scenario-scene figcaption { align-items: flex-start; flex-direction: column; gap: 4px; padding: 26px 14px 12px; }
  figcaption strong { max-width: none; text-align: left; }
  .resident-trace { padding: 20px; }
  .resident-trace__controls { display: grid; grid-template-columns: repeat(4,1fr); }
  .resident-trace__controls button { padding: 0 5px; }
  .family-copy li { align-items: flex-start; flex-direction: column; gap: 5px; }
  .family-copy li span { text-align: left; }
  .daily-life-board dl { grid-template-columns: 1fr 1fr; }
  .care-boundary { padding: 24px 20px; }
  .faq-list summary { min-height: 62px; font-size: 11px; }
  .ec-contact__actions { display: grid; grid-template-columns: 1fr 1fr; }
  .ec-footer__inner > div { flex-wrap: wrap; }
  .ec-toast { right: 12px; bottom: 12px; left: 12px; max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Ultra-wide face-safe hero for the resident, family member and care manager. */
@media (min-width: 1041px) {
  .ec-hero,
  .ec-hero__inner { min-height: clamp(720px, 25vw, 860px); }
  .ec-hero__media img { object-position: center top; }
}

/* Review pass: keep narrative and interactive text readable at every viewport. */
.xb-header-cta { background: #bd3f20; }
.xb-header-cta:hover { background: #963119; }
.ec-kicker,
.ec-overline { font-size: 12px; }
.ec-button,
.ec-anchor__scroll a { font-size: 13px; }
.ec-hero__proof strong { font-size: 13px; }
.ec-hero__proof span,
.role-strand span,
.reality-ledger > li > span,
.journey-line span,
.care-capabilities span,
.care-capabilities em,
.medication-copy li > span,
.console-rails span,
.scenario-index span,
.family-copy li span,
.ec-footer__brand small,
.ec-footer p,
.ec-footer__inner > div { font-size: 12px; }
.role-strand p,
.reality-ledger p,
.journey-line p,
.care-capabilities p,
.medication-copy li p,
.console-rails p,
.scenario-index p,
.care-boundary p:not(.ec-kicker),
.care-boundary li { font-size: 12px; }
figcaption span { font-size: 12px; }
figcaption strong { font-size: 13px; }
.ec-heading > p,
.ec-heading--split > p,
.ec-heading--dark > p,
.reality-lead p:not(.ec-kicker),
.medication-copy > p:not(.ec-kicker),
.family-copy > p:not(.ec-kicker):not(.family-permissions__result),
.ec-contact p:not(.ec-kicker) { font-size: 14px; }
.reality-lead blockquote,
.resident-trace p:not(.ec-kicker),
.family-permissions__result,
.faq-list details p { font-size: 13px; }
.resident-trace__controls button,
.family-permissions button,
.handover-desk button { font-size: 12px; }
.resident-trace dt,
.resident-trace dd,
.handover-desk small,
.handover-desk header > span,
.handover-desk li > em,
.handover-desk li b,
.daily-life-board header strong,
.daily-life-board dt,
.daily-life-board dl small,
.daily-life-board li,
.daily-life-board footer { font-size: 12px; }
.handover-desk li strong,
.daily-life-board header span { font-size: 13px; }
.medication-copy li > span { font-size: 12px; }
.family-copy li strong { font-size: 13px; }
.ec-hero__proof span,
.journey-line p,
.resident-trace p:not(.ec-kicker),
.resident-trace dt,
.medication-copy li p,
.care-boundary p:not(.ec-kicker),
.care-boundary li { color: rgba(255,255,255,.7); }
.ec-toast {
  position: static;
  display: none;
  max-width: none;
  margin: 0 20px 20px;
  font-size: 13px;
  opacity: 1;
  transform: none;
}
.ec-toast.is-visible { display: block; }
.eldercare-management-page main :where(h1, h2, h3) {
  overflow: visible;
  white-space: nowrap;
}

@media (max-width: 560px) {
  .ec-kicker,
  .ec-overline { font-size: 12px; }
  .ec-button { min-height: 44px; font-size: 13px; }
  .ec-hero__lead { font-size: 13px; }
  .faq-list summary { font-size: 13px; }
}
