/* Every slide contributes to the shared height, so long copy stays readable
   without clipping or shifting the content below when the slide changes. */
.home-page .hero-carousel { height: auto; padding: 0; color: var(--color-ink); background: #f1f0ee; }
.home-page .hero-carousel::before { content: none; }
.home-page .hero-slides { display: grid; height: auto; }
.home-page .hero-slide { position: relative; grid-area: 1 / 1; height: auto; padding: 0; isolation: isolate; }
.js .home-page .hero-slide { position: relative; inset: auto; display: block; }
.home-page .hero-grid { height: auto; min-height: min(45vw, 48rem); display: flex; align-items: center; padding-block: 3.5rem; }
.home-page .hero-copy { position: relative; z-index: 1; width: 42%; max-width: 29rem; overflow: visible; }
.home-page .hero-carousel .eyebrow { margin-bottom: 1rem; color: var(--color-primary-dark); }
.home-page .hero-heading { max-width: none; margin-bottom: 1.25rem; font-size: 2.75rem; line-height: 1.15; letter-spacing: normal; text-wrap: balance; }
.home-page .hero-lead { display: block; max-width: none; margin-bottom: 0; color: #334552; font-size: 1.125rem; line-height: 1.65; overflow: visible; -webkit-line-clamp: unset; }
.home-page .hero-copy .button-group { margin-top: 1.5rem; }
.home-page .hero-copy .button { gap: .65rem; }
.home-page .hero-media { position: absolute; z-index: 0; top: 50%; right: 0; width: min(80%, 85.25rem); height: auto; overflow: visible; transform: translateY(-50%); }
.home-page .hero-media img { display: block; width: 100%; height: auto; object-fit: contain; border: 0; border-radius: 0; box-shadow: none; }
.home-page .hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #f1f0ee, transparent 22%); pointer-events: none; }
.home-page .carousel-controls { position: relative; inset: auto; padding-block: .75rem 1.25rem; }
.home-page .carousel-controls[hidden] { display: none; }
.home-page .carousel-indicators { gap: .15rem; }
.home-page .carousel-indicator { display: grid; place-items: center; width: 2rem; height: 2.75rem; background: transparent; border: 0; border-radius: .4rem; }
.home-page .carousel-indicator::before { content: ""; width: .7rem; height: .7rem; border: 2px solid var(--color-primary); border-radius: 50%; }
.home-page .carousel-indicator[aria-current="true"]::before { border-color: var(--color-accent); background: var(--color-accent); }
.home-page .carousel-toggle { min-width: 6.25rem; }
.home-page .section { padding-block: clamp(3rem, 6vw, 5rem); }
.home-proof { background: var(--color-surface-blue); border-bottom: 1px solid var(--color-border); }
.home-proof__grid { display: grid; grid-template-columns: 1fr 1fr 1fr; padding-block: 1.75rem; gap: 1.5rem; }
.home-proof__grid > div, .home-proof__grid > a { display: flex; flex-direction: column; text-decoration: none; padding-left: 1.25rem; border-left: 3px solid var(--color-primary); }
.home-proof strong { font-size: 1.3rem; }
.home-proof span { color: var(--color-muted); font-size: .9rem; }
.home-solutions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.home-solution { overflow: hidden; border: 1px solid var(--color-border); border-radius: 12px; background: #fff; }
.home-solution__media { margin: 2px; border: 1px solid var(--color-primary); border-radius: 5px; overflow: hidden; }
.home-solution__media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; background: #fff; }
.home-solution__copy { padding: 1.6rem; }
.home-solution__copy h3 { font-size: 1.45rem; }
.home-solution__copy p { color: var(--color-muted); }
.home-reference-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; list-style: none; margin: 2rem 0; }
.home-reference-grid li { display: grid; place-items: center; min-width: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: 8px; background: #fff; }
.home-reference-grid img { display: block; width: 100%; height: 80px; object-fit: contain; }
.home-reference-note { color: var(--color-muted); font-size: .95rem; }

.home-page .card--visual { position: relative; overflow: hidden; isolation: isolate; background: var(--color-white); }
.home-page .card--visual::after { content: ""; position: absolute; inset: auto 0 0; z-index: 1; height: 58%; background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,.72)); pointer-events: none; }
.home-page .card__image { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; object-position: center bottom; opacity: .95; pointer-events: none; }
.home-page .card--visual .card-number, .home-page .card--visual h3, .home-page .card--visual p { position: relative; z-index: 2; }
.home-process-link { margin-top: 2rem; }
@media (min-width: 62.001rem) and (max-width: 75rem) {
    .home-page .hero-heading { font-size: 2.4rem; }
    .home-page .hero-lead { font-size: 1.0625rem; }
}
@media (max-width: 62rem) {
    .home-page .hero-slide { align-content: start; }
    .home-page .hero-grid { min-height: 0; padding-block: 2.5rem 1rem; }
    .home-page .hero-copy { width: 100%; max-width: 42rem; margin-inline: auto; }
    .home-page .hero-heading { font-size: 2.5rem; }
    .home-page .hero-media { position: relative; top: auto; width: 100%; max-width: 62rem; margin-inline: auto; transform: none; }
    .home-page .hero-media::after { background: linear-gradient(#f1f0ee, transparent 18%); }
    .home-reference-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 44rem) {
    .home-page .hero-grid { width: calc(100% - 2.5rem); padding-top: 2rem; }
    .home-page .hero-heading { font-size: 2.125rem; }
    .home-page .hero-lead { font-size: 1rem; }
    .home-page .hero-carousel .eyebrow { font-size: .7rem; }
    .home-page .carousel-controls { gap: .35rem 1rem; }
    .home-solutions { grid-template-columns: 1fr; }
    .home-proof__grid { grid-template-columns: 1fr; gap: 1rem; }
    .home-proof__grid > div, .home-proof__grid > a { padding-block: .25rem; }
    .home-solution__copy { padding: 1.25rem; }
    .home-reference-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
