/* ==========================================================================
   Regio Taxaties site theme

   Reproduces the measured geometry and typography of the previous Divi build
   on top of the shared Nexbyte component stylesheets. Loaded last so it can
   override the component defaults.

   Layout system taken from the live site:
     row      width 80%, max-width 1080px, centred
     2 column 47.25% each with a 5.5% gutter
     4 column 20.875% each with 5.5% gutters
   ========================================================================== */

:root {
    --rt-brand: #fe330a;
    --rt-brand-dark: #d92a06;
    --rt-navy: #13017c;
    --rt-navy-deep: #110877;
    --rt-grey: #e5e5e5;
    --rt-body: #666666;
    --rt-white: #ffffff;
    --rt-row-max: 1080px;
    --rt-row-width: 80%;
    --rt-gutter: 5.5%;
    --rt-font: 'Mulish', 'Muli', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

/* ---------- Base ---------- */

body {
    margin: 0;
    font-family: var(--rt-font);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.7;
    color: var(--rt-body);
    background: var(--rt-white);
    -webkit-font-smoothing: antialiased;
}

.content {
    padding: 0;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--rt-font);
    margin: 0;
}

h1 {
    font-size: 50px;
    font-weight: 800;
    line-height: 1;
    color: var(--rt-navy);
}

h2 {
    font-size: 36px;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--rt-navy);
}

h3 {
    font-size: 16px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    color: var(--rt-brand);
}

h4 {
    font-size: 35px;
    font-weight: 700;
    line-height: 1;
    color: var(--rt-navy);
}

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; }

img { max-width: 100%; height: auto; }

.visually-hidden {
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: absolute;
    left: -9999px; top: 0;
    z-index: 999;
    padding: 12px 20px;
    background: var(--rt-navy);
    color: #fff;
}

.skip-link:focus { left: 0; }

/* Shared row container. Applied at exactly one level per section so the
   percentage width is never compounded. */
.site-header__brand-inner,
.site-header__nav-inner,
.site-footer__inner,
.rt-section > .nxb-grid-layout__inner,
.rt-section > .nxb-simple-pods__grid,
.nxb-banner.rt-hero .nxb-banner__layout,
.nxb-text-block.rt-legal .nxb-text-block__inner,
.nxb-code-block,
.page-heading {
    width: var(--rt-row-width);
    max-width: var(--rt-row-max);
    margin-left: auto;
    margin-right: auto;
}

.rt-section > .nxb-grid-layout__inner > .umb-block-grid {
    width: 100%;
    max-width: none;
    margin: 0;
}

/* ---------- Header ---------- */

/* Reset the inherited three column header grid; this site stacks two bands. */
.site-header {
    display: block;
    position: relative;
    grid-template-columns: none;
    gap: 0;
    min-height: 0;
    padding: 0;
    background: transparent;
}

/* Brand band: centred logo on brand orange with the strapline top right. */
.site-header__brand {
    background: var(--rt-brand);
}

.site-header__brand-inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 182px;
    padding: 30px 0;
    box-sizing: border-box;
}

.header-logo img {
    display: block;
    width: 200px;
    height: auto;
}

/* Navy call-out block sitting top right of the brand band. */
.site-header__strapline {
    position: absolute;
    top: 0;
    right: 0;
    width: 350px;
    box-sizing: border-box;
    margin: 0;
    padding: 10px;
    background: var(--rt-navy);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.7;
    color: #fff;
    text-align: center;
    white-space: nowrap;
}

.site-header__strapline strong {
    font-weight: 700;
}

.site-header__strapline a {
    margin-left: 12px;
    color: #fff;
}

/* Navigation band. Pins to the top once the brand band scrolls away, matching
   the previous site: a 52px grey bar rather than the 64px in-flow band. */
.site-header__nav-band {
    background: var(--rt-grey);
}

.site-header__nav-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 64px;
}

.site-header__nav-band.is-stuck {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 999;
}

.site-header__nav-band.is-stuck .site-header__nav-inner {
    min-height: 52px;
}

/* Anchor targets clear the pinned bar so in-page links do not land underneath
   it. Matches the pinned band height. */
.rt-section[id],
[id].rt-section {
    scroll-margin-top: 52px;
}

