.home-page .site-main { padding-block: 0; }
.home-hero { padding: clamp(.75rem, 1.2vw, 1.25rem) clamp(.75rem, 1.2vw, 1.25rem) clamp(1rem, 2vw, 2rem); }
.hero-frame { position: relative; isolation: isolate; overflow: hidden; border-radius: 1.25rem; background: var(--color-ink); }
.hero-slide { position: absolute; inset: 0; margin: 0; opacity: 0; pointer-events: none; transition: opacity .9s ease; }
.hero-slide.is-active { opacity: 1; }
.hero-slide picture, .hero-slide img { display: block; width: 100%; height: 100%; }
.hero-slide img { object-fit: cover; }
.hero-slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(10 25 32 / .9), rgb(10 25 32 / .78) 40%, rgb(10 25 32 / .24) 72%, rgb(10 25 32 / .08)); }
.hero-slide-running img { object-position: 65% 22%; }
.hero-slide-trail img { object-position: 78% 28%; }
.hero-slide-stretching img { object-position: 30% 8%; }
.hero-slide-stretching::after { background: linear-gradient(270deg, rgb(10 25 32 / .9), rgb(10 25 32 / .78) 40%, rgb(10 25 32 / .24) 72%, rgb(10 25 32 / .08)); }
.hero-content-shell { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: clamp(2rem, 4vw, 4rem); width: min(calc(100% - clamp(3rem, 8vw, 10rem)), var(--max)); min-height: clamp(33rem, 46vw, 44rem); margin-inline: auto; padding-block: clamp(3rem, 6vw, 5rem) 7rem; }
.home-hero .hero-copy { grid-column: 1; max-width: 32rem; color: white; }
.home-hero [data-hero-side="right"] .hero-copy { grid-column: 2; }
.home-hero .hero-copy h1 { max-width: none; color: white; }
.hero-line { display: block; }
.home-hero .lede { max-width: 31rem; color: rgb(255 255 255 / .94); line-height: 1.75; text-wrap: pretty; }
.home-hero .hero-actions { margin-top: 1.75rem; }
.home-hero .btn-secondary { border-color: transparent; }
.home-hero .hero-note { margin-top: 1.75rem; color: rgb(255 255 255 / .94); gap: .5rem .6rem; font-size: .75rem; }
.home-hero .hero-note > span { display: inline-flex; align-items: center; gap: .4rem; }
.home-hero .hero-note .icon { width: 1rem; height: 1rem; color: white; flex-shrink: 0; }
.hero-toolbar { position: absolute; inset: auto clamp(1.5rem, 4vw, 5rem) 1.5rem; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.hero-pagination, .carousel-controls { display: flex; align-items: center; gap: .5rem; }
.hero-pagination { gap: .125rem; }
.hero-dot { display: grid; place-items: center; flex-shrink: 0; width: 2.75rem; height: 2.75rem; padding: 0; border: 0; border-radius: 50%; background: transparent; color: white; }
.hero-dot span { width: .5rem; height: .5rem; border-radius: 999px; background: rgb(255 255 255 / .55); transition: width .3s ease, background .3s ease; }
.hero-dot.is-active span { width: 1.75rem; background: white; }
.hero-dot:hover span { background: white; }
.carousel-btn { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 2.75rem; height: 2.75rem; border: 1px solid var(--color-line); border-radius: 50%; background: white; color: var(--color-ink); transition: color .2s ease, background .2s ease, border-color .2s ease; }
.carousel-btn:hover { background: var(--color-primary-light); border-color: var(--color-primary); color: var(--color-primary-dark); }
.carousel-btn:disabled { opacity: .4; cursor: not-allowed; }
.carousel-btn[data-carousel-prev] .icon { transform: rotate(180deg); }
.carousel-btn .icon { width: 1.1rem; height: 1.1rem; }
.home-hero :focus-visible { outline-color: white; }
.home-services { --services-gap: clamp(1rem, 2vw, 1.5rem); padding-block: var(--section-space); overflow: clip; background: var(--color-surface); }
.home-services .section-head { align-items: center; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.home-services .eyebrow { margin-bottom: .7rem; font-size: .75rem; letter-spacing: .12em; }
.home-services .eyebrow::before { display: none; }
.home-services .carousel-controls { gap: .75rem; }
.home-services .carousel-btn { width: 3.25rem; height: 3.25rem; background: transparent; border-color: #A8C4D5; }
.home-services .carousel-btn:hover:not(:disabled) { background: var(--color-primary-light); border-color: var(--color-primary-dark); }
.home-services .carousel-btn .icon { width: 1.3rem; height: 1.3rem; }
.home-services .carousel { margin-right: calc((min(100vw - var(--gutter), var(--max)) - 100vw) / 2 + clamp(.75rem, 1.2vw, 1.25rem)); }
.carousel-track { display: flex; align-items: stretch; gap: var(--services-gap); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding: .375rem .25rem .75rem; scroll-padding-inline: .25rem; }
.carousel-track::-webkit-scrollbar { display: none; }
.carousel-track:focus-visible { outline-offset: -3px; border-radius: .75rem; }
.service-card { display: flex; flex: 0 0 88%; min-width: 0; min-height: 20rem; border: 1px solid transparent; border-radius: .875rem; scroll-snap-align: start; background: var(--color-primary-light); transition: background .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s var(--ease); }
.service-card:hover, .service-card:focus-within { border-color: #B0D3E8; background: #DEEEF7; box-shadow: 0 8px 20px rgb(23 46 62 / .06); }
.service-card-link { display: flex; flex-direction: column; gap: 2rem; width: 100%; min-width: 0; padding: clamp(1.25rem, 2.4vw, 2rem); border-radius: inherit; color: var(--color-ink); text-decoration: none; }
.service-card-link:hover { color: var(--color-ink); }
.service-card-link:focus-visible { outline: 3px solid var(--color-primary-dark); outline-offset: -5px; }
.service-card h3 { font-size: var(--text-card); line-height: 1.25; }
.service-card p { margin-top: .75rem; color: var(--color-muted); font-size: 1rem; line-height: 1.65; }
.service-icon { display: grid; place-items: center; flex-shrink: 0; width: 7rem; height: 7rem; margin-top: auto; border: 1.5px solid var(--color-primary-dark); border-radius: 50%; color: var(--color-primary-dark); }
.service-illustration { display: block; width: 4.5rem; height: 4.5rem; }
.service-illustration-accent { stroke: var(--color-primary); }
.services-bottom { margin-top: clamp(1.75rem, 3vw, 2.75rem); }
.services-cta { gap: 1.25rem; padding: .35rem .35rem .35rem 1.5rem; min-height: 3.75rem; }
.services-cta-arrow { display: grid; place-items: center; flex-shrink: 0; width: 3rem; height: 3rem; border-radius: 50%; background: white; color: var(--color-accent); }
.services-cta-arrow .icon { width: 1.25rem; height: 1.25rem; }
.coverage { padding-block: clamp(3rem, 6vw, 5rem); background: var(--color-primary-dark); color: white; }
.coverage-grid { display: grid; align-items: start; gap: 2.5rem; }
.coverage-copy { min-width: 0; }
.coverage h2 { max-width: none; white-space: nowrap; text-wrap: nowrap; color: white; }
.coverage-description { max-width: 30rem; margin-top: 1.5rem; color: white; line-height: 1.8; text-wrap: pretty; }
.coverage-options { min-width: 0; }
.coverage-list { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem; list-style: none; }
.coverage-list li { display: flex; align-items: center; gap: .75rem; max-width: 100%; min-width: 0; min-height: 4rem; padding: .85rem 1.1rem; border: 1px solid transparent; border-radius: 999px; background: var(--color-surface); color: var(--color-ink); font-size: .875rem; font-weight: 500; cursor: default; transition: background .25s ease, box-shadow .25s ease, transform .25s var(--ease); }
.coverage-list li:hover { background: var(--color-primary-light); box-shadow: 0 6px 18px rgb(9 35 53 / .12); }
.coverage-icon { display: grid; place-items: center; flex-shrink: 0; width: 2rem; height: 2rem; color: var(--color-primary-dark); }
.coverage-illustration { display: block; width: 2rem; height: 2rem; }
.coverage-name { min-width: 0; line-height: 1.5; overflow-wrap: break-word; }
@media (min-width: 40rem) {
    .service-card { flex-basis: calc((100% - 2 * var(--services-gap)) / 2.2); }
}
@media (min-width: 62rem) {
    .service-card { flex-basis: calc((100% - 3 * var(--services-gap)) / 3.2); }
    .coverage-grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(3rem, 6vw, 5rem); }
}
@media (max-width: 61.99rem) {
    .home-hero .hero-description-break { display: none; }
    .home-hero .hero-note > span:not(.hero-note-separator) { flex-basis: 100%; }
    .home-hero .hero-note .hero-note-separator { display: none; }
}
@media (max-width: 47.99rem) {
    .hero-frame { border-radius: 1rem; }
    .hero-slide picture { height: clamp(24rem, 85vw, 27rem); mask-image: linear-gradient(black 60%, transparent); }
    .hero-content-shell { grid-template-columns: minmax(0, 1fr); width: calc(100% - 2.5rem); min-height: 0; padding-block: clamp(13rem, 36vw, 17rem) 6.5rem; }
    .home-hero [data-hero-side] .hero-copy { grid-column: 1; max-width: 32rem; }
    .hero-slide-running img { object-position: 68% center; }
    .hero-slide-trail img { object-position: 84% center; }
    .hero-slide-stretching img { object-position: 28% center; }
    .hero-slide::after, .hero-slide-stretching::after { background: linear-gradient(180deg, rgb(10 25 32 / .08) 15%, rgb(10 25 32 / .25) 30%, rgb(10 25 32 / .88) 49%, rgb(10 25 32 / .97) 75%); }
    .hero-toolbar { inset: auto 1.25rem 1.25rem; gap: .5rem; }
}
@media (max-width: 40rem) {
    .home-services .section-head { gap: 1rem; }
    .home-services .carousel-btn { width: 2.75rem; height: 2.75rem; }
    .coverage-list li { gap: .75rem; padding-inline: 1rem; }
}
@media (max-width: 24rem) {
    .home-services .section-head { align-items: flex-start; }
    .home-services .carousel-controls { width: 100%; justify-content: flex-end; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .service-card:hover { transform: translateY(-4px); }
    .coverage-list li:hover { transform: translateY(-2px); }
}
