.service-main{width:100%;max-width:1280px;margin:0 auto;padding:40px 24px 64px;display:grid;gap:24px}.service-panel{border:1px solid rgba(255,255,255,.7);border-radius:2rem;background:rgba(255,255,255,.94);padding:32px;box-shadow:0 12px 32px rgba(5,46,22,.12);color:#183c27}.service-intro{text-align:center;padding:48px 32px}.service-eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.18em}.service-panel h1{font-size:clamp(1.8rem,4vw,3rem);line-height:1.15;font-weight:800;margin:12px 0 20px}.service-panel h2{font-size:1.5rem;line-height:1.3;font-weight:750;margin:12px 0 16px}.service-panel h3{font-size:1.2rem;font-weight:750}.service-panel p{line-height:1.7;margin:12px 0}.service-panel ul{padding-left:20px;list-style:disc;line-height:1.7}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.service-grid>.service-panel{display:flex;flex-direction:column}.service-grid i{font-size:32px;color:#2b5136}.service-example{font-size:.95rem;color:#486152}.service-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;margin-top:24px}.service-button{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;min-height:46px;background:#2b5136;color:white;border-radius:999px;padding:12px 24px;font-weight:700;text-decoration:none;text-align:center}.service-button:hover{background:#166534}.service-button:focus-visible,.service-link:focus-visible{outline:3px solid #84cc16;outline-offset:4px}.service-link{color:#245837;text-decoration:underline;text-underline-offset:4px;font-weight:700}.price-card{padding:24px;border:1px solid #d7e3d8;border-radius:1.5rem;background:#f4f8f1}.service-panel .service-price{font-size:2rem;font-weight:800;line-height:1.3}.service-preview{margin-top:24px}.service-preview .service-panel{box-shadow:none;background:#f4f8f1;border-color:#d7e3d8}#tarjouspyynto{scroll-margin-top:100px}@media(max-width:800px){.service-grid{grid-template-columns:1fr}.service-main{padding:24px 16px 40px}.service-panel{padding:24px;border-radius:1.5rem}.service-intro{padding:32px 24px}.service-actions{gap:16px}}

.price-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.service-subnav{display:flex;flex-wrap:wrap;gap:24px;padding:16px 24px;border-radius:999px;background:rgba(255,255,255,.94);font-weight:700;color:#245837}.service-subnav a{text-underline-offset:4px}.service-subnav a:hover,.service-subnav [aria-current]{text-decoration:underline}.service-subnav a:focus-visible{outline:3px solid #84cc16;outline-offset:4px}

.home-page .home-section-title,.home-page .service-preview>h2{font-size:1.5rem;line-height:2rem;font-weight:700;letter-spacing:-.025em;text-align:center;text-transform:none;color:#2b5136}
.home-page .service-preview>p{text-align:center}
.service-preview .service-grid>article>i{display:block;width:32px;height:32px;margin-bottom:8px;line-height:1}
.service-preview .service-actions{gap:16px}
.service-preview .service-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:200px;padding:12px 24px;border:2px solid #2b5136;text-decoration:none;transition:background-color .15s,color .15s}
.service-preview .service-button-secondary{background:transparent;color:#2b5136}
.service-preview .service-button-secondary:hover{background:#edf3e9}
.service-preview .service-button:focus-visible{outline:3px solid #89d329;outline-offset:4px}
@media(min-width:640px){.home-page .home-section-title,.home-page .service-preview>h2{font-size:1.875rem;line-height:2.25rem}}
@media(max-width:480px){.service-preview .service-actions{flex-direction:column}.service-preview .service-button{width:100%}}

/* Match the public header container and homepage section presentation. */
.catalog-page .service-main{max-width:80rem;padding:24px 16px 80px;gap:32px}
.catalog-page .service-panel h2{font-size:1.5rem;line-height:2rem;font-weight:700;letter-spacing:-.025em;text-align:center;color:#2b5136}
.catalog-page .service-grid>article>i{display:block;width:32px;height:32px;margin-bottom:8px;line-height:1}
.catalog-page .service-actions{gap:16px}
.catalog-page .service-actions .service-button{min-height:48px;min-width:200px;border:2px solid #2b5136;padding:12px 24px}
.catalog-page .service-button-secondary{background:transparent;color:#2b5136}
.catalog-page .service-button-secondary:hover{background:#edf3e9}
@media(min-width:640px){.catalog-page .service-main{padding:24px 24px 80px;gap:48px}.catalog-page .service-panel{border-radius:2.5rem;padding:40px}.catalog-page .service-panel h2{font-size:1.875rem;line-height:2.25rem}}
@media(min-width:1024px){.catalog-page .service-main{padding-left:32px;padding-right:32px}}
@media(max-width:480px){.catalog-page .service-actions{flex-direction:column}.catalog-page .service-actions .service-button{width:100%}}

/* STANDARD_VISITS_SCROLL_V1 */
@media (max-width: 767px) {
    .standard-visits-scroll {
        --standard-card-gap: 1.25rem;
        max-height: min(850px, 78svh);
        overflow-y: auto;
        overflow-x: hidden;
        overscroll-behavior-y: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .standard-visits-scroll::-webkit-scrollbar {
        display: none;
    }
}


/* STANDARD_VISITS_DYNAMIC_HEIGHT_V1 */
@media (max-width: 767px) {
    .standard-visits-scroll {
        max-height: none;
        overflow-y: auto;
        overflow-x: hidden;
        scrollbar-width: none;
        -ms-overflow-style: none;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-y: contain;
        align-content: start;
    }

    .standard-visits-scroll::-webkit-scrollbar {
        display: none;
    }
}


/* BUSINESS_SERVICES_V1 */
.business-services {
    scroll-margin-top: 110px;
}

.business-heading {
    text-align: center;
    max-width: 760px;
    margin: 0 auto 28px;
}

.business-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.business-card {
    min-width: 0;
    padding: 24px;
    border: 1px solid #d7e3d8;
    border-radius: 1.5rem;
    background: #f4f8f1;
}

.business-card-heading { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.business-card-heading > i { flex:0 0 auto; font-size:28px; line-height:1; color:#2b5136; }
.business-card .business-card-heading h3 { min-width:0; margin:0; line-height:1.35; }
.business-card { transition:transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease, background-color 180ms ease; }
.business-card-heading > i { transition:transform 180ms ease; }
@media (hover:hover) and (pointer:fine) {
 .business-card:hover { transform:translateY(-3px); border-color:#9bb69e; background-color:#f0f6ed; box-shadow:0 8px 20px rgba(24,60,39,.10); }
 .business-card:hover .business-card-heading > i { transform:rotate(-5deg) scale(1.06); }
}
.business-card:active { transform:scale(.995); border-color:#809d85; }
@media (prefers-reduced-motion:reduce) {
 .business-card, .business-card-heading > i { transition:none; }
 .business-card:hover, .business-card:active, .business-card:hover .business-card-heading > i { transform:none; }
}

.business-card h3 {
    margin-bottom: 10px;
    color: #183c27;
}

.business-card p {
    margin-bottom: 0;
}

.business-contact {
    margin-top: 24px;
    padding: 28px;
    background: #eaf2e6;
    border-radius: 1.5rem;
    border: 1px solid #d7e3d8;
}

.business-contact h3 {
    margin-bottom: 12px;
}

.business-contact-button {
    gap: 10px;
    margin-top: 12px;
}

.business-contact-button i {
    font-size: 20px;
}

@media (max-width: 767px) {
    .business-card-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .business-card {
        padding: 22px;
    }

    .business-contact {
        padding: 22px;
    }

    .business-contact-button {
        width: 100%;
    }
}


/* HOME_SERVICE_CARD_LAYOUT_V4 */

/* Korttien yhtenäinen pystyasettelu */
.home-page .service-preview .service-grid > article.service-panel {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    text-align: left;
}

/* Kuvake ja otsikko vasemmalle samalle riville */
.home-page .service-preview .home-service-heading {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    width: 100%;
    min-height: 40px;
    margin: 0 0 14px;
}

/* Kuvake */
.home-page .service-preview .home-service-heading > i {
    display: inline-flex;
    flex: 0 0 32px;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    margin: 0;
    font-size: 28px;
    line-height: 1;
    color: #2b5136;
}

/* Otsikko */
.home-page .service-preview .home-service-heading > h3 {
    margin: 0;
    min-width: 0;
    font-size: 1.15rem;
    font-weight: 750;
    line-height: 1.3;
    text-align: left;
    color: #2b5136;
}

/* Kuvausteksti */
.home-page .service-preview .service-grid > article.service-panel > p {
    margin: 0;
    width: 100%;
    text-align: left;
    line-height: 1.65;
}

/* Mobiili */
@media (max-width: 639px) {
    .home-page .service-preview .home-service-heading {
        gap: 10px;
        margin-bottom: 12px;
    }

    .home-page .service-preview .home-service-heading > h3 {
        font-size: 1.1rem;
    }
}


/* HOME_SERVICE_MICRO_INTERACTIONS_V1 */

/* Kortin perusanimaatiot */
.home-page .service-preview .service-grid > article.service-panel {
    position: relative;
    transition:
        transform 240ms cubic-bezier(.22, 1, .36, 1),
        box-shadow 240ms ease,
        border-color 240ms ease,
        background-color 240ms ease;

    will-change: auto;
}

/* Kuvakkeen animaatio */
.home-page .service-preview .home-service-heading > i {
    transform-origin: center;
    transition:
        transform 300ms cubic-bezier(.22, 1, .36, 1),
        color 240ms ease;
}

/* Hover vain laitteissa, joissa on oikea hover */
@media (hover: hover) and (pointer: fine) {

    .home-page .service-preview .service-grid > article.service-panel:hover {
        transform: translateY(-4px);

        box-shadow:
            0 12px 28px rgba(5, 46, 22, .13),
            0 3px 8px rgba(5, 46, 22, .05);

        border-color: rgba(76, 120, 74, .38);
        background-color: #f7faf4;
    }

    .home-page .service-preview .service-grid > article.service-panel:hover
    .home-service-heading > i {
        transform: scale(1.12) rotate(-5deg);
        color: #3b703c;
    }
}

/* Kevyt kosketusvaste */
@media (hover: none) and (pointer: coarse) {

    .home-page .service-preview .service-grid > article.service-panel:active {
        transform: scale(.992);
        background-color: #edf5e9;
    }

    .home-page .service-preview .service-grid > article.service-panel:active
    .home-service-heading > i {
        transform: scale(1.06);
    }
}

/* Käyttäjän liikeasetusten kunnioittaminen */
@media (prefers-reduced-motion: reduce) {

    .home-page .service-preview .service-grid > article.service-panel,
    .home-page .service-preview .home-service-heading > i {
        transition: none !important;
        transform: none !important;
    }
}

/* PRICING_SUMMARY_V5: scoped to the prices page */
.catalog-page .pricing-main { min-width:0; grid-template-columns:minmax(0,1fr); }
.catalog-page .pricing-main > * { min-width:0; }
.catalog-page .pricing-columns { display:grid; grid-template-columns:minmax(0,1fr); gap:28px; }
.catalog-page .pricing-column { min-width:0; overflow-wrap:anywhere; }
.catalog-page .pricing-column + .pricing-column { border-top:1px solid #d7e3d8; padding-top:28px; }
.catalog-page .pricing-summary-facts { display:grid; gap:20px; margin:24px 0; }
.catalog-page .pricing-summary-facts div { min-width:0; }
.catalog-page .pricing-summary-facts dt { font-size:1rem; font-weight:600; color:#486152; }
.catalog-page .pricing-summary-facts dd { margin:6px 0 0; font-size:clamp(1.4rem,2.5vw,2rem); font-weight:800; line-height:1.3; color:#2b5136; }
.catalog-page .pricing-column .price-grid { grid-template-columns:minmax(0,1fr); }
@media (min-width:768px) {
 .catalog-page .pricing-columns { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
 .catalog-page .pricing-column + .pricing-column { border-top:0; padding-top:0; border-left:1px solid #d7e3d8; padding-left:32px; }
}

/* PRICING_ADDON_SCROLL_V6 */
.catalog-page .pricing-main .pricing-addon-scroll {
 display:flex; flex-direction:column; gap:12px;
 height:auto; max-height:260px; min-height:0; overflow-y:auto; overflow-x:hidden;
 padding:2px 8px 2px 2px; box-sizing:border-box;
 scrollbar-width:thin; scrollbar-color:#809d85 transparent;
}
.catalog-page .pricing-main .pricing-addon-scroll:focus-visible { outline:3px solid #84cc16; outline-offset:4px; border-radius:12px; }
.catalog-page .pricing-main .pricing-addon-scroll > .addon-card { flex:0 0 auto; padding:16px 18px; border-radius:18px; min-width:0; }
.catalog-page .pricing-main .pricing-addon-scroll .addon-card h3 { font-size:1.1rem; line-height:1.35; margin:0 0 8px; }
.catalog-page .pricing-main .pricing-addon-scroll .addon-card .service-price { font-size:1.35rem; line-height:1.3; margin:0 0 8px; }
.catalog-page .pricing-main .pricing-addon-scroll .addon-card p:not(.service-price) { font-size:.95rem; line-height:1.5; margin:0; }

/* TAILORED_VISIT_EXAMPLES_V1 */
.catalog-page #tarjouspyynto .tailored-example-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 16px; }
.catalog-page #tarjouspyynto .tailored-example-card { min-width:0; padding:22px; border:1px solid #d7e3d8; border-radius:24px; background:#f4f8f1; overflow-wrap:anywhere; }
.catalog-page #tarjouspyynto .tailored-example-card h3 { margin:0 0 10px; color:#183c27; line-height:1.35; }
.catalog-page #tarjouspyynto .tailored-example-card p { margin:0; }
@media(max-width:767px) { .catalog-page #tarjouspyynto .tailored-example-grid { grid-template-columns:minmax(0,1fr); } }

/* PRICING_LAYOUT_SPACING_V7 */
.catalog-page .pricing-main .pricing-overview { padding:clamp(24px,3vw,40px); }
.catalog-page .pricing-main .pricing-column > h2 { margin:0 0 18px; }
.catalog-page .pricing-main .pricing-column > p { margin:0 0 14px; }
.catalog-page .pricing-main .pricing-column > p:last-child { margin-bottom:0; }
.catalog-page .pricing-main .pricing-summary-facts { gap:16px; margin:22px 0 0; }
.catalog-page .pricing-main .pricing-addon-scroll { margin:18px 0 14px; }
.catalog-page .pricing-main .pricing-addon-scroll ~ p { font-size:.9rem; line-height:1.5; margin-bottom:8px; color:#486152; }

/* SERVICE_OFFERING_LAYOUT_V1 */
.catalog-page .service-offerings { grid-template-columns:minmax(0,1fr); gap:20px; align-items:stretch; }
.catalog-page .service-offerings > .service-offering { min-width:0; padding:clamp(24px,2.5vw,32px); gap:16px; }
.catalog-page .service-card-heading { display:flex; align-items:center; gap:12px; margin:0 0 4px; min-width:0; }
.catalog-page .service-offerings .service-card-heading > i { flex:0 0 30px; font-size:30px; line-height:1; margin:0; }
.catalog-page .service-offerings .service-card-heading > h2 { margin:0; text-align:left; font-size:clamp(1.2rem,1.65vw,1.5rem); line-height:1.25; overflow-wrap:anywhere; }
.catalog-page .service-offerings .service-offering > p,
.catalog-page .service-offerings .service-offering > ul { margin:0; line-height:1.6; }
.catalog-page .service-offerings .service-offering > .service-example { font-size:.9rem; }
.catalog-page .service-offerings .service-offering > .service-button,
.catalog-page .service-offerings .service-offering > .service-link { margin-top:auto; }
@media(min-width:768px) and (max-width:1099px) {
 .catalog-page .service-offerings { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .catalog-page .service-offerings > .service-offering:last-child { grid-column:1 / -1; }
}
@media(min-width:1100px) { .catalog-page .service-offerings { grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* QUOTE_BUTTON_UNIFIED_V1 */
.catalog-page .service-panel .quote-button {
 display:inline-flex; align-items:center; justify-content:center; gap:10px;
 width:220px; max-width:100%; height:48px; min-height:48px;
 box-sizing:border-box; padding:0 20px; border:0; border-radius:999px;
 font-size:1rem; font-weight:700; line-height:1.2; text-decoration:none;
 background:#2b5136; color:#fff; vertical-align:middle;
}
.catalog-page .service-panel .quote-button > i { font-size:20px; line-height:1; flex:0 0 20px; margin:0; }
.catalog-page .service-panel .quote-button:hover { background:#166534; }


/* CATALOG_SECTION_SPACING_V1 */
/* Preserve section spacing inside the live-content wrapper. */
.catalog-page .service-main > #catalog-live-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
    min-width: 0;
}

@media (min-width: 640px) {
    .catalog-page .service-main > #catalog-live-content {
        gap: 48px;
    }
}
