:root {
  --dcb-site-ink: #817463;
  --dcb-site-dark: #594c3d;
  --dcb-site-brown: #786959;
  --dcb-site-gold: #c2ad71;
  --dcb-site-cream: #e6e2d9;
  --dcb-site-paper: #fffffb;
  --dcb-site-page: #f2f0ea;
}

/*
 * Mobile header correction. The Elementor hamburger remains available, the
 * desktop/horizontal menu disappears and the opened dropdown spans the full
 * viewport instead of the narrow logo column.
 */
@media (max-width: 767px) {
  html,
  body {
    max-width: 100%;
    overflow-x: clip;
  }

  body .elementor-location-header .elementor-widget-nav-menu {
    position: relative;
    width: 100%;
    max-width: 100%;
  }

  /* Live header 13605: logo on the first row, hamburger left and appointment
     button right on one compact second row. Elementor otherwise forces all
     three legacy columns to 100% and stacks them underneath each other. */
  body .elementor-location-header [data-id="7074c391"] {
    padding: 12px 0 18px !important;
  }

  body .elementor-location-header [data-id="7074c391"] > .elementor-container {
    display: flex !important;
    min-height: 0 !important;
    align-items: center !important;
    flex-wrap: wrap !important;
  }

  body .elementor-location-header [data-id="4a152e4c"] {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  body .elementor-location-header [data-id="4a152e4c"] > .elementor-widget-wrap {
    padding: 0 20px 12px !important;
    justify-content: center !important;
  }

  body .elementor-location-header [data-id="4a152e4c"] .elementor-widget-image {
    text-align: center !important;
  }

  body .elementor-location-header [data-id="4a152e4c"] img {
    width: min(76%, 320px) !important;
  }

  body .elementor-location-header [data-id="1b5624d9"],
  body .elementor-location-header [data-id="579ee403"] {
    width: 50% !important;
    max-width: 50% !important;
    flex: 0 0 50% !important;
  }

  /* Hamburger left, appointment button right. */
  body .elementor-location-header [data-id="1b5624d9"] {
    order: 2 !important;
    z-index: 20;
  }

  body .elementor-location-header [data-id="579ee403"] {
    order: 3 !important;
    z-index: 2;
  }

  body .elementor-location-header [data-id="1b5624d9"] > .elementor-widget-wrap {
    padding: 0 0 0 20px !important;
    align-items: center !important;
    justify-content: flex-start !important;
  }

  body .elementor-location-header [data-id="579ee403"] > .elementor-widget-wrap {
    padding: 0 20px 0 0 !important;
    align-items: center !important;
    justify-content: flex-end !important;
  }

  body .elementor-location-header [data-id="c16edb1"] {
    width: auto !important;
    margin: 0 0 0 auto !important;
  }

  body .elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle {
    display: flex !important;
    width: 48px;
    height: 48px;
    margin-right: auto !important;
    margin-left: 0 !important;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 0;
    background: rgba(120, 105, 89, .08);
    color: var(--dcb-site-dark);
  }

  /* Elementor's desktop list and the separate legacy WordPress menu are the
     two common causes of the duplicate row shown below the hamburger. */
  body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main,
  body .elementor-location-header .elementor-widget-wp-widget-nav_menu,
  body .elementor-location-header .widget_nav_menu,
  body .elementor-location-header .menu-hoofdmenu-container,
  body .elementor-location-header .menu-main-menu-container {
    display: none !important;
  }

  /* The live Dental & Co header contains a second mobile-only Icon List with
     Over ons, Diensten, Team, Reviews and Contact. It is the duplicate row in
     the supplied screenshot and is separate from the real hamburger menu. */
  body .elementor-location-header [data-id="4f48a9b"] {
    display: none !important;
  }

  /* Only the top-level mobile NAV breaks out to the viewport. Elementor also
     gives nested UL submenus the class elementor-nav-menu--dropdown; targeting
     those as well would make each submenu incorrectly 100vw wide. */
  body .elementor-location-header .elementor-widget-nav-menu > .elementor-widget-container > nav.elementor-nav-menu--dropdown.elementor-nav-menu__container,
  body .elementor-location-header .elementor-widget-nav-menu > nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    width: 100vw !important;
    max-width: none !important;
    position: absolute !important;
    z-index: 9999 !important;
    right: auto !important;
    left: -20px !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    border: 0 !important;
    border-top: 1px solid rgba(89, 76, 61, .12) !important;
    background: var(--dcb-site-paper) !important;
    box-shadow: 0 18px 34px rgba(69, 57, 45, .12);
  }

  body .elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 12px 20px 20px !important;
  }

  body .elementor-location-header .elementor-nav-menu--dropdown .elementor-item,
  body .elementor-location-header .elementor-nav-menu--dropdown .elementor-sub-item {
    display: flex !important;
    width: 100% !important;
    min-height: 49px;
    padding: 14px 8px !important;
    align-items: center;
    justify-content: space-between;
    border: 0 !important;
    border-bottom: 1px solid rgba(89, 76, 61, .13) !important;
    background: transparent !important;
    color: var(--dcb-site-dark) !important;
    font-family: "Barlow", Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
  }

  body .elementor-location-header .elementor-nav-menu--dropdown .elementor-item:hover,
  body .elementor-location-header .elementor-nav-menu--dropdown .elementor-item.elementor-item-active {
    color: var(--dcb-site-gold) !important;
  }

  body .elementor-location-header .elementor-nav-menu--dropdown .sub-menu {
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 0 0 16px !important;
    background: rgba(230, 226, 217, .45) !important;
    box-shadow: none !important;
  }
}

