/**
 * Willowdale / Kadence integration layer.
 * Version 0.5.20
 */

/* Header */
.site-header,
#masthead {
  background: rgba(255,255,255,.985);
  border-bottom: 1px solid var(--willow-border);
  box-shadow: 0 7px 24px rgba(23,50,77,.055);
}
.site-main-header-inner-wrap { min-height: 86px; }
.site-header .site-branding,
#masthead .site-branding { align-items:center; column-gap:14px; }
.site-header .custom-logo,
#masthead .custom-logo { height:auto; max-width:72px; width:72px; }
body.willowdale-has-custom-logo .site-branding .site-description { display:none; }
.site-header .site-title,
#masthead .site-title {
  color:var(--willow-navy);
  font-family:var(--willow-body-font);
  font-size:clamp(1.05rem,1.55vw,1.38rem);
  font-weight:780;
  letter-spacing:-.018em;
  line-height:1.12;
}
.main-navigation .primary-menu-container > ul { column-gap:.08rem; }
.main-navigation .primary-menu-container > ul > li.menu-item > a {
  color:var(--willow-navy);
  font-family:var(--willow-body-font);
  font-size:.91rem;
  font-weight:720;
  letter-spacing:.01em;
  padding-inline:.54rem;
}
.main-navigation .primary-menu-container > ul > li.menu-item > a:hover,
.main-navigation .primary-menu-container > ul > li.current-menu-item > a,
.main-navigation .primary-menu-container > ul > li.current-menu-ancestor > a { color:#0f6f91; }
.main-navigation .primary-menu-container > ul > li.menu-item-has-children > a { padding-right:1.3rem; }
.main-navigation .sub-menu {
  background:#fff;
  border:1px solid var(--willow-border);
  border-radius:12px;
  box-shadow:0 18px 45px rgba(23,50,77,.14);
  min-width:235px;
  padding:.5rem;
}
.main-navigation .sub-menu li a {
  border-radius:8px;
  color:var(--willow-navy);
  font-size:.88rem;
  font-weight:650;
  line-height:1.35;
  padding:.7rem .85rem;
}
.main-navigation .sub-menu li a:hover,
.main-navigation .sub-menu li.current-menu-item > a { background:var(--willow-ivory); color:#0f6f91; }
.main-navigation .menu-item.willow-menu-cta > a {
  background:var(--willow-gold);
  border:1px solid var(--willow-gold);
  border-radius:9px;
  color:var(--willow-navy);
  margin-left:.35rem;
  padding:.61rem .84rem;
}
.main-navigation .menu-item.willow-menu-cta > a:hover,
.main-navigation .menu-item.willow-menu-cta.current-menu-item > a {
  background:var(--willow-navy); border-color:var(--willow-navy); color:#fff;
}

/* Mobile navigation */
.drawer-inner { background:var(--willow-ivory); }
.mobile-navigation ul li a { color:var(--willow-navy); font-weight:700; }
.mobile-navigation .sub-menu { padding-left:.85rem; }
.mobile-navigation .sub-menu a { font-weight:600; }
.mobile-navigation .willow-menu-cta > a {
  background:var(--willow-gold); border-radius:8px; color:var(--willow-navy); margin:.6rem 1rem; text-align:center;
}
.menu-toggle-open,.menu-toggle-close { color:var(--willow-navy); }

/* Pages use their own editable Gutenberg page heroes. */
body.page .entry-hero.page-hero-section,
body.page .entry-hero-container,
body.page .entry-hero-container-inner { display:none; }
body.page .content-area,
body.page .site-main > article.page,
body.page .entry-content,
body.page .entry-content-wrap { margin:0; }
body.page .entry-content-wrap {
  background:transparent; border-radius:0; box-shadow:none; max-width:none; padding:0; width:100%;
}
body.page .content-container.site-container,
body.page .site-container.content-container,
body.page .content-wrap,
body.page .site-main,
body.page .entry-content { max-width:none; width:100%; }
body.page .content-container.site-container,
body.page .site-container.content-container { padding-left:0; padding-right:0; }
body.page .entry-content > .alignfull {
  box-sizing:border-box; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); max-width:100vw; width:100vw;
}

/* Native editable footer. */
.site-footer,#colophon { background:var(--willow-navy); color:rgba(255,255,255,.9); }
body.willowdale-has-native-footer .site-footer-wrap { display:none; }
.willowdale-native-footer { background:var(--willow-navy); color:rgba(255,255,255,.9); }
.willowdale-native-footer .wp-block-group.alignfull { margin-left:0; margin-right:0; }
.willowdale-native-footer .willow-footer-shell {
  box-sizing:border-box; overflow:hidden; padding:clamp(2.75rem,5vw,4.25rem) clamp(1.25rem,4vw,2.5rem) 1.35rem;
}
.willowdale-native-footer .willow-footer-columns,
.willowdale-native-footer .willow-footer-bottom,
.willowdale-native-footer .willow-footer-legal { margin-left:auto; margin-right:auto; max-width:1180px; }
.willowdale-native-footer .willow-footer-columns { align-items:flex-start; gap:clamp(1.6rem,3.6vw,4rem); margin-bottom:0; margin-top:0; }
.willowdale-native-footer h2,.willowdale-native-footer h3,.willowdale-native-footer h4,
.willowdale-native-footer p,.willowdale-native-footer a,.willowdale-native-footer li { color:#fff; }
.willowdale-native-footer h3,.willowdale-native-footer h4 { font-size:1.04rem; margin:0 0 .75rem; }
.willowdale-native-footer p,.willowdale-native-footer li { font-size:.91rem; line-height:1.6; }
.willowdale-native-footer a:hover,.willowdale-native-footer a:focus-visible { color:var(--willow-gold); }
.willowdale-native-footer ul,.willowdale-native-footer .wp-block-list { list-style:none; margin:0; padding:0; }
.willowdale-native-footer li + li { margin-top:.38rem; }
.willowdale-native-footer .willow-footer-bottom { border-top:1px solid rgba(255,255,255,.15); margin-top:1.7rem; padding-top:1rem; }
.willowdale-native-footer .willow-footer-legal {
  border-top:1px solid rgba(255,255,255,.13); display:flex; flex-wrap:wrap; gap:.65rem 1.15rem; justify-content:center; margin-top:1.15rem; padding-top:1rem;
}
.willowdale-native-footer .willow-footer-legal p { font-size:.83rem; margin:0; opacity:.9; }

/* Dental Resource single posts. */
body.single-post .content-area { margin:0; }
body.single-post .entry-hero-container-inner { background:var(--willow-ivory); border-bottom:1px solid var(--willow-border); }
body.single-post .entry-header,body.single-post .entry-content { max-width:840px; }
body.single-post .entry-content-wrap {
  background:#fff; border-radius:0; box-shadow:none; padding:clamp(2.5rem,5vw,4.5rem) clamp(1.25rem,4vw,2rem);
}
body.single-post .entry-title { color:var(--willow-navy); font-family:var(--willow-heading-font); }
body.single-post .entry-meta { color:rgba(48,54,59,.64); font-size:.84rem; }
body.single-post .entry-meta .posted-by,
body.single-post .entry-meta .author,
body.single-post .entry-meta .meta-label,
body.blog .entry-meta .posted-by,
body.archive .entry-meta .posted-by { display:none !important; }
body.single-post .post-thumbnail { margin-bottom:clamp(1.75rem,4vw,3rem); }
body.single-post .post-thumbnail img { aspect-ratio:16/9; border-radius:18px; object-fit:cover; width:100%; }
body.single-post .entry-content h2,body.single-post .entry-content h3 { margin-top:1.8em; }

/* Branded 404 page */
.willow-404-shell { min-height:62vh; padding:clamp(4rem,9vw,8rem) 1.25rem; text-align:center; }
.willow-404-shell .willow-404-inner { margin:0 auto; max-width:760px; }
.willow-404-shell .willow-404-code { color:var(--willow-sage-text); font-size:.82rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.willow-404-shell .wp-block-button__link { display:inline-block; text-decoration:none; }

@media (max-width:1180px) {
  .site-header .site-title,#masthead .site-title { font-size:1.03rem; }
  .main-navigation .primary-menu-container > ul > li.menu-item > a { font-size:.84rem; padding-inline:.38rem; }
  .main-navigation .menu-item.willow-menu-cta > a { margin-left:.15rem; padding:.57rem .7rem; }
}
@media (max-width:1024px) {
  .site-main-header-inner-wrap { min-height:76px; }
  .site-header .custom-logo,#masthead .custom-logo { max-width:62px; width:62px; }
}
@media (max-width:900px) {
  .willowdale-native-footer .willow-footer-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px) {
  .site-main-header-inner-wrap { min-height:68px; }
  .site-header .custom-logo,#masthead .custom-logo { max-width:52px; width:52px; }
  .site-header .site-title,#masthead .site-title { font-size:.98rem; }
  body.page .entry-content > .alignfull { margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }

  /* 0.5.20: mobile footer alignment is explicit rather than inherited. */
  .willowdale-native-footer { text-align:center; }
  .willowdale-native-footer .willow-footer-columns {
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    width:100%;
  }
  .willowdale-native-footer .willow-footer-columns > .wp-block-column {
    box-sizing:border-box;
    margin-left:auto !important;
    margin-right:auto !important;
    max-width:32rem;
    text-align:center !important;
    width:100%;
  }
  .willowdale-native-footer .willow-footer-brand-logo {
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .willowdale-native-footer .willow-footer-columns ul,
  .willowdale-native-footer .willow-footer-columns .wp-block-list {
    align-items:center;
    display:inline-flex;
    flex-direction:column;
    max-width:100%;
    text-align:center !important;
    width:auto;
  }
  .willowdale-native-footer .willow-footer-columns li,
  .willowdale-native-footer .willow-footer-columns p,
  .willowdale-native-footer .willow-footer-columns h2,
  .willowdale-native-footer .willow-footer-columns h3,
  .willowdale-native-footer .willow-footer-columns h4 {
    text-align:center !important;
  }
  .willowdale-native-footer .willow-footer-legal {
    align-items:center;
    flex-direction:column;
    justify-content:center;
    text-align:center !important;
    width:100%;
  }
  .willowdale-native-footer .willow-footer-legal p {
    margin-left:auto;
    margin-right:auto;
    text-align:center !important;
    width:100%;
  }
}

/* 0.5.15: compact, state-safe primary navigation. */
.main-navigation .menu-item.willow-menu-cta > a:visited {
  color: var(--willow-navy);
}
.main-navigation .menu-item.willow-menu-cta > a:hover,
.main-navigation .menu-item.willow-menu-cta > a:focus-visible,
.main-navigation .menu-item.willow-menu-cta.current-menu-item > a {
  background: var(--willow-navy);
  border-color: var(--willow-navy);
  color: var(--willow-white);
}
.mobile-navigation .willow-menu-cta > a:visited {
  color: var(--willow-navy);
}
.mobile-navigation .willow-menu-cta > a:hover,
.mobile-navigation .willow-menu-cta > a:focus-visible {
  background: var(--willow-navy);
  color: var(--willow-white);
}

@media (max-width: 1240px) and (min-width: 1025px) {
  .site-header .custom-logo,
  #masthead .custom-logo {
    width: 64px;
  }
  .site-header .site-title,
  #masthead .site-title {
    font-size: 1.04rem;
  }
  .main-navigation .primary-menu-container > ul > li.menu-item > a {
    font-size: .84rem;
    padding-inline: .38rem;
  }
  .main-navigation .menu-item.willow-menu-cta > a {
    margin-left: .15rem;
    padding: .57rem .7rem;
  }
}


/* 0.5.16: production-safe BOOK NOW CTA states and tighter desktop navigation. */
.main-navigation .menu-item.willow-menu-cta > a,
.main-navigation .menu-item.willow-menu-cta > a:link,
.main-navigation .menu-item.willow-menu-cta > a:visited {
  background: var(--willow-gold) !important;
  border-color: var(--willow-gold) !important;
  color: var(--willow-navy) !important;
}
.main-navigation .menu-item.willow-menu-cta > a:hover,
.main-navigation .menu-item.willow-menu-cta > a:focus,
.main-navigation .menu-item.willow-menu-cta > a:focus-visible,
.main-navigation .menu-item.willow-menu-cta.current-menu-item > a,
.main-navigation .menu-item.willow-menu-cta.current-menu-item > a:link,
.main-navigation .menu-item.willow-menu-cta.current-menu-item > a:visited,
.main-navigation .menu-item.willow-menu-cta.current-menu-ancestor > a {
  background: var(--willow-navy) !important;
  border-color: var(--willow-navy) !important;
  color: #fff !important;
}
.mobile-navigation .willow-menu-cta > a,
.mobile-navigation .willow-menu-cta > a:link,
.mobile-navigation .willow-menu-cta > a:visited {
  background: var(--willow-gold) !important;
  color: var(--willow-navy) !important;
}
.mobile-navigation .willow-menu-cta > a:hover,
.mobile-navigation .willow-menu-cta > a:focus,
.mobile-navigation .willow-menu-cta > a:focus-visible,
.mobile-navigation .willow-menu-cta.current-menu-item > a,
.mobile-navigation .willow-menu-cta.current-menu-item > a:visited {
  background: var(--willow-navy) !important;
  color: #fff !important;
}
