/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/



/* ==========================================================================
   Bittern Dental — design system
   Values measured from the existing site, 3 September 2026.
   Colours come from GeneratePress global colours so they stay editable
   in Appearance > Customize > Colours.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Nunito+Sans:wght@400;500;600;700&display=swap');

:root{
  --bd-heading-font: 'Poppins', system-ui, -apple-system, sans-serif;
  --bd-body-font: 'Nunito Sans', system-ui, -apple-system, sans-serif;
  --bd-section-y: 80px;
  --bd-banner-top: 190px;
  --bd-banner-bottom: 150px;
  --bd-radius: 5px;
}

/* ---------- Base typography ---------- */
body{
  font-family: var(--bd-body-font);
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
  color: var(--contrast);
}
h1,h2,h3,h4,h5,h6{
  font-family: var(--bd-heading-font);
  color: var(--contrast);
}
h1{ font-size:48px; line-height:1.2; font-weight:500; margin-bottom:15px; }
h2{ font-size:38px; line-height:1.4; font-weight:700; margin-bottom:15px; }
h3{ font-size:25px; line-height:1.2; font-weight:500; margin-bottom:12px; }
h4{ font-size:20px; line-height:1.3; font-weight:500; margin-bottom:10px; }
h5{ font-size:18px; line-height:1.3; font-weight:500; }
h6{ font-size:16px; line-height:1.4; font-weight:600; }

p{ margin-bottom:15px; }
a{ color: var(--accent); }
a:hover{ color: var(--accent-2); }