/* Homepage refinements from the annotated design review. */
body.home .elementor-13442 .elementor-widget-text-editor {
  font-size: 16px;
  line-height: 1.72;
}

body.home .elementor-13442 [data-id="222684f7"] .elementor-widget-text-editor {
  font-size: 15px;
  line-height: 1.65;
}

body.home .elementor-13442 [data-id="355b8fb1"] .elementor-heading-title,
body.home .elementor-13442 h6.elementor-heading-title {
  font-size: 12px !important;
  line-height: 1.45 !important;
}

body.home .elementor-13442 [data-id="7788d2b2"] h6.elementor-heading-title {
  color: var(--dcb-site-gold) !important;
}

body.home .dc-ticker {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}

/* Registration is the primary conversion action throughout the site. */
body a.elementor-button[href*="/inschrijven/"],
body a.elementor-button.dcb-direct-register-link,
body .dcb-direct-register .elementor-button,
body .elementor-location-header [data-id="c16edb1"] .elementor-button,
body .elementor-13442 [data-id="1cddebf4"] .elementor-button,
body .elementor-13442 [data-id="6c8f6f5d"] .elementor-button,
body .elementor-13442 [data-id="2ff70f18"] .elementor-button,
body .elementor-13442 [data-id="526afa80"] .elementor-button {
  border-color: #2ba24c !important;
  background: #2ba24c !important;
  color: #fff !important;
}

body a.elementor-button[href*="/inschrijven/"]:hover,
body a.elementor-button.dcb-direct-register-link:hover,
body .dcb-direct-register .elementor-button:hover,
body .elementor-location-header [data-id="c16edb1"] .elementor-button:hover {
  border-color: #23863f !important;
  background: #23863f !important;
}

/* Dynamic WordPress post grid used by [dentalco_blog]. */
.dcb-blog-section {
  padding: 70px 0 82px;
  background: var(--dcb-site-paper);
}

.dcb-blog-feed {
  width: 100%;
  color: var(--dcb-site-ink);
  font-family: "Barlow", Arial, sans-serif;
}

.dcb-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.dcb-blog-card {
  display: flex;
  min-width: 0;
  min-height: 100%;
  margin: 0;
  flex-direction: column;
  background: var(--dcb-site-page);
  border: 1px solid rgba(89, 76, 61, .12);
}

.dcb-blog-card-image {
  display: block;
  overflow: hidden;
  background: var(--dcb-site-cream);
}

.dcb-blog-card-image img {
  display: block;
  width: 100%;
  height: 245px;
  object-fit: cover;
  transition: transform .45s ease;
}

.dcb-blog-card:hover .dcb-blog-card-image img {
  transform: scale(1.025);
}

.dcb-blog-card-copy {
  display: flex;
  padding: 28px 28px 26px;
  flex: 1;
  flex-direction: column;
}

