:root {
    --infra-paper: #f7f3ef;
    --infra-white: #fff;
    --infra-ink: #11100f;
    --infra-plum: #9f0874;
    --infra-line: rgba(17, 16, 15, .18);
    --infra-max: 78rem;
}

.infrastructure-page .landing-web-main { background: var(--infra-paper); }
.infrastructure-page .lw-hero__content h1 { max-width: 16ch; }
.infrastructure-page .lw-hero__content h1 em { white-space: nowrap; }
.infrastructure-page .lw-hero__lead { max-width: 37rem; }

.infra-care { min-height: 39rem; padding-top: 3.4rem; background: var(--infra-paper); }
.infra-care .lw-heading-rule { margin-bottom: 1.15rem; }
.infra-care__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.15rem;
    width: min(calc(100% - 8vw), var(--infra-max));
    margin: 0 auto;
}
.infra-care-card {
    min-height: 28rem;
    overflow: hidden;
    display: grid;
    grid-template-rows: 13.8rem 1fr;
    border-radius: .45rem;
    background: #fff;
    color: var(--infra-ink);
    text-decoration: none;
    box-shadow: 0 8px 25px rgba(43, 21, 35, .08);
    transition: transform .55s cubic-bezier(.16,1,.3,1), box-shadow .55s ease;
}
.infra-care-card__media { overflow: hidden; }
.infra-care-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s cubic-bezier(.16,1,.3,1), filter .8s ease;
}
.infra-care-card__copy { position: relative; padding: 1.35rem 1.55rem 3.5rem; }
.infra-care-card h3 { margin: 0; font: 500 var(--lw-type-card-title)/1.08 var(--lw-serif); letter-spacing: -.035em; }
.infra-care-card b { display: block; width: 1.55rem; height: 1px; margin: .65rem 0 .75rem; background: var(--infra-plum); }
.infra-care-card p { margin: 0; font: 400 var(--lw-type-body)/1.5 var(--lw-sans); }
.infra-care-card svg { position: absolute; left: 1.55rem; bottom: 1.25rem; width: 1.35rem; color: var(--infra-plum); transition: transform .4s cubic-bezier(.16,1,.3,1); }
.infra-care-card:hover { transform: translateY(-8px); box-shadow: 0 24px 50px rgba(71,24,56,.15); }
.infra-care-card:hover img { transform: scale(1.045); filter: saturate(1.08) brightness(1.05); }
.infra-care-card:hover svg { transform: translateX(.55rem); }

.infra-process { min-height: 37rem; background: #fff; }
.infra-process .lw-process__grid { width: min(calc(100% - 8vw), var(--infra-max)); }

.infra-proof { padding: 5.4rem 5.2vw 6rem; background: #f1efec; }
.infra-proof__inner { width: min(100%, var(--infra-max)); margin: 0 auto; }
.infra-proof .lw-kicker { margin: 0 0 2.6rem; }
.infra-proof__grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
.infra-proof-card {
    position: relative;
    min-height: 39rem;
    overflow: hidden;
    border-radius: .75rem;
    isolation: isolate;
    color: #fff;
}
.infra-proof-card::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(8,5,7,.83) 0%, rgba(8,5,7,.48) 37%, rgba(8,5,7,.06) 73%);
}
.infra-proof-card img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.16,1,.3,1); }
.infra-proof-card__copy { padding: 2.35rem 2.1rem; }
.infra-proof-card__icon { display: block; width: 3.3rem; height: 3.3rem; color: var(--infra-plum); stroke-width: 1.35; filter: drop-shadow(0 .35rem .7rem rgba(172,0,112,.24)); }
.infra-proof-card h3 { max-width: 15ch; margin: 1rem 0 0; font: 500 var(--lw-type-step-title)/1.08 var(--lw-serif); letter-spacing: -.025em; }
.infra-proof-card b { display: block; width: 1.55rem; height: 1px; margin: 1rem 0 1.15rem; background: var(--infra-plum); }
.infra-proof-card p { max-width: 16rem; margin: 0; font: 400 var(--lw-type-body)/1.45 var(--lw-sans); }
.infra-proof-card:hover img { transform: scale(1.035); }

.infrastructure-page .lw-faq { background: #fff; }
.infrastructure-page .contact { background: var(--infra-paper); box-shadow: 0 0 0 100vmax var(--infra-paper); }

@media (max-width: 1020px) {
    .infra-care__grid,
    .infra-process .lw-process__grid { width: 100%; }
    .infra-care-card { grid-template-rows: 12rem 1fr; }
    .infra-proof { padding-inline: 4vw; }
    .infra-proof-card { min-height: 34rem; }
    .infra-proof-card__copy { padding: 1.8rem 1.5rem; }
}

@media (max-width: 760px) {
    .infrastructure-page .lw-hero::after { background: linear-gradient(90deg, rgba(247,243,239,.98) 0 55%, rgba(247,243,239,.7) 78%, rgba(247,243,239,.22)); }
    .infrastructure-page .lw-hero__image { object-position: 69% center; }
    .infrastructure-page .lw-hero__content { width: 100%; }
    .infrastructure-page .lw-hero__content .lw-kicker { max-width: 95%; white-space: normal; line-height: 1.5; }
    .infrastructure-page .lw-hero__content h1 { max-width: 9ch; font-size: clamp(3.05rem, 12.8vw, 3.7rem); }
    .infrastructure-page .lw-hero__content h1 em { white-space: normal; }
    .infrastructure-page .lw-hero__lead br { display: none; }
    .infra-care { padding-top: 4.7rem; }
    .infra-care__grid { grid-template-columns: 1fr; gap: 1.4rem; }
    .infra-care-card { min-height: 0; grid-template-rows: 15.5rem 15rem; }
    .infra-process { padding-inline: .75rem; }
    .infra-process .lw-process__grid { gap: 2.75rem; }
    .infra-proof { padding: 4.7rem 1.25rem; }
    .infra-proof .lw-kicker { margin-bottom: 2rem; }
    .infra-proof__grid { grid-template-columns: 1fr; gap: 1.25rem; }
    .infra-proof-card { min-height: 34rem; }
    .infrastructure-page .contact__intro h2 { font-size: clamp(4.1rem, 18vw, 4.45rem); }
}

@media (prefers-reduced-motion: reduce) {
    .infra-care-card,
    .infra-care-card img,
    .infra-care-card svg,
    .infra-proof-card img { transition: none; }
}
