﻿/* Definitieve gedeelde stijl. Home blijft het visuele uitgangspunt. */
.topbar {
    background: #fff;
    backdrop-filter: none;
}

#home .service-tile p {
    hyphens: manual;
    overflow-wrap: anywhere;
}

:root {
    --petrol: #007e8d;
    --petrol-dark: #006875;
}

body {
    font-size: 1rem;
}

button, input, textarea, select {
    font: inherit;
}

.btn {
    min-height: 44px;
    font-size: 1rem;
}

.btn--outline {
    background: #fff;
    color: var(--brand);
    border: 1px solid var(--brand);
    box-shadow: none;
}

    .btn--outline:hover {
        background: var(--brand-50);
        color: var(--brand-600);
    }

a {
    text-underline-offset: .18em;
}

.card {
    opacity: 1;
    transform: none;
    min-width: 0;
    border-top: 4px solid var(--brand);
}

    .card:nth-child(even) {
        border-top-color: var(--petrol);
    }

    .card p {
        font-size: 1rem;
        line-height: 1.6;
    }

    .card h3 {
        overflow-wrap: anywhere;
    }

.cards--3 {
    row-gap: 24px;
}

.section {
    padding: 64px 0;
}

.section--light {
    background: #e8f3f5;
    border-block: 1px solid #d4e7ea;
}

.section--white {
    background: #fff;
}

.section-intro {
    max-width: 760px;
    margin: 0 auto 28px;
    text-align: center;
}

.section__eyebrow {
    color: var(--petrol-dark);
    font-size: .875rem;
    font-weight: 800;
    margin: 0 0 12px;
    letter-spacing: .035em;
}

.service-hero {
    background: linear-gradient(110deg,#f6fafb,#e5f0f3);
    border-bottom: 1px solid #d5e6e9;
    padding: 26px 0 58px;
}

.breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 32px;
    font-size: .875rem;
}

    .breadcrumbs a {
        padding: 0;
        border: none;
        font-size: inherit;
        color: var(--brand);
    }

    .breadcrumbs span:last-child {
        color: #4b5563;
    }

.service-hero__grid {
    display: grid;
    grid-template-columns: minmax(0,1.45fr) minmax(260px,.75fr);
    align-items: center;
    gap: 56px;
}

.service-hero h1 {
    font-size: clamp(2rem,3.4vw,2.75rem);
    line-height: 1.13;
    max-width: 740px;
}

.service-hero .lead {
    margin: 20px 0 0;
    color: #374151;
}

.hero-note {
    border-left: 3px solid var(--petrol);
    padding: 20px 24px;
}

.hero-note__icon {
    color: var(--brand);
    font-size: 2.25rem;
}

.hero-note .bullet-list {
    gap: 14px;
}

.info-panel {
    padding: 30px;
    border: 1px solid #cfe3e7;
    border-top: 4px solid var(--petrol);
    border-radius: 18px;
    background: #f2f8f9;
}

    .info-panel p:last-child {
        margin-bottom: 0;
    }


.prose h2 {
    line-height: 1.2;
}

.prose p {
    line-height: 1.75;
}

.bullet-list i {
    color: #18743b;
}

.cta-strip {
    display: flex;
    align-items: center;
    gap: 40px;
    justify-content: space-between;
}

    .cta-strip h2 {
        text-align: left;
        margin-bottom: 12px;
    }

    .cta-strip p {
        margin: 0;
        max-width: 710px;
    }

    .cta-strip .btn {
        flex-shrink: 0;
        margin: 0;
    }

.source-note {
    font-size: .875rem;
    line-height: 1.6;
    margin-top: 24px;
}

    .source-note a {
        color: var(--petrol-dark);
    }

.pricing-cards {
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 20px;
    margin: 22px 0;
}

    .pricing-cards .card {
        grid-column: auto;
    }

.price-block {
    display: flex;
    flex-direction: column;
    margin-top: auto;
    padding-top: 22px;
}

.price-prefix {
    font-size: .875rem;
    color: #4b5563;
}

.price-card h3 {
    min-height: 2.8em;
}

.price {
    font-size: 2.4rem;
    line-height: 1.2;
}

.price--request {
    font-size: 1.75rem;
}

.price-card .quote-btn {
    margin-top: 20px;
}

.price-note {
    font-size: .875rem !important;
}

[data-tabs] {
    display: none;
}

.js [data-tabs] {
    display: flex;
    width: max-content;
    max-width: 100%;
}

[role="tabpanel"] {
    scroll-margin-top: 140px;
}

    [role="tabpanel"] > h3 {
        margin-top: 30px;
    }

.certificate-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 24px;
}