.dcb-blog-meta {
  display: flex;
  margin-bottom: 14px;
  gap: 10px;
  flex-wrap: wrap;
  color: var(--dcb-site-gold);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.dcb-blog-meta span + span::before {
  content: "·";
  margin-right: 10px;
}

.dcb-blog-card h2 {
  margin: 0 0 14px;
  color: var(--dcb-site-dark);
  font-family: "Prata", Georgia, serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.28;
  letter-spacing: -.02em;
}

.dcb-blog-card h2 a,
.dcb-blog-readmore {
  color: inherit;
  text-decoration: none;
}

.dcb-blog-card p {
  margin: 0 0 22px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.7;
}

.dcb-blog-readmore {
  margin-top: auto;
  color: var(--dcb-site-dark);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .12em;
}

.dcb-blog-readmore span {
  color: var(--dcb-site-gold);
}

.dcb-blog-pagination ul {
  display: flex;
  margin: 36px 0 0;
  padding: 0;
  gap: 8px;
  justify-content: center;
  list-style: none;
}

.dcb-blog-pagination a,
.dcb-blog-pagination span {
  display: inline-flex;
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(89, 76, 61, .2);
  color: var(--dcb-site-dark);
  text-decoration: none;
}

.dcb-blog-pagination .current,
.dcb-blog-pagination a:hover {
  border-color: var(--dcb-site-brown);
  background: var(--dcb-site-brown);
  color: #fff;
}

.dcb-blog-empty {
  padding: 54px 30px;
  background: var(--dcb-site-cream);
  text-align: center;
}

/* Calm article styling for normal WordPress posts. */
.dcb-wordpress-blog article.type-post {
  color: var(--dcb-site-ink);
  font-family: "Barlow", Arial, sans-serif;
}

.dcb-wordpress-blog article.type-post .entry-title {
  color: var(--dcb-site-dark);
  font-family: "Prata", Georgia, serif;
  font-weight: 400;
  line-height: 1.14;
}

.dcb-wordpress-blog article.type-post .entry-content {
  font-size: 16px;
  font-weight: 300;
  line-height: 1.8;
}

.dcb-wordpress-blog article.type-post .entry-content h2,
.dcb-wordpress-blog article.type-post .entry-content h3 {
  color: var(--dcb-site-dark);
  font-family: "Prata", Georgia, serif;
  font-weight: 400;
}

.dcb-wordpress-blog article.type-post .entry-content a {
  color: var(--dcb-site-brown);
  text-decoration-color: var(--dcb-site-gold);
}

@media (max-width: 1024px) {
  .dcb-blog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.home .elementor-13442 .elementor-widget-text-editor {
    font-size: 17px !important;
    line-height: 1.72 !important;
  }

  body.home .elementor-13442 [data-id="222684f7"] .elementor-widget-text-editor {
    font-size: 16px !important;
  }

  body.home .elementor-13442 [data-id="4823efc5"] h1.elementor-heading-title {
    font-size: clamp(43px, 12vw, 56px) !important;
    line-height: 1.08 !important;
  }

  body.home .elementor-13442 [data-id="320dd7bc"] {
    padding-top: 54px !important;
    padding-bottom: 54px !important;
  }

  .dcb-blog-section {
    padding: 50px 0 58px;
  }

  .dcb-blog-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .dcb-blog-card-image img {
    height: 230px;
  }

  .dcb-blog-card-copy {
    padding: 24px 22px;
  }

  .dcb-blog-card h2 {
    font-size: 21px;
  }
}

/*
 * Annotated site review — v1.8.2
 * These rules also cover the existing homepage and global header. Imported
 * content pages receive their more specific equivalents in frontend.css.
 */
:root {
  --dcb-site-ink: #6f6456;
}

/* One clear, centred primary action in the homepage hero. */
body.home .elementor-13442 [data-id="6c8f6f5d"],
body.home .elementor-13442 .dcb-home-duplicate-cta {
  display: none !important;
}

body.home .elementor-13442 [data-id="1cddebf4"],
body.home .elementor-13442 .dcb-home-primary-cta-widget {
  width: 100% !important;
  max-width: 100% !important;
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: center !important;
}

body.home .elementor-13442 [data-id="1cddebf4"] .elementor-button,
body.home .elementor-13442 .dcb-home-primary-cta {
  min-width: min(100%, 250px);
  justify-content: center;
}

/* Larger, higher-contrast copy for older visitors. */
body.home .elementor-13442 .elementor-widget-text-editor,
.dcb-wordpress-blog article.type-post .entry-content,
.dcb-blog-card p {
  color: var(--dcb-site-ink) !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  line-height: 1.72 !important;
}

body.home .elementor-13442 [data-id="222684f7"] .elementor-widget-text-editor {
  font-size: 16px !important;
  font-weight: 400 !important;
}

/* Registration and appointment actions share one unmistakable green style. */
body a.elementor-button.dcb-cta-green,
body a.elementor-button[href*="/inschrijven/"],
body a.elementor-button[href*="/afspraak-maken/"],
body a.dcb-live-button.dcb-cta-green {
  min-height: 52px !important;
  padding: 16px 26px !important;
  border: 1px solid #2ba24c !important;
  background: #2ba24c !important;
  color: #fff !important;
  font-family: "Barlow", Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: .055em !important;
  text-transform: uppercase !important;
}

body a.elementor-button.dcb-cta-green:hover,
body a.elementor-button[href*="/inschrijven/"]:hover,
body a.elementor-button[href*="/afspraak-maken/"]:hover,
body a.dcb-live-button.dcb-cta-green:hover {
  border-color: #23863f !important;
  background: #23863f !important;
  color: #fff !important;
}

/* Review stars remain gold while the reviewer name keeps its normal colour. */
body .dcb-review-stars,
body .elementor-star-rating,
body .elementor-testimonial__rating,
body .elementor-widget-rating .e-icon-wrapper {
  color: var(--dcb-site-gold) !important;
}

@media (max-width: 767px) {
  /* Remove the excess blank area in the mobile header and keep both controls
     on one compact row below the logo. */
  body .elementor-location-header [data-id="7074c391"] {
    min-height: 0 !important;
    height: auto !important;
    padding: 8px 0 10px !important;
    overflow: visible !important;
  }

  body .elementor-location-header [data-id="7074c391"] > .elementor-container,
  body .elementor-location-header [data-id="7074c391"] .elementor-column,
  body .elementor-location-header [data-id="7074c391"] .elementor-widget-wrap,
  body .elementor-location-header [data-id="1b5624d9"] .elementor-widget-nav-menu,
  body .elementor-location-header [data-id="1b5624d9"] .elementor-widget-container {
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
  }

  body .elementor-location-header [data-id="4a152e4c"] > .elementor-widget-wrap {
    padding: 0 20px 7px !important;
  }

  body .elementor-location-header [data-id="4a152e4c"] img {
    width: min(70%, 295px) !important;
  }

  body .elementor-location-header [data-id="1b5624d9"] > .elementor-widget-wrap {
    padding: 0 0 0 18px !important;
  }

  body .elementor-location-header [data-id="579ee403"] > .elementor-widget-wrap {
    padding: 0 18px 0 0 !important;
  }

  body .elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle {
    width: 46px !important;
    height: 46px !important;
  }

  body .elementor-location-header [data-id="c16edb1"] .elementor-button {
    min-height: 48px !important;
    padding: 14px 20px !important;
    font-size: 12px !important;
  }

  /* The opened menu must escape the half-width navigation column. */
  body .elementor-location-header .elementor-widget-nav-menu > .elementor-widget-container > nav.elementor-nav-menu--dropdown.elementor-nav-menu__container,
  body .elementor-location-header .elementor-widget-nav-menu > nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    width: 100vw !important;
    min-width: 100vw !important;
    max-width: 100vw !important;
    left: -18px !important;
    right: auto !important;
    overflow: visible !important;
  }

  body .elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu {
    padding: 6px 18px 10px !important;
  }

  body .elementor-location-header .elementor-nav-menu--dropdown .elementor-item,
  body .elementor-location-header .elementor-nav-menu--dropdown .elementor-sub-item {
    min-height: 43px !important;
    padding: 10px 7px !important;
    font-size: 12.5px !important;
    letter-spacing: .075em !important;
  }

  body .elementor-location-header .elementor-nav-menu--dropdown .sub-menu {
    padding-left: 12px !important;
  }
}

