*{box-sizing:border-box}
:root{--ivory:#f8f4ee;--cream:#fffaf3;--paper:#fbf8f3;--sage:#486b5a;--sage-dark:#2e5447;--sage-muted:#7f9188;--gold:#b77d2b;--coral:#e85f36;--coral-dark:#c94f2b;--text:#22302a;--muted:#67746d;--line:#e7d9ca;--shadow:0 18px 38px rgba(49,73,63,.08)}
html{scroll-behavior:smooth}body{margin:0;font-family:'Inter',Arial,sans-serif;background:var(--ivory);color:var(--text);line-height:1.55}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}.container{width:min(1240px,92vw);margin:0 auto}.narrow{width:min(840px,92vw)}.center{text-align:center}
h1,h2,h3,h4{font-family:'Cormorant Garamond',Georgia,serif;color:var(--sage-dark);font-weight:600;line-height:1.05;margin:0 0 16px}h1{font-size:clamp(3rem,4.75vw,4.65rem);letter-spacing:-.04em}h1 span{display:block;font-size:.78em;line-height:1.02}h2{font-size:clamp(2.15rem,3.05vw,3.15rem)}h3{font-size:1.28rem}p{margin:0 0 14px}.lead{font-size:1.1rem;max-width:840px}.gold-line{width:58px;height:3px;background:var(--gold);border-radius:10px;margin:10px auto 26px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:13px 24px;border-radius:8px;font-weight:800;border:1px solid transparent;white-space:nowrap;transition:.2s ease;font-size:1rem}.btn-primary{background:var(--coral);color:#fff;box-shadow:0 8px 18px rgba(232,95,54,.22)}.btn-primary:hover{background:var(--coral-dark);transform:translateY(-1px)}.btn-outline{background:rgba(255,255,255,.68);border-color:var(--sage);color:var(--sage-dark)}.btn-light{background:transparent;border-color:rgba(255,255,255,.74);color:#fff}
.site-header{position:absolute;top:0;left:0;right:0;z-index:40;background:transparent}.nav-wrap{height:124px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand img{height:122px;width:auto}.main-nav{display:flex;align-items:center;gap:38px;font-weight:800;font-size:.98rem}.main-nav a{position:relative}.main-nav a.active:after,.main-nav a:hover:after{content:'';position:absolute;left:0;right:0;bottom:-9px;height:2px;background:var(--sage)}.main-nav .btn:after{display:none}.nav-cta{padding:12px 20px}.mobile-toggle{display:none;background:none;border:0;font-size:1.7rem;color:var(--sage-dark)}
.hero{position:relative;overflow:hidden;background:var(--paper);border-bottom:1px solid var(--line)}.hero-home,.hero-page{height:clamp(390px,41.4vw,560px)}.hero-picture{position:absolute;inset:0;z-index:0;display:block}.hero-picture img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}.hero-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(248,244,238,.96) 0%,rgba(248,244,238,.84) 39%,rgba(248,244,238,.28) 70%,rgba(248,244,238,.05) 100%)}.hero-content{position:relative;z-index:2;height:100%;display:flex;align-items:center}.hero-text{max-width:760px;padding-top:100px}.hero-text h1{color:var(--sage-dark)}.hero-subheading{font-family:'Cormorant Garamond',Georgia,serif;color:var(--gold);font-size:clamp(1.55rem,2.05vw,2.15rem);line-height:1.12;margin:-4px 0 26px;max-width:600px}.hero-buttons{display:flex;gap:20px;flex-wrap:wrap}.hero-page .hero-text{padding-top:98px}.hero-page .hero-subheading{font-size:clamp(1.45rem,1.9vw,1.95rem)}
.trust-bar{background:rgba(255,255,255,.75);border-bottom:1px solid var(--line)}.trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}.trust-item{display:flex;align-items:center;gap:14px;padding:20px 25px;border-right:1px solid var(--line);color:#17382f;font-size:.95rem}.trust-item:last-child{border-right:0}.trust-symbol{font-size:1.9rem;color:var(--sage);line-height:1}
.section{position:relative;padding:68px 0}.care-section{padding-top:58px;padding-bottom:60px}.care-section p{max-width:810px;margin-left:auto;margin-right:auto;color:#35443e}.services-section{background:linear-gradient(180deg,#f8f4ee 0%,#f4ece2 100%);padding-top:58px}.service-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:17px}.service-card{position:relative;background:rgba(255,255,255,.60);border:1px solid rgba(187,169,149,.35);border-radius:12px;min-height:194px;padding:22px 14px 20px;text-align:center;box-shadow:0 10px 24px rgba(49,73,63,.045)}.tooth-icon{width:46px;height:52px;color:var(--sage);margin:0 auto 8px}.service-card.emergency:after{content:'+';position:absolute;top:34px;left:55%;width:20px;height:20px;border-radius:50%;background:var(--coral);color:#fff;font-weight:800;font-family:Inter,Arial;line-height:20px}.service-card h3{font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:800;line-height:1.18;margin:8px 0 9px;color:var(--sage-dark)}.service-card p{font-size:.875rem;color:#405049;margin:0}.prostho-icon,.denture-icon{width:48px;height:42px;margin:4px auto 14px;border:3px solid var(--sage);border-radius:7px;position:relative}.prostho-icon:before,.denture-icon:before{content:'';position:absolute;left:6px;right:6px;top:10px;border-top:3px solid var(--sage)}.denture-icon{border-radius:50%;height:30px;margin-top:12px}.view-all{margin-top:24px;padding:10px 32px}
.lower-section{padding-top:54px;padding-bottom:54px}.lower-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:34px;align-items:end}.expect-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:0 0 28px}.expect-item{text-align:left}.round-icon{width:58px;height:58px;border-radius:50%;background:#efe5d9;color:var(--sage);display:flex;align-items:center;justify-content:center;font-size:1.7rem;margin:0 0 11px}.expect-item h3{font-family:Inter,Arial,sans-serif;font-size:.98rem;font-weight:800;margin:0 0 6px;color:var(--sage-dark)}.expect-item p{font-size:.875rem;color:#47564f}.insurance-inline h2{font-size:2rem}.insurance-inline p{font-size:.92rem;max-width:570px}.checks{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:8px 20px}.checks li{font-size:.92rem;font-weight:700}.checks li:before{content:'✓';display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--sage);color:#fff;font-size:.78rem;margin-right:8px}.family-photo-wrap{display:flex;justify-content:flex-end;align-items:flex-end}.family-photo-wrap img{width:min(500px,100%);height:315px;object-fit:cover;object-position:center;border-radius:0;box-shadow:none}
.cta-band{position:relative;background:linear-gradient(90deg,#486959,#315145);color:#fff;overflow:hidden;padding:44px 0}.cta-band h2,.cta-band p{color:#fff}.cta-grid{display:grid;grid-template-columns:1.2fr auto;gap:34px;align-items:center}.cta-grid p{max-width:650px}.cta-actions{display:flex;flex-direction:column;gap:12px;min-width:310px}
.edge-leaf{position:absolute;pointer-events:none;background-repeat:no-repeat;background-size:contain;opacity:.62}.edge-leaf-right{right:-55px;top:42px;width:170px;height:255px;background-image:url('assets/eucalyptus-right.jpg');background-position:right center}.cta-left{left:-55px;bottom:-82px;width:165px;height:255px;background-image:url('assets/eucalyptus-left.jpg');background-position:left center}.cta-right{right:-55px;bottom:-82px;width:175px;height:260px;background-image:url('assets/eucalyptus-right.jpg');background-position:right center}
.footer{position:relative;overflow:hidden;background:#fffaf3;padding:42px 0 16px}.footer-eucalyptus{position:absolute;right:-55px;bottom:6px;width:170px;height:260px;background:url('assets/eucalyptus-right.jpg') right center/contain no-repeat;opacity:.62;pointer-events:none}.footer-grid{display:grid;grid-template-columns:1fr 1.15fr .9fr .9fr;gap:30px}.footer-logo{width:150px}.footer h4{margin-bottom:10px}.footer p,.footer li{font-size:.95rem;color:#37443e}.footer ul{padding:0;margin:0;list-style:none}.footer li{margin:4px 0}.copyright{text-align:center;color:var(--muted);font-size:.84rem;border-top:1px solid var(--line);padding-top:18px;margin-top:24px}
.two-column{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:start}.service-list{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.detail-card,.choice-card,.form-panel,.notice{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow)}.notice{margin-top:30px}.two-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.form-panel{margin-top:28px}label{display:block;font-weight:700;margin-bottom:7px}input,select,textarea{width:100%;padding:13px 14px;border:1px solid #d8c8b8;border-radius:10px;background:#fff;font:inherit}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.full{grid-column:1/-1}.policy{background:#f8efe5;border-color:#e3d2bf}.checkbox-row{display:flex;gap:12px;align-items:flex-start;font-weight:600}.checkbox-row input{width:auto;margin-top:5px}.hidden{display:none!important}.disabled{opacity:.45;pointer-events:none;filter:grayscale(.3)}
@media(max-width:1120px){.main-nav{gap:22px}.service-grid{grid-template-columns:repeat(3,1fr)}.lower-grid,.cta-grid,.two-column{grid-template-columns:1fr}.family-photo-wrap{justify-content:center}.checks{grid-template-columns:1fr}}
@media(max-width:860px){.nav-wrap{height:92px}.brand img{height:92px}.mobile-toggle{display:block}.main-nav{display:none;position:absolute;left:0;right:0;top:92px;background:rgba(248,244,238,.96);padding:20px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.main-nav.open{display:flex}.hero-home,.hero-page{height:430px}.hero-shade{background:rgba(248,244,238,.72)}.hero-text{text-align:center;margin:auto;padding-top:96px}.hero-buttons{justify-content:center}.trust-grid,.footer-grid,.service-list,.two-cards{grid-template-columns:1fr}.trust-item{border-right:0;border-bottom:1px solid var(--line)}.expect-grid{grid-template-columns:1fr}.service-grid{grid-template-columns:repeat(2,1fr)}.edge-leaf,.footer-eucalyptus{display:none}.section{padding:54px 0}.form-grid{grid-template-columns:1fr}}
@media(max-width:560px){h1{font-size:2.65rem}h1 span{font-size:.72em}.hero-subheading{font-size:1.45rem}.hero-home,.hero-page{height:390px}.service-grid{grid-template-columns:1fr}.cta-actions{min-width:0}.family-photo-wrap img{height:260px}.checks.wide{grid-template-columns:1fr}}



/* v11 edits */
/* Make all muted-gold hero/page subheadings use the bold version of the font */
.hero-subheading{
  font-weight:700!important;
}

/* Remove the eucalyptus accents near the bottom/CTA/footer areas */
.cta-left,
.cta-right,
.footer-eucalyptus{
  display:none!important;
}

/* v12 care section updates */
.care-section .edge-leaf,
.edge-leaf-right{
  display:none!important;
}

.care-section{
  overflow:visible!important;
}

.care-copy{
  max-width:820px;
  margin:0 auto;
}

.care-copy p{
  max-width:820px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  margin-bottom:16px!important;
}

.uploaded-care-leaf{
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  width:min(245px,22vw);
  height:440px;
  background:url('assets/eucalyptus-left-uploaded.png') left center/contain no-repeat;
  opacity:.82;
  pointer-events:none;
  z-index:3;
}

@media(max-width:1100px){
  .uploaded-care-leaf{
    width:165px;
    opacity:.55;
  }
}

@media(max-width:860px){
  .uploaded-care-leaf{
    display:none;
  }
}


/* v13: refine care-section eucalyptus leaf */
.uploaded-care-leaf{
  width:min(190px,17vw)!important;
  height:360px!important;
  opacity:.86!important;
  left:0!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  background:url('assets/eucalyptus-left-uploaded.png') left center/contain no-repeat!important;
}

@media(max-width:1100px){
  .uploaded-care-leaf{
    width:140px!important;
    height:300px!important;
    opacity:.68!important;
  }
}

@media(max-width:860px){
  .uploaded-care-leaf{
    display:none!important;
  }
}


/* v14: darker care leaf + slightly larger care-section text */
.care-copy p{
  font-size:1.08rem!important;
  line-height:1.72!important;
}

@media(max-width:860px){
  .care-copy p{
    font-size:1.02rem!important;
    line-height:1.68!important;
  }
}


/* v15: simplify homepage services section */
.simplified-services{
  padding-top:56px!important;
  padding-bottom:58px!important;
}
.services-summary{
  max-width:720px;
  margin:0 auto 22px!important;
  font-size:1.08rem;
  line-height:1.7;
  color:#35443e;
}


/* v16: move family image higher and reorder homepage flow */
.family-feature{
  padding:0 0 38px;
  background:var(--ivory);
}
.family-feature img{
  width:min(860px,92vw);
  height:310px;
  object-fit:cover;
  object-position:center;
  margin:0 auto;
  border-radius:0;
  box-shadow:none;
}
.expect-section{
  padding-top:52px!important;
  padding-bottom:50px!important;
  background:rgba(255,255,255,.24);
}
.expect-section .expect-grid{
  max-width:920px;
  margin-left:auto;
  margin-right:auto;
}
.insurance-home-section{
  padding-top:54px!important;
  padding-bottom:56px!important;
  background:rgba(255,255,255,.28);
}
.insurance-home{
  max-width:900px;
}
.insurance-home h2{
  text-align:center;
}
.insurance-home p{
  max-width:720px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.insurance-home .checks{
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
}

@media(max-width:860px){
  .family-feature{
    padding-bottom:28px;
  }
  .family-feature img{
    height:260px;
  }
}


/* v17: smaller family image so the heads are not cut off */
.family-feature img{
  width:min(720px,88vw)!important;
  height:auto!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center top!important;
}
@media(max-width:860px){
  .family-feature img{
    width:min(92vw,640px)!important;
    height:auto!important;
  }
}


/* v18: smaller family image + cleaner homepage */
.family-feature img{
  width:min(620px,82vw)!important;
  height:auto!important;
  object-fit:contain!important;
  object-position:center top!important;
}

@media(max-width:860px){
  .family-feature img{
    width:min(84vw,560px)!important;
    height:auto!important;
  }
}


/* v19: family image smaller again + muted gold services summary text */
.family-feature img{
  width:min(470px,62vw)!important;
  height:auto!important;
  object-fit:contain!important;
  object-position:center top!important;
}

.services-summary{
  color:var(--gold)!important;
}

@media(max-width:860px){
  .family-feature img{
    width:min(70vw,430px)!important;
    height:auto!important;
  }
}


/* v20: tighten homepage spacing under family image */
.family-feature{
  padding:0 0 16px!important;
}

.simplified-services{
  padding-top:30px!important;
  padding-bottom:34px!important;
}

.insurance-home-section{
  padding-top:28px!important;
  padding-bottom:42px!important;
}

.insurance-home p{
  margin-bottom:14px!important;
}

.insurance-home .checks{
  margin-top:10px!important;
}

/* Bold muted-gold sentence under A Full Service Experience */
.services-summary{
  color:var(--gold)!important;
  font-weight:700!important;
}

/* Slightly tighten general section spacing just in this homepage sequence */
@media(max-width:860px){
  .family-feature{
    padding-bottom:12px!important;
  }
  .simplified-services{
    padding-top:24px!important;
    padding-bottom:28px!important;
  }
  .insurance-home-section{
    padding-top:22px!important;
    padding-bottom:34px!important;
  }
}


/* v22: keep footer email label and address on one line */
.footer-contact-line{
  white-space:nowrap;
}
.footer-email-line{
  font-size:.9rem;
}
@media(max-width:980px){
  .footer-contact-line{
    white-space:normal;
  }
  .footer-email-line{
    font-size:.95rem;
  }
}


/* v23: bold subheading font across all pages */
.hero-subheading{
  font-weight:700!important;
}


/* v24: booking buttons on Services page service cards */
.service-book-btn{
  margin-top:14px;
  padding:10px 18px;
  font-size:.92rem;
}
.detail-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.detail-card .service-book-btn{
  margin-top:auto;
}


/* v25: single booking CTA on Services page */
.services-page-cta-wrap{
  display:flex;
  justify-content:center;
  margin-top:30px;
}
.services-page-cta{
  padding:14px 30px;
  font-size:1rem;
  min-width:240px;
}


/* v29: elegant appointment policy notice without checkbox */
.appointment-notice{
  width:100%;
  box-sizing:border-box;
  margin:18px 0 14px;
  padding:16px 18px;
  border:1px solid rgba(177,143,91,.28);
  border-radius:16px;
  background:rgba(255,252,246,.78);
  color:var(--text);
  box-shadow:0 10px 24px rgba(61,77,62,.06);
}
.appointment-notice strong{
  display:block;
  color:var(--green);
  font-family:var(--serif);
  font-size:1.02rem;
  margin-bottom:6px;
}
.appointment-notice p{
  margin:0;
  font-size:.94rem;
  line-height:1.55;
  color:rgba(44,56,44,.78);
}


/* v30: ensure new-patient online booking button remains clickable */
.online-booking-btn{
  pointer-events:auto!important;
  cursor:pointer!important;
  opacity:1!important;
}


/* v31: simpler returning-patient appointment policy notice */
.appointment-policy-notice{
  width:100%;
  box-sizing:border-box;
  margin:18px 0 14px;
  padding:14px 16px;
  border-left:3px solid rgba(177,143,91,.55);
  background:rgba(255,252,246,.72);
  border-radius:12px;
}
.appointment-policy-notice p{
  margin:0;
  font-size:.94rem;
  line-height:1.55;
  color:rgba(44,56,44,.78);
}
.appointment-policy-notice strong{
  color:var(--green);
}


/* v34: extend policy border to include the new-patient booking button */
.appointment-booking-box{
  width:100%;
  box-sizing:border-box;
  margin:18px 0 14px;
  padding:16px 18px 18px;
  border:1px solid rgba(177,143,91,.28);
  border-radius:16px;
  background:rgba(255,252,246,.78);
  box-shadow:0 10px 24px rgba(61,77,62,.06);
}
.appointment-booking-box .appointment-notice{
  margin:0 0 14px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.appointment-booking-box .online-booking-btn{
  display:inline-flex;
}


/* v35: extend matching bordered style around the returning-patient submit button */
.returning-submit-box{
  width:100%;
  box-sizing:border-box;
  margin:18px 0 14px;
  padding:16px 18px 18px;
  border:1px solid rgba(177,143,91,.28);
  border-radius:16px;
  background:rgba(255,252,246,.78);
  box-shadow:0 10px 24px rgba(61,77,62,.06);
}
.returning-submit-box button{
  display:inline-flex;
}


/* v36: make the returning-patient path match the new-patient bordered notice/button box */
.returning-booking-box{
  width:100%;
  box-sizing:border-box;
}
.returning-booking-box .appointment-notice{
  margin:0 0 14px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.returning-booking-box button{
  display:inline-flex;
}

/* No separate returning-policy styling needed now */
.returning-submit-box,
.appointment-policy-notice{
  display:none!important;
}


/* v39: New Patients page preparation section refinement */
.prepare-subheading{
  color:var(--gold)!important;
  font-weight:700!important;
  margin-top:-4px!important;
  margin-bottom:18px!important;
  font-size:1rem;
}

.new-patients-page .details-grid,
.new-patient-details .details-grid{
  align-items:start;
}

.new-patients-page .detail-card,
.new-patient-details .detail-card{
  margin-top:0!important;
}

.new-patients-page .content-section,
.new-patient-details{
  padding-top:42px!important;
}

@media(max-width:860px){
  .prepare-subheading{
    margin-bottom:14px!important;
  }
}


/* v40: tighten New Patients page spacing below What to Expect */
.new-patients-page .detail-card,
.new-patients-page .info-card,
.new-patients-page .content-card{
  margin-bottom:18px!important;
}

.new-patients-page .prepare-subheading{
  margin-bottom:12px!important;
}

.new-patients-page h2:has(+ .prepare-subheading){
  margin-top:0!important;
}

.new-patients-page .details-grid{
  gap:24px!important;
}

.new-patients-page .section,
.new-patients-page .content-section{
  padding-top:34px!important;
  padding-bottom:34px!important;
}

/* Fallback class-independent tightening for the prepare section */
.prepare-subheading{
  margin-bottom:12px!important;
}


/* v41: tighten New Patients page spacing further between What to Expect and preparation section */
.new-patients-page .details-grid{
  gap:14px!important;
  row-gap:14px!important;
}

.new-patients-page .detail-card{
  padding-top:24px!important;
  padding-bottom:24px!important;
}

.new-patients-page .detail-card p:last-child,
.new-patients-page .detail-card ul:last-child{
  margin-bottom:0!important;
}

.new-patients-page .detail-card + .detail-card{
  margin-top:0!important;
}

.new-patients-page h2{
  margin-bottom:10px!important;
}

.new-patients-page .prepare-subheading{
  margin-top:-2px!important;
  margin-bottom:10px!important;
}

/* Pull the preparation card/section closer beneath What to Expect */
.new-patients-page .details-grid .detail-card:nth-child(2){
  transform:translateY(-12px);
}

@media(max-width:860px){
  .new-patients-page .details-grid{
    gap:10px!important;
    row-gap:10px!important;
  }
  .new-patients-page .details-grid .detail-card:nth-child(2){
    transform:translateY(-8px);
  }
}


/* v42: SoBelle Dental Care Plan benefits */
.care-plan-benefits{
  margin:18px 0 0;
  padding-left:0;
  list-style:none;
  display:grid;
  gap:10px;
}
.care-plan-benefits li{
  position:relative;
  padding-left:26px;
  color:rgba(44,56,44,.82);
  line-height:1.55;
}
.care-plan-benefits li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  color:var(--gold);
  font-weight:700;
}


/* v43: refined SoBelle Dental Care Plan member benefits */
.care-plan-note{
  margin-top:18px!important;
  color:rgba(44,56,44,.78);
  font-size:.96rem;
}


/* v47: insurance logos directly after 'Flexible payment options available' */
.insurance-logos-inline{
  margin:28px 0 0;
  padding:24px 0 0;
  border-top:1px solid rgba(177,143,91,.22);
  text-align:center;
  width:100%;
}
.insurance-logos-inline .insurance-logos-image{
  width:100%;
  max-width:920px;
  height:auto;
  display:block;
  margin:0 auto 18px;
  border-radius:14px;
}
.insurance-logos-inline .insurance-logo-note{
  max-width:780px;
  margin:0 auto 16px;
  font-size:1rem;
  line-height:1.62;
  color:rgba(44,56,44,.82);
}
.insurance-logos-inline .insurance-call-btn{
  margin-top:2px;
}
@media(max-width:760px){
  .insurance-logos-inline{
    margin-top:22px;
    padding-top:20px;
  }
  .insurance-logos-inline .insurance-logo-note{
    font-size:.95rem;
  }
}


/* v48: insurance logo section cleanup and coral live call button */
.insurance-logos-inline{
  display:block!important;
  background:transparent!important;
  box-shadow:none!important;
}
.insurance-call-btn{
  background:var(--coral)!important;
  border-color:var(--coral)!important;
  color:#fff!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  opacity:1!important;
}
.insurance-call-btn:hover{
  filter:brightness(.96);
}


/* v51: make Insurance page call button match homepage primary CTA style */
.insurance-call-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  background:var(--coral)!important;
  border-color:var(--coral)!important;
  color:#fff!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  opacity:1!important;
}
.insurance-call-btn:hover{
  transform:translateY(-1px);
  filter:brightness(.96);
}


/* v52: Insurance page call button matches homepage hero 'Call Us' button */
.insurance-call-btn{
  pointer-events:auto!important;
  cursor:pointer!important;
  opacity:1!important;
}
/* Remove prior v51 coral-specific override by matching the hero secondary button look */
.insurance-call-btn.btn-secondary{
  background:transparent!important;
  border-color:rgba(177,143,91,.55)!important;
  color:var(--green)!important;
}
.insurance-call-btn.btn-secondary:hover{
  background:rgba(255,255,255,.58)!important;
  transform:translateY(-1px);
}


/* v53: revert Insurance page button to coral 'Call Our Office' style */
.insurance-call-btn.btn-primary,
.insurance-call-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  background:var(--coral)!important;
  border-color:var(--coral)!important;
  color:#fff!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  opacity:1!important;
}
.insurance-call-btn.btn-primary:hover,
.insurance-call-btn:hover{
  transform:translateY(-1px);
  filter:brightness(.96);
  background:var(--coral)!important;
  color:#fff!important;
}


/* v63: ensure added weekend hours display cleanly */
.footer p,
.contact-card p{
  white-space:normal;
}


/* v65: compact weekend hours alignment */
.footer .hours,
.contact-card .hours,
.footer-hours{
  line-height:1.45;
}

.footer p,
.contact-card p{
  line-height:1.45;
}

/* Keep the Sat-Sun Closed line compact if it appears in the footer hours block */
.footer p:has(br),
.contact-card p:has(br){
  font-size:.94rem;
}


/* v66: make all hours text match the compact weekend hours size */
.footer p,
.contact-card p,
.footer .hours,
.contact-card .hours,
.footer-hours{
  font-size:.94rem!important;
  line-height:1.45!important;
}


/* v68: correct New Patients preparation placement */
.prepare-inline-card{
  margin-top:28px;
  padding:22px 22px 24px;
  border:1px solid rgba(177,143,91,.22);
  border-radius:22px;
  background:rgba(255,252,246,.72);
  box-shadow:0 12px 28px rgba(61,77,62,.06);
}
.prepare-inline-card h2{
  margin-top:0!important;
  margin-bottom:8px!important;
}
.prepare-inline-card .prepare-subheading{
  margin-top:0!important;
  margin-bottom:14px!important;
}
.prepare-inline-card .checks{
  margin-top:0!important;
}
.prepare-inline-card .checks li:last-child{
  margin-bottom:0!important;
}

/* Remove earlier upward pull that caused layout overlap */
.new-patients-page .details-grid .detail-card:nth-child(2),
.new-patients-page .detail-card{
  transform:none!important;
}


/* v70: hide any empty insurance placeholder boxes */
.insurance-logos-inline:empty,
.insurance-logo-card:empty{
  display:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
}


/* v71: remove/hide empty notice boxes */
.notice:empty{
  display:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
}


/* v72: move insurance logo content higher and reorder page flow */
.insurance-logos-reordered{
  margin-top:24px!important;
  padding-top:0!important;
  border-top:0!important;
}
.insurance-logos-reordered .insurance-logos-image{
  margin-bottom:18px!important;
}
.insurance-logos-reordered .insurance-logo-note{
  margin-bottom:20px!important;
}
.insurance-bullets-after-logo{
  max-width:760px;
  margin:0 auto 22px;
  text-align:left;
}
.insurance-bullets-after-logo .checks{
  margin:0!important;
}
.insurance-bullets-after-logo .checks.wide{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.insurance-logos-reordered .insurance-call-btn{
  margin-top:0!important;
}


/* v76: clickable email links */
.email-link{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid rgba(177,143,91,.45);
}
.email-link:hover{
  color:var(--green);
  border-bottom-color:var(--green);
}


/* v86: subtle professional affiliations row on homepage */
.affiliations-strip{
  padding-top:22px;
  padding-bottom:8px;
}
.affiliations-strip-inner{
  border-top:1px solid rgba(177,143,91,.18);
  padding-top:18px;
  text-align:center;
}
.affiliations-label{
  margin:0 0 16px;
  font-size:.95rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--green);
  font-weight:600;
}
.affiliations-logos{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:stretch;
  gap:14px;
}
.affiliation-badge{
  min-width:190px;
  max-width:250px;
  padding:12px 16px;
  border:1px solid rgba(177,143,91,.22);
  border-radius:999px;
  background:rgba(255,252,246,.72);
  box-shadow:0 8px 20px rgba(61,77,62,.04);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
}
.affiliation-acronym{
  font-size:.92rem;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--gold);
  margin-bottom:3px;
}
.affiliation-name{
  font-size:.88rem;
  line-height:1.35;
  color:var(--text);
}
@media (max-width: 760px){
  .affiliation-badge{
    min-width:unset;
    width:100%;
    border-radius:18px;
  }
}


/* v88: ADA logo asset in professional affiliations row */
.affiliation-logo-badge{
  min-width:245px;
  padding:11px 18px 10px;
}
.affiliation-logo{
  display:block;
  max-width:205px;
  width:100%;
  height:auto;
  object-fit:contain;
}
.ada-affiliation-logo{
  max-height:34px;
}
.affiliation-member-text{
  margin-top:5px;
  font-size:.76rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
@media (max-width: 760px){
  .affiliation-logo{
    max-width:210px;
  }
}


/* v89: add tasteful wordmark-style assets for ISDS and CDS */
.isds-affiliation-logo{
  max-height:34px;
  max-width:230px;
}
.cds-affiliation-logo{
  max-height:34px;
  max-width:220px;
}


/* v91: disabled new-patient booking button after returning-patient selection */
.btn-disabled,
.btn-disabled:hover{
  opacity:.55;
  cursor:not-allowed;
  pointer-events:none;
  filter:grayscale(.15);
  box-shadow:none;
}


/* v94: clickable office address + contact-page map section */
.footer-address-link,
.map-address-link{
  color: inherit;
  text-decoration: none;
}
.footer-address-link:hover,
.map-address-link:hover{
  text-decoration: underline;
}
.map-section{
  padding-top: 12px;
}
.map-card{
  background: #fffdf9;
  border: 1px solid rgba(177,143,91,.18);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(44,58,47,.06);
}
.map-embed iframe{
  display: block;
  width: 100%;
  min-height: 360px;
}
.map-details{
  padding: 22px 24px 26px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.map-details p{
  margin: 0;
  font-size: 1rem;
  line-height: 1.7;
}
.map-address-link{
  font-weight: 600;
  color: var(--green);
}
.map-actions{
  display: flex;
  gap: 12px;
}
@media (max-width: 760px){
  .map-details{
    align-items: flex-start;
    flex-direction: column;
  }
}


/* v95: clickable phone links everywhere office phone number appears */
.phone-link{
  color: inherit;
  text-decoration: none;
  font-weight: inherit;
}
.phone-link:hover{
  text-decoration: underline;
}


/* v96: clickable text message links */
.text-link{
  color: inherit;
  text-decoration: none;
  font-weight: inherit;
}
.text-link:hover{
  text-decoration: underline;
}

/* v98: dedicated mobile hero image + mobile-only hero tuning */
@media (max-width: 860px){
  .hero-home,.hero-page{height:390px}
  .hero-picture img{object-position:center top}
  .hero-shade{background:linear-gradient(180deg,rgba(248,244,238,.18) 0%,rgba(248,244,238,.10) 55%,rgba(248,244,238,.05) 100%)}
  .hero-text{max-width:350px;padding-top:86px;padding-left:10px;padding-right:10px}
  .hero-subheading,.hero-page .hero-subheading{font-size:1.28rem;line-height:1.15;max-width:320px;margin-left:auto;margin-right:auto;margin-bottom:22px;font-weight:700}
  .hero-buttons{gap:14px}
}
@media (max-width: 560px){
  .hero-home,.hero-page{height:390px}
  .hero-subheading,.hero-page .hero-subheading{font-size:1.22rem;max-width:300px}
}


/* v99: bolder service card headings on desktop and mobile */
.service-card h3,
.detail-card h3{
  font-weight: 900;
}


/* v100: refined mobile hero image and original-style mobile text scale
   Desktop hero remains unchanged. Mobile hero height remains unchanged. */
@media (max-width: 860px){
  .hero-home,
  .hero-page{
    height:390px;
  }

  .hero-picture img{
    object-position:center top;
  }

  .hero-shade{
    background:linear-gradient(180deg,rgba(248,244,238,.22) 0%,rgba(248,244,238,.12) 52%,rgba(248,244,238,.08) 100%);
  }

  .hero-text{
    padding-top:96px;
    max-width:720px;
  }

  .hero-text h1{
    font-size:clamp(2.15rem,9vw,2.42rem);
    line-height:1.03;
    max-width:340px;
    margin-left:auto;
    margin-right:auto;
  }

  .hero-subheading,
  .hero-page .hero-subheading{
    font-size:1.14rem;
    line-height:1.16;
    max-width:310px;
    margin:0 auto 22px;
    font-weight:600;
  }
}

@media (max-width: 560px){
  .hero-home,
  .hero-page{
    height:390px;
  }

  .hero-text h1{
    font-size:2.25rem;
  }

  .hero-subheading,
  .hero-page .hero-subheading{
    font-size:1.12rem;
  }
}


/* v101: mobile hero revised to feel closer to the desktop presentation.
   Use a true full-image mobile hero (no padded canvas), keep the hero height compact,
   and scale/position the hero copy more like the desktop composition. */
@media (max-width: 860px){
  .hero-home,
  .hero-page{
    height:390px;
  }

  .hero-picture img{
    object-position:72% center;
  }

  .hero-shade{
    background:linear-gradient(90deg,rgba(248,244,238,.91) 0%,rgba(248,244,238,.80) 38%,rgba(248,244,238,.30) 69%,rgba(248,244,238,.08) 100%);
  }

  .hero-content{
    align-items:center;
  }

  .hero-text{
    text-align:left;
    margin:0;
    max-width:66%;
    padding-top:78px;
    padding-left:0;
    padding-right:0;
  }

  .hero-text h1{
    font-size:clamp(2.05rem,8.2vw,2.9rem);
    line-height:.98;
    max-width:300px;
    margin:0 0 12px;
  }

  .hero-text h1 span{
    font-size:.68em;
  }

  .hero-subheading,
  .hero-page .hero-subheading{
    font-size:1.05rem;
    line-height:1.14;
    max-width:255px;
    margin:0 0 18px;
    font-weight:700;
  }

  .hero-buttons{
    justify-content:flex-start;
    gap:12px;
  }

  .hero-buttons .btn{
    padding:11px 18px;
    font-size:.95rem;
  }
}

@media (max-width: 560px){
  .brand img{
    height:86px;
  }

  .hero-home,
  .hero-page{
    height:390px;
  }

  .hero-picture img{
    object-position:74% center;
  }

  .hero-text{
    max-width:67%;
    padding-top:76px;
  }

  .hero-text h1{
    font-size:1.95rem;
    max-width:270px;
    margin-bottom:10px;
  }

  .hero-subheading,
  .hero-page .hero-subheading{
    font-size:.98rem;
    max-width:225px;
    margin-bottom:16px;
  }

  .hero-buttons .btn{
    padding:10px 15px;
    font-size:.90rem;
  }
}

/* v102: mobile home hero refined to better match desktop composition.
   - Keep hero image running behind logo/menu area.
   - Show more of the eucalyptus leaves on the right.
   - Keep "SoBelle Family Dentistry" on one line.
   - Move CTA buttons below the hero image on narrow portrait phones. */
@media (max-width: 560px){
  .hero-home{
    height: 395px;
    overflow: visible;
    margin-bottom: 138px;
  }

  .hero-home .hero-picture img{
    object-position: 82% center;
  }

  .hero-home .hero-shade{
    background: linear-gradient(90deg,
      rgba(248,244,238,.86) 0%,
      rgba(248,244,238,.74) 34%,
      rgba(248,244,238,.32) 62%,
      rgba(248,244,238,.10) 100%);
  }

  .hero-home .hero-content{
    align-items: flex-end;
  }

  .hero-home .hero-text{
    width: 100%;
    max-width: none;
    padding-top: 88px;
    padding-bottom: 28px;
    text-align: left;
  }

  .hero-home .hero-text h1{
    font-size: 1.52rem;
    line-height: 1.02;
    max-width: none;
    white-space: nowrap;
    letter-spacing: -.01em;
    margin: 0 0 10px;
  }

  .hero-home .hero-text h1 span{
    display: block;
    font-size: .78em;
    white-space: normal;
  }

  .hero-home .hero-subheading,
  .hero-home .hero-page .hero-subheading,
  .hero-home .hero-text .hero-subheading{
    font-size: .98rem;
    line-height: 1.12;
    max-width: 250px;
    margin: 0 0 8px;
    font-weight: 700;
  }

  .hero-home .hero-buttons{
    position: absolute;
    left: 50%;
    top: 100%;
    transform: translate(-50%, 18px);
    width: min(92%, 330px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
  }

  .hero-home .hero-buttons .btn{
    width: 100%;
    justify-content: center;
    text-align: center;
    padding: 14px 18px;
    font-size: 1rem;
  }

  .hero-home .hero-buttons .btn-outline{
    width: min(100%, 220px);
  }
}


/* v103: portrait mobile home hero refinements
   - Restore home hero copy closer to previous scale/placement.
   - Keep Dentistry on a centered second line under SoBelle Family.
   - Show a bit more of the right eucalyptus leaves.
   - Keep CTA buttons below the hero image on narrow portrait phones. */
@media (max-width: 560px){
  .hero-home{
    height: 395px;
    overflow: visible;
    margin-bottom: 138px;
  }

  .hero-home .hero-picture img{
    object-position: 89% center;
  }

  .hero-home .hero-content{
    align-items: center;
  }

  .hero-home .hero-text{
    width: 100%;
    max-width: 67%;
    padding-top: 78px;
    padding-bottom: 24px;
    text-align: left;
    margin: 0;
  }

  .hero-home .hero-text h1{
    font-size: 1.95rem;
    line-height: .98;
    max-width: 290px;
    margin: 0 0 10px;
    white-space: normal;
    letter-spacing: -.01em;
  }

  .hero-home .hero-text h1 .hero-line{
    display: block;
  }

  .hero-home .hero-text h1 .hero-line-1{
    white-space: nowrap;
  }

  .hero-home .hero-text h1 .hero-line-2{
    text-align: center;
  }

  .hero-home .hero-text h1 > span:last-child{
    display: block;
    font-size: .68em;
    line-height: 1.02;
    white-space: normal;
  }

  .hero-home .hero-subheading,
  .hero-home .hero-page .hero-subheading,
  .hero-home .hero-text .hero-subheading{
    font-size: .98rem;
    line-height: 1.14;
    max-width: 235px;
    margin: 0 0 8px;
    font-weight: 700;
  }

  .hero-home .hero-buttons{
    position: absolute;
    left: 50%;
    top: 100%;
    transform: translate(-50%, 18px);
    width: min(92%, 330px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
  }

  .hero-home .hero-buttons .btn{
    width: 100%;
    justify-content: center;
    text-align: center;
    padding: 14px 18px;
    font-size: 1rem;
  }

  .hero-home .hero-buttons .btn-outline{
    width: min(100%, 220px);
  }
}


/* v104: fine-tune vertical mobile home hero text placement
   Moves the hero copy higher and pulls "Dentistry" slightly left so it sits better on portrait phones. */
@media (max-width: 560px){
  .hero-home .hero-text{
    transform: translateY(-46px);
  }

  .hero-home .hero-text h1 .hero-line-2{
    transform: translateX(-32px);
  }
}


/* v105: homepage hero refinements requested by user
   - Desktop: keep "SoBelle Family Dentistry" on one line, with "@ Lincoln Park" on the line below.
   - Mobile portrait only: enlarge the homepage title, move the copy slightly higher,
     pull "Dentistry" left so it sits better under "SoBelle Family",
     and preserve the centered CTA buttons below the hero section.
   - Landscape/mobile-wide behavior remains unchanged. */

@media (min-width: 561px){
  .hero-home .hero-text h1 .hero-line{
    display:inline;
  }

  .hero-home .hero-text h1 .hero-line-1::after{
    content:" ";
  }

  .hero-home .hero-text h1 .hero-line-2{
    display:inline;
    text-align:inherit;
    padding-left:0;
    transform:none;
  }

  .hero-home .hero-text h1 > span:last-child{
    display:block;
    font-size:.72em;
    line-height:1.02;
  }
}

@media (max-width: 560px) and (orientation: portrait){
  .hero-home{
    height:395px;
    overflow:visible;
    margin-bottom:138px;
  }

  .hero-home .hero-picture img{
    object-position:96% center;
  }

  .hero-home .hero-content{
    align-items:center;
  }

  .hero-home .hero-text{
    width:100%;
    max-width:74%;
    padding-top:74px;
    padding-bottom:24px;
    text-align:left;
    margin:0;
    transform:translateY(-20px);
  }

  .hero-home .hero-text h1{
    font-size:2.28rem;
    line-height:.96;
    max-width:340px;
    margin:0 0 10px;
    white-space:normal;
    letter-spacing:-.015em;
  }

  .hero-home .hero-text h1 .hero-line{
    display:block;
  }

  .hero-home .hero-text h1 .hero-line-1{
    white-space:nowrap;
  }

  .hero-home .hero-text h1 .hero-line-2{
    text-align:left;
    padding-left:92px;
    transform:none;
  }

  .hero-home .hero-text h1 > span:last-child{
    display:block;
    font-size:.68em;
    line-height:1.02;
    white-space:normal;
  }

  .hero-home .hero-subheading,
  .hero-home .hero-page .hero-subheading,
  .hero-home .hero-text .hero-subheading{
    font-size:1.02rem;
    line-height:1.14;
    max-width:250px;
    margin:0 0 8px;
    font-weight:700;
  }

  .hero-home .hero-buttons{
    position:absolute;
    left:50%;
    top:100%;
    transform:translate(-50%, 18px);
    width:min(92%, 330px);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:14px;
  }

  .hero-home .hero-buttons .btn{
    width:100%;
    justify-content:center;
    text-align:center;
    padding:14px 18px;
    font-size:1rem;
  }

  .hero-home .hero-buttons .btn-outline{
    width:min(100%, 220px);
  }
}


/* v106: restore desktop homepage hero title sizing.
   Because the homepage title was split into spans for mobile control, this resets
   the desktop hero-line spans so "SoBelle Family Dentistry" matches the original size. */
@media (min-width: 561px){
  .hero-home .hero-text h1 .hero-line{
    display:inline;
    font-size:1em;
    line-height:1.05;
  }

  .hero-home .hero-text h1 .hero-line-1::after{
    content:" ";
  }

  .hero-home .hero-text h1 .hero-line-2{
    display:inline;
    text-align:inherit;
    padding-left:0;
    transform:none;
  }

  .hero-home .hero-text h1 > span:last-child{
    display:block;
    font-size:.72em;
    line-height:1.02;
  }
}


/* v107: refine desktop homepage "@ Lincoln Park" proportion */
@media (min-width: 561px){
  .hero-home .hero-text h1 > span:last-child{
    font-size:.68em;
    line-height:1.02;
    margin-top:2px;
  }
}


/* v108: make desktop homepage "@ Lincoln Park" two sizes larger */
@media (min-width: 561px){
  .hero-home .hero-text h1 > span:last-child{
    font-size:.76em;
    line-height:1.02;
    margin-top:2px;
  }
}


/* v109: make desktop homepage "@ Lincoln Park" one additional size larger */
@media (min-width: 561px){
  .hero-home .hero-text h1 > span:last-child{
    font-size:.80em;
    line-height:1.02;
    margin-top:2px;
  }
}


/* v112: restore homepage hero heading position to the v97-style mobile portrait layout only.
   Keeps all desktop, landscape, image, and button behavior otherwise unchanged. */
@media (max-width: 560px) and (orientation: portrait){
  .hero-home .hero-content{
    align-items:center !important;
  }

  .hero-home .hero-text{
    text-align:center !important;
    margin:auto !important;
    padding-top:96px !important;
    padding-bottom:0 !important;
    padding-left:10px !important;
    padding-right:10px !important;
    max-width:720px !important;
    width:auto !important;
    transform:none !important;
  }

  .hero-home .hero-text h1{
    font-size:2.65rem !important;
    line-height:1.05 !important;
    max-width:100% !important;
    margin:0 auto 16px !important;
    white-space:normal !important;
    letter-spacing:-.04em !important;
  }

  .hero-home .hero-text h1 .hero-line{
    display:inline !important;
    font-size:1em !important;
    line-height:1.05 !important;
  }

  .hero-home .hero-text h1 .hero-line-1::after{
    content:" ";
  }

  .hero-home .hero-text h1 .hero-line-2{
    display:inline !important;
    padding-left:0 !important;
    text-align:inherit !important;
    transform:none !important;
  }

  .hero-home .hero-text h1 > span:last-child{
    display:block !important;
    font-size:.72em !important;
    line-height:1.02 !important;
    white-space:normal !important;
  }

  .hero-home .hero-subheading,
  .hero-home .hero-page .hero-subheading,
  .hero-home .hero-text .hero-subheading{
    font-size:1.45rem !important;
    line-height:1.12 !important;
    max-width:600px !important;
    margin:-4px auto 26px !important;
    font-weight:700 !important;
  }
}


/* v113: make the homepage title appear on one line in horizontal/landscape mobile view only.
   Keeps the approved v112 portrait-mobile and desktop layouts unchanged. */
@media (max-width: 932px) and (orientation: landscape){
  .hero-home .hero-text{
    max-width: 78% !important;
  }

  .hero-home .hero-text h1{
    white-space: nowrap !important;
    font-size: 2.1rem !important;
    line-height: 1.0 !important;
    max-width: none !important;
    margin: 0 0 12px !important;
    letter-spacing: -.02em !important;
  }

  .hero-home .hero-text h1 .hero-line{
    display: inline !important;
    font-size: 1em !important;
    line-height: 1 !important;
  }

  .hero-home .hero-text h1 .hero-line-1::after{
    content: " ";
  }

  .hero-home .hero-text h1 .hero-line-2{
    display: inline !important;
    padding-left: 0 !important;
    text-align: inherit !important;
    transform: none !important;
  }

  .hero-home .hero-text h1 > span:last-child{
    display: block !important;
    font-size: .80em !important;
    line-height: 1.02 !important;
    white-space: normal !important;
  }
}
