/*
Theme Name: Digital Reach
Description: Lichtgewicht WordPress block-thema voor Digital Reach, met native Gutenberg en centraal beheerde stijlen.
Version: 1.3.2
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: digital-reach
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* Shared by the website and editor; design tokens live in theme.json. */
:where(a, button, input, textarea, select, [tabindex]):focus-visible {
 outline: 3px solid var(--wp--preset--color--ink);
 outline-offset: 4px;
}
.wp-site-blocks > .wp-block-template-part { margin-block: 0; }
.dr-header {
 padding-block: var(--wp--preset--spacing--40);
 border-bottom: 1px solid var(--wp--preset--color--light);
}
.dr-main { padding-block: 0; }
.dr-footer {
 padding-block: var(--wp--preset--spacing--60);
 background: var(--wp--preset--color--light);
}
.wp-block-site-logo img { height: auto; max-width: 100%; }
.wp-block-post-content { overflow-wrap: anywhere; }
.wp-block-post-content iframe { max-width: 100%; }
.wp-block-image img { border-radius: var(--wp--custom--radius); }
.wp-block-navigation a { text-underline-offset: .25em; }
.wp-block-navigation a:hover,
.wp-block-navigation .current-menu-item > a { text-decoration: underline; }
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) {
 box-sizing: border-box;
 padding: var(--wp--preset--spacing--50);
}
.wp-block-button__link { min-height: 44px; box-sizing: border-box; }
.wp-block-button__link { transition: filter .18s ease, box-shadow .18s ease; }
.wp-block-button__link:hover { filter: brightness(.96); }
.wp-block-details > summary { cursor: pointer; font-weight: 600; }
.wp-block-details > summary:hover { text-decoration: underline; text-underline-offset: .25em; }
.wp-block-group.dr-grid-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wp-block-group.dr-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wp-block-group.dr-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wp-block-group.dr-benefits { grid-template-columns: repeat(3, minmax(0, 1fr)); }
:where(.dr-grid-four, .dr-grid-three, .dr-grid-two) > * { min-width: 0; }
@media (max-width: 1199px) {
 .wp-block-group.dr-grid-four,
 .wp-block-group.dr-grid-three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
 .wp-block-group.dr-grid-four,
 .wp-block-group.dr-grid-three,
 .wp-block-group.dr-grid-two,
 .wp-block-group.dr-benefits { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
 .wp-block-button__link { transition: none; }
}
@media (max-width: 600px) {
 .dr-header .wp-block-site-logo { max-width: 60%; }
 .dr-header .wp-block-site-logo img { max-width: 100%; }
 .dr-footer > .wp-block-group { flex-direction: column; align-items: flex-start; }
}
/* Reusable cards and template parts; their content remains native blocks. */
.dr-header-row { gap: 2rem; }
.dr-header-actions { gap: 1.75rem; }
.dr-header .wp-block-site-logo { flex-shrink: 0; }
.dr-header .wp-block-button__link { white-space: nowrap; }
.dr-hero-columns { margin-block: 0; }
.dr-visual-card { box-shadow: 0 18px 45px rgba(38,39,34,.09); }
.dr-project-image { margin-block: 0; background: var(--wp--preset--color--white); }
.dr-project-image img { display: block; width: 100%; }
.dr-card { display: flex; flex-direction: column; align-items: stretch; height: 100%; box-sizing: border-box; }
.dr-card > * { margin-inline: 0 !important; }
.dr-card > .wp-block-buttons:last-child { margin-top: auto; padding-top: 1.5rem; }
.dr-service-card { box-shadow: 0 6px 24px rgba(38,39,34,.025); }
.dr-card h3 { line-height: 1.25; }
.dr-service-card .wp-block-button__link { font-size: .9375rem; padding-inline: 1rem; }
.dr-step { border-top: 2px solid var(--wp--preset--color--brand); padding-top: 1.5rem; }
.dr-contact-band { border-top: 8px solid var(--wp--preset--color--brand); }
.dr-contact-band :focus-visible { outline-color: var(--wp--preset--color--white); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--light); }
.dr-footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2.5rem; }
.dr-footer-grid h3 { font-size: 1.125rem; letter-spacing: 0; }
.dr-footer-links { gap: .65rem; align-items: flex-start; }
.dr-footer-links a { text-decoration: underline; text-underline-offset: .25em; }
.dr-footer-bottom { border-top: 1px solid var(--wp--preset--color--brand); padding-top: 1.5rem; margin-top: 3rem; }
@media (min-width: 1200px) { .dr-service-grid h3 { min-height: 2.5em; } }
@media (max-width: 1100px) {
 .dr-header-row { flex-wrap: wrap !important; }
 .dr-header-actions { flex: 1; justify-content: flex-end; gap: 1rem; }
 .dr-header .wp-block-site-logo img { width: 250px; }
 .dr-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 781px) {
 .dr-hero-columns { gap: 3rem !important; }
 .dr-header .wp-block-navigation { font-size: .9375rem; }
 .dr-header .wp-block-site-logo img { width: 220px; }
}
@media (max-width: 600px) {
 .dr-header-row { flex-wrap: nowrap !important; gap: 1rem; }
 .dr-header .wp-block-site-logo { max-width: 65%; }
 .dr-header-actions { flex: 0 0 auto; }
 .dr-header-actions > .wp-block-buttons { display: none; }
 .dr-footer .dr-footer-grid { display: grid; grid-template-columns: minmax(0,1fr); }
 .dr-card { height: auto; }
}