/* Homepage colour correction from the full-site visual audit — v1.8.4. */
body.home .elementor-13442 [data-id="77958831"],
body.home .elementor-13442 [data-id="222684f7"],
body.home .elementor-13442 [data-id="344cc6fa"] {
  color: rgba(255, 255, 255, .88) !important;
}

body.home .elementor-13442 [data-id="77958831"] .elementor-widget-text-editor,
body.home .elementor-13442 [data-id="77958831"] p,
body.home .elementor-13442 [data-id="222684f7"] .elementor-widget-text-editor,
body.home .elementor-13442 [data-id="222684f7"] p,
body.home .elementor-13442 [data-id="344cc6fa"] .elementor-widget-text-editor,
body.home .elementor-13442 [data-id="344cc6fa"] p {
  color: rgba(255, 255, 255, .86) !important;
}

body.home .elementor-13442 [data-id="222684f7"] .elementor-widget-text-editor,
body.home .elementor-13442 [data-id="222684f7"] p {
  color: rgba(255, 255, 255, .84) !important;
}

body.home .elementor-13442 [data-id="77958831"] .elementor-heading-title,
body.home .elementor-13442 [data-id="222684f7"] .elementor-heading-title,
body.home .elementor-13442 [data-id="344cc6fa"] .elementor-heading-title {
  color: #fff !important;
}

body.home .elementor-13442 [data-id="222684f7"] a:not(.elementor-button) {
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .09em !important;
}

body.home .elementor-13442 a.elementor-button {
  min-height: 52px !important;
  padding: 16px 26px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: .055em !important;
}