/* ---------- Buttons ---------- */
.wp-block-button__link,
.button, button, input[type="submit"],
.gform_button{
  font-family: var(--bd-heading-font);
  font-weight:500;
  font-size:15px;
  line-height:1.4;
  padding:7px 20px;
  border-radius: var(--bd-radius);
  background-color: var(--accent);
  color:#fff;
  border:none;
}
.wp-block-button__link:hover,
.button:hover, button:hover, input[type="submit"]:hover,
.gform_button:hover{ background-color: var(--accent-2); color:#fff; }

.wp-block-button.is-style-outline .wp-block-button__link{
  background:transparent; border:1px solid var(--accent); color: var(--accent);
}

/* ---------- Rhythm ---------- */
.site-content .entry-content > *{ margin-top:0; }
.entry-content ul, .entry-content ol{ margin-bottom:15px; padding-left:20px; }
.entry-content li{ margin-bottom:6px; }
.entry-content img{ border-radius: var(--bd-radius); }

/* ---------- Responsive type ---------- */
@media (max-width:1024px){
  h1{ font-size:40px; }
  h2{ font-size:32px; }
  h3{ font-size:22px; }
  :root{ --bd-section-y:60px; --bd-banner-top:130px; --bd-banner-bottom:100px; }
}
@media (max-width:768px){
  h1{ font-size:32px; }
  h2{ font-size:26px; }
  h3{ font-size:20px; }
  :root{ --bd-section-y:48px; --bd-banner-top:100px; --bd-banner-bottom:80px; }
}

/* ---------- Header ---------- */
.site-header{ padding-top:10px; padding-bottom:10px; }
.site-logo img{ max-height:70px; width:auto; }
.main-navigation .main-nav ul li a{
  font-family: var(--bd-heading-font);
  font-weight:500; font-size:15px;
  padding-left:14px; padding-right:14px; line-height:60px;
}
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li.current-menu-item > a{ color: var(--accent); }

.main-navigation .main-nav ul li.bd-cta > a{
  background: var(--accent); color:#fff; border-radius: var(--bd-radius);
  padding:8px 20px; line-height:1.4; margin:14px 4px 0 10px;
}
.main-navigation .main-nav ul li.bd-cta > a:hover{ background: var(--accent-2); color:#fff; }

.main-navigation .main-nav ul li.bd-phone > a{
  border:1px solid var(--accent); color: var(--accent); border-radius: var(--bd-radius);
  padding:7px 18px; line-height:1.4; margin:14px 0 0 4px;
}
.main-navigation .main-nav ul li.bd-phone > a:hover{ background: var(--accent); color:#fff; }

.main-navigation ul ul{ width:260px; }
.main-navigation .main-nav ul ul li a{ line-height:1.4; padding:12px 16px; font-size:14px; }
.main-navigation .main-nav ul ul li a:hover{ background: var(--base-2); }

@media (max-width:1024px){
  .main-navigation .main-nav ul li a{ font-size:14px; padding-left:10px; padding-right:10px; }
}

/* ---------- Footer ---------- */
.site-footer .footer-widgets{
  background: #1a1a1a;
  color: #fff;
  padding: var(--bd-section-y) 0;
}
.site-footer .footer-widgets h3{
  font-family: var(--bd-heading-font);
  font-size:24px; font-weight:500; color:#fff; margin-bottom:18px;
}
.site-footer .footer-widgets p,
.site-footer .footer-widgets li{ color:#fff; font-size:16px; }
.site-footer .footer-widgets a{ color:#fff; text-decoration:none; }
.site-footer .footer-widgets a:hover{ color: var(--accent); }
.site-footer .footer-widgets .widget{ margin-bottom:0; }

/* Suburb list reads as two tidy columns rather than one long stack */
ul.bd-suburbs{ columns:2; column-gap:28px; list-style:none; padding-left:0; margin:0; }
ul.bd-suburbs li{ break-inside:avoid; margin-bottom:8px; }

/* Copyright bar picks up the deep bronze from the original */
.site-info{
  background: var(--accent-2);
  color:#fff;
  padding:18px 0;
  font-size:14px;
}
.site-info a{ color:#fff; }

@media (max-width:768px){
  ul.bd-suburbs{ columns:1; }
  .site-footer .footer-widgets h3{ font-size:20px; }
}

/* ---------- Page banner ----------
   The old site puts the H1 over a photo banner at 190/150 padding. Until each
   page has its own hero image (an ACF field, later), this renders the same
   shape as a bronze band so the page structure matches. */
.page .entry-header,
.single .entry-header{
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);
  padding: var(--bd-banner-top) 0 var(--bd-banner-bottom);
  margin: 0 0 var(--bd-section-y);
  text-align: center;
}
.page .entry-header .entry-title,
.single .entry-header .entry-title{
  color:#fff;
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 20px;
}
.page .entry-header .entry-meta,
.single .entry-header .entry-meta{ color: rgba(255,255,255,.85); }
.page .entry-header .entry-meta a,
.single .entry-header .entry-meta a{ color:#fff; }

/* the banner is full-bleed, so the container padding must not fight it */
.page .inside-article,
.single .inside-article{ padding-top:0; }

/* ---------- Content rhythm inside the article ---------- */
.page .entry-content,
.single .entry-content{
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 20px var(--bd-section-y);
}
.entry-content h2{ margin-top:36px; }
.entry-content h3{ margin-top:28px; }
.entry-content > h2:first-child,
.entry-content > h3:first-child{ margin-top:0; }

/* Banner runs full-bleed, as on the original. No overflow clipping on the
   ancestors, or the bleed gets cropped back to the container. */
.page .entry-header,
.single .entry-header{
  width:100vw;
  margin-left:calc(50% - 50vw);
  max-width:none;
}
.page .inside-article,
.single .inside-article,
.site-content .content-area,
.site-content .site-main{ overflow:visible; }
body{ overflow-x:hidden; }

/* ==========================================================================
   
/* ---- Legacy components v3 ---------------------------------------------- */
.bd-legacy{ margin:0; }
.entry-content > .bd-legacy{
  margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
  width:100vw; max-width:100vw;
}
.bd-legacy .container{ width:100%; max-width:1320px; margin:0 auto; padding:0 15px; box-sizing:border-box; }
.bd-legacy .row{ display:flex; flex-wrap:wrap; margin:0 -15px; }
.bd-legacy [class*="col-"]{ padding:0 15px; width:100%; box-sizing:border-box; }
.bd-legacy .align-items-center{ align-items:center; }
.bd-legacy .text-center{ text-align:center; }
@media (min-width:768px){
  .bd-legacy .col-md-6{ width:50%; } .bd-legacy .col-md-4{ width:33.3333%; }
}
@media (min-width:992px){
  .bd-legacy .col-lg-3{ width:25%; } .bd-legacy .col-lg-4{ width:33.3333%; }
  .bd-legacy .col-lg-5{ width:41.6667%; } .bd-legacy .col-lg-6{ width:50%; }
  .bd-legacy .col-lg-7{ width:58.3333%; } .bd-legacy .col-lg-8{ width:66.6667%; }
  .bd-legacy .col-lg-12{ width:100%; }
}

/* Band rhythm, taken from the current site */
.bd-legacy.services-area{ padding:100px 0 70px; }
.bd-legacy.about-area{ padding:48px 0; }
.bd-legacy.doctor-area{ padding:80px 0 50px; }
.bd-legacy.appointment-area{ padding:100px 0; }
.bd-legacy.special-offers-section{ padding:60px 0; }
.bd-legacy.overview-area{ padding:80px 0; background:#fff; }
.bd-legacy.faq-section{ padding:70px 0; background:#7C6651; }
.bd-legacy.cta-section{ padding:70px 0; background:#7C6651; text-align:center; }
.bd-legacy.text-band{ padding:80px 0; }
.bd-legacy.services-details-area,
.bd-legacy.eye-care-about-area,
.bd-legacy.covid-information-area,
.bd-legacy.covid-contact-area,
.bd-legacy.blog-details-area{ padding:70px 0; }

/* Section headings */
.bd-legacy .sub-title{
  display:inline-block; background:#996D45; color:#fff; font-size:17px; font-weight:500;
  padding:6px 20px; border-radius:50px; margin:0 0 14px; line-height:1.5;
}
.bd-legacy .section-title,
.bd-legacy .section-title-warp{ margin:0 0 35px; }
.bd-legacy .section-title{ text-align:center; max-width:760px; margin-left:auto; margin-right:auto; }
.bd-legacy h2, .bd-legacy .about-heading{
  font-family:var(--bd-heading-font); font-size:38px; font-weight:700; color:#222;
  line-height:1.25; margin:0 0 15px;
}
.bd-legacy h3{ font-family:var(--bd-heading-font); font-size:25px; font-weight:500; color:#222; margin:0 0 12px; line-height:1.3; }
.bd-legacy h4{ font-size:20px; font-weight:600; color:#222; margin:0 0 10px; }
.bd-legacy p{ font-size:16px; line-height:1.7; color:#6A6C72; margin:0 0 14px; }
.bd-legacy ul{ padding-left:20px; margin:0 0 16px; }
.bd-legacy li{ color:#6A6C72; line-height:1.7; margin:0 0 6px; }
.bd-legacy a{ color:#996D45; }

/* Service cards */
.bd-legacy .single-services{ margin-bottom:30px; }
.bd-legacy .services-image{ line-height:0; }
.bd-legacy .services-image img{ width:100%; height:260px; object-fit:cover; display:block; border-radius:10px 10px 0 0; }
.bd-legacy .services-content{ background:#fff; padding:35px 30px; border-radius:0 0 10px 10px; box-shadow:0 0 20px rgba(108,118,134,.1); }
.bd-legacy .services-content h3{ margin:0 0 12px; }
.bd-legacy .services-content h3 a{ color:#222; text-decoration:none; }
.bd-legacy .services-content h3 a:hover{ color:#996D45; }
.bd-legacy .services-content p{ font-size:16px; line-height:24px; margin:0 0 14px; }

/* Practitioner cards */
.bd-legacy .single-doctor,
.bd-legacy .single-doctor-item,
.bd-legacy .doctor-item{ margin-bottom:30px; background:#fff; border-radius:10px; overflow:hidden; box-shadow:0 0 20px rgba(108,118,134,.1); }
.bd-legacy .doctor-image{ line-height:0; }
.bd-legacy .doctor-image img{ width:100%; height:auto; display:block; }
.bd-legacy .doctor-content{ padding:25px 25px 30px; text-align:center; }
.bd-legacy .doctor-content h3{ font-size:22px; font-weight:600; margin:0 0 6px; }
.bd-legacy .doctor-content span{ display:block; color:#996D45; font-size:15px; }

/* Gallery band */


/* FAQ band sits on brown */
.bd-legacy.faq-section h2,
.bd-legacy.faq-section h3,
.bd-legacy.faq-section h4,
.bd-legacy.faq-section p,
.bd-legacy.faq-section li,
.bd-legacy.faq-section button{ color:#fff; }
.bd-legacy.faq-section .sub-title{ background:rgba(255,255,255,.16); }
.bd-legacy.faq-section .accordion-item,
.bd-legacy.faq-section .faq-accordion > *{ border-bottom:1px solid rgba(255,255,255,.22); padding:14px 0; }
.bd-legacy.faq-section button{ background:none; border:0; padding:0; text-align:left; font-size:18px; font-weight:600; }

/* Call to action band */
.bd-legacy.cta-section h2{ color:#fff; font-size:34px; margin:0 0 18px; }
.bd-legacy.cta-section p{ color:rgba(255,255,255,.92); margin:0 0 24px; }
.bd-legacy.cta-section a{ display:inline-block; border:1px solid #fff; color:#fff; padding:12px 22px; border-radius:12px; text-decoration:none; margin:0 6px 8px; }
.bd-legacy.cta-section a:hover{ background:#fff; color:#7C6651; }

/* Buttons */
.bd-legacy .default-btn{ display:inline-block; background:#996D45; color:#fff; padding:12px 26px; border-radius:5px; font-size:15px; text-decoration:none; margin:0 8px 8px 0; }
.bd-legacy .default-btn:hover{ background:#7C6651; color:#fff; }

/* Offers */


/* Housekeeping */
.bd-legacy img{ max-width:100%; height:auto; }
.bd-legacy i[class*="flaticon-"]{ display:none; }
.bd-legacy .swiper-button-next,.bd-legacy .swiper-button-prev,.bd-legacy .swiper-pagination{ display:none; }


/* ---- Home hero ---------------------------------------------------------- */
.bd-hero{
  position:relative; display:flex; align-items:center; overflow:hidden;
  margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
  width:100vw; max-width:100vw; padding:200px 0 150px; min-height:640px;
  background:#2b2018;
}
.bd-hero-media{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.bd-hero-veil{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(20,14,10,.70) 0%, rgba(20,14,10,.42) 55%, rgba(20,14,10,.10) 100%); }
.bd-hero .container{ position:relative; z-index:2; width:100%; max-width:1320px; margin:0 auto; padding:0 15px; }
.bd-hero-content{ max-width:600px; }
.bd-hero-eyebrow{ display:inline-block; background:#996D45; color:#fff; font-size:14px;
  font-weight:600; padding:9px 20px; border-radius:5px; margin:0 0 22px; }
.bd-hero-content h1{ font-family:var(--bd-heading-font); font-size:60px; line-height:1.12;
  font-weight:700; color:#fff; margin:0 0 22px; }
.bd-hero-content p{ font-size:15px; line-height:1.75; color:rgba(255,255,255,.92); margin:0 0 30px; }
.bd-hero-btns .default-btn{ display:inline-block; background:#996D45; color:#fff;
  padding:13px 26px; border-radius:5px; font-size:15px; text-decoration:none; margin:0 10px 10px 0; }
.bd-hero-btns .default-btn:hover{ background:#7C6651; color:#fff; }
.bd-hero-btns .is-ghost{ background:transparent; border:1px solid rgba(255,255,255,.65); }
.bd-hero-btns .is-ghost:hover{ background:#fff; color:#7C6651; }

/* Front page: header overlays the hero, as on the current site */
.home .site-header{ position:absolute; top:0; left:0; right:0; z-index:30; background:transparent; }
.home .site-header .inside-header,
.home .main-navigation,
.home .main-navigation .inside-navigation{ background:transparent; }
.home .main-navigation .main-nav ul li > a{ color:#fff; }
.home .main-navigation .main-nav ul li.bd-phone > a{ color:#fff; border-color:rgba(255,255,255,.7); }
.home .main-navigation .main-nav ul ul li > a{ color:#222; }

.home .entry-header{ display:none; }
.home .inside-article{ padding-top:0; }

@media (max-width:768px){
  .bd-hero{ padding:130px 0 90px; min-height:0; }
  .bd-hero-content h1{ font-size:34px; }
  .home .site-header{ position:static; background:#fff; }
  .home .main-navigation .main-nav ul li > a{ color:#222; }
  
}










/* ---- Fixes -------------------------------------------------------------- */
body{ background:#fff; }
.separate-containers .inside-article,
.separate-containers .content-area{ background:#fff; }
.bd-hero .container,
.bd-legacy .container,
.bd-legacy .row,
.bd-legacy [class*="col-"]{ background:transparent; }
.home .site-content{ padding-top:0; }
.home .site-content .content-area{ margin-top:0; }

/* Inline vendor icons have no intrinsic size once their stylesheet is gone */




/* Image grids recovered from the original three-column galleries */
.entry-content .bd-media-grid{ display:block; margin:0 0 40px; }
.entry-content .bd-media-grid > .wp-block-group__inner-container{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.entry-content .bd-media-grid figure{ margin:0; }
.entry-content .bd-media-grid img{ width:100%; height:280px; object-fit:cover; border-radius:10px; display:block; }
@media (max-width:900px){ .entry-content .bd-media-grid > .wp-block-group__inner-container{ grid-template-columns:repeat(2,1fr); gap:20px; } }
@media (max-width:600px){ .entry-content .bd-media-grid > .wp-block-group__inner-container{ grid-template-columns:1fr; } }

.entry-content > figure.wp-block-image{ text-align:center; margin:0 0 32px; }
.entry-content > figure.wp-block-image img{ max-height:420px; width:auto; max-width:100%; border-radius:10px; }

/* ---- Card internals ----------------------------------------------------- */
/* Service card: photo, then the round badge that swaps art on hover. */
.bd-legacy .services-image{
  position:relative; aspect-ratio:415/378; overflow:hidden; border-radius:10px 10px 0 0;
}
.bd-legacy .services-image > a{ display:block; height:100%; }
.bd-legacy .services-image > a > img{
  width:100%; height:100%; object-fit:cover; display:block; border-radius:0;
  transition:transform .6s ease;
}
.bd-legacy .single-services:hover .services-image > a > img{ transform:scale(1.06); }

.bd-legacy .services-image .icon{ position:absolute; right:20px; bottom:20px; width:75px; height:75px; }
.bd-legacy .services-image .icon a{ display:block; width:75px; height:75px; }
.bd-legacy .services-image .icon .imgbg{ position:relative; display:block; width:75px; height:75px; }
.bd-legacy .services-image .icon .imgbg img{
  width:75px; height:75px; object-fit:contain; display:block; transition:opacity .6s ease;
}
.bd-legacy .services-image .icon .imgbg img.hover-img{
  position:absolute; top:11px; left:11px; width:53px; height:53px; opacity:0;
}
.bd-legacy .single-services:hover .icon .imgbg img.hover-img{ opacity:1; }

.bd-legacy .single-services{ display:flex; flex-direction:column; transition:transform .4s ease; }
.bd-legacy .single-services:hover{ transform:translateY(-6px); }
.bd-legacy .services-content{ flex:1 1 auto; }

/* On the home page this band sits on a bronze-to-teal gradient (inline style
   on the original), so its heading and lead need to invert. */
.bd-legacy.services-area[style*="gradient"] h2,
.bd-legacy.services-area[style*="gradient"] .section-title p,
.bd-legacy.services-area[style*="gradient"] .section-title-warp p,
.bd-legacy.services-area[style*="gradient"] > .container > p{ color:#fff; }
.bd-legacy.services-area[style*="gradient"] .sub-title{ background:rgba(255,255,255,.2); color:#fff; }

/* ---- Why patients visit ------------------------------------------------- */
.bd-legacy.mains-opacity{
  position:relative; padding:100px 0;
  background-image:url(/wp-content/uploads/2026/09/why-bg.jpg);
  background-position:center; background-size:cover;
  background-repeat:no-repeat; background-attachment:fixed;
}
.bd-legacy.mains-opacity::before{ content:""; position:absolute; inset:0; background:#000; opacity:.4; }
.bd-legacy.mains-opacity > *{ position:relative; z-index:1; }
.bd-legacy.mains-opacity h2{
  color:#fff; font-size:44px; font-weight:900; line-height:1.15;
  text-transform:uppercase; text-align:center; margin:0 0 20px;
}
.bd-legacy.mains-opacity p{ color:#fff; }
.bd-legacy.mains-opacity .row{ align-items:stretch; }

.bd-legacy .single-core-features{
  padding:22px; height:100%; background:#41474D;
  transition:transform .6s ease, box-shadow .6s ease;
}
.bd-legacy .single-core-features:hover{ transform:translateY(-12px); box-shadow:0 18px 40px rgba(0,0,0,.35); }
.bd-legacy .single-core-features .icon{
  width:80px; height:80px; border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center; margin:0 auto 18px;
}
.bd-legacy .single-core-features .icon img,
.bd-legacy .single-core-features .icon svg{ width:44px; height:44px; object-fit:contain; }
.bd-legacy .single-core-features h3{
  color:#fff; font-size:25px; font-weight:500; text-align:center; margin:0 0 15px; line-height:1.25;
}
.bd-legacy .single-core-features p{ color:#fff; font-size:16px; line-height:24px; text-align:justify; margin:0; }
.bd-legacy.mains-opacity .row > div:nth-of-type(2) .single-core-features{ background:#41474D; }
.bd-legacy.mains-opacity .row > div:nth-of-type(3) .single-core-features{ background:#996D45; }
.bd-legacy.mains-opacity .row > div:nth-of-type(4) .single-core-features{ background:#6C6C6C; }
.bd-legacy.mains-opacity .row > div:nth-of-type(5) .single-core-features{ background:#5D3C1D; }
@media (max-width:900px){
  .bd-legacy.mains-opacity{ background-attachment:scroll; padding:60px 0; }
  .bd-legacy.mains-opacity h2{ font-size:30px; }
}

/* ---- Page banner -------------------------------------------------------- */
.site-header{ position:absolute; top:0; left:0; right:0; z-index:30; background:transparent; }
.site-header .inside-header,
.main-navigation,
.main-navigation .inside-navigation{ background:transparent; }
.main-navigation .main-nav ul li > a{ color:#fff; }
.main-navigation .main-nav ul li.bd-phone > a{ color:#fff; border-color:rgba(255,255,255,.7); }
.main-navigation .main-nav ul ul li > a{ color:#222; }
.site-content{ padding-top:0 !important; }
.inside-article{ padding-top:0 !important; }

.page .entry-header,
.single .entry-header,
.entry-header{
  position:relative; text-align:center; overflow:hidden;
  margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
  width:100vw; max-width:100vw; padding:190px 20px 150px;
  background-color:#7C6651;
  background-image:url(/wp-content/uploads/2026/09/banner.jpg);
  background-position:center; background-size:cover; background-repeat:no-repeat;
}
.entry-header::before{ content:""; position:absolute; inset:0; background:rgba(0,0,0,.38); }
.page .entry-header .entry-title,
.single .entry-header .entry-title,
.entry-header .entry-title{
  position:relative; z-index:1; color:#fff; font-size:48px; font-weight:500;
  margin:0; line-height:1.2; font-family:var(--bd-heading-font);
}
.entry-header .entry-meta{ position:relative; z-index:1; color:rgba(255,255,255,.85); }
.entry-header .entry-meta a{ color:#fff; }
.blog .site-content, .archive .site-content, .search .site-content, .error404 .site-content{ padding-top:170px !important; }
.blog .site-header, .archive .site-header, .search .site-header, .error404 .site-header{ position:static; background:#7C6651; }

.page-id-18 .entry-header{ background-image:url(/wp-content/uploads/2026/09/prosthetic.jpg); }
.page-id-25 .entry-header{ background-image:url(/wp-content/uploads/2026/09/mouth_guard_banner.jpg); }
.page-id-33 .entry-header{ background-image:url(/wp-content/uploads/2026/09/ortho-header.jpg); }
.page-id-49 .entry-header{ background-image:url(/wp-content/uploads/2026/09/dental-veneers_headerbanner.jpg); }
.page-id-41 .entry-header{ background-image:url(/wp-content/uploads/2026/09/invisalign-bg.jpg); }
.page-id-43 .entry-header{ background-image:url(/wp-content/uploads/2026/09/teeth_whitening_headerbanner.jpg); }
.page-id-35 .entry-header{ background-image:url(/wp-content/uploads/2026/09/dental-veneers_headerbanner.jpg); }
.page-id-23 .entry-header{ background-image:url(/wp-content/uploads/2026/09/dentures_banner.jpg); }
.page-id-24 .entry-header{ background-image:url(/wp-content/uploads/2026/09/inlays-onlays-bg.jpg); }
.page-id-20 .entry-header{ background-image:url(/wp-content/uploads/2026/09/brace_bg.jpg); }

@media (max-width:768px){
  .site-header{ position:static; background:#fff; }
  .main-navigation .main-nav ul li > a{ color:#222; }
  .page .entry-header, .single .entry-header, .entry-header{ padding:70px 20px 60px; }
  .entry-header .entry-title{ font-size:30px; }
}

/* ---- Front page --------------------------------------------------------- */
.home .entry-header{ display:none; }

/* ---- Banner alignment --------------------------------------------------- */
body{ overflow-x:hidden; }
.page .entry-header .entry-title,
.single .entry-header .entry-title,
.entry-header .entry-title{ max-width:1320px; margin:0 auto; text-align:center; }
.entry-header .entry-meta{ max-width:1320px; margin:10px auto 0; }

/* ---- Form placeholders -------------------------------------------------- */
/* Gravity Forms drops in here. Visible on purpose so the gap is obvious. */



/* ---- Sticky header ------------------------------------------------------ */
/* Matches the current site: the header overlays the hero, then fixes to the
   top with a translucent dark ground once you scroll past it. */
.bd-sticky .site-header{
  position:fixed; top:0; left:0; right:0; z-index:999;
  background:rgba(0,0,0,.32);
  -webkit-backdrop-filter:saturate(140%) blur(6px);
  backdrop-filter:saturate(140%) blur(6px);
  animation:bdSlideDown .3s ease-out;
}
.admin-bar.bd-sticky .site-header{ top:32px; }
@keyframes bdSlideDown{ from{ transform:translateY(-100%); } to{ transform:translateY(0); } }
.bd-sticky .site-header .inside-header{ padding-top:0; padding-bottom:0; }
.bd-sticky .main-navigation .main-nav ul li > a{ color:#fff; }
@media (max-width:768px){
  .bd-sticky .site-header{ position:static; background:#fff; animation:none; }
  .admin-bar.bd-sticky .site-header{ top:auto; }
}

/* ---- About band --------------------------------------------------------- */
/* The original lays these out as three col-lg-4 columns, each holding its own
   two-item list, so the list itself must not add a grid of its own. */
.bd-legacy .about-list{ list-style:none; padding:0; margin:0 0 30px; }
.bd-legacy .about-list li{
  position:relative; padding-left:35px; margin:0 0 18px;
  font-size:16px; line-height:25px; color:#212529; list-style:none;
}
.bd-legacy .about-list li i{ display:none; }
.bd-legacy .about-list li::before{
  content:""; position:absolute; left:0; top:0;
  width:25px; height:25px; border-radius:50px; background:#996D45;
}
.bd-legacy .about-list li::after{
  content:""; position:absolute; left:9px; top:7px;
  width:6px; height:11px; border:solid #fff; border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.bd-legacy .about-content .row{ margin-left:-15px; margin-right:-15px; }





.bd-legacy [class*="single-featuresab"] a:hover{ text-decoration:underline; }

/* ---- Card internals, part two ------------------------------------------- */
.bd-legacy .services-image .icon .imgbg{
  background:#fff; border-radius:50px; box-shadow:0 10px 30px rgba(0,0,0,.07);
}
.bd-legacy .services-content p a,
.bd-legacy .doctor-content p a{ color:inherit; text-decoration:none; }
.bd-legacy .services-content p a:hover{ color:#996D45; }

/* ---- Core feature cards, part two --------------------------------------- */
.bd-legacy .single-core-features h3 a,
.bd-legacy .single-core-features a{ color:#fff; text-decoration:none; }
.bd-legacy .single-core-features h3 a:hover{ color:#fff; text-decoration:underline; }
.bd-legacy.mains-opacity .row{ align-items:stretch; }
.bd-legacy.mains-opacity .row > div{ display:flex; }
.bd-legacy.mains-opacity .row > div > .single-core-features{ flex:1 1 auto; }
.bd-legacy.mains-opacity .row > div:first-child{ display:block; }

/* ---- Service grid: four up, raised cards -------------------------------- */
@media (min-width:1200px){
  .bd-legacy.services-area .row > [class*="col-lg-4"]{ width:25%; }
}
.bd-legacy .single-services{
  background:#fff; border-radius:10px; overflow:hidden;
  box-shadow:0 1px 2px rgba(16,24,40,.06),
             0 12px 24px -8px rgba(16,24,40,.18),
             0 28px 48px -16px rgba(16,24,40,.22);
  transition:transform .35s ease, box-shadow .35s ease;
}
.bd-legacy .single-services:hover{
  transform:translateY(-10px);
  box-shadow:0 2px 4px rgba(16,24,40,.08),
             0 20px 34px -10px rgba(16,24,40,.24),
             0 44px 70px -20px rgba(16,24,40,.30);
}
.bd-legacy .services-image{ border-radius:0; }
.bd-legacy .services-content{
  box-shadow:none; border-radius:0; padding:28px 24px 30px;
}
.bd-legacy .services-content h3{ font-size:22px; margin:0 0 10px; }
.bd-legacy .services-content p{ font-size:15px; line-height:23px; }

/* The badge scales down with the smaller card */
@media (min-width:1200px){
  .bd-legacy .services-image .icon,
  .bd-legacy .services-image .icon a,
  .bd-legacy .services-image .icon .imgbg,
  .bd-legacy .services-image .icon .imgbg img{ width:62px; height:62px; }
  .bd-legacy .services-image .icon{ right:16px; bottom:16px; }
  .bd-legacy .services-image .icon .imgbg img.hover-img{ top:9px; left:9px; width:44px; height:44px; }
}

/* ---- Card link tidy ------------------------------------------------------ */
.bd-legacy .services-content a,
.bd-legacy .doctor-content a{ text-decoration:none; }
.bd-legacy .services-content > a,
.bd-legacy .services-content p a{ color:inherit; }
.bd-legacy .services-content h3 a{ color:#222; }
.bd-legacy .single-services:hover .services-content h3 a{ color:#996D45; }

/* ---- Core feature icons -------------------------------------------------- */
/* The source PNGs carry their own inline width:80%; only the circle is ours. */
.bd-legacy .single-core-features .icon img,
.bd-legacy .single-core-features .icon svg{
  width:64px; height:auto; max-width:64px; object-fit:contain; display:block;
}

/* ---- About-band action cards --------------------------------------------- */
/* The original renders these as two identical flat brown slabs. Same content,
   given a hierarchy: booking is the primary action, the phone is the quiet
   alternative. Whole card is clickable via the existing link. */
.bd-legacy [class*="single-featuresab"]{
  position:relative; display:flex; align-items:center; gap:18px;
  padding:20px 24px; border-radius:14px; margin-bottom:24px;
  transition:transform .3s ease, box-shadow .3s ease,
             background-color .3s ease, border-color .3s ease;
}
.bd-legacy .single-featuresab1{
  background:#996D45; color:#fff; border:1px solid transparent;
  box-shadow:0 1px 2px rgba(93,60,29,.12), 0 12px 24px -12px rgba(93,60,29,.55);
}
.bd-legacy .single-featuresab2{
  background:#FBF7F2; color:#5D3C1D; border:1px solid #E4D6C5; box-shadow:none;
}

.bd-legacy [class*="single-featuresab"]::before{
  content:""; flex:0 0 auto; width:46px; height:46px; border-radius:50%;
  background-repeat:no-repeat; background-position:center; background-size:21px 21px;
}
.bd-legacy .single-featuresab1::before{ background-color:rgba(255,255,255,.18); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2.5'/%3E%3Cpath d='M8 3v4M16 3v4M3 10h18'/%3E%3C/svg%3E"); }
.bd-legacy .single-featuresab2::before{ background-color:#F1E5D8; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235D3C1D' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 2 .7 2.9a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.2-1.2a2 2 0 0 1 2.1-.5c.9.3 1.9.6 2.9.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }

.bd-legacy [class*="single-featuresab"] .content{ flex:1 1 auto; min-width:0; }
.bd-legacy [class*="single-featuresab"] .content p,
.bd-legacy [class*="single-featuresab"] p.tx_white{
  font-size:12px; font-weight:600; letter-spacing:.09em; text-transform:uppercase;
  margin:0 0 5px; opacity:.8; line-height:1.4;
}
.bd-legacy [class*="single-featuresab"] .content span{
  display:block; font-size:19px; font-weight:700; line-height:1.25; letter-spacing:0;
}
.bd-legacy .single-featuresab1 .content p,
.bd-legacy .single-featuresab1 .content span,
.bd-legacy .single-featuresab1 a{ color:#fff; }
.bd-legacy .single-featuresab2 .content p{ color:#8A7561; opacity:1; }
.bd-legacy .single-featuresab2 .content span,
.bd-legacy .single-featuresab2 a{ color:#5D3C1D; }

/* Chevron, and the link stretched over the whole card */
.bd-legacy [class*="single-featuresab"]::after{
  content:""; flex:0 0 auto; width:9px; height:9px; margin-left:8px;
  border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(-45deg); opacity:.55;
  transition:transform .3s ease, opacity .3s ease;
}
.bd-legacy [class*="single-featuresab"] .content span a{ text-decoration:none; }
.bd-legacy [class*="single-featuresab"] .content span a::after{
  content:""; position:absolute; inset:0; border-radius:14px;
}
.bd-legacy [class*="single-featuresab"]:hover{ transform:translateY(-3px); }
.bd-legacy .single-featuresab1:hover{
  background:#8A6039;
  box-shadow:0 2px 4px rgba(93,60,29,.16), 0 20px 36px -14px rgba(93,60,29,.6);
}
.bd-legacy .single-featuresab2:hover{ background:#F6EDE2; border-color:#CFB99F; }
.bd-legacy [class*="single-featuresab"]:hover::after{
  transform:rotate(-45deg) translate(2px,2px); opacity:1;
}
@media (max-width:600px){
  .bd-legacy [class*="single-featuresab"]{ padding:16px 18px; gap:14px; }
  .bd-legacy [class*="single-featuresab"] .content span{ font-size:17px; }
}

/* ---- Team cards ---------------------------------------------------------- */
/* Raised card, uniform photo crop, everything under the photo centred, and
   equal heights so the Read more links line up across the row. */
.bd-legacy .single-doctor.team-card{
  display:flex; flex-direction:column; height:100%; text-align:center;
  background:#fff; border-radius:14px; overflow:hidden; margin-bottom:30px;
  box-shadow:0 1px 2px rgba(16,24,40,.06),
             0 12px 24px -8px rgba(16,24,40,.16),
             0 28px 48px -16px rgba(16,24,40,.20);
  transition:transform .35s ease, box-shadow .35s ease;
}
.bd-legacy .single-doctor.team-card:hover{
  transform:translateY(-10px);
  box-shadow:0 2px 4px rgba(16,24,40,.08),
             0 20px 34px -10px rgba(16,24,40,.22),
             0 46px 72px -20px rgba(16,24,40,.28);
}
.bd-legacy .team-card-image{ overflow:hidden; aspect-ratio:4/3; line-height:0; background:#EFE9E2; }
.bd-legacy .team-card-image img{
  width:100%; height:100%; object-fit:cover; object-position:center 20%;
  display:block; transition:transform .7s ease;
}
.bd-legacy .single-doctor.team-card:hover .team-card-image img{ transform:scale(1.07); }

.bd-legacy .team-card .doctor-content{
  display:flex; flex-direction:column; flex:1 1 auto;
  padding:26px 24px 28px; text-align:center;
}
.bd-legacy .team-card .doctor-content h3{
  font-size:21px; font-weight:600; color:#222; text-align:center; margin:0 0 4px;
}
.bd-legacy .team-card .doctor-content h3 a{ color:#222; text-decoration:none; }
.bd-legacy .team-card .doctor-role{
  display:block; color:#996D45; font-size:15px; font-weight:500;
  text-align:center; margin:0 0 16px;
}
.bd-legacy .team-card .doctor-content p{
  flex:1 1 auto; text-align:center; font-size:15px; line-height:1.65;
  color:#6A6C72; margin:0 0 18px;
}
.bd-legacy .team-card .doctor-content > a{
  align-self:center; color:#996D45; font-weight:600; font-size:15px;
  text-decoration:none; transition:color .25s ease;
}
.bd-legacy .team-card .doctor-content > a::after{
  content:" \2192"; display:inline-block; transition:transform .25s ease;
}
.bd-legacy .single-doctor.team-card:hover .doctor-content > a{ color:#7C6651; }
.bd-legacy .single-doctor.team-card:hover .doctor-content > a::after{ transform:translateX(4px); }

/* Anything after the cards in that band stays centred under them */
.bd-legacy .section-title,
.bd-legacy .section-title p,
.bd-legacy .text-center{ text-align:center; }
.bd-legacy .single-featuresab2 .content span a{ color:#5D3C1D; }
.bd-legacy .single-featuresab1 .content span a{ color:#fff; }

/* ---- Secondary action card colour ---------------------------------------- */
/* The legacy markup carries inline color:white on this card's span and link,
   written for the original all-brown treatment. Nothing but !important can
   reach past an inline style, and these two declarations are the whole of it. */
.bd-legacy .single-featuresab2 .content span,
.bd-legacy .single-featuresab2 .content span a{ color:#5D3C1D !important; }
.bd-legacy .single-featuresab2 .content p{ color:#8A7561 !important; }

/* ---- Header logo --------------------------------------------------------- */
/* The source file is 360x209; GP's width/height attributes were squashing it. */
.site-header .site-logo img{
  width:auto; height:70px; max-width:100%; object-fit:contain;
}
@media (max-width:768px){ .site-header .site-logo img{ height:54px; } }

/* ---- FAQ accordion ------------------------------------------------------- */
.bd-legacy.faq-section .section-title h2{ color:#fff; margin-bottom:34px; }
.bd-legacy.faq-section .faq-wrap{ max-width:900px; margin:0 auto; }
.bd-legacy .bd-acc .accordion-item{
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16);
  border-radius:12px; margin:0 0 12px; padding:0; overflow:hidden;
  transition:background-color .3s ease, border-color .3s ease;
}
.bd-legacy .bd-acc .accordion-item:hover{ background:rgba(255,255,255,.11); }
.bd-legacy .bd-acc .accordion-item.is-open{
  background:rgba(255,255,255,.13); border-color:rgba(255,255,255,.3);
}
.bd-legacy .bd-acc .accordion-header{ margin:0; }
.bd-legacy .bd-acc .accordion-button{
  position:relative; display:block; width:100%; text-align:left;
  background:none; border:0; box-shadow:none; cursor:pointer;
  padding:18px 58px 18px 22px;
  font-family:var(--bd-heading-font); font-size:17px; font-weight:600;
  line-height:1.45; color:#fff;
}
.bd-legacy .bd-acc .accordion-button::after,
.bd-legacy .bd-acc .accordion-button::before{
  content:""; position:absolute; right:24px; top:50%; background:#fff;
  transition:transform .3s ease, opacity .3s ease;
}
.bd-legacy .bd-acc .accordion-button::before{ width:14px; height:2px; margin-top:-1px; }
.bd-legacy .bd-acc .accordion-button::after{ width:2px; height:14px; margin-top:-7px; margin-right:6px; }
.bd-legacy .bd-acc .is-open .accordion-button::after{ transform:rotate(90deg); opacity:0; }

.bd-legacy .bd-acc .accordion-collapse{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .35s ease;
}
.bd-legacy .bd-acc .is-open .accordion-collapse{ grid-template-rows:1fr; }
.bd-legacy .bd-acc .accordion-body{ overflow:hidden; padding:0 22px; }
.bd-legacy .bd-acc .is-open .accordion-body{ padding:0 22px 20px; }
.bd-legacy .bd-acc .accordion-body,
.bd-legacy .bd-acc .accordion-body p,
.bd-legacy .bd-acc .accordion-body li{
  color:rgba(255,255,255,.88); font-size:15.5px; line-height:1.7;
}
.bd-legacy .bd-acc .accordion-body a{ color:#F0D9BE; text-decoration:underline; }
.bd-legacy .bd-acc .accordion-body a:hover{ color:#fff; }

/* ---- Blog cards ---------------------------------------------------------- */
.bd-legacy .single-blog{
  display:flex; flex-direction:column; height:100%; margin-bottom:30px;
  background:#fff; border-radius:14px; overflow:hidden;
  box-shadow:0 1px 2px rgba(16,24,40,.06),
             0 12px 24px -8px rgba(16,24,40,.16),
             0 28px 48px -16px rgba(16,24,40,.20);
  transition:transform .35s ease, box-shadow .35s ease;
}
.bd-legacy .single-blog:hover{
  transform:translateY(-10px);
  box-shadow:0 2px 4px rgba(16,24,40,.08),
             0 20px 34px -10px rgba(16,24,40,.22),
             0 46px 72px -20px rgba(16,24,40,.28);
}
.bd-legacy .single-blog .blog-image{ overflow:hidden; aspect-ratio:16/10; line-height:0; background:#EFE9E2; }
.bd-legacy .single-blog .blog-image a{ display:block; height:100%; }
.bd-legacy .single-blog .blog-image img{
  width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s ease;
}
.bd-legacy .single-blog:hover .blog-image img{ transform:scale(1.07); }
.bd-legacy .single-blog .blog-content{
  display:flex; flex-direction:column; flex:1 1 auto; padding:24px 24px 26px;
}
.bd-legacy .single-blog .blog-content > span{ display:block; margin:0 0 10px; }
.bd-legacy .single-blog .blog-content > span a{
  font-family:var(--bd-heading-font); font-size:19px; font-weight:600;
  line-height:1.35; color:#222; text-decoration:none;
}
.bd-legacy .single-blog:hover .blog-content > span a{ color:#996D45; }
.bd-legacy .single-blog .blog-content p{
  flex:1 1 auto; font-size:15px; line-height:1.65; color:#6A6C72; margin:0 0 18px;
}
.bd-legacy .single-blog .blog-btn{
  align-self:flex-start; color:#996D45; font-weight:600; font-size:15px; text-decoration:none;
}
.bd-legacy .single-blog .blog-btn::after{ content:" \2192"; display:inline-block; transition:transform .25s ease; }
.bd-legacy .single-blog:hover .blog-btn::after{ transform:translateX(4px); }

/* ---- Clinic gallery carousel --------------------------------------------- */
.bd-legacy .bd-carousel-wrap{ position:relative; }
.bd-legacy .row.bd-carousel{
  display:flex; flex-wrap:nowrap; overflow-x:auto; scroll-snap-type:x mandatory;
  scroll-behavior:smooth; gap:0; padding:6px 0 18px; margin:0 -15px;
  scrollbar-width:none;
}
.bd-legacy .row.bd-carousel::-webkit-scrollbar{ display:none; }
.bd-legacy .row.bd-carousel > div{
  flex:0 0 33.3333%; max-width:33.3333%; scroll-snap-align:start; padding:0 15px;
}
.bd-legacy .row.bd-carousel > div > img{
  width:100%; height:280px; object-fit:cover; border-radius:12px; display:block;
  margin:0; box-shadow:0 10px 24px -12px rgba(16,24,40,.35);
}
.bd-carousel-btn{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:46px; height:46px; border-radius:50%; border:1px solid #E4D6C5;
  background:#fff; cursor:pointer; box-shadow:0 8px 20px -8px rgba(16,24,40,.35);
  transition:background-color .25s ease, transform .25s ease;
}
.bd-carousel-btn:hover{ background:#FBF7F2; }
.bd-carousel-btn.is-prev{ left:-10px; }
.bd-carousel-btn.is-next{ right:-10px; }
.bd-carousel-btn::before{
  content:""; position:absolute; top:50%; left:50%; width:9px; height:9px;
  border-right:2px solid #5D3C1D; border-bottom:2px solid #5D3C1D;
}
.bd-carousel-btn.is-next::before{ transform:translate(-65%,-50%) rotate(-45deg); }
.bd-carousel-btn.is-prev::before{ transform:translate(-35%,-50%) rotate(135deg); }
@media (max-width:900px){
  .bd-legacy .row.bd-carousel > div{ flex-basis:50%; max-width:50%; }
}
@media (max-width:600px){
  .bd-legacy .row.bd-carousel > div{ flex-basis:85%; max-width:85%; }
  .bd-carousel-btn{ display:none; }
}

/* ---- Offers popup -------------------------------------------------------- */
.bd-popup{ position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; padding:24px; }
.bd-popup[hidden]{ display:none; }
.bd-popup-backdrop{ position:absolute; inset:0; background:rgba(20,14,10,.66); animation:bdFade .25s ease; }
.bd-popup-panel{
  position:relative; max-width:640px; width:100%; max-height:88vh;
  border-radius:18px; overflow:hidden; box-shadow:0 40px 90px -20px rgba(0,0,0,.6);
  animation:bdPop .32s cubic-bezier(.2,.9,.3,1.1);
}
.bd-popup-panel img{ display:block; width:100%; height:auto; max-height:88vh; object-fit:contain; }
.bd-popup-close{
  position:absolute; top:12px; right:12px; z-index:2;
  width:38px; height:38px; border-radius:50%; border:0; cursor:pointer;
  background:#fff; color:#5D3C1D; font-size:22px; line-height:1;
  box-shadow:0 6px 18px -6px rgba(0,0,0,.5); transition:background-color .2s ease;
}
.bd-popup-close:hover{ background:#F1E5D8; }
body.bd-popup-open{ overflow:hidden; }
@keyframes bdFade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes bdPop{ from{ opacity:0; transform:translateY(18px) scale(.97); } to{ opacity:1; transform:none; } }
@media (max-width:600px){ .bd-popup{ padding:14px; } .bd-popup-panel{ border-radius:14px; } }

/* ---- Enquiry form -------------------------------------------------------- */
/* Gravity Forms already lays out on a 12-column grid and the field spans are
   set in the form definition, so we only restyle the controls. */
.bd-form .gform_heading,
.bd-form .gform_required_legend{ display:none; }
.bd-form .gform_wrapper .gform_fields{ grid-column-gap:20px; grid-row-gap:18px; }
.bd-form .gform_wrapper .gfield{ min-width:0; }

.bd-form .gform_wrapper .gfield_label{
  display:block; font-family:var(--bd-heading-font); font-size:15px; font-weight:600;
  color:#222; margin:0 0 7px; line-height:1.35;
}
.bd-form .gform_wrapper .gfield_required{ color:#C0392B; }

.bd-form .gform_wrapper input[type="text"],
.bd-form .gform_wrapper input[type="email"],
.bd-form .gform_wrapper input[type="tel"],
.bd-form .gform_wrapper input[type="number"],
.bd-form .gform_wrapper select,
.bd-form .gform_wrapper textarea{
  width:100%; box-sizing:border-box; background:#fff;
  border:1px solid #DCD3C8; border-radius:8px; padding:12px 14px;
  font-family:var(--bd-body-font); font-size:15px; line-height:1.4; color:#222;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.bd-form .gform_wrapper textarea{ min-height:150px; resize:vertical; }
.bd-form .gform_wrapper input:focus,
.bd-form .gform_wrapper select:focus,
.bd-form .gform_wrapper textarea:focus{
  outline:none; border-color:#996D45; box-shadow:0 0 0 3px rgba(153,109,69,.15);
}
.bd-form .gform_wrapper ::placeholder{ color:#A79A8C; }

.bd-form .gform_wrapper .gform_footer{ margin:22px 0 0; padding:0; }
.bd-form .gform_wrapper .gform_footer input[type="submit"],
.bd-form .gform_wrapper .gform_button{
  background:#996D45; color:#fff; border:0; border-radius:6px;
  padding:13px 34px; font-family:var(--bd-heading-font); font-size:15px; font-weight:600;
  cursor:pointer; transition:background-color .25s ease, transform .2s ease;
}
.bd-form .gform_wrapper .gform_footer input[type="submit"]:hover,
.bd-form .gform_wrapper .gform_button:hover{ background:#7C6651; transform:translateY(-1px); }

.bd-form .gform_wrapper .gfield_validation_message,
.bd-form .gform_wrapper .validation_message{
  background:none; border:0; padding:0; margin-top:6px;
  color:#C0392B; font-size:13.5px;
}
.bd-form .gform_wrapper .gform_validation_errors{
  background:#FDF1EF; border:1px solid #E9C4BD; border-radius:8px; box-shadow:none;
  padding:12px 16px; margin:0 0 18px;
}
.bd-form .gform_wrapper .gform_validation_errors h2{ color:#8C2F1E; font-size:15px; margin:0; }
.bd-form .gform_confirmation_message{
  background:#FBF7F2; border:1px solid #E4D6C5; border-radius:12px;
  padding:22px 24px; color:#5D3C1D; font-size:16px;
}

/* ---- Gravity Forms theme tokens ------------------------------------------ */
/* GF 2.7+ paints its controls from custom properties; setting them here beats
   fighting its stylesheet selector by selector. */
.bd-form .gform_wrapper{
  --gf-color-primary:#996D45;
  --gf-color-primary-rgb:153,109,69;
  --gf-color-primary-contrast:#fff;
  --gf-color-primary-darker:#7C6651;
  --gf-color-primary-lighter:#B08A63;
  --gf-ctrl-btn-bg-color-primary:#996D45;
  --gf-ctrl-btn-bg-color-hover-primary:#7C6651;
  --gf-ctrl-btn-bg-color-focus-primary:#7C6651;
  --gf-ctrl-btn-border-color-primary:#996D45;
  --gf-ctrl-btn-border-color-hover-primary:#7C6651;
  --gf-ctrl-btn-color-primary:#fff;
  --gf-ctrl-btn-color-hover-primary:#fff;
  --gf-ctrl-border-color-focus:#996D45;
  --gf-local-color:#222;
}
.bd-form .gform_wrapper button.gform_button,
.bd-form .gform_wrapper .gform_footer button,
.bd-form .gform_wrapper .gform_footer input[type="submit"]{
  background-color:#996D45; border:1px solid #996D45; color:#fff;
  border-radius:6px; padding:13px 34px;
  font-family:var(--bd-heading-font); font-size:15px; font-weight:600;
  cursor:pointer; transition:background-color .25s ease, transform .2s ease;
}
.bd-form .gform_wrapper button.gform_button:hover,
.bd-form .gform_wrapper .gform_footer button:hover,
.bd-form .gform_wrapper .gform_footer input[type="submit"]:hover{
  background-color:#7C6651; border-color:#7C6651; color:#fff; transform:translateY(-1px);
}

/* ---- Select control height ----------------------------------------------- */
.bd-form .gform_wrapper select{ height:auto; min-height:47px; line-height:1.5; }

/* ---- Nested rows --------------------------------------------------------- */
/* The legacy markup nests a .row inside a .row for trailing content (the
   "Meet the Full Team" button). As a bare flex item it sized to its content and
   sat left of the cards above it. */
.bd-legacy .row > .row{
  flex:0 0 100%; width:100%; max-width:100%;
  margin-left:0; margin-right:0;
}
.bd-legacy .row > .row > [class*="col-"]{ padding-left:0; padding-right:0; }

/* ---- Form polish --------------------------------------------------------- */
/* Match the reference: 17px labels, a red asterisk rather than "(Required)",
   and taller fields. */
.bd-form .gform_wrapper .gfield_label{ font-size:17px; font-weight:600; margin:0 0 9px; }
.bd-form .gform_wrapper .gfield_required{
  color:#E03B2F; font-size:15px; font-weight:700; margin-left:4px;
}
.bd-form .gform_wrapper .gfield_required_text{ display:none; }
.bd-form .gform_wrapper .gform_fields{ grid-row-gap:22px; grid-column-gap:24px; }
.bd-form .gform_wrapper input[type="text"],
.bd-form .gform_wrapper input[type="email"],
.bd-form .gform_wrapper input[type="tel"],
.bd-form .gform_wrapper select{ padding:14px 16px; font-size:16px; }
.bd-form .gform_wrapper select{ min-height:53px; }
.bd-form .gform_wrapper textarea{ padding:14px 16px; font-size:16px; min-height:180px; }
.bd-form .gform_wrapper .gform_footer{ margin-top:26px; }

/* ---- Blog band spacing --------------------------------------------------- */
/* Slightly tighter cards, a narrower gutter, and the button given room. */
.bd-legacy .single-blog{ margin-bottom:20px; }
.bd-legacy .single-blog .blog-image{ aspect-ratio:16/11; }
.bd-legacy .single-blog .blog-content{ padding:20px 20px 22px; }
.bd-legacy .single-blog .blog-content > span a{ font-size:17.5px; line-height:1.32; }
.bd-legacy .single-blog .blog-content p{ font-size:14.5px; line-height:1.6; margin:0 0 15px; }
.bd-legacy .single-blog .blog-btn{ font-size:14.5px; }
.bd-legacy .row:has(> div > .single-blog){ margin-left:-10px; margin-right:-10px; }
.bd-legacy .row:has(> div > .single-blog) > [class*="col-"]{ padding-left:10px; padding-right:10px; }
.bd-legacy .text-center.mt-4,
.bd-legacy .row > .row.text-center{ margin-top:34px; }
.bd-legacy .text-center.mt-4 .default-btn{ margin-top:8px; }

/* ---- Form grid ----------------------------------------------------------- */
/* Gravity Forms marks each field gfield--width-half / --width-full but its own
   grid stylesheet is not loading here, so we lay the two columns out ourselves
   off those classes rather than off field order. */
.bd-form .gform_wrapper .gform_fields{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  grid-column-gap:24px; grid-row-gap:22px;
}
.bd-form .gform_wrapper .gfield{ grid-column:span 2; min-width:0; }
.bd-form .gform_wrapper .gfield--width-half{ grid-column:span 1; }
.bd-form .gform_wrapper .gfield--type-honeypot{ display:none; }
@media (max-width:700px){
  .bd-form .gform_wrapper .gform_fields{ grid-template-columns:1fr; }
  .bd-form .gform_wrapper .gfield,
  .bd-form .gform_wrapper .gfield--width-half{ grid-column:span 1; }
}

/* ---- Enquiry band -------------------------------------------------------- */
/* One card on a soft ground: portrait panel left, form right. The photo is a
   cut-out figure, so it is contained and stood on the panel floor rather than
   cropped, and the panel is a deeper tone than the ground so the card's left
   edge actually reads as an edge. */
.bd-legacy.bd-enquiry{ background:#F7F2EB; padding:76px 0; }
.bd-legacy.bd-enquiry > .container{ max-width:1200px; }
.bd-legacy.bd-enquiry .row{
  margin:0; align-items:stretch; background:#fff;
  border-radius:24px; overflow:hidden;
  box-shadow:0 1px 2px rgba(16,24,40,.05),
             0 18px 36px -14px rgba(16,24,40,.18),
             0 44px 80px -30px rgba(16,24,40,.22);
}
.bd-legacy.bd-enquiry .row > [class*="col-"]{ padding:0; }

.bd-legacy.bd-enquiry .row > [class*="col-"]:first-child{
  display:flex; align-items:flex-end; justify-content:center;
  background:linear-gradient(168deg,#EFE1D0 0%,#DFCBB2 100%);
  min-height:460px; position:relative; overflow:hidden;
}
.bd-legacy.bd-enquiry .row > [class*="col-"]:first-child::before{
  content:""; position:absolute; left:50%; bottom:-16%;
  width:82%; aspect-ratio:1; transform:translateX(-50%);
  border-radius:50%; background:rgba(255,255,255,.42);
}
.bd-legacy.bd-enquiry .row > [class*="col-"]:first-child img{
  position:relative; z-index:1;
  width:100%; height:100%; max-width:none; max-height:none;
  object-fit:contain; object-position:bottom center;
  padding:44px 26px 0; box-sizing:border-box;
  display:block; margin:0; border-radius:0;
}

.bd-legacy.bd-enquiry .row > [class*="col-"]:last-child{ padding:46px 48px 50px; }
.bd-legacy.bd-enquiry .overview-content h2,
.bd-legacy.bd-enquiry h2{
  font-size:32px; line-height:1.25; margin:0 0 26px; color:#222;
}
.bd-legacy.bd-enquiry .overview-content > p{ color:#6A6C72; margin:0 0 22px; }

@media (max-width:991px){
  .bd-legacy.bd-enquiry{ padding:48px 0; }
  .bd-legacy.bd-enquiry .row > [class*="col-"]:first-child{ min-height:340px; }
  .bd-legacy.bd-enquiry .row > [class*="col-"]:first-child img{ padding:30px 20px 0; }
  .bd-legacy.bd-enquiry .row > [class*="col-"]:last-child{ padding:32px 26px 36px; }
  .bd-legacy.bd-enquiry .overview-content h2,
  .bd-legacy.bd-enquiry h2{ font-size:26px; }
}

/* ---- Flush last full-bleed band against the footer ----------------------- */
body.bd-flush-bottom .site-content{ padding-bottom:0; }
body.bd-flush-bottom .inside-article{ padding-bottom:0; }
body.bd-flush-bottom .entry-content > .bd-legacy:last-child{ margin-bottom:0; }

/* ---- Site footer -------------------------------------------------------- */
.bd-footer{ background:#7C6651; color:#EDE4DA; padding:72px 0 34px; }
.bd-footer .grid-container{ max-width:1320px; }
.bd-footer a{ color:#EDE4DA; text-decoration:none; }
.bd-footer a:hover{ color:#fff; }

.bd-footer-top{ display:grid; grid-template-columns:260px 1fr; gap:44px; align-items:start; }
.bd-footer-brand img{ width:200px; height:auto; display:block; }
.bd-footer-intro{ margin:0; font-size:15px; line-height:1.85; color:#E3D7C9; }

.bd-footer-rule{ border:0; border-top:1px solid rgba(255,255,255,.18); margin:38px 0; height:0; }

.bd-footer-cols{ display:grid; grid-template-columns:1.5fr 1fr 1.1fr; gap:44px; }
.bd-footer-cols h3,
.bd-fcol .widget h3,
.bd-fcol .wp-block-heading{
  font-family:'Poppins',sans-serif; font-size:20px; line-height:1.3; font-weight:600;
  color:#fff; margin:0 0 22px; position:relative; padding-bottom:12px; }
.bd-footer-cols h3::after,
.bd-fcol .widget h3::after,
.bd-fcol .wp-block-heading::after{
  content:''; position:absolute; left:0; bottom:0; width:46px; height:2px; background:#D8B98F; }

.bd-fcol .widget{ padding:0; margin:0; }
.bd-fcol ul{ list-style:none; margin:0; padding:0; }

.bd-fcol--suburbs ul{ columns:2; column-gap:28px; }
.bd-fcol--suburbs li{ break-inside:avoid; font-size:14px; line-height:1.6; margin:0 0 9px; }
.bd-fcol--suburbs a{ color:#E3D7C9; }
.bd-fcol--suburbs a:hover{ color:#fff; text-decoration:underline; }

.bd-hours li{ display:flex; justify-content:space-between; gap:14px; font-size:14px;
  line-height:1.5; padding:9px 0; border-bottom:1px solid rgba(255,255,255,.10); }
.bd-hours li:last-child{ border-bottom:0; }
.bd-hours .bd-day{ color:#E3D7C9; }
.bd-hours .bd-time{ color:#fff; white-space:nowrap; }

.bd-contact li{ display:flex; align-items:flex-start; gap:14px; font-size:14px;
  line-height:1.6; margin:0 0 18px; color:#E3D7C9; }
.bd-contact .bd-ico{ flex:0 0 40px; width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center; }
.bd-contact .bd-ico img{ width:17px; height:17px; object-fit:contain; display:block; }
.bd-contact li > a,
.bd-contact li > span:not(.bd-ico){ padding-top:9px; }

.bd-social{ display:flex; gap:10px; margin-top:26px !important; }
.bd-social li{ margin:0; }
.bd-social a{ width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.12);
  display:flex; align-items:center; justify-content:center; transition:background .2s ease, transform .2s ease; }
.bd-social a:hover{ background:#996D45; transform:translateY(-2px); }
.bd-social img{ width:16px; height:16px; object-fit:contain; display:block; }

.bd-copyright{ display:flex; align-items:center; justify-content:center; gap:8px;
  font-size:14px; color:#E3D7C9; text-align:center; flex-wrap:wrap; }
.bd-copyright .bd-star img{ height:18px; width:auto; display:block; }

@media (max-width:900px){
  .bd-footer{ padding:54px 0 28px; }
  .bd-footer-top{ grid-template-columns:1fr; gap:26px; }
  .bd-footer-cols{ grid-template-columns:1fr; gap:36px; }
  .bd-footer-rule{ margin:30px 0; }
}
@media (max-width:520px){
  .bd-fcol--suburbs ul{ columns:1; }
}
/* ---- Flush tail --------------------------------------------------------- */
body.bd-flush-bottom .entry-content{ padding-bottom:0; }
.site-info{ display:none; }
/* ---- CTA panel --------------------------------------------------------- */
.bd-legacy.cta-section .cta-box{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.25);
  border-radius:18px;
  padding:45px 40px;
  text-align:center; }
.bd-legacy.cta-section .cta-box h2{ margin-top:0; }
.bd-legacy.cta-section .cta-box p:last-of-type{ margin-bottom:26px; }

/* ---- Nav dropdown ------------------------------------------------------- */
.main-navigation ul ul,
body.bd-sticky .main-navigation ul ul{
  background:#fff; border:1px solid rgba(16,24,40,.07); border-radius:12px;
  box-shadow:0 12px 34px rgba(16,24,40,.16); padding:6px 0; overflow:hidden; }
.main-navigation ul ul li a,
body.bd-sticky .main-navigation ul ul li a,
.main-navigation .main-nav ul ul li a{ color:#41474D !important; background:transparent !important;
  font-weight:500; padding:11px 22px; }
.main-navigation ul ul li a:hover,
.main-navigation ul ul li:hover > a,
.main-navigation ul ul li:focus-within > a,
.main-navigation ul ul li[class*="current"] > a{ color:#996D45 !important; background:#F7F2EB !important; }

/* ---- "With colour" about band ------------------------------------------- */
.bd-legacy.hospital-appointment-area-with-color{ background:#0D406D; }
.bd-legacy.hospital-appointment-area-with-color h2,
.bd-legacy.hospital-appointment-area-with-color h2 span,
.bd-legacy.hospital-appointment-area-with-color h3,
.bd-legacy.hospital-appointment-area-with-color .sub-title{ color:#fff; }
.bd-legacy.hospital-appointment-area-with-color p{ color:rgba(255,255,255,.85); }
.bd-legacy.hospital-appointment-area-with-color .about-image img{
  border-radius:14px; box-shadow:0 24px 60px -22px rgba(0,0,0,.55); }
.bd-legacy .about-info{ position:relative; padding:2px 0 0 46px; margin-bottom:26px; }
.bd-legacy .about-info h3{ font-size:19px; line-height:1.35; margin:0 0 8px; }
.bd-legacy .about-info p{ font-size:14.5px; line-height:1.75; margin:0; }
.bd-legacy .about-info i.bx-check{
  position:absolute; left:0; top:2px; width:30px; height:30px; border-radius:50%;
  background:#996D45; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E"); background-size:16px 16px;
  background-repeat:no-repeat; background-position:center; font-size:0; }

/* ---- Two bands side by side --------------------------------------------- */
.bd-duo{ display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:stretch;
  max-width:1350px; margin:0 auto; padding:90px 15px 80px; }
.bd-duo > .bd-legacy{ padding:0 !important; margin:0; background:none; display:flex; }
.bd-duo > .bd-legacy > .container{ max-width:none; width:100%; padding:0;
  display:flex; flex-direction:column; }
.bd-duo .row{ margin:0; display:block; }
.bd-duo [class*="col-"]{ flex:none; width:100%; max-width:100%; padding:0; }
.bd-duo .section-title-warp{ text-align:left; margin-bottom:22px; }
.bd-duo .section-title-warp h2{ font-size:27px; line-height:1.3; margin:10px 0 12px; }
.bd-duo .section-title-warp p{ font-size:15px; line-height:1.75; margin:0 0 18px; }
.bd-duo .single-doctor{
  background:#fff; border-radius:16px; overflow:hidden;
  box-shadow:0 1px 2px rgba(16,24,40,.06),
             0 12px 24px -8px rgba(16,24,40,.16),
             0 28px 48px -16px rgba(16,24,40,.20);
  transition:transform .3s ease, box-shadow .3s ease; }
.bd-duo .single-doctor:hover{ transform:translateY(-8px);
  box-shadow:0 1px 2px rgba(16,24,40,.06),
             0 18px 32px -8px rgba(16,24,40,.22),
             0 40px 64px -18px rgba(16,24,40,.26); }
.bd-duo .single-doctor > a{ display:block; overflow:hidden; }
.bd-duo .single-doctor img{ width:100%; height:330px; object-fit:cover; object-position:center 22%;
  display:block; border-radius:0; transition:transform .7s ease; }
.bd-duo .single-doctor:hover img{ transform:scale(1.06); }
.bd-duo .doctor-content{ padding:20px 22px; text-align:center; }
.bd-duo .doctor-content h3{ font-size:19px; margin:0; }
.bd-duo .doctor-content h3 a,
.bd-duo .doctor-content > a{ color:#41474D; text-decoration:none; }
.bd-duo .single-doctor:hover .doctor-content h3,
.bd-duo .single-doctor:hover .doctor-content h3 a{ color:#996D45; }

@media (max-width:900px){
  .bd-duo{ grid-template-columns:1fr; gap:44px; padding:60px 15px; }
  .bd-duo .single-doctor img{ height:280px; }
}

/* ---- Icon set (replaces flaticon / boxicons, which we did not migrate) ---- */
.bd-legacy i[class*="flaticon-"],
.bd-legacy i[class*="bx-"]{
  display:inline-block; vertical-align:middle; font-size:0 !important; line-height:0;
  background-repeat:no-repeat; background-position:center; background-size:contain; }
.bd-legacy i.flaticon-tooth,
.bd-legacy i.flaticon-tooth-1{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239CD5E0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3c-2 0-2.5 1-4 1S5 3.2 4.2 4.6C3 6.8 3.6 10 4.6 13c.8 2.4 1 5 1.6 6.4.4 1 1.6 1 1.9 0 .4-1.4.5-4.3 1.9-4.3s1.5 2.9 1.9 4.3c.3 1 1.5 1 1.9 0 .6-1.4.8-4 1.6-6.4 1-3 1.6-6.2.4-8.4C18.5 3.2 17.5 4 16 4s-2-1-4-1z'/%3E%3C/svg%3E"); }
.bd-legacy i.flaticon-tooth-2{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239CD5E0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3c-2 0-2.5 1-4 1S5 3.2 4.2 4.6C3 6.8 3.6 10 4.6 13c.8 2.4 1 5 1.6 6.4.4 1 1.6 1 1.9 0 .4-1.4.5-4.3 1.9-4.3s1.5 2.9 1.9 4.3c.3 1 1.5 1 1.9 0 .6-1.4.8-4 1.6-6.4 1-3 1.6-6.2.4-8.4C18.5 3.2 17.5 4 16 4s-2-1-4-1z'/%3E%3Cpath d='M8.6 7.2c.6-.7 1.4-1 2.4-1'/%3E%3C/svg%3E"); }
.bd-legacy i.flaticon-dental-care{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239CD5E0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3c-2 0-2.5 1-4 1S5 3.2 4.2 4.6C3 6.8 3.6 10 4.6 13c.8 2.4 1 5 1.6 6.4.4 1 1.6 1 1.9 0 .4-1.4.5-4.3 1.9-4.3s1.5 2.9 1.9 4.3c.3 1 1.5 1 1.9 0 .6-1.4.8-4 1.6-6.4 1-3 1.6-6.2.4-8.4C18.5 3.2 17.5 4 16 4s-2-1-4-1z'/%3E%3Cpath d='M15.6 9.6l1.6 1.7 3-3.2'/%3E%3C/svg%3E"); }
.bd-legacy i.flaticon-chair{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239CD5E0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3h4.5A2.5 2.5 0 0 1 14 5.5V12H7z'/%3E%3Cpath d='M4.5 12h14v2.5a3 3 0 0 1-3 3h-8a3 3 0 0 1-3-3z'/%3E%3Cpath d='M11.5 17.5V21'/%3E%3Cpath d='M8 21h7'/%3E%3Cpath d='M14 8h4.5'/%3E%3C/svg%3E"); }
.bd-legacy i.flaticon-dental-implant{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239CD5E0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5v5'/%3E%3Cpath d='M9.2 5h5.6'/%3E%3Cpath d='M9.8 8.5h4.4l-.7 10.4a1.5 1.5 0 0 1-3 0z'/%3E%3Cpath d='M10.1 11.8h3.8'/%3E%3Cpath d='M10.3 14.9h3.4'/%3E%3C/svg%3E"); }
.bd-legacy i.bx-map{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23996D45' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-5.4 7-11a7 7 0 1 0-14 0c0 5.6 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E"); }
.bd-legacy i.bx-send{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23996D45' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.5 2.5L2.8 9.9c-.8.3-.8 1.4 0 1.7l7 2.6 2.6 7c.3.8 1.4.8 1.7 0z'/%3E%3Cpath d='M21.5 2.5L9.8 14.2'/%3E%3C/svg%3E"); }
.bd-legacy i.bx-calendar{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23996D45' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.2' y='4.8' width='17.6' height='16' rx='2.4'/%3E%3Cpath d='M3.2 9.6h17.6'/%3E%3Cpath d='M8 2.8v4'/%3E%3Cpath d='M16 2.8v4'/%3E%3C/svg%3E"); }
.bd-legacy .sub-title i.flaticon-hashtag-symbol{
  width:13px; height:13px; margin-right:7px; background-size:13px 13px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314E49A' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 9h14M4.5 15h14M10.5 3.5L8 20.5M16.5 3.5L14 20.5'/%3E%3C/svg%3E"); }

/* ---- Service page cards -------------------------------------------------- */
body:not(.home) .bd-legacy.services-area .row > [class*="col-lg-4"]{ width:33.3333%; }
.bd-legacy.services-area .row > [class*="col-lg-4"]{ display:flex; }
.bd-legacy.services-area .row > .col-lg-7{ display:block; }
.bd-legacy .single-services-item{
  width:100%; background:#fff; border-radius:16px; padding:10px 10px 0; margin-bottom:30px;
  display:flex; flex-direction:column;
  box-shadow:0 1px 2px rgba(16,24,40,.06),
             0 12px 24px -8px rgba(16,24,40,.16),
             0 28px 48px -16px rgba(16,24,40,.20);
  transition:transform .3s ease, box-shadow .3s ease; }
.bd-legacy .single-services-item:hover{ transform:translateY(-10px);
  box-shadow:0 1px 2px rgba(16,24,40,.06),
             0 18px 32px -8px rgba(16,24,40,.22),
             0 40px 66px -18px rgba(16,24,40,.26); }
.bd-legacy .single-services-item .services-image{ position:relative; border-radius:10px; overflow:hidden; }
.bd-legacy .single-services-item .services-image > a{ display:block; overflow:hidden; border-radius:10px; }
.bd-legacy .single-services-item .services-image img{
  width:100%; height:300px; object-fit:cover; display:block; border-radius:10px;
  transition:transform .7s ease; }
.bd-legacy .single-services-item:hover .services-image img{ transform:scale(1.07); }
.bd-legacy .single-services-item .icon{
  position:absolute; right:16px; bottom:16px; width:66px; height:66px; border-radius:50%;
  background:#fff; box-shadow:0 10px 26px rgba(16,24,40,.14);
  display:flex; align-items:center; justify-content:center; z-index:2;
  transition:transform .3s ease; }
.bd-legacy .single-services-item:hover .icon{ transform:scale(1.08); }
.bd-legacy .single-services-item .icon a{ display:flex; align-items:center; justify-content:center;
  width:100%; height:100%; }
.bd-legacy .single-services-item .icon i{ width:34px; height:34px; }
.bd-legacy .single-services-item .services-content{
  padding:26px 18px 26px; text-align:center; flex:1 1 auto; display:flex; flex-direction:column; }
.bd-legacy .single-services-item .services-content h3{ font-size:22px; line-height:1.3; margin:0 0 12px; }
.bd-legacy .single-services-item .services-content h3 a{ color:#41474D; text-decoration:none;
  transition:color .25s ease; }
.bd-legacy .single-services-item:hover .services-content h3 a{ color:#996D45; }
.bd-legacy .single-services-item .services-content p{
  font-size:15px; line-height:1.75; color:#6A6C72; margin:0 0 22px; flex:1 1 auto; }
.bd-legacy .single-services-item .services-content .default-btn{
  align-self:center; display:inline-flex; align-items:center; gap:8px;
  background:#996D45; color:#fff; border-radius:50px; padding:11px 26px;
  font-size:14px; font-weight:600; letter-spacing:.2px; text-decoration:none; border:0;
  box-shadow:0 8px 18px -6px rgba(153,109,69,.55);
  transition:background .25s ease, transform .25s ease, box-shadow .25s ease; }
.bd-legacy .single-services-item .services-content .default-btn:hover{
  background:#7C6651; transform:translateY(-2px);
  box-shadow:0 12px 24px -6px rgba(124,102,81,.6); }

@media (max-width:991px){
  body:not(.home) .bd-legacy.services-area .row > [class*="col-lg-4"]{ width:50%; }
}
@media (max-width:640px){
  body:not(.home) .bd-legacy.services-area .row > [class*="col-lg-4"]{ width:100%; }
  .bd-legacy .single-services-item .services-image img{ height:260px; }
}

/* ---- Plain practitioner / feature cards outside the team page ------------ */
.entry-content > .bd-legacy .single-doctor:not(.team-card){
  border-radius:16px; overflow:hidden; background:#fff;
  box-shadow:0 1px 2px rgba(16,24,40,.06),
             0 12px 24px -8px rgba(16,24,40,.16),
             0 28px 48px -16px rgba(16,24,40,.20);
  transition:transform .3s ease, box-shadow .3s ease; }
.entry-content > .bd-legacy .single-doctor:not(.team-card):hover{ transform:translateY(-8px);
  box-shadow:0 1px 2px rgba(16,24,40,.06),
             0 18px 32px -8px rgba(16,24,40,.22),
             0 40px 64px -18px rgba(16,24,40,.26); }
.entry-content > .bd-legacy .single-doctor:not(.team-card) > a{ display:block; overflow:hidden; }
.entry-content > .bd-legacy .single-doctor:not(.team-card) img{
  width:100%; height:340px; object-fit:cover; object-position:center 20%;
  border-radius:0; display:block; transition:transform .7s ease; }
.entry-content > .bd-legacy .single-doctor:not(.team-card):hover img{ transform:scale(1.06); }
.entry-content > .bd-legacy .single-doctor:not(.team-card) .doctor-content{
  padding:22px 24px 26px; text-align:center; }
.entry-content > .bd-legacy .single-doctor:not(.team-card) .doctor-content h3{
  font-size:20px; margin:0; }
.entry-content > .bd-legacy .single-doctor:not(.team-card) .doctor-content a{
  color:#41474D; text-decoration:none; transition:color .25s ease; }
.entry-content > .bd-legacy .single-doctor:not(.team-card):hover .doctor-content a{ color:#996D45; }

/* ---- Service detail band image ------------------------------------------- */
.bd-legacy.services-details-area img{
  border-radius:16px; box-shadow:0 24px 60px -26px rgba(16,24,40,.45); }

/* ---- Blog index ---------------------------------------------------------- */
.bd-legacy.bd-blog-index{ padding:80px 0 90px; }
.bd-legacy.bd-blog-index .row{ align-items:stretch; }
.bd-legacy.bd-blog-index .row > [class*="col-"]{ display:flex; margin-bottom:30px; }
.bd-legacy.bd-blog-index .single-blog{ width:100%; display:flex; flex-direction:column; }
.bd-legacy.bd-blog-index .blog-image{ overflow:hidden; }
.bd-legacy.bd-blog-index .blog-image img{ aspect-ratio:16/11; height:auto; width:100%;
  object-fit:cover; display:block; }
.bd-legacy.bd-blog-index .blog-content{ flex:1 1 auto; display:flex; flex-direction:column; }
.bd-legacy.bd-blog-index .blog-date{ display:block; font-size:12.5px; font-weight:600;
  letter-spacing:.6px; text-transform:uppercase; color:#996D45; margin:0 0 9px; }
.bd-legacy.bd-blog-index .blog-content p{ flex:1 1 auto; }
.bd-legacy.bd-blog-index .blog-btn{ align-self:flex-start; }

/* pagination */
.bd-pagination{ margin-top:26px; }
.bd-pagination ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap;
  gap:8px; justify-content:center; }
.bd-pagination li{ margin:0; }
.bd-pagination a, .bd-pagination span{
  display:flex; align-items:center; justify-content:center; min-width:42px; height:42px;
  padding:0 12px; border-radius:10px; font-size:15px; font-weight:600; text-decoration:none;
  background:#F7F2EB; color:#7C6651; border:1px solid #EADFD1;
  transition:background .2s ease, color .2s ease, transform .2s ease; }
.bd-pagination a:hover{ background:#996D45; color:#fff; border-color:#996D45; transform:translateY(-2px); }
.bd-pagination .current{ background:#996D45; color:#fff; border-color:#996D45; }

/* ---- Band spacing rhythm -------------------------------------------------
 * The legacy markup carries Bootstrap-style spacing utilities (pt-100, pb-70,
 * ptb-100 ...) but our component sheet only ever set padding per band TYPE,
 * so any band whose type we had not styled came out with zero padding and sat
 * flush against its neighbour. These rules give every band a floor, and make
 * the source's own utilities work as utilities.
 *
 * :where() keeps specificity at 0,1,0 so a band that already has a measured
 * per-type value keeps it -- nothing already approved shifts.
 * ---------------------------------------------------------------------- */
.entry-content > :where(.bd-legacy:not(.modal):not(.text-band)){
  padding-top:70px; padding-bottom:70px; }

.entry-content > :where(.bd-legacy.pt-100){ padding-top:80px; }
.entry-content > :where(.bd-legacy.pb-100){ padding-bottom:80px; }
.entry-content > :where(.bd-legacy.pt-70){ padding-top:50px; }
.entry-content > :where(.bd-legacy.pb-70){ padding-bottom:50px; }
.entry-content > :where(.bd-legacy.pt-60){ padding-top:48px; }
.entry-content > :where(.bd-legacy.pb-60){ padding-bottom:48px; }
.entry-content > :where(.bd-legacy.pt-50){ padding-top:40px; }
.entry-content > :where(.bd-legacy.pb-50){ padding-bottom:40px; }
.entry-content > :where(.bd-legacy.ptb-100){ padding-top:80px; padding-bottom:80px; }

/* the same inside a paired duo, where the wrapper owns the outer spacing */
.bd-duo > .bd-legacy,
.bd-duo > .bd-legacy.pt-100,
.bd-duo > .bd-legacy.ptb-100{ padding-top:0 !important; padding-bottom:0 !important; }

/* A section heading block should never sit hard against the band above it. */
.bd-legacy .section-title-warp{ margin-top:0; }
.bd-legacy > .container > .row > .col-lg-12 > .section-title-warp,
.bd-legacy > .container > .section-title-warp{ margin-bottom:34px; }

@media (max-width:900px){
  .entry-content > :where(.bd-legacy:not(.modal):not(.text-band)){
    padding-top:52px; padding-bottom:52px; }
  .entry-content > :where(.bd-legacy.pt-100){ padding-top:58px; }
  .entry-content > :where(.bd-legacy.ptb-100){ padding-top:58px; padding-bottom:58px; }
  .entry-content > :where(.bd-legacy.pb-100){ padding-bottom:58px; }
}

/* ---- Text-and-image bands: make the picture match the copy block ---------
 * Marked at runtime: a two-column row where one column is nothing but an
 * image gets .bd-media-col, its partner .bd-text-col. The image then fills
 * its column, so its top and bottom line up with the text beside it.
 * ---------------------------------------------------------------------- */
.bd-legacy .row.bd-media-row{ align-items:stretch !important; }
.bd-legacy .bd-media-col{ display:flex; }
.bd-legacy .bd-media-col > *{ width:100%; display:flex; }
.bd-legacy .bd-media-col img{
  width:100%; height:100%; min-height:320px; max-height:none;
  object-fit:cover; object-position:center 25%;
  display:block; border-radius:16px; margin:0;
  box-shadow:0 22px 55px -28px rgba(16,24,40,.45); }
.bd-legacy .bd-text-col{ display:flex; flex-direction:column; justify-content:center; }
.bd-legacy .bd-text-col > *{ width:100%; }
.bd-legacy .bd-media-row > [class*="col-"]{ margin-bottom:0; }

/* the About band keeps its own overlapping treatment */
.bd-legacy.about-area .row.bd-media-row{ align-items:center !important; }
.bd-legacy.about-area .bd-media-col img{ height:auto; min-height:0; object-fit:contain; }

@media (max-width:991px){
  .bd-legacy .row.bd-media-row{ align-items:center !important; }
  .bd-legacy .bd-media-col img{ height:auto; min-height:0; object-fit:cover;
    aspect-ratio:4/3; margin-bottom:26px; }
}

/* ---- Page banner, matched to the current site ----------------------------
 * The old flat rgba(0,0,0,.38) veil was washing the whole banner (and the
 * logo sitting over it) grey. The original has no veil at all; this is a
 * left-weighted gradient instead, so the copy stays legible while the
 * right-hand side of the photograph keeps its real colour.
 * ---------------------------------------------------------------------- */
.entry-header::before{
  background:linear-gradient(90deg,
    rgba(0,0,0,.34) 0%, rgba(0,0,0,.22) 32%,
    rgba(0,0,0,.08) 58%, rgba(0,0,0,0) 78%) !important; }

body:not(.home) .entry-header{
  min-height:510px; padding:180px 0 60px !important;
  display:flex; flex-direction:column; justify-content:center; }
body:not(.home) .entry-header > *{
  width:100%; max-width:1320px; margin-left:auto; margin-right:auto;
  padding-left:15px; padding-right:15px; box-sizing:border-box; position:relative; z-index:2; }
body:not(.home) .entry-header .entry-title{
  font-size:40px; line-height:1.25; text-align:left; margin:0 0 14px; max-width:640px; }

.bd-crumbs ol{ list-style:none; display:flex; flex-wrap:wrap; align-items:center;
  gap:10px; margin:0 0 22px; padding:0; }
.bd-crumbs li{ font-size:16px; color:#fff; margin:0; }
.bd-crumbs li + li::before{ content:'/'; margin-right:10px; opacity:.65; }
.bd-crumbs a{ color:rgba(255,255,255,.88); text-decoration:none; }
.bd-crumbs a:hover{ color:#fff; text-decoration:underline; }
.bd-crumbs li[aria-current]{ color:#fff; font-weight:600; }

.bd-banner-btn{ display:inline-flex; align-items:center; justify-content:center;
  background:#996D45; color:#fff !important; text-decoration:none;
  padding:12px 28px; border-radius:8px; font-size:15px; font-weight:600;
  box-shadow:0 10px 24px -10px rgba(0,0,0,.55);
  transition:background .25s ease, transform .25s ease; width:auto; align-self:flex-start; }
.bd-banner-btn:hover{ background:#7C6651; transform:translateY(-2px); }
body:not(.home) .entry-header .bd-banner-btn{ max-width:1320px; }

/* Header logo needs to hold up over a lighter banner */
.site-header .site-logo img{ filter:drop-shadow(0 2px 6px rgba(0,0,0,.45)); }

@media (max-width:900px){
  body:not(.home) .entry-header{ min-height:360px; padding:140px 0 44px !important; }
  body:not(.home) .entry-header .entry-title{ font-size:30px; }
}

/* ---- Banner container alignment (override) ------------------------------ */
body:not(.home) .entry-header{
  padding:180px max(15px, calc((100vw - 1320px) / 2)) 60px !important;
  align-items:flex-start !important; }
body:not(.home) .entry-header > *{
  max-width:none; margin-left:0; margin-right:0; padding-left:0; padding-right:0; }
body:not(.home) .entry-header .entry-title{ max-width:640px; margin:0 0 14px; }

/* ---- Banner button must not stretch ------------------------------------- */
body:not(.home) .entry-header .bd-banner-btn{
  width:auto !important; max-width:none !important; align-self:flex-start !important;
  flex:0 0 auto; }
body:not(.home) .entry-header .entry-title,
body:not(.home) .entry-header .bd-crumbs{ width:auto; max-width:900px; }

/* ---- Bands with no .container must still be held to the grid -------------
 * A few legacy bands (the braces / invisalign appointment band, for one) have
 * no .container at all, so at wide viewports their contents ran the full
 * width of the screen and the enquiry form spilled off the left edge.
 * ---------------------------------------------------------------------- */
.entry-content > .bd-legacy > *:not(.container):not(style):not(script){
  max-width:1320px; margin-left:auto; margin-right:auto; }
.entry-content > .bd-legacy.bd-enquiry > *:not(.container):not(style):not(script){
  max-width:1200px; }
.entry-content > .bd-legacy{ padding-left:15px; padding-right:15px; }
.entry-content > .bd-legacy > .container{ padding-left:0; padding-right:0; }



/* ---- Legacy booking modals ---------------------------------------------- */
.entry-content .modal{ display:none; }
.entry-content .bd-modal{
  display:flex !important; position:fixed; inset:0; z-index:99999;
  align-items:center; justify-content:center; padding:24px;
  background:rgba(16,24,40,.62); overflow-y:auto;
  max-width:none !important; margin:0 !important; }
.entry-content .bd-modal[hidden]{ display:none !important; }
.entry-content .bd-modal .modal-dialog{
  width:100%; max-width:760px !important; margin:auto !important;
  background:none; border:0; box-shadow:none; }
.entry-content .bd-modal .modal-content{
  background:#fff; border:0; border-radius:20px; padding:30px 32px 28px;
  box-shadow:0 40px 90px -30px rgba(16,24,40,.55); }
.entry-content .bd-modal .modal-header{
  border:0; padding:0 0 14px; display:flex; align-items:flex-start;
  justify-content:space-between; gap:16px; }
.entry-content .bd-modal .modal-body{ padding:0; }
.entry-content .bd-modal .modal-footer{ border:0; padding:14px 0 0; }
.entry-content .bd-modal h2,
.entry-content .bd-modal h3,
.entry-content .bd-modal h4,
.entry-content .bd-modal .modal-title{ font-size:24px; margin:0; }
.entry-content .bd-modal .bd-form{ margin:0; }
.entry-content .bd-modal button,
.entry-content .bd-modal a{ cursor:pointer; }

/* ---- Appointment band: the teal panel from the original ------------------ */
.bd-legacy .appointment-inner-box{
  background-image:url('/wp-content/uploads/2026/09/serviseimg.jpg');
  background-size:cover; background-position:center;
  border-radius:50px; padding:76px 56px; position:relative; overflow:hidden; }
.bd-legacy .appointment-inner-box h2,
.bd-legacy .appointment-inner-box h3{ color:#0D406E; font-size:32px; line-height:1.25; margin:0 0 10px; }
.bd-legacy .appointment-inner-box p{ color:#0D406E; font-size:16px; line-height:1.7; margin:0; }
.bd-legacy .appointment-inner-box a{
  display:inline-flex; align-items:center; justify-content:center;
  background:#0D406E; color:#fff !important; text-decoration:none;
  padding:12px 26px; border-radius:5px; font-size:15px; font-weight:600;
  transition:background .25s ease, transform .25s ease; }
.bd-legacy .appointment-inner-box a:hover{ background:#092e4f; transform:translateY(-2px); }
.bd-legacy .appointment-inner-box .row{ align-items:center; }

/* ---- Legacy accordions --------------------------------------------------- */
.bd-inline-acc{ border:1px solid #ECE3D8; border-radius:14px; overflow:hidden; background:#fff;
  box-shadow:0 1px 2px rgba(16,24,40,.05), 0 14px 30px -18px rgba(16,24,40,.22); }
.bd-inline-acc .accordion-item{ border:0; border-bottom:1px solid #F0E8DE; background:transparent; }
.bd-inline-acc .accordion-item:last-child{ border-bottom:0; }
.bd-inline-acc .accordion-header{ margin:0; }
.bd-inline-acc .accordion-button{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:18px;
  background:transparent; border:0; box-shadow:none; text-align:left;
  font-family:'Poppins',sans-serif; font-size:17px; font-weight:600; color:#41474D;
  padding:18px 22px; cursor:pointer; transition:background .2s ease, color .2s ease; }
.bd-inline-acc .accordion-button:hover{ background:#FBF7F2; color:#996D45; }
.bd-inline-acc .accordion-button:not(.collapsed){ background:#F7F2EB; color:#7C6651; }
.bd-inline-acc .accordion-button::after{
  content:''; flex:0 0 20px; width:20px; height:20px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23996D45' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-size:contain; background-repeat:no-repeat;
  background-position:center; transition:transform .3s ease; }
.bd-inline-acc .accordion-button:not(.collapsed)::after{ transform:rotate(180deg); }

.bd-inline-acc .bd-acc-panel{
  display:grid; grid-template-rows:0fr; transition:grid-template-rows .32s ease;
  visibility:hidden; }
.bd-inline-acc .bd-acc-panel.is-open{ grid-template-rows:1fr; visibility:visible; }
.bd-inline-acc .bd-acc-panel > *{ overflow:hidden; min-height:0; }
.bd-inline-acc .accordion-body{ padding:4px 22px 20px; color:#6A6C72; font-size:15px; line-height:1.8; }
.bd-inline-acc .accordion-body p:last-child{ margin-bottom:0; }

@media (max-width:900px){
  .bd-legacy .appointment-inner-box{ border-radius:26px; padding:44px 26px; }
  .bd-legacy .appointment-inner-box h2{ font-size:24px; }
}

/* ---- Banner: line the three elements up, and a proper button ------------- */
body:not(.home) .entry-header .entry-title{
  padding-left:0 !important; padding-right:0 !important; margin-left:0; }
body:not(.home) .entry-header .bd-crumbs,
body:not(.home) .entry-header .bd-crumbs ol{ padding-left:0; margin-left:0; }
body:not(.home) .entry-header .bd-crumbs ol{ margin-bottom:26px; }

body:not(.home) .entry-header .bd-banner-btn{
  padding:14px 32px !important; border-radius:50px; font-size:15px; font-weight:600;
  letter-spacing:.2px; gap:10px;
  background:#996D45; border:1px solid rgba(255,255,255,.28);
  box-shadow:0 12px 28px -12px rgba(0,0,0,.6);
  transition:background .25s ease, transform .25s ease, box-shadow .25s ease; }
body:not(.home) .entry-header .bd-banner-btn::after{
  content:''; width:16px; height:16px; flex:0 0 16px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 6 15 12 9 18'/%3E%3C/svg%3E");
  background-size:contain; background-repeat:no-repeat; background-position:center;
  transition:transform .25s ease; }
body:not(.home) .entry-header .bd-banner-btn:hover{
  background:#7C6651; transform:translateY(-2px);
  box-shadow:0 16px 34px -12px rgba(0,0,0,.65); }
body:not(.home) .entry-header .bd-banner-btn:hover::after{ transform:translateX(3px); }

/* ---- No gap between the banner and the first band ------------------------ */
body:not(.home) .entry-header{ margin-bottom:0 !important; }
body:not(.home) .entry-content{ margin-top:0 !important; padding-top:0 !important; }
body:not(.home) .entry-content > .bd-legacy:first-of-type,
body:not(.home) .entry-content > style + .bd-legacy{ margin-top:0 !important; }
body:not(.home) .inside-article{ padding-top:0 !important; }

/* ---- Responsive: scrollbar-safe full bleed, and mobile rhythm ------------ */
html{ overflow-x:hidden; }
body{ overflow-x:hidden; }

.entry-content > .bd-legacy,
.bd-hero,
body:not(.home) .entry-header{
  width:calc(100vw - var(--bd-sbw, 0px)) !important;
  max-width:calc(100vw - var(--bd-sbw, 0px)) !important;
  margin-left:calc(50% - (100vw - var(--bd-sbw, 0px)) / 2) !important;
  margin-right:calc(50% - (100vw - var(--bd-sbw, 0px)) / 2) !important; }

.entry-content > .bd-legacy > .container,
.entry-content > .bd-legacy > *:not(.container):not(style):not(script){
  padding-left:0; padding-right:0; }

@media (max-width:991px){
  .bd-legacy .row{ margin-left:0; margin-right:0; }
  .bd-legacy [class*="col-"]{ width:100%; max-width:100%; padding-left:0; padding-right:0; }
  .bd-legacy .row > [class*="col-"] + [class*="col-"]{ margin-top:26px; }
  .bd-legacy .col-md-6{ width:100%; }
  .entry-content > .bd-legacy{ padding-left:18px; padding-right:18px; }
  .bd-legacy h2{ font-size:26px; line-height:1.3; }
  .bd-legacy h3{ font-size:19px; }
  .bd-legacy .sub-title{ font-size:15px; }
  .bd-duo{ padding:52px 18px; }
  .bd-legacy .appointment-inner-box{ padding:38px 22px; border-radius:24px; }
  .bd-legacy .appointment-inner-box h2{ font-size:23px; }
  .bd-footer .grid-container{ padding-left:18px; padding-right:18px; }
}

@media (max-width:640px){
  .bd-legacy [class*="col-lg-"],
  .bd-legacy [class*="col-md-"]{ width:100% !important; }
  .bd-legacy .single-services-item .services-image img,
  .entry-content > .bd-legacy .single-doctor:not(.team-card) img{ height:230px; }
  .bd-legacy.bd-blog-index .blog-image img{ aspect-ratio:16/10; }
  .bd-legacy h2{ font-size:23px; }
  body:not(.home) .entry-header .entry-title{ font-size:27px; }
  body:not(.home) .entry-header{ min-height:330px; padding-top:130px !important; padding-bottom:38px !important; }
  .bd-crumbs li{ font-size:14px; }
  .bd-legacy .about-info{ padding-left:42px; }
  .gform_wrapper .gform_fields{ grid-template-columns:1fr !important; }
  .bd-modal .modal-content{ padding:22px 18px 20px; }
}

/* ---- Logo: white over the banner, brand colour on the solid mobile bar ----
 * The mark has no light pixels of its own, so it is knocked to white with a
 * filter wherever the header sits over a photograph, and left alone where the
 * header is a solid white bar (mobile).
 * ---------------------------------------------------------------------- */
@media (min-width:769px){
  .site-header .site-logo img{
    filter:brightness(0) invert(1) drop-shadow(0 2px 6px rgba(0,0,0,.45)); }
}
@media (max-width:768px){
  .site-header .site-logo img{ filter:none; }
  .site-header{ background:#fff; }
  .main-navigation .main-nav ul li > a{ color:#41474D !important; }
  .main-navigation .menu-toggle{ color:#41474D; }
}

/* ---- Blog card titles: no underline ------------------------------------- */
.single-blog h3 a,
.single-blog .blog-content > a,
.bd-blog-index h3 a{ text-decoration:none !important; }
.single-blog h3 a:hover,
.bd-blog-index h3 a:hover{ text-decoration:none !important; color:#996D45; }

/* ---- Home page blog carousel -------------------------------------------- */
.bd-blog-wrap{ position:relative; }
.bd-legacy .row.bd-blog-carousel{
  display:flex !important; flex-wrap:nowrap !important; overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x mandatory; scroll-behavior:smooth; gap:20px;
  margin:0; padding:6px 2px 18px; scrollbar-width:none; }
.bd-legacy .row.bd-blog-carousel::-webkit-scrollbar{ display:none; }
.bd-legacy .row.bd-blog-carousel > [class*="col-"]{
  flex:0 0 300px; width:300px; max-width:300px; padding:0; margin:0;
  scroll-snap-align:start; display:flex; }
.bd-blog-carousel .single-blog{ width:100%; display:flex; flex-direction:column; }
.bd-blog-carousel .blog-image img{ aspect-ratio:16/10; height:auto; width:100%; object-fit:cover; }
.bd-blog-carousel .blog-content{ padding:16px 16px 18px; flex:1 1 auto; display:flex; flex-direction:column; }
.bd-blog-carousel .blog-date{ font-size:11.5px; margin-bottom:6px; }
.bd-blog-carousel .blog-content h3{ font-size:16px; line-height:1.35; margin:0 0 8px; }
.bd-blog-carousel .blog-content p{ font-size:13.5px; line-height:1.65; margin:0 0 14px; flex:1 1 auto; }
.bd-blog-carousel .blog-btn{ font-size:13.5px; align-self:flex-start; }

@media (max-width:640px){
  .bd-legacy .row.bd-blog-carousel > [class*="col-"]{ flex:0 0 258px; width:258px; max-width:258px; }
}

/* ---- Enquiry band: smaller ---------------------------------------------- */
.bd-legacy.bd-enquiry{ padding:56px 0; }
.bd-legacy.bd-enquiry .row > [class*="col-"]:first-child{ min-height:360px; }
.bd-legacy.bd-enquiry .row > [class*="col-"]:first-child img{ padding:30px 20px 0; }
.bd-legacy.bd-enquiry .row > [class*="col-"]:last-child{ padding:34px 36px 36px; }
.bd-legacy.bd-enquiry h2{ font-size:25px; line-height:1.3; margin:0 0 18px; }
.bd-form .gform_wrapper .gform_fields{ grid-row-gap:15px; grid-column-gap:18px; }
.bd-form .gform_wrapper .gfield_label{ font-size:14.5px; margin-bottom:5px; }
.bd-form .gform_wrapper input[type=text],
.bd-form .gform_wrapper input[type=email],
.bd-form .gform_wrapper input[type=tel],
.bd-form .gform_wrapper select{ padding:10px 13px; font-size:14.5px; }
.bd-form .gform_wrapper textarea{ padding:10px 13px; font-size:14.5px; height:104px; min-height:104px; }
.bd-form .gform_wrapper .gform_footer{ margin-top:16px; padding-top:0; }
.bd-form .gform_wrapper .gform_button{ padding:11px 30px; font-size:14.5px; }

/* ---- Enquiry band size (specificity bump) -------------------------------- */
.bd-legacy.bd-enquiry .bd-form .gform_wrapper textarea,
.entry-content .bd-legacy .bd-form .gform_wrapper textarea{
  height:104px !important; min-height:104px !important; padding:10px 13px; font-size:14.5px; }
.bd-legacy.bd-enquiry .row > [class*="col-"]:last-child h2,
.entry-content .bd-legacy.bd-enquiry h2{ font-size:25px !important; line-height:1.3; margin:0 0 16px; }
.bd-legacy.bd-enquiry .bd-form .gform_wrapper .gform_fields{
  grid-row-gap:14px !important; grid-column-gap:18px !important; }
.bd-legacy.bd-enquiry .bd-form .gform_wrapper .gfield_label{ font-size:14.5px !important; margin-bottom:5px; }
.bd-legacy.bd-enquiry .bd-form .gform_wrapper input,
.bd-legacy.bd-enquiry .bd-form .gform_wrapper select{ padding:10px 13px !important; font-size:14.5px !important; }
.bd-legacy.bd-enquiry .bd-form .gform_wrapper .gform_footer{ margin-top:14px !important; padding-top:0 !important; }

/* ---- Enquiry band: overall scale ----------------------------------------- */
.entry-content > .bd-legacy.bd-enquiry{ padding:48px 15px !important; }
.entry-content > .bd-legacy.bd-enquiry > .container,
.entry-content > .bd-legacy.bd-enquiry > *:not(.container):not(style):not(script){
  max-width:1040px !important; }
.bd-legacy.bd-enquiry .row > [class*="col-"]:first-child{ min-height:0; }
.bd-legacy.bd-enquiry .row > [class*="col-"]:first-child img{ padding:24px 18px 0; }
.bd-legacy.bd-enquiry .row > [class*="col-"]:last-child{ padding:30px 32px 32px !important; }
.bd-legacy.bd-enquiry .bd-form .gform_wrapper .gform_fields{ grid-row-gap:12px !important; }

/* =====================================================================
   Persistent contact bar (mobile)
   ===================================================================== */
.bd-actionbar{ display:none; }

@media (max-width:768px){
  .bd-actionbar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:9999;
    gap:1px; background:#e6e0d8;
    box-shadow:0 -6px 18px rgba(0,0,0,.18);
    padding-bottom:env(safe-area-inset-bottom, 0px);
  }
  .bd-actionbar__btn{
    flex:1 1 50%; display:flex; align-items:center; justify-content:center; gap:8px;
    min-height:58px; padding:10px 8px;
    font-family:'Poppins', sans-serif; font-size:14px; font-weight:600; line-height:1.2;
    text-align:center; text-decoration:none; letter-spacing:.01em;
  }
  .bd-actionbar__btn:hover,
  .bd-actionbar__btn:focus{ text-decoration:none; }
  .bd-actionbar__btn svg{ flex:0 0 auto; }
  .bd-actionbar__call{ background:#41474D; color:#fff; }
  .bd-actionbar__book{ background:#996D45; color:#fff; }
  .bd-actionbar__call:hover,.bd-actionbar__call:focus{ background:#333940; color:#fff; }
  .bd-actionbar__book:hover,.bd-actionbar__book:focus{ background:#7C6651; color:#fff; }
  body{ padding-bottom:calc(58px + env(safe-area-inset-bottom, 0px)); }
  .bd-footer{ margin-bottom:0; }
}
@media (max-width:400px){
  .bd-actionbar__btn{ font-size:13px; gap:6px; }
  .bd-actionbar__call span{ }
}

/* =====================================================================
   Mobile pass 2 - type scale, gutters, rhythm, footer
   ===================================================================== */
@media (max-width:768px){

  /* --- gutters: give the content column back ~48px --- */
  .site-content{ padding-left:0 !important; padding-right:0 !important; }
  .entry-content{ padding-left:16px !important; padding-right:16px !important; }

  /* --- type scale --- */
  .entry-content h1, .entry-header h1, .bd-hero h1, h1.entry-title{
    font-size:32px !important; line-height:1.22 !important; }
  .entry-content h2, .section-title h2, .bd-legacy h2{
    font-size:26px !important; line-height:1.28 !important; }
  .entry-content h3, .bd-legacy h3{
    font-size:20px !important; line-height:1.35 !important; }
  .entry-content h4, .bd-legacy h4{ font-size:18px !important; line-height:1.4 !important; }
  .entry-content p, .entry-content li{ font-size:16px; line-height:1.65; }
  .entry-content h1, .entry-content h2, .entry-content h3,
  .entry-content h4, .entry-content p, .entry-content li{ overflow-wrap:break-word; }

  /* --- vertical rhythm: 70px bands are too tall on a phone --- */
  .entry-content > :where(.bd-legacy:not(.modal):not(.text-band)){
    padding-top:44px; padding-bottom:44px; }
  .entry-content > :where(.bd-legacy.pt-100){ padding-top:48px; }
  .entry-content > :where(.bd-legacy.pb-100){ padding-bottom:48px; }

  /* --- header: 120px was a third of the screen --- */
  .site-header{ padding-top:10px !important; padding-bottom:10px !important; }
  .site-header .site-logo img{ max-height:46px !important; width:auto !important; height:auto !important; }

  /* --- interior page banner --- */
  body:not(.home) .entry-header{
    min-height:280px !important;
    padding:112px 18px 38px !important; }

  /* --- media --- */
  .bd-media-col img, .bd-text-col img{ width:100%; height:auto; }
  .so-photo-placeholder{ width:100% !important; min-width:0 !important; }
  .entry-content img{ max-width:100%; height:auto; }
  .entry-content iframe, .bd-legacy iframe{ max-width:100%; }
  .bd-legacy table{ display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; }

  /* --- footer: suburb list was 608px in one column --- */
  .bd-footer .bd-suburbs{ column-count:2; column-gap:24px; }
  .bd-footer .bd-suburbs li{ break-inside:avoid; }
  .bd-footer-intro{ font-size:15px; line-height:1.6; }
  .bd-footer-cols{ gap:26px; }
  .bd-footer a{ display:inline-block; padding:3px 0; }
}

@media (max-width:480px){
  .entry-content h1, .entry-header h1, .bd-hero h1, h1.entry-title{ font-size:29px !important; }
  .entry-content h2, .section-title h2, .bd-legacy h2{ font-size:24px !important; }
  .entry-content h3, .bd-legacy h3{ font-size:19px !important; }
  body:not(.home) .entry-header{ min-height:250px !important; padding:104px 16px 32px !important; }
  .bd-hero .cmn-btn, .bd-hero .default-btn, .bd-hero .btn{
    width:100%; justify-content:center; text-align:center; }
}

/* --- mobile header: logo and burger on one line (was 120px tall) --- */
@media (max-width:768px){
  .site-header .inside-header{
    position:relative;
    padding-top:12px !important; padding-bottom:12px !important; }
  .site-header .inside-header .site-logo{ margin:0 !important; }
  .site-header .main-navigation{ margin:0 !important; }
  .site-header .main-navigation .menu-toggle{
    position:absolute; top:11px; right:10px;
    height:48px !important; line-height:48px !important; margin:0 !important; }
  .site-header .main-navigation:not(.toggled) .inside-navigation{ min-height:0; }
  .site-header .main-navigation:not(.toggled){ height:0; overflow:visible; }

  /* banner clears the shorter header */
  body:not(.home) .entry-header{
    min-height:250px !important;
    padding:96px 18px 36px !important; }

  /* footer suburb list a touch tighter in its two columns */
  .bd-footer .bd-suburbs li{ margin-bottom:0; }
  .bd-footer .bd-suburbs a{ padding:2px 0; line-height:1.45; }
}
@media (max-width:480px){
  body:not(.home) .entry-header{
    min-height:230px !important;
    padding:88px 16px 30px !important; }
}

/* =====================================================================
   About Us duo cards - even columns, uncropped 3:4 imagery
   Both source images are exactly 3:4 portrait, so a 3:4 frame with
   object-fit:cover crops nothing. Scoped to .bd-duo, which only exists
   on /about-us/.
   ===================================================================== */
.bd-duo > .bd-legacy > .container{
  display:flex; flex-direction:column; height:100%; }
.bd-duo > .bd-legacy > .container > .row:last-child{
  margin-top:auto; }

.bd-duo .single-doctor{ height:auto !important; }

.bd-duo .single-doctor > a{
  display:block; position:relative;
  width:100%; max-width:400px; margin:0 auto;
  height:auto !important; min-height:0 !important;
  aspect-ratio:3 / 4;
  overflow:hidden; }

.bd-duo .single-doctor > a img{
  display:block; width:100%; height:100% !important;
  object-fit:cover; object-position:center center; }

.bd-duo .single-doctor .doctor-content{ margin-top:0; }

@media (max-width:768px){
  .bd-duo > .bd-legacy > .container{ display:block; height:auto; }
  .bd-duo > .bd-legacy > .container > .row:last-child{ margin-top:0; }
  .bd-duo .single-doctor > a{ max-width:340px; }
}

/* =====================================================================
   Mobile gutters - legacy bands had none
   The legacy markup zeroes Bootstrap's .container padding and its
   .col-* padding, but keeps the .row -15px negative margins, so every
   band ran edge to edge (and 15px past it). One uniform 20px gutter is
   applied on the .container, the band's own padding is zeroed so it
   cannot stack, and the orphaned row margins are neutralised.
   ===================================================================== */
@media (max-width:768px){

  .entry-content > .bd-legacy,
  .bd-duo > .bd-legacy{
    padding-left:0 !important; padding-right:0 !important; }

  .bd-legacy > .container,
  .bd-legacy > .container-fluid{
    padding-left:20px !important; padding-right:20px !important;
    max-width:100% !important; }

  .bd-legacy .row{ margin-left:0 !important; margin-right:0 !important; }

  /* legacy inline styles baked into the page content */
  .entry-content [style*="max-content"]{
    width:auto !important; max-width:100% !important; }
  .entry-content [style*="width"]{ max-width:100% !important; }

  /* stacked legacy columns need breathing room between them */
  .bd-legacy .row > [class*="col-"]{ margin-bottom:0; }
  .bd-legacy .about-content .row > [class*="col-"]{ margin-bottom:4px; }
}

/* --- legacy two-image collage widget: a 546px display:table inside a
       286px column on mobile. Stack it to a fluid two-up. --- */
@media (max-width:768px){
  .images_group_widget{
    display:block !important; width:100% !important; max-width:100% !important;
    margin-left:0 !important; margin-right:0 !important; }
  .images_group_widget > .unordered_list,
  .images_group_widget .unordered_list{
    display:flex !important; flex-wrap:wrap !important;
    gap:12px; width:100% !important; margin:0 !important; padding:0 !important;
    list-style:none !important; }
  .images_group_widget .unordered_list > li{
    flex:1 1 calc(50% - 6px); min-width:0; margin:0 !important; padding:0 !important; }
  .images_group_widget .unordered_list > li img{
    width:100% !important; height:auto !important; display:block; }
}
@media (max-width:420px){
  .images_group_widget .unordered_list > li{ flex:1 1 100%; }
}

/* --- mobile: about band list rhythm ------------------------------------
   The three .col-lg-4 list columns stack, and each carried ul margin-bottom
   30 + li margin-bottom 18 + col margin-top 26, giving a ~78px hole between
   every pair of items. Collapse it into one evenly spaced list. --------- */
@media (max-width:768px){
  .about-content .row:not(.contactsup) > [class*="col-"]{
    margin-top:0 !important; margin-bottom:0 !important; }
  .about-content .about-list{ margin-top:0 !important; margin-bottom:0 !important; }
  .about-content .about-list li{ margin-bottom:12px !important; }
  .about-content .row:not(.contactsup){ margin-bottom:26px !important; }
  .about-content .row.contactsup > [class*="col-"]{
    margin-top:0 !important; margin-bottom:18px !important; }
  .about-content .row.contactsup > [class*="col-"]:last-child{ margin-bottom:0 !important; }
}

/* --- mobile: carousels must clip, and need reachable controls ---------
   .bd-carousel-wrap was overflow:visible, so the next slide spilled past
   the right edge as a half-visible card, and the prev/next buttons were
   display:none below 769px, leaving no way to advance. --------------- */
@media (max-width:768px){
  .bd-carousel-wrap{ overflow:hidden !important; }
  .bd-carousel-wrap .bd-carousel-btn{
    display:flex !important; align-items:center; justify-content:center;
    width:42px !important; height:42px !important; }
  .bd-carousel-wrap .bd-carousel-btn.is-prev{ left:4px !important; right:auto !important; }
  .bd-carousel-wrap .bd-carousel-btn.is-next{ right:4px !important; left:auto !important; }
}

/* --- mobile: drop the decorative paired illustrations ------------------
   These columns sit beside a text block purely as decoration (the tooth
   render, the service illustrations). On a phone they add hundreds of
   pixels of scrolling and carry no information, so the whole column is
   removed below 769px. Desktop is untouched. Photographic content -
   team shots, service cards, the About duo cards, blog thumbnails and
   the practice photo montage - all stay. ------------------------------ */
@media (max-width:768px){
  .bd-legacy .about-image,
  .bd-legacy .abtimg,
  .bd-legacy .skin-care-dry-image,
  .bd-legacy .eye-care-about-image{ display:none !important; }

  .bd-legacy .row > [class*="col-"]:has(> .about-image),
  .bd-legacy .row > [class*="col-"]:has(> .abtimg),
  .bd-legacy .row > [class*="col-"]:has(> .skin-care-dry-image),
  .bd-legacy .row > [class*="col-"]:has(> .eye-care-about-image){
    display:none !important; }
}

/* =====================================================================
   Contact page: info cards, opening hours panel, form wrapper
   The legacy .covid-info-card / .txt_white styles were never migrated,
   so three bronze cards rendered as dark text on white, and the four
   Boxicons glyphs had no font to render with. Rebuilt in the brand
   style used by the homepage service cards (10px radius, soft shadow).
   ===================================================================== */

.bd-legacy.covid-information-area .row > [class*="col-"]{
  display:flex; margin-bottom:30px; }

.bd-legacy .covid-info-card{
  background:#996D45;
  border-radius:10px;
  padding:42px 30px;
  width:100%;
  height:auto !important;
  text-align:center;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  transition:transform .25s ease, box-shadow .25s ease; }

.bd-legacy.covid-information-area .covid-info-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 34px rgba(93,60,29,.22); }

.bd-legacy .covid-info-card .icon{
  width:74px; height:74px; flex:0 0 74px;
  border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 22px; }
.bd-legacy .covid-info-card .icon a{
  display:flex; align-items:center; justify-content:center;
  width:100%; height:100%; }
.bd-legacy .covid-info-card .icon svg{
  width:30px; height:30px; display:block; color:#996D45; }

.bd-legacy .covid-info-card h3,
.bd-legacy .covid-info-card .txt_white,
.bd-legacy .covid-info-card span,
.bd-legacy .covid-info-card b{ color:#fff; }

.bd-legacy .covid-info-card h3{
  font-family:var(--bd-heading-font);
  font-size:21px; font-weight:700; line-height:1.3;
  margin:0 0 10px; color:#fff; }
.bd-legacy .covid-info-card h3 br{ display:none; }

.bd-legacy .covid-info-card span,
.bd-legacy .covid-info-card a{ font-size:16px; line-height:1.65; }
.bd-legacy .covid-info-card a{ color:#fff; text-decoration:none; }
.bd-legacy .covid-info-card a:hover,
.bd-legacy .covid-info-card a:focus{ color:#fff; text-decoration:underline; }

/* opening hours panel: same class, different job */
.bd-legacy.covid-contact-area .covid-info-card{
  text-align:left; align-items:stretch; justify-content:flex-start;
  height:100% !important; padding:38px 32px; }
.bd-legacy.covid-contact-area .covid-info-card .icon{ margin:0 0 20px; }
.bd-legacy.covid-contact-area .covid-info-card h3{
  font-size:24px; margin:0 0 20px; }
.bd-legacy.covid-contact-area .covid-info-card .row{
  margin-left:0; margin-right:0; }
.bd-legacy.covid-contact-area .covid-info-card [class*="col-"]{
  padding-left:0; padding-right:0; }
.bd-legacy.covid-contact-area .covid-info-card hr{
  border:0; border-top:1px solid rgba(255,255,255,.28);
  margin:16px 0; opacity:1; }
.bd-legacy.covid-contact-area .covid-info-card span{
  display:block; font-size:15px; line-height:1.5; opacity:.92; }
.bd-legacy.covid-contact-area .covid-info-card b{
  display:block; font-weight:600; font-size:16px; opacity:1; margin-top:2px; }

/* form wrapper gets a card of its own */
.bd-legacy .covid-contact-form{
  background:#fff; border-radius:10px;
  padding:38px 34px;
  box-shadow:0 14px 34px rgba(93,60,29,.10); }
.bd-legacy.covid-contact-area .row{ align-items:stretch; }

@media (max-width:991px){
  .bd-legacy .covid-contact-form{ margin-bottom:30px; }
  .bd-legacy.covid-contact-area .covid-info-card{ height:auto !important; }
}
@media (max-width:768px){
  .bd-legacy .covid-info-card{ padding:34px 22px; }
  .bd-legacy .covid-contact-form{ padding:28px 20px; }
  .bd-legacy.covid-contact-area .covid-info-card{ padding:30px 22px; }
  .bd-legacy.covid-information-area .row > [class*="col-"]{ margin-bottom:18px; }
}

/* --- contact page corrections --------------------------------------
   Two things the first pass missed:
   1. the three info columns were not stretching, so cards came out
      270 / 244 / 268 tall
   2. the opening hours card has an inner .row that legacy CSS paints
      white and lays out as flex, which covered the bronze card and
      collapsed the <hr> rules to zero width
   ------------------------------------------------------------------ */
.bd-legacy.covid-information-area .row{ align-items:stretch; }

.bd-legacy.covid-contact-area .covid-info-card .row{
  display:block !important;
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  padding:0 !important;
  margin:0 !important;
  width:100%; }

.bd-legacy.covid-contact-area .covid-info-card .row > [class*="col-"]{
  width:100%; max-width:100%; flex:none; }

.bd-legacy.covid-contact-area .covid-info-card hr{
  display:block; width:100%; height:0;
  background:transparent !important;
  border:0; border-top:1px solid rgba(255,255,255,.28);
  margin:16px 0; }

/* --- contact page: equal sizing, interaction and focus states ------- */

/* form card and opening hours panel share a height */
.bd-legacy.covid-contact-area > .container > .row{ align-items:stretch; }
.bd-legacy.covid-contact-area > .container > .row > [class*="col-"]{ display:flex; }
.bd-legacy.covid-contact-area .covid-contact-form,
.bd-legacy.covid-contact-area .covid-info-card{ width:100%; }
.bd-legacy.covid-contact-area .covid-contact-form{
  display:flex; flex-direction:column; }
.bd-legacy.covid-contact-area .covid-contact-form .bd-form{ flex:1 1 auto; }

/* section title rhythm matches the rest of the site */
.bd-legacy.covid-contact-area .section-title{ margin-bottom:40px; }

/* icon well reacts with the card */
.bd-legacy .covid-info-card .icon{
  transition:transform .25s ease, box-shadow .25s ease; }
.bd-legacy.covid-information-area .covid-info-card:hover .icon{
  transform:scale(1.06);
  box-shadow:0 8px 18px rgba(0,0,0,.16); }

/* keyboard focus, visible against the bronze */
.bd-legacy .covid-info-card a:focus-visible{
  outline:2px solid #fff; outline-offset:3px; border-radius:4px; }

/* form controls: brand focus ring */
.bd-form .gform_wrapper input:focus-visible,
.bd-form .gform_wrapper select:focus-visible,
.bd-form .gform_wrapper textarea:focus-visible{
  outline:2px solid #996D45; outline-offset:1px; }

/* submit button gets the same lift as the cards */
.bd-form .gform_wrapper .gform_footer input[type="submit"],
.bd-form .gform_wrapper .gform_footer button{
  transition:background-color .2s ease, transform .15s ease, box-shadow .2s ease; }
.bd-form .gform_wrapper .gform_footer input[type="submit"]:hover,
.bd-form .gform_wrapper .gform_footer button:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(153,109,69,.32); }
.bd-form .gform_wrapper .gform_footer input[type="submit"]:active,
.bd-form .gform_wrapper .gform_footer button:active{
  transform:translateY(0); box-shadow:none; }

/* respect reduced motion */
@media (prefers-reduced-motion:reduce){
  .bd-legacy .covid-info-card,
  .bd-legacy .covid-info-card .icon,
  .bd-form .gform_wrapper .gform_footer input[type="submit"]{
    transition:none !important; }
  .bd-legacy.covid-information-area .covid-info-card:hover,
  .bd-legacy.covid-information-area .covid-info-card:hover .icon,
  .bd-form .gform_wrapper .gform_footer input[type="submit"]:hover{
    transform:none !important; }
}

/* =====================================================================
   Contact page, final layout pass
   Legacy leftovers being neutralised here:
   - a 321px translucent circle on every .col-lg-12::before inside the
     hours card, which was the pale blob behind the heading
   - the first inner col was display:flex, so the 74px icon and the
     heading overlapped each other
   - uneven column padding (0 one side, 32px the other) made the two
     cards different widths
   ===================================================================== */

/* kill the decorative blobs */
.bd-legacy.covid-contact-area .covid-info-card [class*="col-"]::before,
.bd-legacy.covid-contact-area .covid-info-card [class*="col-"]::after{
  content:none !important; display:none !important; }

/* equal columns, equal cards */
.bd-legacy.covid-contact-area > .container > .row{ align-items:stretch; }
.bd-legacy.covid-contact-area > .container > .row > [class*="col-"]{
  display:flex !important;
  align-items:stretch !important;
  padding-left:15px !important; padding-right:15px !important; }
.bd-legacy.covid-contact-area .covid-contact-form,
.bd-legacy.covid-contact-area .covid-info-card{
  width:100% !important; height:auto !important; }

/* --- hours card ----------------------------------------------------- */
.bd-legacy.covid-contact-area .covid-info-card{
  display:flex; flex-direction:column; padding:36px 34px; }

/* icon and title on one tidy line */
.bd-legacy.covid-contact-area .covid-info-card .row > .col-lg-12:first-child{
  display:flex !important; flex-direction:row !important;
  align-items:center !important; gap:16px;
  margin-bottom:26px; }
.bd-legacy.covid-contact-area .covid-info-card .icon{
  margin:0 !important; flex:0 0 58px; width:58px; height:58px; }
.bd-legacy.covid-contact-area .covid-info-card .icon svg{ width:26px; height:26px; }
.bd-legacy.covid-contact-area .covid-info-card h3{
  margin:0 !important; font-size:23px; }

/* hours rows read like a table: day on the left, time on the right */
.bd-legacy.covid-contact-area .covid-info-card .row > .col-lg-12:not(:first-child){
  margin:0 !important; padding:14px 0 !important; }
.bd-legacy.covid-contact-area .covid-info-card .row > .col-lg-12 + .col-lg-12,
.bd-legacy.covid-contact-area .covid-info-card .row > hr + .col-lg-12{
  border-top:1px solid rgba(255,255,255,.26); }
.bd-legacy.covid-contact-area .covid-info-card hr{ display:none !important; }

.bd-legacy.covid-contact-area .covid-info-card .col-lg-12:not(:first-child) span{
  display:flex !important;
  flex-direction:row-reverse;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  text-align:left; }
.bd-legacy.covid-contact-area .covid-info-card span br{ display:none; }
.bd-legacy.covid-contact-area .covid-info-card span b{
  display:inline !important; margin:0 !important;
  font-weight:600; font-size:16px; }
.bd-legacy.covid-contact-area .covid-info-card span{
  font-size:15px; opacity:1; }

/* --- form: tighter rhythm, no dead space ---------------------------- */
.bd-legacy.covid-contact-area .covid-contact-form{
  display:flex; flex-direction:column; padding:36px 34px; }
.bd-legacy.covid-contact-area .covid-contact-form .bd-form{
  flex:1 1 auto; display:flex; flex-direction:column; }
.bd-legacy.covid-contact-area .bd-form .gform_wrapper form{
  height:100%; display:flex; flex-direction:column; }
.bd-legacy.covid-contact-area .bd-form .gform_wrapper .gform_fields{
  row-gap:18px !important; column-gap:20px !important; }
.bd-legacy.covid-contact-area .bd-form .gform_wrapper .gfield--type-textarea{
  flex:1 1 auto; display:flex; flex-direction:column; }
.bd-legacy.covid-contact-area .bd-form .gform_wrapper textarea{
  flex:1 1 auto; min-height:130px; resize:vertical; }
.bd-legacy.covid-contact-area .bd-form .gform_wrapper .gform_footer{
  margin-top:22px !important; padding:0 !important; }
.bd-legacy.covid-contact-area .bd-form .gform_wrapper .gform_footer input[type="submit"]{
  width:100%; }

@media (max-width:991px){
  .bd-legacy.covid-contact-area > .container > .row > [class*="col-"]{ display:block !important; }
  .bd-legacy.covid-contact-area .covid-contact-form{ margin-bottom:26px; }
}
@media (max-width:768px){
  .bd-legacy.covid-contact-area .covid-info-card,
  .bd-legacy.covid-contact-area .covid-contact-form{ padding:26px 20px; }
  .bd-legacy.covid-contact-area .covid-info-card .col-lg-12:not(:first-child) span{
    flex-direction:column; align-items:flex-start; gap:2px; }
}

/* --- two last corrections ------------------------------------------
   1. the hours card sat 646 tall in a 708 column, so force align-self
   2. Gravity Forms renders <button class="gform_button">, not
      input[type=submit], so the width and hover rules never matched
   ------------------------------------------------------------------ */
.bd-legacy.covid-contact-area .covid-info-card,
.bd-legacy.covid-contact-area .covid-contact-form{
  align-self:stretch !important; }

.bd-legacy.covid-contact-area .bd-form .gform_footer .gform_button{
  width:100%; }

.bd-form .gform_wrapper .gform_footer .gform_button{
  transition:background-color .2s ease, transform .15s ease, box-shadow .2s ease; }
.bd-form .gform_wrapper .gform_footer .gform_button:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(153,109,69,.32); }
.bd-form .gform_wrapper .gform_footer .gform_button:active{
  transform:translateY(0); box-shadow:none; }
.bd-form .gform_wrapper .gform_footer .gform_button:focus-visible{
  outline:2px solid #5D3C1D; outline-offset:2px; }

@media (prefers-reduced-motion:reduce){
  .bd-form .gform_wrapper .gform_footer .gform_button{ transition:none !important; }
  .bd-form .gform_wrapper .gform_footer .gform_button:hover{ transform:none !important; }
}

/* --- kill the legacy gradient bar behind the hours heading ---------- */
.bd-legacy.covid-contact-area .covid-info-card .row > [class*="col-"]{
  background-image:none !important;
  background-color:transparent !important; }

/* --- booking CTA filling the foot of the hours card ---------------- */
.bd-hours-cta{
  margin-top:auto; padding-top:26px;
  border-top:1px solid rgba(255,255,255,.26); }
.bd-hours-cta p{
  color:#fff; font-size:15px; line-height:1.6;
  margin:0 0 16px; opacity:.92; }
.bd-hours-cta .bd-hours-btn{
  display:flex; align-items:center; justify-content:center; gap:9px;
  width:100%; min-height:50px; padding:12px 18px;
  background:#fff; color:#996D45;
  font-family:'Poppins', sans-serif; font-size:15px; font-weight:600;
  border-radius:8px; text-decoration:none;
  transition:background-color .2s ease, transform .15s ease, box-shadow .2s ease; }
.bd-hours-cta .bd-hours-btn svg{ width:17px; height:17px; flex:0 0 auto; }
.bd-hours-cta .bd-hours-btn:hover,
.bd-hours-cta .bd-hours-btn:focus{
  background:#F6EFE7; color:#7C6651; text-decoration:none;
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(0,0,0,.18); }
.bd-hours-cta .bd-hours-btn:active{ transform:translateY(0); box-shadow:none; }
.bd-hours-cta .bd-hours-btn:focus-visible{ outline:2px solid #fff; outline-offset:3px; }

@media (prefers-reduced-motion:reduce){
  .bd-hours-cta .bd-hours-btn{ transition:none !important; }
  .bd-hours-cta .bd-hours-btn:hover{ transform:none !important; }
}
@media (max-width:991px){
  .bd-hours-cta{ margin-top:26px; }
}

/* Stretch on the cross axis was being ignored, so make the columns
   flex-column and let the cards grow on the main axis instead. */
.bd-legacy.covid-contact-area > .container > .row > [class*="col-"]{
  flex-direction:column !important; }
.bd-legacy.covid-contact-area .covid-info-card,
.bd-legacy.covid-contact-area .covid-contact-form{
  flex:1 1 auto !important; }

@media (max-width:991px){
  .bd-legacy.covid-contact-area .covid-info-card,
  .bd-legacy.covid-contact-area .covid-contact-form{ flex:0 1 auto !important; }
}

/* The generic .covid-info-card a{color:#fff} rule was winning on
   specificity and painting the CTA label white on a white button. */
.bd-legacy.covid-contact-area .covid-info-card .bd-hours-cta .bd-hours-btn,
.bd-legacy .covid-info-card a.bd-hours-btn{
  color:#996D45 !important; text-decoration:none !important; }
.bd-legacy.covid-contact-area .covid-info-card .bd-hours-cta .bd-hours-btn:hover,
.bd-legacy .covid-info-card a.bd-hours-btn:hover,
.bd-legacy.covid-contact-area .covid-info-card .bd-hours-cta .bd-hours-btn:focus,
.bd-legacy .covid-info-card a.bd-hours-btn:focus{
  color:#7C6651 !important; text-decoration:none !important; }

/* The hours column carried 30px top and 32px bottom padding from a
   legacy rule while the form column had none, so the card was filling
   its column correctly but sitting 62px shorter than the form. */
.bd-legacy.covid-contact-area > .container > .row > [class*="col-"]{
  padding-top:0 !important; padding-bottom:0 !important; }

/* Stacked info cards match each other too, not just the desktop row. */
@media (max-width:991px){
  .bd-legacy.covid-information-area .covid-info-card{ min-height:250px; }
}
@media (max-width:575px){
  .bd-legacy.covid-information-area .covid-info-card{ min-height:0; }
}
/* ---
   CONTACT PAGE: centre the three info cards  (2026-09-15, pass 2)
   Cause: the inner .row was a flex ITEM of .col-lg-12, so it sized
   to its content (1041px of 1350px) and sat hard left. Make the
   column a plain block, then let the row centre real thirds.
   --- */
.bd-legacy.covid-information-area > .container > .row{
	justify-content:center !important;
}
.bd-legacy.covid-information-area > .container > .row > .col-lg-12{
	display:block !important;
	width:100% !important;
	flex:0 0 100% !important;
	max-width:100% !important;
}
.bd-legacy.covid-information-area .col-lg-12 > .row{
	display:flex !important;
	flex-wrap:wrap !important;
	justify-content:center !important;
	align-items:stretch !important;
	width:auto !important;
	margin-left:-15px !important;
	margin-right:-15px !important;
}
.bd-legacy.covid-information-area .col-lg-12 > .row > [class*="col-"]{
	flex:0 0 33.3333% !important;
	max-width:33.3333% !important;
	display:flex !important;
	padding-left:15px !important;
	padding-right:15px !important;
}
/* the legacy inline height:230px clips text once the card narrows */
.bd-legacy.covid-information-area .covid-info-card{
	height:auto !important;
	min-height:230px;
	width:100% !important;
}

@media (max-width:991px){
	.bd-legacy.covid-information-area .col-lg-12 > .row > [class*="col-"]{
		flex:0 0 50% !important;
		max-width:50% !important;
		margin-bottom:24px;
	}
}
@media (max-width:640px){
	.bd-legacy.covid-information-area .col-lg-12 > .row > [class*="col-"]{
		flex:0 0 100% !important;
		max-width:100% !important;
		margin-bottom:18px;
	}
	.bd-legacy.covid-information-area .col-lg-12 > .row > [class*="col-"]:last-child{
		margin-bottom:0;
	}
	.bd-legacy.covid-information-area .covid-info-card{
		min-height:0;
		padding-top:26px !important;
		padding-bottom:26px !important;
	}
}
/* ---
   CONTACT PAGE: info cards to grid (2026-09-15, pass 3)
   Flex wrapping gave unequal card heights on tablet. Grid stretches
   every card in a row to the same height, and fills the container so
   the trio is centred by construction.
   --- */
.bd-legacy.covid-information-area .col-lg-12 > .row{
	display:grid !important;
	grid-template-columns:repeat(3,minmax(0,1fr)) !important;
	gap:30px !important;
	align-items:stretch !important;
	justify-content:center !important;
	width:100% !important;
	margin:0 !important;
}
.bd-legacy.covid-information-area .col-lg-12 > .row > [class*="col-"]{
	flex:none !important;
	max-width:none !important;
	width:auto !important;
	margin:0 !important;
	padding:0 !important;
	display:flex !important;
}
.bd-legacy.covid-information-area .covid-info-card{
	height:auto !important;
	min-height:230px;
	width:100% !important;
}

@media (max-width:991px){
	.bd-legacy.covid-information-area .col-lg-12 > .row{
		grid-template-columns:repeat(2,minmax(0,1fr)) !important;
		gap:24px !important;
	}
	.bd-legacy.covid-information-area .col-lg-12 > .row > [class*="col-"]:last-child{
		grid-column:1 / -1 !important;
		width:calc(50% - 12px) !important;
		margin:0 auto !important;
	}
}
@media (max-width:640px){
	.bd-legacy.covid-information-area .col-lg-12 > .row{
		grid-template-columns:minmax(0,1fr) !important;
		gap:18px !important;
	}
	.bd-legacy.covid-information-area .col-lg-12 > .row > [class*="col-"]:last-child{
		grid-column:auto !important;
		width:auto !important;
		margin:0 !important;
	}
	.bd-legacy.covid-information-area .covid-info-card{
		min-height:0;
		padding-top:26px !important;
		padding-bottom:26px !important;
	}
}
/* stacked cards: equal heights on phones */
@media (max-width:640px){
	.bd-legacy.covid-information-area .col-lg-12 > .row{
		grid-auto-rows:1fr !important;
	}
}
/* ---
   Practitioner portraits are not filler: keep them on phones.
   The mobile filler rule hides .bd-legacy .about-image, which on a
   profile page is the person's photo.
   --- */
@media (max-width:768px){
	.bd-legacy .about-image.bd-portrait{ display:block !important; }
	.bd-legacy .row > [class*="col-"]:has(> .about-image.bd-portrait){
		display:block !important;
		margin-bottom:26px;
	}
	.bd-legacy .about-image.bd-portrait img{
		width:100% !important;
		max-width:340px;
		height:auto !important;
		display:block;
		margin:0 auto;
		border-radius:10px;
	}
}
/* cap the portrait so a small source is not blown up on tablets */
@media (max-width:768px){
	.bd-legacy .about-image.bd-portrait img{
		max-width:360px !important;
	}
}
/* =========================================================================
   BD UI PACK (Oct 2026) — contact modal, booking modal, services mega menu
   Rollback: delete this block and the matching block in functions.php.
   ========================================================================= */

:root{
	--bd-accent:#996D45;
	--bd-deep:#7C6651;
	--bd-dark:#5D3C1D;
	--bd-slate:#41474D;
	--bd-cream:#F1EAE2;
}

html.bd-modal-open{ overflow:hidden; }

.bd-modal--contact[hidden], .bd-modal--booking[hidden]{ display:none !important; }
.bd-modal--contact, .bd-modal--booking{
	position:fixed; inset:0; z-index:100000;
	display:flex; align-items:flex-start; justify-content:center;
	padding:4vh 20px;
	overflow-y:auto;
	-webkit-overflow-scrolling:touch;
}
.bd-modal__backdrop{
	position:fixed; inset:0;
	background:rgba(38,27,17,.62);
	animation:bdFade .18s ease-out;
}
@keyframes bdFade{ from{opacity:0} to{opacity:1} }
@keyframes bdRise{ from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:none} }

.bd-modal__panel{
	position:relative;
	width:100%; max-width:960px;
	background:#fff;
	border-radius:14px;
	box-shadow:0 30px 70px rgba(0,0,0,.34);
	overflow:hidden;
	animation:bdRise .22s ease-out;
}
.bd-modal__panel--wide{ max-width:1100px; }

.bd-modal__close{
	appearance:none; border:0; cursor:pointer;
	width:40px; height:40px; line-height:1; font-size:17px;
	border-radius:50%;
	background:rgba(255,255,255,.18); color:#fff;
	transition:background .18s ease, transform .18s ease;
}
.bd-modal__close:hover{ background:rgba(255,255,255,.32); transform:scale(1.06); }
.bd-modal__close--float{
	position:absolute; top:14px; right:14px; z-index:3;
	background:rgba(255,255,255,.9); color:var(--bd-dark);
	box-shadow:0 4px 14px rgba(0,0,0,.18);
}
.bd-modal__close--float:hover{ background:#fff; }
.bd-modal :focus-visible{ outline:3px solid #fff; outline-offset:2px; }
.bd-modal__panel :focus-visible{ outline:3px solid var(--bd-accent); outline-offset:2px; }

/* ---------- Booking modal ---------- */
.bd-modal__bar{
	display:flex; align-items:center; gap:14px;
	padding:14px 16px 14px 22px;
	background:var(--bd-accent); color:#fff;
}
.bd-modal__eyebrow{
	font-size:11px; letter-spacing:.14em; text-transform:uppercase;
	opacity:.85; font-weight:600;
}
.bd-modal__title{ font-size:19px; font-weight:600; margin-right:auto; }
.bd-modal__phone{ color:#fff; text-decoration:none; font-size:14px; white-space:nowrap; }
.bd-modal__phone:hover{ text-decoration:underline; color:#fff; }
.bd-modal__frame{ position:relative; background:#fff; }
.bd-booking-frame{
	display:block; width:100%; height:min(72vh,720px); border:0;
}
.bd-modal__loading{
	position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
	color:var(--bd-deep); font-size:15px; background:var(--bd-cream);
}
.bd-modal__foot{
	margin:0; padding:10px 22px 14px;
	font-size:13px; color:var(--bd-deep); background:#fff;
}
.bd-modal__foot a{ color:var(--bd-accent); }

/* ---------- Contact modal ---------- */
.bd-contact-grid{ display:grid; grid-template-columns:340px 1fr; }
.bd-contact-aside{
	background:var(--bd-accent); color:#fff;
	padding:34px 30px; display:flex; flex-direction:column; gap:14px;
}
.bd-contact-aside__title{ font-size:25px; line-height:1.22; font-weight:600; }
.bd-contact-aside__lead{ margin:0; font-size:15px; line-height:1.6; opacity:.94; }
.bd-contact-points{ list-style:none; margin:4px 0 0; padding:0; display:grid; gap:9px; }
.bd-contact-points li{ position:relative; padding-left:26px; font-size:14.5px; }
.bd-contact-points li:before{
	content:""; position:absolute; left:0; top:6px;
	width:14px; height:8px; border-left:2px solid #fff; border-bottom:2px solid #fff;
	transform:rotate(-45deg);
}
.bd-contact-aside__phone{
	margin-top:auto; color:#fff; font-size:22px; font-weight:600; text-decoration:none;
}
.bd-contact-aside__phone:hover{ color:#fff; text-decoration:underline; }
.bd-contact-aside__addr{ font-size:13px; line-height:1.5; opacity:.9; }

.bd-contact-form{ padding:30px 32px 34px; max-height:84vh; overflow-y:auto; }
.bd-contact-form .gform_wrapper{ margin:0; }
.bd-contact-form .gform_heading{ display:none; }
.bd-contact-form .gfield_label{
	font-size:14px; font-weight:600; color:var(--bd-slate); margin-bottom:6px;
}
.bd-contact-form input[type="text"],
.bd-contact-form input[type="email"],
.bd-contact-form input[type="tel"],
.bd-contact-form select,
.bd-contact-form textarea{
	width:100%; border:1px solid #e0d6c9; border-radius:10px;
	padding:11px 13px; font-size:15px; background:#fff; color:var(--bd-slate);
	transition:border-color .18s ease, box-shadow .18s ease;
}
.bd-contact-form textarea{ min-height:120px; }
.bd-contact-form input:focus,
.bd-contact-form select:focus,
.bd-contact-form textarea:focus{
	border-color:var(--bd-accent); box-shadow:0 0 0 3px rgba(153,109,69,.16); outline:none;
}
.bd-contact-form .gform_button{
	background:var(--bd-accent); color:#fff; border:0; border-radius:10px;
	padding:13px 30px; font-size:16px; font-weight:600; cursor:pointer;
	transition:background .18s ease, transform .18s ease;
}
.bd-contact-form .gform_button:hover{ background:var(--bd-dark); transform:translateY(-2px); }
.bd-contact-form .gform_confirmation_message{
	padding:26px 4px; font-size:16px; color:var(--bd-deep);
}

/* ---------- Services mega menu (desktop only) ---------- */
@media (min-width:1025px){
	.main-navigation .bd-mega > .bd-mega__panel{
		display:grid !important;
		grid-template-columns:repeat(4,1fr) 272px;
		gap:0 26px;
		width:1120px;
		padding:26px 26px 22px;
		background:#fff;
		border-top:3px solid var(--bd-accent);
		border-radius:0 0 14px 14px;
		box-shadow:0 26px 54px rgba(0,0,0,.18);
	}
	.main-navigation .bd-mega > .bd-mega__panel > li{
		width:auto; float:none; display:block;
	}
	.main-navigation .bd-mega > .bd-mega__panel > li > a{
		padding:6px 0; font-size:15px; font-weight:600;
		color:var(--bd-dark); line-height:1.3; width:auto;
	}
	.main-navigation .bd-mega > .bd-mega__panel > li > a:hover{
		background:transparent; color:var(--bd-accent);
	}
	.main-navigation .bd-mega > .bd-mega__panel > li > ul{
		position:static !important; display:block !important;
		width:auto !important; opacity:1 !important; visibility:visible !important;
		box-shadow:none; background:transparent; border:0;
		margin:2px 0 16px; padding:0; left:auto !important; top:auto !important;
		transform:none !important; pointer-events:auto !important;
	}
	.main-navigation .bd-mega > .bd-mega__panel > li > ul > li{ width:auto; float:none; }
	.main-navigation .bd-mega > .bd-mega__panel > li > ul > li > a{
		padding:5px 0 5px 12px; font-size:14px; font-weight:400;
		color:var(--bd-slate); line-height:1.35; width:auto;
		border-left:2px solid transparent; transition:border-color .16s ease, color .16s ease;
	}
	.main-navigation .bd-mega > .bd-mega__panel > li > ul > li > a:hover{
		background:transparent; color:var(--bd-accent); border-left-color:var(--bd-accent);
	}
	.main-navigation .bd-mega__pic{
		position:relative; border-radius:12px; overflow:hidden;
		background:var(--bd-cream); min-height:250px;
		display:flex; flex-direction:column; justify-content:flex-end;
	}
	.main-navigation .bd-mega__pic img{
		position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
	}
	.main-navigation .bd-mega__pic:after{
		content:""; position:absolute; inset:0;
		background:linear-gradient(to top,rgba(50,34,20,.86) 0%,rgba(50,34,20,.1) 58%);
	}
	.main-navigation .bd-mega__cap{
		position:relative; z-index:2; color:#fff; font-size:13.5px; line-height:1.45;
		padding:0 16px 10px;
	}
	.main-navigation .bd-mega__cta{
		position:relative; z-index:2; margin:0 16px 16px;
		display:block; text-align:center;
		background:var(--bd-accent); color:#fff !important;
		border-radius:9px; padding:11px 14px; font-size:14.5px; font-weight:600;
		text-decoration:none; transition:background .18s ease, transform .18s ease;
	}
	.main-navigation .bd-mega__cta:hover{ background:var(--bd-dark); transform:translateY(-2px); }
}

/* Tablet: widen the plain dropdown rather than cramming the panel in */
@media (min-width:769px) and (max-width:1024px){
	.main-navigation .menu > li.menu-item-has-children > ul{ width:290px; }
	.main-navigation .menu > li.menu-item-has-children > ul a{ white-space:normal; line-height:1.35; }
}

/* ---------- Modals on small screens ---------- */
@media (max-width:860px){
	.bd-contact-grid{ grid-template-columns:1fr; }
	.bd-contact-aside{ padding:26px 24px 22px; gap:10px; }
	.bd-contact-aside__title{ font-size:21px; }
	.bd-contact-points{ display:none; }
	.bd-contact-aside__addr{ display:none; }
	.bd-contact-aside__phone{ margin-top:4px; font-size:19px; }
	.bd-contact-form{ padding:22px 20px 26px; max-height:none; }
}
@media (max-width:767px){
	.bd-modal{ padding:0; }
	.bd-modal__panel{ border-radius:0; min-height:100%; max-width:none; }
	.bd-modal__bar{ padding:12px 10px 12px 16px; gap:10px; flex-wrap:wrap; }
	.bd-modal__title{ font-size:17px; }
	.bd-modal__phone{ font-size:13px; }
	.bd-modal__eyebrow{ display:none; }
	.bd-booking-frame{ height:calc(100vh - 118px); }
	.bd-modal__foot{ padding:9px 16px 12px; font-size:12.5px; }
	.bd-contact-form .gform_button{ width:100%; }
}
@media (prefers-reduced-motion:reduce){
	.bd-modal__panel, .bd-modal__backdrop{ animation:none; }
	.bd-modal__close:hover, .bd-contact-form .gform_button:hover, .main-navigation .bd-mega__cta:hover{ transform:none; }
}
/* bd-mega-grid-fix */
@media (min-width:1025px){
	.main-navigation .bd-mega__pic{ grid-column:5; grid-row:1 / -1; align-self:stretch; }
	.main-navigation .bd-mega > .bd-mega__panel .dropdown-menu-toggle{ display:none !important; }
	.main-navigation .bd-mega > .bd-mega__panel > li > ul{ overflow:visible !important; height:auto !important; min-height:0 !important; }
	.main-navigation .bd-mega > .bd-mega__panel > li > ul > li{ float:none !important; display:list-item !important; width:auto !important; }
	.main-navigation .bd-mega > .bd-mega__panel > li > ul:after{ content:""; display:block; clear:both; }
}
.bd-contact-aside__link{ color:#fff; font-size:13.5px; text-decoration:underline; text-underline-offset:3px; opacity:.92; }
.bd-contact-aside__link:hover{ color:#fff; opacity:1; }
@media (max-width:860px){ .bd-contact-aside__link{ display:none; } }
/* ---
   bd-mega layout correction (7 Oct 2026)
   Two faults in the first pass:
   1. The ".bd-mega__panel > li { display:block }" rule is more specific than
      ".bd-mega__pic { display:flex }", so the picture cell was display:block
      and justify-content did nothing. Caption and CTA fell to the top of the
      cell and sat over the photo instead of in the gradient at the bottom.
   2. Seven categories flowing into a four column grid left large holes,
      because General Dentistry's seven children made row one very tall.
      Placed explicitly instead, so the tall column owns both rows.
   --- */
@media (min-width:1025px){
	.main-navigation .bd-mega > .bd-mega__panel{
		grid-template-rows:auto auto !important;
		align-items:start !important;
		row-gap:18px !important;
	}

	.main-navigation .bd-mega > .bd-mega__panel > li.bd-mega__pic{
		display:flex !important;
		flex-direction:column !important;
		justify-content:flex-end !important;
		grid-column:5 !important;
		grid-row:1 / -1 !important;
		align-self:stretch !important;
		min-height:270px !important;
		padding:0 !important;
		margin:0 !important;
	}

	/* General Dentistry is the tall one, give it the whole first column */
	.main-navigation .bd-mega > .bd-mega__panel > li:nth-child(1){ grid-column:1; grid-row:1 / span 2; }
	.main-navigation .bd-mega > .bd-mega__panel > li:nth-child(2){ grid-column:2; grid-row:1; }
	.main-navigation .bd-mega > .bd-mega__panel > li:nth-child(3){ grid-column:4; grid-row:1; }
	.main-navigation .bd-mega > .bd-mega__panel > li:nth-child(4){ grid-column:3; grid-row:1; }
	.main-navigation .bd-mega > .bd-mega__panel > li:nth-child(5){ grid-column:2; grid-row:2; }
	.main-navigation .bd-mega > .bd-mega__panel > li:nth-child(6){ grid-column:3; grid-row:2; }
	.main-navigation .bd-mega > .bd-mega__panel > li:nth-child(7){ grid-column:4; grid-row:2; }

	/* the child lists no longer need the big bottom gap now rows are placed */
	.main-navigation .bd-mega > .bd-mega__panel > li > ul{ margin:2px 0 0 !important; }

	/* caption and button sit in the dark end of the gradient */
	.main-navigation .bd-mega__pic img{ z-index:0; }
	.main-navigation .bd-mega__pic:after{ z-index:1; }
	.main-navigation .bd-mega__cap{
		position:relative; z-index:2; margin-top:auto;
		padding:0 16px 8px; font-weight:500;
	}
	.main-navigation .bd-mega__cta{ position:relative; z-index:2; }
}
/* === bd-mega-cta-fix (Oct 2026) === */
@media (min-width:1025px){
	.main-navigation .bd-mega__pic{ position:relative; overflow:hidden; border-radius:10px; }
	.main-navigation .bd-mega__pic:after{
		background:linear-gradient(to top, rgba(31,24,17,.90) 0%, rgba(31,24,17,.58) 40%, rgba(31,24,17,0) 72%) !important;
	}
	.main-navigation .bd-mega__cap{
		padding:0 16px 10px !important;
		font-size:13.5px !important; line-height:1.35 !important;
		color:#fff !important; text-shadow:0 1px 3px rgba(0,0,0,.45);
	}
	.main-navigation .bd-mega__cta{
		display:block !important;
		margin:0 16px 16px !important;
		padding:9px 14px !important;
		background:#fff !important;
		color:#5D3C1D !important;
		font-size:14px !important; font-weight:600 !important;
		text-align:center !important; text-decoration:none !important;
		border-radius:9px !important;
		box-shadow:0 2px 8px rgba(0,0,0,.28);
		transition:background .18s ease, color .18s ease;
	}
	.main-navigation .bd-mega__cta:hover,
	.main-navigation .bd-mega__cta:focus{ background:#996D45 !important; color:#fff !important; }
}
/* === bd-mega-cta-fix-2 (Oct 2026) specificity over nav sub-link reset === */
@media (min-width:1025px){
	.main-navigation .bd-mega__panel li.bd-mega__pic a.bd-mega__cta,
	body.bd-sticky .main-navigation .bd-mega__panel li.bd-mega__pic a.bd-mega__cta{
		background:#fff !important;
		color:#5D3C1D !important;
		display:block !important;
		margin:0 16px 16px !important;
		padding:9px 14px !important;
		font-size:14px !important; font-weight:600 !important;
		text-align:center !important; text-decoration:none !important;
		border-radius:9px !important;
		box-shadow:0 2px 8px rgba(0,0,0,.28);
	}
	.main-navigation .bd-mega__panel li.bd-mega__pic a.bd-mega__cta:hover,
	.main-navigation .bd-mega__panel li.bd-mega__pic a.bd-mega__cta:focus{
		background:#996D45 !important; color:#fff !important;
	}
	.main-navigation .bd-mega__panel li.bd-mega__pic .bd-mega__cap{ color:#fff !important; }
}

/* === bd-contact-head-fix (Oct 2026) keep title clear of the float close === */
@media (max-width:767px){
	.bd-modal--contact .bd-contact-aside__title{ display:block; padding-right:46px; }
	.bd-modal--contact .bd-modal__eyebrow{ padding-right:46px; }
}


/* === bd-booking-bar-fix (Oct 2026) stop the close button wrapping on phones === */
@media (max-width:767px){
	.bd-modal--booking .bd-modal__bar{ position:relative; display:block; padding-right:54px; }
	.bd-modal--booking .bd-modal__title{ display:block; }
	.bd-modal--booking .bd-modal__phone{ display:block; margin:2px 0 0; font-size:13px; }
	.bd-modal--booking .bd-modal__close{ position:absolute; top:50%; right:12px; transform:translateY(-50%); margin:0; }
}
