/* Homepage composition: layered editorial sections without altering page content or links. */
.hero {
    min-height: 720px;
    display: grid;
    align-items: center;
    isolation: isolate;
}
.hero::after {
    content: '';
    position: absolute;
    width: min(42vw, 540px);
    aspect-ratio: 1;
    right: -12vw;
    bottom: -38%;
    border: 1px solid rgba(24, 60, 54, 0.14);
    border-radius: 50%;
    box-shadow: 0 0 0 36px rgba(219, 240, 125, 0.26), 0 0 0 72px rgba(219, 240, 125, 0.13);
    z-index: -1;
}
.hero .container { max-width: 1040px !important; }
.hero h1 { font-size: clamp(3.15rem, 6vw, 5.8rem) !important; max-width: 900px; }
.hero p { max-width: 710px !important; font-size: 1.12rem !important; }
.hero-actions { margin-bottom: 64px !important; }
.hero-stats {
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid rgba(24, 60, 54, 0.1) !important;
    border-radius: 20px;
    padding: 26px 32px !important;
    backdrop-filter: blur(8px);
}
.hero-stat-item + .hero-stat-item { border-left: 1px solid rgba(24, 60, 54, 0.12); padding-left: 52px; }

#services { background: #fff; }
#services .grid-2 { max-width: 1020px !important; gap: 22px !important; }
#services .premium-card { padding: 42px 38px !important; }
#services .premium-card:first-child { background: #f2f8ee !important; }
.service-icon {
    width: 56px;
    height: 56px;
    display: grid !important;
    place-items: center;
    border-radius: 16px;
    background: #fff0ea;
}
.service-icon svg { stroke: var(--accent) !important; }

#team { background: #fffaf2; }
#team .grid-3 { gap: 20px !important; }
#team .premium-card { padding: 30px 26px !important; }
/* Preserve a shared top and bottom edge for every row of team cards. */
#team .premium-card:nth-child(3n + 2), #team .premium-card:nth-child(3n + 2):hover { transform: none; }
#team .team-img { width: 94px !important; height: 94px !important; }

#partner { position: relative; overflow: hidden; }
#partner::before {
    content: '';
    position: absolute;
    width: 430px;
    height: 430px;
    border-radius: 50%;
    background: #dff0c1;
    top: -290px;
    left: 50%;
    transform: translateX(-50%);
}
#partner .container { position: relative; }
.partner-logo { filter: none !important; }

#work { background: #fff; }
#work .grid-3 { gap: 20px !important; }
.work-img-wrap { height: 220px !important; }
.work-content { padding: 26px 26px 28px !important; }

#testimonials { background: #183c36; border-bottom: 0 !important; }
#testimonials h2, #testimonials .attribution { color: #fff !important; }
#testimonials .section-header p, #testimonials .attribution span { color: #c7d8cb !important; }
#testimonials .section-label { color: #dff07d !important; }
#testimonials .section-label::before { background: #dff07d !important; }
#testimonials .testimonial-card { background: rgba(255, 255, 255, 0.08) !important; border-color: rgba(255, 255, 255, 0.15) !important; box-shadow: none !important; }
#testimonials .testimonial-card:hover { background: rgba(255, 255, 255, 0.13) !important; border-color: rgba(223, 240, 125, 0.45) !important; }
#testimonials .quote { color: #eff6ee !important; }
#testimonials .quote::before { color: #dff07d !important; }
.cta-banner { background: #fff0ea !important; border: 0 !important; }

@media (max-width: 768px) {
    .hero { min-height: auto; }
    .hero h1 { font-size: clamp(2.45rem, 11vw, 3.75rem) !important; }
    .hero-stats { border-radius: 16px; padding: 20px 12px !important; }
    .hero-stat-item + .hero-stat-item { border-left: 0; padding-left: 0; }
    #team .premium-card:nth-child(3n + 2), #team .premium-card:nth-child(3n + 2):hover { transform: none; }
}

/* Four-part testimonial rail: cards remain readable and swipeable on smaller screens. */
.testimonial-track { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; max-width: 1180px; margin: 0 auto; }
.testimonial-card { display: flex; flex-direction: column; text-align: left !important; padding: 28px 24px !important; }
.testimonial-card .quote { font-size: 1rem !important; }
.testimonial-card .attribution { margin-top: auto; padding-top: 18px; }
.media-card-content > .btn-secondary { margin-top: auto; }
.rating { color: #dff07d; font-size: 1rem; letter-spacing: .08em; margin-bottom: 12px; }
.rating span { color: #fff; font-size: .78rem; letter-spacing: 0; margin-left: 5px; font-weight: 700; }
.testimonial-badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 2px; }
.testimonial-badges span { color: #183c36; background: #dff07d; padding: 4px 8px; border-radius: 999px; font-size: .64rem; font-weight: 700; letter-spacing: .02em; }
@media (max-width: 1024px) { .testimonial-track { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .testimonial-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 20px 12px; margin: 0 -20px; scrollbar-width: thin; } .testimonial-card { flex: 0 0 min(84vw, 340px); scroll-snap-align: start; } }