.certificate-card {
    display: flex;
    align-items: flex-start;
    gap: 22px;
    padding: 30px;
    border: 1px solid #d3e5e9;
    border-top: 4px solid var(--brand);
    border-radius: 18px;
    background: #f6fafb;
}

.certificate-card__mark {
    width: 56px;
    height: 56px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    background: var(--brand-50);
    color: var(--brand);
    border-radius: 50%;
    font-size: 28px;
}

.certificate-card:nth-child(2) {
    border-top-color: var(--petrol);
}

.certificate-card p {
    margin: 0 0 20px;
}

.certificate-note {
    text-align: center;
    max-width: 800px;
    margin: 26px auto 0;
    font-size: .875rem;
}

.office-photo {
    margin: 0;
}

    .office-photo img {
        display: block;
        width: 100%;
        height: auto;
        border-radius: 18px;
    }

    .office-photo figcaption {
        color: #4b5563;
        margin-top: 10px;
        font-size: .875rem;
    }

.contact-grid {
    display: grid;
    grid-template-columns: minmax(240px,.75fr) minmax(0,1.5fr);
    gap: 40px;
    align-items: start;
}

.contact-details h2 {
    font-size: 1.5rem;
    text-align: left;
}

address {
    font-style: normal;
    line-height: 1.7;
}

.contact-form-panel h2 {
    text-align: left;
}

.contact-form-panel .input, .contact-form-panel textarea {
    width: 100%;
    min-width: 0;
}

.contact-form-panel .field {
    min-width: 0;
}

.form-fallback {
    font-size: .875rem;
}

input[type="checkbox"] {
    accent-color: var(--brand);
    width: 18px;
    height: 18px;
    vertical-align: middle;
}

.form-msg {
    font-size: 1rem;
}

.form-msg--error {
    color: #a51c28;
}

.legal-copy {
    margin: 0 auto;
}

    .legal-copy h2:not(:first-child) {
        margin-top: 40px;
    }

.final-footer {
    color: #fff;
    background: linear-gradient(105deg,#812037,#982943);
    padding: 40px 0 20px;
}

    .final-footer p {
        color: #fff;
    }

    .final-footer a {
        color: #fff;
    }

.final-footer__grid {
    display: grid;
    grid-template-columns: 1.25fr .8fr 1fr;
    gap: 40px;
}

    .final-footer__grid h2 {
        text-align: left;
        color: #fff;
        font-size: 1rem;
        margin: 0 0 16px;
    }

    .final-footer__grid strong {
        font-size: 1.05rem;
    }

    .final-footer__grid a {
        display: block;
        width: fit-content;
        margin: 0 0 12px;
        line-height: 1.5;
    }

    .final-footer__grid p {
        margin: 12px 0;
    }

.final-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 28px;
    border-top: 1px solid #ffffff45;
    padding-top: 20px;
    margin-top: 26px;
    font-size: .875rem;
}

    .final-footer__bottom span:first-child {
        margin-right: auto;
    }

.final-footer :focus-visible {
    outline-color: #fff;
}

[id] {
    scroll-margin-top: 110px;
}

@media(max-width:1100px) {
    .pricing-cards {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media(max-width:900px) {
    .service-hero__grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .hero-note {
        display: none;
    }

    .service-hero {
        padding-bottom: 40px;
    }

    .breadcrumbs {
        margin-bottom: 24px;
    }

    .section {
        padding: 44px 0;
    }

    .cta-strip {
        flex-direction: column;
        align-items: flex-start;
        gap: 24px;
    }

    .certificate-grid {
        grid-template-columns: 1fr;
    }

    .contact-grid {
        grid-template-columns: 1fr;
    }

    .final-footer__grid {
        grid-template-columns: 1fr 1fr;
    }

        .final-footer__grid > div:first-child {
            grid-column: 1/-1;
        }

    [id] {
        scroll-margin-top: 130px;
    }
}

@media(max-width:640px) {
    .pricing-cards {
        grid-template-columns: 1fr;
    }

    .price-card h3 {
        min-height: 0;
    }

    .certificate-card {
        padding: 22px;
        gap: 16px;
    }

    .certificate-card__mark {
        display: none;
    }

    .final-footer__grid {
        grid-template-columns: 1fr;
        gap: 26px;
    }

        .final-footer__grid > div:first-child {
            grid-column: auto;
        }

    .final-footer__bottom {
        flex-direction: column;
    }

    .final-footer a {
        padding: 5px 0;
    }

    .info-panel {
        padding: 24px;
    }
}

@media(prefers-reduced-motion:reduce) {
    .card:hover {
        transform: none;
    }
}