.main-navigation .navigation-level-1 {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-header .main-navigation .navigation-level-1 > li > a,
.site-header .main-navigation .navigation-level-1 > li.active > a {
    display: inline-block;
    padding: 0 15px;
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    color: var(--rt-navy);
}

.site-header .main-navigation .navigation-level-1 > li > a:hover,
.site-header .main-navigation .navigation-level-1 > li > a:focus {
    color: var(--rt-brand);
    text-decoration: none;
}

.header-menu-toggle {
    display: none;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 44px; height: 44px;
    padding: 0; border: 0;
    background: transparent;
    cursor: pointer;
}

.header-menu-toggle__icon,
.header-menu-toggle__icon::before,
.header-menu-toggle__icon::after {
    display: block;
    width: 26px; height: 3px;
    background: #fff;
    border-radius: 2px;
}

.header-menu-toggle__icon { position: relative; margin: 0 auto; }
.header-menu-toggle__icon::before,
.header-menu-toggle__icon::after { content: ''; position: absolute; left: 0; }
.header-menu-toggle__icon::before { top: -8px; }
.header-menu-toggle__icon::after { top: 8px; }

.header-search { display: none; }

/* ---------- Buttons ---------- */

.nxb-banner .nxb-banner__button,
.nxb-text-block .nxb-text-block__buttons a {
    display: inline-block;
    width: auto;
    min-height: 0;
    padding: 4.8px 16px;
    border: 0;
    border-radius: 0;
    background: var(--rt-brand);
    color: #fff !important;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.7;
    text-align: center;
    text-transform: none;
}

.nxb-banner__button:hover,
.nxb-text-block__buttons a:hover {
    background: var(--rt-brand-dark);
    text-decoration: none;
}

/* ---------- Hero ---------- */

.page-heading {
    font-size: 50px;
    font-weight: 800;
    line-height: 1;
    color: var(--rt-navy);
    padding-top: 25px;
    margin: 0;
}

/* The hero banner carries the page H1 inside its text column. */
.nxb-banner__title--page {
    font-size: 50px;
    font-weight: 800;
    line-height: 1;
    color: var(--rt-navy);
    margin: 0 0 8px;
}

.nxb-banner.rt-hero {
    background: transparent;
    padding: 0;
    margin: 0;
}

.nxb-banner.rt-hero .nxb-banner__layout {
    display: grid;
    grid-template-columns: 47.25% 47.25%;
    column-gap: var(--rt-gutter);
    align-items: center;
    padding: 61px 0;
}

.nxb-banner.rt-hero .nxb-banner__media { order: 1; }
.nxb-banner.rt-hero .nxb-banner__content { order: 2; }

.nxb-banner.rt-hero .nxb-banner__content,
.nxb-banner.rt-hero .nxb-banner__content-inner {
    width: 100%;
    max-width: none;
    padding: 0;
    text-align: left;
}

/* The shared banner gives its media a placeholder surface; the live hero sits on
   the page background with the illustration centred in its column. */
.nxb-banner.rt-hero .nxb-banner__media,
.nxb-banner.rt-hero .nxb-banner__media > * {
    background: transparent;
    aspect-ratio: auto;
    overflow: visible;
}

.nxb-banner.rt-hero .nxb-banner__image {
    display: block;
    width: 74%;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
}

.nxb-banner.rt-hero .nxb-banner__intro {
    font-size: 35px;
    font-weight: 700;
    line-height: 1;
    color: var(--rt-navy);
}

.nxb-banner.rt-hero .nxb-banner__intro p { margin: 0 0 28px; }

/* ---------- Sections ---------- */

.rt-section .umb-block-grid__layout-container {
    display: block;
}

.rt-section .umb-block-grid__area-container {
    display: grid;
    grid-template-columns: 47.25% 47.25%;
    column-gap: var(--rt-gutter);
    align-items: flex-start;
}

/* The areas carry a 12 column span from the block grid; the Divi style columns
   are declared on the container instead, so each area takes one track. */
.rt-section .umb-block-grid__area {
    grid-column: auto;
    min-width: 0;
}

.rt-section .nxb-grid-layout__row { display: block; }

/* Over Ons: white copy over the brand blue artwork. */
.rt-overons {
    background: url('/media/tu1om4gp/Banner-Blue-Bg.png') 50% 100% / cover no-repeat;
    padding: 27px 0 0;
}

.rt-overons,
.rt-overons p,
.rt-overons h2,
.rt-overons .nxb-text-block__heading {
    color: #fff;
}

.rt-overons a { color: #fff; text-decoration: underline; }

/* Werkwijze */
.rt-werkwijze { padding: 20px 0; background: var(--rt-white); }
.rt-werkwijze .nxb-simple-pods__grid { padding: 50px 0; }

/* Werkgebied and the accreditation strip share the grey band. */
.rt-werkgebied,
.rt-logos {
    background: var(--rt-grey);
    padding: 5px 0 0;
}

.rt-logos .umb-block-grid { padding: 30px 0 50px; }

/* The live page closes with a plain white band before the footer. */
.rt-logos { margin-bottom: 153px; }

/* The live Werkgebied column carries 60px of breathing room above and below
   its copy on top of the row padding. */
.rt-werkgebied .umb-block-grid { padding: 90px 0 110px; }

.rt-werkgebied,
.rt-werkgebied p,
.rt-werkgebied h2 { color: var(--rt-navy); }

/* Contact: white copy over the artwork, form on the right. */
.rt-contact {
    background: url('/media/0spbzd3n/Schermafbeelding-2020-05-29-om-15.40.19.png') 50% 50% / cover no-repeat;
    padding: 20px 0;
}

.rt-contact,
.rt-contact p,
.rt-contact h2,
.rt-contact .nxb-text-block__heading { color: #fff; }

.rt-contact a:not(.nxb-text-block__buttons a) { color: #fff; }

/* Text block chrome is supplied by the section, not the component. */
.rt-section .nxb-text-block,
.rt-section .nxb-grid-layout,
.rt-section .nxb-simple-pods { background: transparent; }

.rt-section .nxb-text-block__inner {
    width: auto;
    max-width: none;
    padding: 0;
    margin: 0;
}

/* The shared heading uses a clamp() size; the live sections use a fixed 36px. */
.rt-section .nxb-text-block__heading,
.rt-section .nxb-contact-form__heading {
    font-size: 36px;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
    margin: 0 0 28px;
}
.rt-section .nxb-text-block__content > *:last-child { margin-bottom: 0; }
.rt-section .nxb-text-block__buttons { margin-top: 28px; }

/* Image-only text blocks (illustration, taxateur, map, NWWI badge, logos). */
.nxb-text-block.rt-image-only .nxb-text-block__content p { margin: 0; }
.nxb-text-block.rt-image-only img { display: block; height: auto; }

.rt-overons .rt-image-only img { width: 85%; }
.rt-werkgebied .rt-image-only img { width: 100%; margin-top: 40px; }

/* The NWWI badge is inline in the copy column; scoped so it does not also
   shrink the photograph, which is its own image-only block. */
.rt-overons .nxb-text-block:not(.rt-image-only) .nxb-text-block__content img {
    width: 143px;
}

.rt-response { font-weight: 700; }

/* ---------- Werkwijze pods ---------- */

.nxb-simple-pods__grid {
    display: grid;
    grid-template-columns: repeat(4, 20.875%);
    column-gap: var(--rt-gutter);
}

.nxb-simple-pods--columns-3 .nxb-simple-pods__grid {
    grid-template-columns: repeat(3, 29.66%);
}

/* The live pods are plain columns, not cards: no surface, border or padding. */
.nxb-simple-pods__card {
    display: block;
    height: auto;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    text-align: center;
}

.nxb-simple-pods__media--natural {
    aspect-ratio: auto;
    overflow: visible;
    background: transparent;
}

.nxb-simple-pods__content {
    display: block;
    padding: 0;
}

.rt-werkwijze .nxb-simple-pods__media img {
    display: block;
    margin: 0 auto 28px;
    width: 99px;
    height: auto;
}

.rt-werkwijze .nxb-simple-pods__heading {
    font-size: 16px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    color: var(--rt-brand);
    margin: 0 0 15px;
}

.rt-werkwijze .nxb-simple-pods__text { color: var(--rt-body); }

/* ---------- Accreditation strip ---------- */

.rt-logos .umb-block-grid__area-container {
    grid-template-columns: repeat(4, 20.875%);
    align-items: center;
}

.rt-logos .rt-logo img {
    width: 100%;
    max-width: 211px;
    margin: 0 auto;
}

/* ---------- Contact form ---------- */

.nxb-contact-form.rt-contact-form {
    background: transparent;
    padding: 0;
}

.nxb-contact-form__inner { padding: 0; }

.nxb-contact-form__fields {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
}

.nxb-contact-form__field label {
    display: block;
    margin-bottom: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.7;
    text-transform: uppercase;
    color: var(--rt-navy);
}

.nxb-contact-form__field input,
.nxb-contact-form__field textarea {
    width: 100%;
    padding: 5px;
    border: 2px solid var(--rt-brand);
    border-radius: 2px;
    background: transparent;
    font-family: var(--rt-font);
    font-size: 16px;
    color: #000;
    box-sizing: border-box;
}

.nxb-contact-form__field input {
    height: 35px;
    min-height: 0;
    padding: 5px;
}

.nxb-contact-form__field textarea {
    min-height: 140px;
    padding: 5px;
    resize: vertical;
}

.nxb-contact-form__field input:focus,
.nxb-contact-form__field textarea:focus {
    outline: none;
    border-color: var(--rt-navy);
}

.nxb-contact-form__field-error {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    font-weight: 700;
    color: #fff;
}

.nxb-contact-form__submit button,
.nxb-contact-form__submit input[type='submit'] {
    display: inline-block;
    margin-top: 12px;
    padding: 4.8px 16px;
    border: 0;
    border-radius: 0;
    background: var(--rt-brand);
    color: #fff;
    font-family: var(--rt-font);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.7;
    cursor: pointer;
}

.nxb-contact-form__submit button:hover { background: var(--rt-brand-dark); }

/* ---------- Interior pages ---------- */

.rt-legal { padding: 30px 0 60px; }
.rt-legal .nxb-text-block__content h3 { margin: 32px 0 12px; font-size: 20px; color: var(--rt-navy); text-transform: none; }
.rt-legal .nxb-text-block__content h4 { margin: 24px 0 10px; font-size: 16px; font-weight: 800; }
.rt-legal .nxb-text-block__content ul { margin: 0 0 1em; padding-left: 20px; }

.rt-back-link { padding-top: 25px; }
.rt-back-link .nxb-text-block__buttons a { background: var(--rt-navy); }
.rt-back-link .nxb-text-block__buttons a:hover { background: var(--rt-brand); }

.nxb-code-block { padding: 20px 0 40px; }
nwwi-widget { display: block; min-height: 320px; }

/* ---------- Footer ---------- */

.site-footer { background: var(--rt-navy-deep); }

.site-footer__partner { background: var(--rt-navy-deep); }
.site-footer__contact { background: var(--rt-brand); }

.site-footer__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.site-footer__partner .site-footer__inner { min-height: 49px; }
.site-footer__contact .site-footer__inner { min-height: 34px; }

.site-footer__credit {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    color: #fff;
}

.site-footer__credit a { color: #fff; text-decoration: underline; }
.site-footer__credit span + a { margin-left: 4px; }

.footer-navigation,
.site-footer__credit { line-height: 1.7; }

.footer-navigation ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 14px;
    line-height: 1.7;
    color: #fff;
}

.footer-navigation li {
    line-height: 1.7;
    white-space: nowrap;
}

/* The shared footer spaces items 40px apart; this site uses pipe separators. */
.footer-navigation li + li {
    margin-left: 0;
}

.footer-navigation li + li::before {
    content: '|';
    margin: 0 5px;
}

.footer-navigation a { color: #fff; }

.footer-cookie-settings {
    padding: 0; border: 0;
    background: transparent;
    color: #fff;
    font-family: var(--rt-font);
    font-size: 14px;
    cursor: pointer;
}

.footer-logo,
.footer-locations,
.footer-services-navigation { display: none; }

.back-to-top { display: none; }

/* ---------- Responsive ---------- */

@media (max-width: 980px) {
    :root { --rt-row-width: 90%; }

    h1, .page-heading, .nxb-banner__title--page { font-size: 34px; }
    h2 { font-size: 26px; }
    h4, .nxb-banner.rt-hero .nxb-banner__intro { font-size: 24px; }

    body.page-home .page-heading,
    body.page-zoetermeer .page-heading {
        padding-left: 0;
        padding-top: 30px;
    }

    .site-header__brand-inner {
        justify-content: flex-start;
        min-height: 0;
        padding: 20px 0;
    }

    .header-logo img { width: 150px; }

    .site-header__strapline {
        position: static;
        width: 100%;
        margin-top: 10px;
        text-align: center;
        white-space: normal;
    }

    .header-menu-toggle { display: block; }

    .site-header__nav-inner { min-height: 0; }

    .main-navigation { display: none; width: 100%; }

    .site-header[data-navigation-open='true'] .main-navigation,
    .main-navigation.is-open { display: block; }

    .main-navigation .navigation-level-1 {
        flex-direction: column;
        align-items: center;
        gap: 14px;
        padding: 14px 0;
    }

    .nxb-banner.rt-hero .nxb-banner__layout,
    .rt-section .umb-block-grid__area-container,
    .rt-logos .umb-block-grid__area-container {
        grid-template-columns: 1fr;
        row-gap: 24px;
    }

    .nxb-banner.rt-hero .nxb-banner__media { order: 2; }
    .nxb-banner.rt-hero .nxb-banner__content { order: 1; }
    .nxb-banner.rt-hero .nxb-banner__image { width: 100%; margin-top: 0; }

    .nxb-simple-pods .nxb-simple-pods__grid,
    .nxb-simple-pods--columns-3 .nxb-simple-pods__grid,
    .nxb-simple-pods--columns-4 .nxb-simple-pods__grid {
        grid-template-columns: repeat(2, 47.25%);
        row-gap: 30px;
    }

    .rt-overons .rt-image-only img,
    .rt-werkgebied .rt-image-only img { width: 100%; margin-top: 0; }
}

@media (max-width: 600px) {
    .nxb-simple-pods .nxb-simple-pods__grid,
    .nxb-simple-pods--columns-3 .nxb-simple-pods__grid,
    .nxb-simple-pods--columns-4 .nxb-simple-pods__grid {
        grid-template-columns: 1fr;
    }

    .footer-navigation ul { flex-direction: column; }
    .footer-navigation li + li::before { content: none; }
}