.dr-header .dr-mobile-offer { display: none; }
@media (max-width:600px) { .dr-header .dr-mobile-offer { display: flex; font-weight: 700; } }
@media (min-width:601px) and (max-width:1100px) {
 .dr-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
 .dr-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
 .dr-header .wp-block-navigation__responsive-container.is-menu-open { display: flex; }
}
.wp-block-details > summary:focus-visible { outline: 3px solid var(--wp--preset--color--ink); outline-offset: 4px; }
/* Shared brand presentation refinements. */
.dr-logo-panel { width: fit-content; max-width: 100%; box-sizing: border-box; }
.dr-logo-panel .wp-block-site-logo { max-width: 100%; }
.dr-header .wp-block-site-logo img { max-width: 100%; }
.dr-service-card .wp-block-button__link { font-size: 1rem; }
@media (min-width:1101px) { .dr-header .wp-block-site-logo img { width: 310px; } }
@media (max-width:600px) { .dr-header .wp-block-site-logo img { width: 235px; } }

.dr-social-links .wp-social-link a { min-width: 48px; min-height: 48px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; }
.dr-social-links .wp-social-link a:focus-visible { outline: 3px solid var(--wp--preset--color--ink); outline-offset: 4px; }

/* Native WPForms integration, shared by any form using this class. */
.wp-site-blocks .dr-contact-form.wpforms-container-full .wpforms-form { margin: 0; font-family: inherit; color: var(--wp--preset--color--ink); }
.wp-site-blocks .dr-contact-form.wpforms-container-full .wpforms-form input,
.wp-site-blocks .dr-contact-form.wpforms-container-full .wpforms-form select,
.wp-site-blocks .dr-contact-form.wpforms-container-full .wpforms-form textarea {
 width: 100%; max-width: 100%; box-sizing: border-box; font: inherit;
 color: var(--wp--preset--color--ink); background: white;
 border: 1px solid var(--wp--preset--color--dark); border-radius: 8px;
 padding: .75rem; min-height: 48px;
}
.wp-site-blocks .dr-contact-form.wpforms-container-full .wpforms-form .wpforms-field-label { color: var(--wp--preset--color--ink); font-size: 1rem; }
.wp-site-blocks .dr-contact-form.wpforms-container-full .wpforms-form .wpforms-field-description { color: var(--wp--preset--color--muted); font-size: .9375rem; }
.wp-site-blocks .dr-contact-form.wpforms-container-full .wpforms-form label.wpforms-error,
.wp-site-blocks .dr-contact-form.wpforms-container-full .wpforms-form .wpforms-required-label { color: #9F2323; }
.wp-site-blocks .dr-contact-form.wpforms-container-full .wpforms-form button[type=submit] {
 background: var(--wp--preset--color--brand); color: var(--wp--preset--color--ink);
 border: 0; border-radius: var(--wp--custom--radius); min-height: 50px;
 padding: .85rem 1.5rem; font: inherit; font-weight: 600;
}
.wp-site-blocks .dr-contact-form.wpforms-container-full .wpforms-form button[type=submit]:hover { background: var(--wp--preset--color--light); }
.wp-site-blocks .dr-contact-form.wpforms-container-full .wpforms-form :is(input,select,textarea,button):focus-visible { outline: 3px solid var(--wp--preset--color--ink); outline-offset: 3px; }

.wp-site-blocks .dr-contact-form.wpforms-container-full { --wpforms-button-background-color: var(--wp--preset--color--brand); --wpforms-button-text-color: var(--wp--preset--color--ink); --wpforms-label-color: var(--wp--preset--color--ink); --wpforms-label-sublabel-color: var(--wp--preset--color--muted); --wpforms-label-error-color: #9F2323; --wpforms-field-text-color: var(--wp--preset--color--ink); }

/* Native, shallow service dropdown; no navigation script required. */
.dr-primary-navigation .wp-block-navigation__submenu-container {
 min-width: 19rem; max-width: min(24rem, calc(100vw - 3rem));
 border: 1px solid var(--wp--preset--color--light); border-radius: 12px;
 background: var(--wp--preset--color--white); color: var(--wp--preset--color--ink);
 box-shadow: 0 12px 30px rgba(38,39,34,.08); padding: .5rem;
}
.dr-primary-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
 padding: .75rem; white-space: normal; overflow-wrap: normal; line-height: 1.4;
}
.dr-primary-navigation .wp-block-navigation-submenu__toggle { min-width: 44px; min-height: 44px; }
.dr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
 min-width: 0; max-width: 100%; box-shadow: none; border: 0; border-radius: 0;
 padding: .25rem 0 .25rem 1rem;
}
.dr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
 min-height: 44px; display: flex; align-items: center; white-space: normal;
}
.dr-header .dr-primary-navigation .wp-block-navigation__responsive-container-open,
.dr-header .dr-primary-navigation .wp-block-navigation__responsive-container-close {
 min-width: 44px; min-height: 44px; align-items: center; justify-content: center;
}

/* Focused accessibility fixes; palette and official logo asset stay unchanged. */
.dr-contact-band.has-dark-background-color { background-color: var(--wp--preset--color--ink) !important; }
.dr-header .dr-logo-panel { flex-shrink: 0; }
.dr-header .dr-logo-panel .wp-block-site-logo { max-width: 100%; }
.dr-footer-bottom { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--ink); }
.dr-footer-bottom a { text-decoration: underline; text-underline-offset: .25em; }
.dr-footer-legal-links { gap: .75rem; }
.dr-footer-legal-links > * { margin-block: 0; }
.dr-footer-legal-links .wp-block-button__link { font-size: inherit; padding: .5rem .85rem; }
@media (max-width:600px) { .dr-header .dr-logo-panel { max-width: 65%; } }
