/* Page composition only. Header, footer, typography and mobile menu use Life View's reviewed stylesheet. */
.infrastructure-home .hero { min-height: 0; grid-template-columns: 1fr; padding-block: clamp(64px, 7vw, 96px); }
.infrastructure-home .hero-copy { max-width: 880px; }
.infrastructure-home .hero h1 { max-width: 17ch; font-size: clamp(2.65rem, 5vw, 4.2rem); }
.infrastructure-home .hero-lede { max-width: 42em; }
.infrastructure-home .section-shell { padding-block: 64px; }
.infrastructure-home .foundation-grid { row-gap: 36px; }
.infrastructure-home .foundation-card img { width: 64px; height: 64px; flex-basis: 64px; }
.infrastructure-home .foundation-card h3 { margin-top: 7px; }
.infrastructure-home .service-status { display: block; margin-top: 8px; font-size: .78rem; color: var(--plum-soft); }
.infrastructure-home .about-infrastructure { background: var(--soft); border-top: 1px solid var(--line); }
.infrastructure-home .about-infrastructure .section-heading { max-width: 780px; margin-bottom: 0; }
.infrastructure-home .about-infrastructure .button { margin-top: 10px; }
.infrastructure-legal main { max-width: 920px; margin: auto; padding: 72px 24px 88px; min-height: calc(100vh - 170px); }
.infrastructure-legal main h1 { max-width: none; font-size: clamp(2.35rem, 6vw, 4.3rem); margin: 0 0 18px; }
.infrastructure-legal main h2 { font-size: clamp(1.55rem, 3.3vw, 2.35rem); margin: 48px 0 14px; }
.infrastructure-legal main h3 { font-size: 1.18rem; margin: 28px 0 7px; }
.infrastructure-legal .lede { max-width: 720px; color: var(--muted); font-size: 1.16rem; }
.infrastructure-legal .notice { margin: 30px 0; padding: 18px 20px; border-left: 4px solid var(--accent); background: var(--soft); }
.infrastructure-legal .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 16px; margin-top: 34px; }
.infrastructure-legal .card { padding: 23px; background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 9px 27px rgba(63,43,73,.06); }
.infrastructure-legal .card h2 { margin: 0 0 9px; font-size: 1.28rem; }
.infrastructure-legal .card p { margin: 0; color: var(--muted); }
.infrastructure-legal .card a { display: inline-block; margin-top: 14px; color: var(--accent-dark); font-weight: 750; }
.infrastructure-legal .meta { color: var(--muted); font-size: .92rem; }
.infrastructure-legal .contents { padding: 20px 23px; background: var(--soft); border-radius: 14px; }
.infrastructure-legal .contents ul { margin: 8px 0 0; padding-left: 20px; }
.infrastructure-legal .list { padding-left: 22px; }
.infrastructure-legal .list li { margin-bottom: 9px; }
.infrastructure-legal .action { display: inline-block; margin: 8px 0; padding: 11px 16px; border: 1px solid #987fc4; border-radius: 999px; color: #fff; background: var(--accent); font-weight: 750; text-decoration: none; }
.infrastructure-legal .action:hover { background: var(--accent-dark); }
@media (max-width: 680px) {
 .infrastructure-home .section-shell { padding-block: 48px; }
 .infrastructure-legal main { padding-top: 48px; }
}
