/* ==========================================================================
   Royal Bank Plaza Dental Centre — design upgrade layer
   Section 1: Header + Hero
   Palette is the EXISTING site palette (extracted from production computed
   styles) — this file upgrades layout/depth/typography, never the colours.
   ========================================================================== */

@import url("/fonts/rdc-fonts.css");

:root{
  /* --- existing brand blues (unchanged) --- */
  --rdc-blue:      #6998ff;   /* primary button / accent            */
  --rdc-blue-br:   #3473ff;   /* bright accent link                 */
  --rdc-blue-dp:   #2f5bd0;   /* deep blue, nav hover               */
  --rdc-navy:      #1b2b47;   /* dark section ground                */
  --rdc-navy-lk:   #1b3b7a;   /* navy link on white                 */
  /* --- existing neutrals (unchanged) --- */
  --rdc-ink:       #0a0a0a;
  --rdc-ink-2:     #2b2f36;
  --rdc-muted:     #5a6472;
  --rdc-pale:      #c7d8ff;
  --rdc-pale-2:    #eaf0fa;
  --rdc-line:      #eef1f6;
  /* --- type --- */
  --rdc-display: 'Julius Sans One', 'Asap', sans-serif;
  --rdc-body:    'Asap', sans-serif;
  --rdc-cond:    'Roboto Condensed', 'Asap', sans-serif;
  /* --- motion --- */
  --rdc-ease: cubic-bezier(.22,.61,.36,1);
}

/* ==========================================================================
   1. UTILITY BAR  — slim band above the header
   ========================================================================== */
.rdc-util{
  background:linear-gradient(90deg,var(--rdc-navy) 0%,#22406e 52%,var(--rdc-navy-lk) 100%);
  color:#dbe6fb;
  font-family:var(--rdc-body);
  font-size:13.5px;
  line-height:1;
}
.rdc-util-inner{
  max-width:1680px;margin:0 auto;padding:9px 40px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.rdc-util-l,.rdc-util-r{display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.rdc-util a{color:#dbe6fb;text-decoration:none;transition:color .18s var(--rdc-ease);}
.rdc-util a:hover{color:#fff;}
.rdc-util-item{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;}
.rdc-util-item svg{width:14px;height:14px;flex:none;opacity:.8;}
.rdc-util-cdcp{
  display:inline-flex;align-items:center;gap:7px;white-space:nowrap;
  background:rgba(105,152,255,.20);
  border:1px solid rgba(199,216,255,.38);
  color:#eaf0fa;font-weight:600;
  padding:5px 13px;border-radius:100px;
}
.rdc-util-cdcp .rdc-dot{
  width:6px;height:6px;border-radius:50%;background:#7ee6b0;flex:none;
  box-shadow:0 0 0 0 rgba(126,230,176,.7);animation:rdcPulse 2.4s infinite;
}
@keyframes rdcPulse{
  0%{box-shadow:0 0 0 0 rgba(126,230,176,.65);}
  70%{box-shadow:0 0 0 7px rgba(126,230,176,0);}
  100%{box-shadow:0 0 0 0 rgba(126,230,176,0);}
}
@media(max-width:1180px){ .rdc-util-inner{padding:9px 22px;} .rdc-util-hide-md{display:none;} }
@media(max-width:900px){ .rdc-util{display:none;} }

/* ==========================================================================
   2. HEADER  — refined spacing, gradient CTA, mega menu
   ========================================================================== */
.rdc-hd{
  background:#fff;
  position:relative;               /* containing block for the mega menu */
  border-bottom:1px solid var(--rdc-line);
  transition:box-shadow .25s var(--rdc-ease),padding .25s var(--rdc-ease);
}
.rdc-hd-inner{padding:16px 40px;column-gap:34px;}
.rdc-hd.rdc-stuck{box-shadow:0 6px 26px rgba(16,32,64,.13);}
.rdc-hd.rdc-stuck .rdc-hd-inner{padding-top:10px;padding-bottom:10px;}
.rdc-hd.rdc-stuck .rdc-hd-logo img{width:172px;transition:width .25s var(--rdc-ease);}
.rdc-hd-logo img{transition:width .25s var(--rdc-ease);}

/* nav items — animated underline */
.rdc-hd-nav{gap:26px;}
.rdc-navitem,.rdc-navitem>a{
  font-family:var(--rdc-body);
  font-size:15.5px;font-weight:600;letter-spacing:.1px;
  position:relative;padding:6px 0;
}
.rdc-navitem>a::after,a.rdc-navitem:not(.rdc-homeic)::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;
  background:linear-gradient(90deg,var(--rdc-blue),var(--rdc-blue-dp));
  border-radius:2px;transition:right .28s var(--rdc-ease);
}
.rdc-navitem:hover>a::after,a.rdc-navitem:not(.rdc-homeic):hover::after{right:0;}
.rdc-navitem.rdc-active>a::after,a.rdc-navitem.rdc-active::after{right:0;}
.rdc-homeic{color:var(--rdc-blue-dp);}
.rdc-car{
  width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;
  border-top:5px solid currentColor;display:inline-block;
  transition:transform .22s var(--rdc-ease);
}
.rdc-dd:hover .rdc-car,.rdc-dd.rdc-open .rdc-car{transform:rotate(180deg);}

/* simple dropdowns */
.rdc-ddmenu{
  border:1px solid var(--rdc-line);
  box-shadow:0 18px 44px rgba(16,32,64,.16);
  border-radius:12px;padding:10px 0;
}
.rdc-ddmenu a{font-family:var(--rdc-body);font-size:14.5px;padding:11px 22px;}
.rdc-ddmenu a:hover{background:var(--rdc-pale-2);color:var(--rdc-blue-dp);}
.rdc-dd.rdc-open .rdc-ddmenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}

/* --- MEGA MENU (Services) --- */
/* Triple-class selector: the page's own inline block sets `.rdc-dd{position:relative}`
   and loads after this file, so it must be out-specified or the panel anchors to the
   nav item and hangs off the left edge of the viewport. */
.rdc-navitem.rdc-dd.rdc-mega-wrap{position:static;}
.rdc-mega-wrap{position:static;}
.rdc-mega{
  position:absolute;left:50%;transform:translateX(-50%) translateY(10px);
  top:100%;width:min(1180px,calc(100vw - 60px));
  background:linear-gradient(160deg,var(--rdc-navy) 0%,#1d3358 58%,var(--rdc-navy-lk) 100%);
  border-radius:0 0 16px 16px;
  box-shadow:0 26px 60px rgba(10,22,46,.34);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .22s var(--rdc-ease),transform .22s var(--rdc-ease);
  z-index:70;overflow:hidden;
}
/* The old `.rdc-mega::before` bridge is GONE: it sat at top:-30px inside a panel
   with `overflow:hidden` (so it was clipped away), on an element that is
   `visibility:hidden` until hovered (so it could never receive :hover). The real
   bridge lives on the TRIGGER, below. */
.rdc-mega-wrap:hover .rdc-mega,.rdc-mega:hover,
.rdc-mega-wrap.rdc-open .rdc-mega{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
}
.rdc-mega-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;padding:30px 34px 26px;
}
.rdc-mega-col{padding:0 22px;border-right:1px solid rgba(255,255,255,.15);}
.rdc-mega-col:last-child{border-right:none;}
.rdc-mega-col:first-child{padding-left:0;}
.rdc-mega-cat{
  display:block;font-family:var(--rdc-body);font-style:italic;font-weight:700;
  font-size:14.5px;color:var(--rdc-blue);margin-bottom:14px;letter-spacing:.2px;
}
.rdc-mega-col ul{list-style:none;margin:0;padding:0;}
.rdc-mega-col li{display:flex;align-items:flex-start;gap:9px;margin-bottom:7px;}
.rdc-mega-col li::before{
  content:"\25CF";color:var(--rdc-blue);font-size:7px;line-height:1.9;flex:none;
  transition:transform .18s var(--rdc-ease);
}
.rdc-mega-col li:hover::before{transform:scale(1.5);}
.rdc-mega-col a{
  font-family:var(--rdc-body);font-size:14.2px;line-height:1.45;
  color:#d5e0f2;text-decoration:none;transition:color .18s var(--rdc-ease);
}
.rdc-mega-col a:hover{color:#fff;}
.rdc-mega-col a .rdc-star{color:var(--rdc-blue);font-size:10px;margin-left:5px;vertical-align:2px;}
.rdc-mega-foot{
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  padding:15px 34px;background:rgba(0,0,0,.22);
  border-top:1px solid rgba(255,255,255,.12);
}
.rdc-mega-foot p{margin:0;color:#b9cbe8;font-family:var(--rdc-body);font-size:13.5px;}
.rdc-mega-foot p b{color:#fff;font-weight:700;}
.rdc-mega-all{
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  font-family:var(--rdc-body);font-size:14px;font-weight:700;color:#fff;text-decoration:none;
  background:linear-gradient(135deg,var(--rdc-blue) 0%,var(--rdc-blue-dp) 100%);
  padding:10px 20px;border-radius:100px;
  transition:transform .2s var(--rdc-ease),box-shadow .2s var(--rdc-ease);
}
.rdc-mega-all:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(47,91,208,.42);}
@media(max-width:1180px){ .rdc-mega{display:none;} }

/* header action cluster */
.rdc-actions{display:flex;align-items:center;gap:11px;}
.rdc-ic{border-color:#d4dded;}
.rdc-ic:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(47,91,208,.28);}
.rdc-phone{
  font-family:var(--rdc-body);font-size:19px;letter-spacing:-.2px;
  display:inline-flex;align-items:center;gap:8px;
}
.rdc-phone svg{width:17px;height:17px;flex:none;}
.rdc-hd-cta{
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  font-family:var(--rdc-body);font-size:14.5px;font-weight:700;letter-spacing:.2px;
  color:#fff;text-decoration:none;
  background:linear-gradient(135deg,var(--rdc-blue) 0%,var(--rdc-blue-dp) 100%);
  padding:12px 24px;border-radius:100px;
  box-shadow:0 6px 18px rgba(47,91,208,.30);
  transition:transform .2s var(--rdc-ease),box-shadow .2s var(--rdc-ease);
}
.rdc-hd-cta:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(47,91,208,.44);}
.rdc-hd-cta svg{width:16px;height:16px;flex:none;}
@media(max-width:1420px){ .rdc-hd-cta span{display:none;} .rdc-hd-cta{padding:12px 15px;} }
@media(max-width:1280px){ .rdc-hd-inner{padding:14px 24px;column-gap:20px;} .rdc-hd-nav{gap:19px;} }

/* ==========================================================================
   3. HERO
   ========================================================================== */
.rdc-hero{
  position:relative;isolation:isolate;
  min-height:min(86vh,780px);
  display:flex;flex-direction:column;   /* copy grows, strip sits on the floor */
  overflow:hidden;background:var(--rdc-navy);
}
/* The old Divi wave divider sat between header and hero — it clashes with the
   full-bleed photograph, so retire it. Its reserved padding and the section's
   173px min-height have to go with it, or they leave a white band above the hero.
   HOMEPAGE ONLY (`body.home`): inner pages still lay their header out against
   that min-height, and zeroing it site-wide clips the logo and drops the wave
   on top of the nav. */
body.home .et_pb_section_0_tb_header .et_pb_bottom_inside_divider{display:none;}
body.home .et_pb_section_0_tb_header{
  padding-bottom:0!important;margin-bottom:0!important;min-height:0!important;
}
.rdc-hero-bg{
  position:absolute;inset:0;z-index:0;
  background-image:url('/images/practice/storefront-entrance.webp');
  background-size:cover;
  background-position:58% 38%;   /* keeps the illuminated sign + entrance in frame */
  background-repeat:no-repeat;
  transform:scale(1.04);
  animation:rdcHeroIn 1.5s var(--rdc-ease) both;
}
@keyframes rdcHeroIn{from{transform:scale(1.10);opacity:.55;}to{transform:scale(1.04);opacity:1;}}
.rdc-hero-veil{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(96deg,
      rgba(10,20,40,.94) 0%,
      rgba(12,24,48,.88) 30%,
      rgba(14,28,56,.62) 50%,
      rgba(16,32,64,.22) 70%,
      rgba(16,32,64,.06) 100%),
    linear-gradient(180deg, rgba(10,20,40,.34) 0%, rgba(10,20,40,0) 26%, rgba(10,20,40,.42) 100%);
}
.rdc-hero-inner{
  position:relative;z-index:2;
  flex:1 1 auto;display:flex;align-items:center;
  max-width:1680px;margin:0 auto;width:100%;
  padding:74px 40px 66px;
}
.rdc-hero-copy{max-width:660px;}

.rdc-hero-eyebrow{
  display:inline-flex;align-items:center;gap:11px;
  font-family:var(--rdc-cond);font-size:13px;font-weight:700;
  letter-spacing:3.2px;text-transform:uppercase;color:var(--rdc-pale);
  margin:0 0 16px;
}
.rdc-hero-eyebrow::before{
  content:"";width:38px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--rdc-blue),rgba(105,152,255,0));
}
.rdc-hero h1{
  margin:0 0 14px;font-family:var(--rdc-display);font-weight:400;
  color:#fff;line-height:1.04;letter-spacing:.5px;
  font-size:clamp(40px,5.6vw,74px);
  text-shadow:0 3px 26px rgba(0,0,0,.42);
}
.rdc-hero h1 .rdc-h1-sub{
  display:block;margin-top:12px;
  font-family:var(--rdc-cond);font-weight:500;letter-spacing:2.4px;
  text-transform:uppercase;color:var(--rdc-blue);
  font-size:clamp(15px,1.55vw,23px);
  text-shadow:0 2px 14px rgba(0,0,0,.4);
}
.rdc-hero-lead{
  margin:0 0 22px;color:#e3ebf8;
  font-family:var(--rdc-body);font-size:17px;line-height:1.75;
  text-shadow:0 1px 12px rgba(0,0,0,.5);
}
.rdc-hero-note{
  display:flex;align-items:flex-start;gap:11px;
  margin:0 0 26px;padding:13px 18px;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(199,216,255,.30);
  border-left:3px solid var(--rdc-blue);
  border-radius:10px;
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  color:#eef4ff;font-family:var(--rdc-body);font-size:15px;line-height:1.5;
  max-width:560px;
}
.rdc-hero-note svg{width:19px;height:19px;flex:none;color:var(--rdc-blue);margin-top:1px;}
.rdc-hero-note b{font-weight:700;color:#fff;}

.rdc-hero-badge{
  display:inline-flex;align-items:center;gap:13px;
  padding:10px 18px 10px 12px;margin:0 0 28px;
  background:rgba(255,255,255,.96);
  border-radius:12px;
  box-shadow:0 12px 30px rgba(0,0,0,.30);
}
.rdc-hero-badge img{display:block;height:38px;width:auto;}
.rdc-hero-badge span{
  font-family:var(--rdc-cond);font-size:11.5px;font-weight:700;
  letter-spacing:1.5px;text-transform:uppercase;color:var(--rdc-muted);
  line-height:1.35;border-left:1px solid #dbe2ee;padding-left:13px;max-width:132px;
}

.rdc-hero-btns{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.rdc-btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--rdc-body);font-size:15px;font-weight:700;letter-spacing:.6px;
  text-transform:uppercase;text-decoration:none;
  padding:15px 32px;border-radius:100px;
  transition:transform .22s var(--rdc-ease),box-shadow .22s var(--rdc-ease),background .22s var(--rdc-ease);
}
.rdc-btn svg{width:16px;height:16px;flex:none;}
.rdc-btn-primary{
  color:#fff;
  background:linear-gradient(135deg,var(--rdc-blue) 0%,var(--rdc-blue-dp) 100%);
  box-shadow:0 10px 26px rgba(47,91,208,.44);
}
.rdc-btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(47,91,208,.56);}
.rdc-btn-ghost{
  color:#fff;background:rgba(255,255,255,.10);
  border:1.5px solid rgba(255,255,255,.55);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
}
.rdc-btn-ghost:hover{background:rgba(255,255,255,.20);border-color:#fff;transform:translateY(-3px);}

/* --- trust strip pinned to the bottom of the hero --- */
.rdc-hero-strip{
  position:relative;z-index:2;flex:0 0 auto;   /* pinned to the bottom of the hero */
  background:linear-gradient(90deg,rgba(10,20,40,.90) 0%,rgba(20,40,78,.86) 100%);
  border-top:1px solid rgba(199,216,255,.20);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.rdc-hero-strip-inner{
  max-width:1680px;margin:0 auto;padding:0 40px;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
}
.rdc-strip-item{
  display:flex;align-items:center;gap:13px;
  /* left padding matters: without it every icon after the first sits flush
     against the divider line of the item before it (Gaurav 2026-08-31) */
  padding:19px 26px;
  border-right:1px solid rgba(255,255,255,.13);
}
.rdc-hero-strip-inner .rdc-strip-item:first-child{padding-left:0;}
.rdc-hero-strip-inner .rdc-strip-item:last-child{border-right:none;}
.rdc-strip-ic{
  width:42px;height:42px;border-radius:11px;flex:none;
  background:rgba(105,152,255,.18);
  border:1px solid rgba(199,216,255,.30);
  display:flex;align-items:center;justify-content:center;color:var(--rdc-pale);
}
.rdc-strip-ic svg{width:20px;height:20px;}
.rdc-strip-t{
  display:block;font-family:var(--rdc-cond);font-size:10.5px;font-weight:700;
  letter-spacing:1.4px;text-transform:uppercase;color:#9fb6da;margin-bottom:4px;
  white-space:nowrap;
}
.rdc-strip-v{
  display:block;font-family:var(--rdc-body);font-size:14.6px;font-weight:600;
  color:#fff;line-height:1.4;white-space:nowrap;
}
@media(max-width:1520px){ .rdc-strip-v{font-size:13.6px;} }
.rdc-strip-v a{color:#fff;text-decoration:none;}
.rdc-strip-v a:hover{color:var(--rdc-pale);}

/* ---------- hero responsive ---------- */
@media(max-width:1280px){
  .rdc-hero-inner{padding:64px 24px 58px;}
  .rdc-hero-strip-inner{padding:0 24px;}
  .rdc-strip-item{padding-left:16px;padding-right:16px;gap:11px;}
}
@media(max-width:1024px){
  .rdc-hero-strip-inner{grid-template-columns:repeat(2,minmax(0,1fr));}
  .rdc-strip-item:nth-child(2){border-right:none;}
  .rdc-strip-item:nth-child(1),.rdc-strip-item:nth-child(2){border-bottom:1px solid rgba(255,255,255,.13);}
}
@media(max-width:860px){
  .rdc-hero{min-height:0;}
  .rdc-hero-bg{background-position:60% 50%;}
  .rdc-hero-veil{
    background:linear-gradient(180deg,rgba(10,20,40,.94) 0%,rgba(12,24,48,.91) 55%,rgba(14,28,56,.95) 100%);
  }
  .rdc-hero-inner{padding:46px 20px 42px;}
  .rdc-hero-copy{max-width:100%;}
  .rdc-hero-lead{font-size:16px;}
  .rdc-hero-note{max-width:100%;}
  .rdc-hero-btns .rdc-btn{flex:1 1 auto;justify-content:center;padding:15px 22px;}
}
@media(max-width:560px){
  .rdc-hero-strip-inner{grid-template-columns:1fr;padding:0 20px;}
  .rdc-strip-item{border-right:none!important;padding:15px 0;}
  .rdc-hero-strip-inner .rdc-strip-item:last-child{border-bottom:none;}
  .rdc-strip-item:nth-child(3){border-bottom:1px solid rgba(255,255,255,.13);}
  .rdc-hero-badge{width:100%;}
}

/* respect reduced motion */
@media(prefers-reduced-motion:reduce){
  .rdc-hero-bg{animation:none;transform:none;}
  .rdc-util-cdcp .rdc-dot{animation:none;}
  *{transition-duration:.01ms!important;}
}























/* >>> RDC-CV-PAGE >>> */
.rdc-cv{max-width:1152px;margin:0 auto;padding:0 0 10px;font-family:var(--rdc-body);}
.rdc-cv-head{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:44px;align-items:start;
  padding-bottom:34px;margin-bottom:34px;border-bottom:1px solid var(--rdc-line);
}
.rdc-cv-h1{
  font-family:var(--rdc-display)!important;font-weight:400!important;
  font-size:clamp(30px,3.3vw,45px)!important;line-height:1.12!important;
  color:var(--rdc-navy)!important;margin:0 0 12px!important;
}
.rdc-cv-sub{
  font-family:var(--rdc-cond);font-size:13px;font-weight:700;letter-spacing:1.8px;
  text-transform:uppercase;color:var(--rdc-blue-dp);margin:0 0 22px;
}
.rdc-cv-bio{font-size:16.6px;line-height:1.85;color:#2a3a4a;margin:0 0 14px;}
.rdc-cv-photo img{
  width:100%;max-width:420px;height:auto;display:block;border-radius:16px;
  box-shadow:0 18px 40px rgba(18,36,74,.16);
}
.rdc-cv-sec{
  display:grid;grid-template-columns:minmax(0,.34fr) minmax(0,.66fr);gap:40px;
  padding:26px 0;border-bottom:1px solid var(--rdc-line);align-items:start;
}
.rdc-cv-label{position:sticky;top:110px;}
.rdc-cv-sec:last-of-type{border-bottom:0;}
.rdc-cv-sec h2{
  font-family:var(--rdc-display)!important;font-weight:400!important;
  font-size:clamp(22px,2.2vw,29px)!important;line-height:1.18!important;
  color:var(--rdc-navy)!important;margin:0 0 16px!important;
}
.rdc-cv-sec p{font-size:16.4px;line-height:1.85;color:#2a3a4a;margin:0 0 14px;}
.rdc-cv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.rdc-cv-list li{
  position:relative;padding-left:26px;font-size:16.2px;line-height:1.7;color:#2a3a4a;
}
.rdc-cv-list li:before{
  content:"";position:absolute;left:2px;top:10px;width:8px;height:8px;border-radius:50%;
  background:var(--rdc-blue);
}
.rdc-cv-foot{
  margin-top:30px;padding:26px 30px;border-radius:16px;
  background:linear-gradient(160deg,#16233c 0%,#1b2b47 52%,#22406e 100%);
  display:flex;flex-wrap:wrap;gap:20px 30px;align-items:center;justify-content:space-between;
}
.rdc-cv-foot p{margin:0;color:rgba(255,255,255,.88);font-size:15.6px;line-height:1.75;}
.rdc-cv-foot b{color:#fff!important;}   /* the site-wide strong/b rule paints
                                            navy — invisible on this navy band */
@media(max-width:900px){
  .rdc-cv-sec{grid-template-columns:1fr;gap:14px;}
  .rdc-cv-label{position:static;}
  .rdc-cv-head{grid-template-columns:1fr;gap:26px;}
  .rdc-cv-photo img{max-width:280px;}
}
/* <<< RDC-CV-PAGE <<< */

/* >>> RDC-INTERNAL-PAGES >>> */
/* ==========================================================================
   1. HEADINGS WERE INVISIBLE — white text on a white page.
      The live WordPress site paints every heading #fff, so 733 pages ship an
      <h1> and every <h2>/<h3> that the reader (and any human scanning the
      page) simply cannot see. Repaint them, then re-assert white ONLY where
      the background really is dark.
   ========================================================================== */
/* The site's own stylesheet contains
       h1,.et-db #et-boc .et-l h1,h2,.et-db #et-boc .et-l h2,... {color:#ffffff}
   so EVERY heading is painted white. On the dark bands that is correct and
   deliberate; on the ~490 light-background pages it means the <h1> and every
   <h2>/<h3> is white text on a white page — invisible to readers and to
   anyone scanning the page.

   Repaint ONLY the headings that are NOT inside a Divi dark-background
   module. Specificity is tuned on purpose: (1,3,1) beats the global white
   rule at (1,2,1), but ties with Divi's per-module colour rules — and those
   live in the page's inline \3c style>, which loads AFTER this file, so any
   colour the client deliberately chose still wins. */
.et-db #et-boc .et-l h1:not(.et_pb_bg_layout_dark *),
.et-db #et-boc .et-l h2:not(.et_pb_bg_layout_dark *),
.et-db #et-boc .et-l h3:not(.et_pb_bg_layout_dark *),
.et-db #et-boc .et-l h4:not(.et_pb_bg_layout_dark *),
.et-db #et-boc .et-l h5:not(.et_pb_bg_layout_dark *),
.et-db #et-boc .et-l h6:not(.et_pb_bg_layout_dark *),
#left-area .entry-content h1:not(.et_pb_bg_layout_dark *),
#left-area .entry-content h2:not(.et_pb_bg_layout_dark *),
#left-area .entry-content h3:not(.et_pb_bg_layout_dark *),
#left-area .entry-content h4:not(.et_pb_bg_layout_dark *),
#left-area .entry-content h5:not(.et_pb_bg_layout_dark *),
#left-area .entry-content h6:not(.et_pb_bg_layout_dark *),
#left-area .et_post_meta_wrapper .entry-title{
  color: var(--rdc-navy);
}

/* ==========================================================================
   2. PAGE HEADER — title + date + featured image (they were unstyled)
   ========================================================================== */
/* every blog post reserved a 288px #sidebar holding two EMPTY widget blocks
   (711 pages) — drop it and let the single column run full width */
body:not(.home) #sidebar{display:none!important;}
body:not(.home) #left-area{width:100%!important;float:none!important;padding-right:0!important;}
body:not(.home) #left-area .et_post_meta_wrapper:first-child{
  padding-bottom:26px;margin-bottom:30px;border-bottom:1px solid var(--rdc-line);
}
/* the closing meta wrapper is always empty — it was drawing a stray rule */
body:not(.home) #left-area article > .et_post_meta_wrapper:not(:first-child),body:not(.home) #left-area div:where([class^="type-"],[class*=" type-"]) > .et_post_meta_wrapper:not(:first-child){display:none!important;}
body:not(.home) .entry-title{
  font-family:var(--rdc-display)!important;font-weight:400!important;
  font-size:clamp(30px,3.2vw,43px)!important;line-height:1.14!important;
  letter-spacing:.4px;margin:0 0 14px!important;padding:0!important;
}
body:not(.home) .entry-title:after{
  content:"";display:block;width:66px;height:4px;margin-top:16px;border-radius:2px;
  background:linear-gradient(90deg,var(--rdc-blue),var(--rdc-blue-dp));
}
body:not(.home) .post-meta, body:not(.home) .post-meta a{
  font-family:var(--rdc-cond)!important;font-size:12.5px!important;font-weight:700;
  letter-spacing:1.9px;text-transform:uppercase;color:var(--rdc-muted)!important;
  margin:0!important;
}
/* When the page has a featured image, the header becomes two columns —
   title/breadcrumb left, photo right — so the photo never sits alone with an
   empty half beside it, and is never upscaled past its own pixel width. */
body:not(.home) #left-area .et_post_meta_wrapper:first-child:has(> img){
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:38px;align-items:center;
}
body:not(.home) #left-area .et_post_meta_wrapper:first-child:has(> img) .rdc-crumbs,
body:not(.home) #left-area .et_post_meta_wrapper:first-child:has(> img) .entry-title,
body:not(.home) #left-area .et_post_meta_wrapper:first-child:has(> img) .post-meta{
  grid-column:1;
}
body:not(.home) .et_post_meta_wrapper > img{
  display:block;width:100%;max-width:100%;height:auto;margin:0;grid-column:2;grid-row:1 / span 4;
  border-radius:14px;box-shadow:0 16px 36px rgba(18,36,74,.14);
}
@media(max-width:900px){
  body:not(.home) #left-area .et_post_meta_wrapper:first-child:has(> img){grid-template-columns:1fr;gap:22px;}
  body:not(.home) .et_post_meta_wrapper > img{grid-column:1;grid-row:auto;}
}

/* breadcrumbs (service pages) */
.rdc-crumbs{
  display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:0 0 18px;
  font-family:var(--rdc-body);font-size:13.4px;color:var(--rdc-muted);
}
.rdc-crumbs a{color:var(--rdc-blue-dp);text-decoration:none;}
.rdc-crumbs a:hover{text-decoration:underline;}
.rdc-crumbs span{color:#9aa6b6;}
.rdc-crumbs .rdc-crumb-now{color:var(--rdc-ink-2);}

/* ==========================================================================
   3. BODY COPY — was 14px/1.7 grey on a 1150px column
   ========================================================================== */
/* Only the ported blog/service body copy is resized. Divi-built pages
   (forms, policies, contact, galleries) carry per-module type the client
   chose — e.g. the 50px page title with its 4px offset shadow on the New
   Patient Form page, which reads as DOUBLED text if it is shrunk. */
body:not(.home) #left-area .entry-content p,
body:not(.home) #left-area .entry-content li{
  font-family:var(--rdc-body)!important;font-size:16.6px!important;
  line-height:1.85!important;color:#2a3a4a!important;
}
body:not(.home) #main-content .et_pb_text_inner p,
body:not(.home) #main-content .et_pb_text_inner li{
  line-height:1.8;
}
body:not(.home) #left-area .entry-content p{margin:0 0 18px;}
body:not(.home) .entry-content h2{
  font-family:var(--rdc-display)!important;font-weight:400!important;
  font-size:clamp(24px,2.4vw,32px)!important;line-height:1.18!important;
  margin:38px 0 14px!important;
}
body:not(.home) .entry-content h3{
  font-family:var(--rdc-display)!important;font-weight:400!important;
  font-size:clamp(20px,2vw,25px)!important;line-height:1.22!important;
  margin:30px 0 12px!important;
}
body:not(.home) .entry-content h4{
  font-family:var(--rdc-body)!important;font-weight:700!important;
  font-size:18px!important;margin:26px 0 10px!important;
}
body:not(.home) .entry-content ul,
body:not(.home) .entry-content ol{margin:0 0 20px;padding-left:4px;list-style:none;}
body:not(.home) .entry-content ul li{position:relative;padding-left:26px;margin-bottom:9px;}
body:not(.home) .entry-content ul li:before{
  content:"";position:absolute;left:4px;top:11px;width:7px;height:7px;border-radius:50%;
  background:var(--rdc-blue);
}
body:not(.home) .entry-content ol{counter-reset:rdcol;}
body:not(.home) .entry-content ol li{position:relative;padding-left:32px;margin-bottom:9px;counter-increment:rdcol;}
body:not(.home) .entry-content ol li:before{
  content:counter(rdcol);position:absolute;left:0;top:2px;width:22px;height:22px;border-radius:50%;
  background:var(--rdc-pale-2);color:var(--rdc-blue-dp);font-family:var(--rdc-body);
  font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center;
}
body:not(.home) .entry-content a:not(.et_pb_button):not(.rdc-btn){
  color:var(--rdc-blue-dp);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px;
}
body:not(.home) .entry-content a:not(.et_pb_button):hover{color:var(--rdc-blue-br);}
body:not(.home) .entry-content strong,
body:not(.home) .entry-content b{color:var(--rdc-navy);font-weight:700;}
body:not(.home) .entry-content img{max-width:100%;height:auto;border-radius:10px;}
/* embedded video — was stretched to the full column with no aspect control */
body:not(.home) .entry-content iframe{max-width:100%;border-radius:12px;}
body:not(.home) .entry-content iframe[src*="youtube"]{
  display:block;width:100%;max-width:100%;aspect-ratio:16/9;height:auto;
  margin:26px 0;box-shadow:0 14px 32px rgba(18,36,74,.14);
}
/* transcript block under each video (crawlable speech, closed by default) */
.video-transcript{
  margin:-8px 0 26px;border:1px solid var(--rdc-line);border-radius:12px;
  background:#fbfcfe;font-family:var(--rdc-body);
}
.video-transcript summary{
  cursor:pointer;padding:12px 18px;font-family:var(--rdc-cond);font-size:12.5px;font-weight:700;
  letter-spacing:1.8px;text-transform:uppercase;color:var(--rdc-blue-dp);
}
.video-transcript .vt-text{
  padding:0 18px 18px;font-size:15px;line-height:1.8;color:#2a3a4a;max-height:340px;overflow:auto;
}

/* FAQ blocks: the questions are bold spans inside a paragraph */
body:not(.home) .entry-content p > span[style*="font-weight: bold"]:first-child,
body:not(.home) .entry-content p > strong:first-child{
  display:block;font-family:var(--rdc-body);font-weight:700;font-size:17.2px;
  line-height:1.4;color:var(--rdc-navy);margin-bottom:3px;
}
body:not(.home) .entry-content p:has(> span[style*="font-weight: bold"]:first-child){
  margin-top:24px;
}
body:not(.home) .entry-content blockquote{
  margin:26px 0;padding:18px 24px;background:var(--rdc-pale-2);
  border-left:4px solid var(--rdc-blue);border-radius:0 12px 12px 0;
}
body:not(.home) .entry-content table{
  width:100%;border-collapse:collapse;margin:24px 0;font-family:var(--rdc-body);font-size:15.4px;
}
body:not(.home) .entry-content th,
body:not(.home) .entry-content td{
  border:1px solid var(--rdc-line);padding:11px 14px;text-align:left;
}
body:not(.home) .entry-content th{background:var(--rdc-pale-2);color:var(--rdc-navy);font-weight:700;}

/* ==========================================================================
   4. DEAD SPACE — top of page, bottom of page, and inside the footer band
   ========================================================================== */
body:not(.home) #main-content .container{padding-top:44px!important;}
body:not(.home) #left-area{padding-bottom:54px!important;}
body:not(.home) article.et_pb_post,body:not(.home) div:where([class^="type-"],[class*=" type-"]).et_pb_post{padding-bottom:0!important;}
body:not(.home) .et_pb_section.et_pb_section_0{
  padding-top:0!important;padding-bottom:8px!important;min-height:0!important;
}
.et-l--footer .et_pb_section.et_pb_section_0_tb_footer{
  padding-top:56px!important;padding-bottom:56px!important;min-height:0!important;
}
.et-l--footer .et_pb_row.et_pb_row_0_tb_footer{
  padding-top:0!important;padding-bottom:0!important;min-height:0!important;margin-bottom:0!important;
}

/* ==========================================================================
   5. SERVICES INDEX — raw thumbnails + wrapping labels become real cards
   ========================================================================== */
.dental-services .box,article.dental-services .box,div:where([class^="type-"],[class*=" type-"]).dental-services .box{
  display:flex;flex-direction:column;height:100%;background:#fff;
  border:1px solid var(--rdc-line);border-radius:14px;overflow:hidden;
  box-shadow:0 2px 3px rgba(20,40,80,.04);
  transition:transform .32s var(--rdc-ease),box-shadow .32s var(--rdc-ease),border-color .32s var(--rdc-ease);
}
.dental-services .box:hover{
  transform:translateY(-4px);box-shadow:0 16px 34px rgba(20,40,80,.13);border-color:#d8e3f7;
}
.dental-services .servi_img{line-height:0;background:var(--rdc-pale-2);}
.dental-services .servi_img img{width:100%;max-width:100%;height:auto;display:block;}
.dental-services .service_title{padding:16px 18px 18px;display:flex;flex:1 1 auto;align-items:center;}
.dental-services .service_title h3{
  margin:0!important;font-family:var(--rdc-body)!important;font-weight:700!important;
  font-size:16px!important;line-height:1.35!important;
}
.dental-services .service_title h3 a{color:var(--rdc-navy)!important;text-decoration:none!important;}
.dental-services .service_title h3 a:hover{color:var(--rdc-blue-dp)!important;}
/* Divi floats these as 1/4 columns, so the cards in a row never line up.
   Turn the row into a real grid — equal heights, one gutter. */
#main-content .et_pb_row:has(article.dental-services){
  display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;
  width:100%!important;max-width:1152px!important;margin-bottom:26px!important;
}
#main-content .et_pb_row:has(article.dental-services) .et_pb_column{
  width:100%!important;margin:0!important;float:none!important;display:flex;
}
#main-content .et_pb_row:has(article.dental-services) .et_pb_text,#main-content .et_pb_row:has(article.dental-services) .et_pb_text_inner,#main-content .et_pb_row:has(article.dental-services) article.dental-services,#main-content .et_pb_row:has(article.dental-services) div:where([class^="type-"],[class*=" type-"]).dental-services{
  width:100%;margin:0!important;display:flex;flex-direction:column;flex:1 1 auto;
}
/* the card title must stay body type — Divi paints every h3 in the display
   face, which renders these labels in all-caps and wraps them to three lines */
#main-content .et_pb_text_inner article.dental-services .service_title h3,#main-content .et_pb_text_inner div:where([class^="type-"],[class*=" type-"]).dental-services .service_title h3,#main-content .et_pb_text_inner article.dental-services .service_title h3 a,#main-content .et_pb_text_inner div:where([class^="type-"],[class*=" type-"]).dental-services .service_title h3 a{
  font-family:var(--rdc-body)!important;font-weight:700!important;
  font-size:15.6px!important;line-height:1.4!important;letter-spacing:0!important;
  text-transform:none!important;
}
@media(max-width:1100px){ #main-content .et_pb_row:has(article.dental-services){grid-template-columns:repeat(3,minmax(0,1fr));} }
@media(max-width:820px){ #main-content .et_pb_row:has(article.dental-services){grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;} }
@media(max-width:520px){ #main-content .et_pb_row:has(article.dental-services){grid-template-columns:1fr;} }

/* ==========================================================================
   6. FORMS on internal pages (patient forms / contact)
   ========================================================================== */
body:not(.home) .entry-content input[type=text],
body:not(.home) .entry-content input[type=email],
body:not(.home) .entry-content input[type=tel],
body:not(.home) .entry-content textarea,
body:not(.home) .entry-content select{
  width:100%;padding:12px 14px;border:1px solid #d9e2f0;border-radius:10px;
  font-family:var(--rdc-body);font-size:15.5px;background:#fff;
}
body:not(.home) .entry-content input:focus,
body:not(.home) .entry-content textarea:focus{outline:2px solid var(--rdc-blue);outline-offset:1px;}

/* insurance carriers block on the Financial Policies page (PIF insurance_plans) */
.rdc-carriers{
  max-width:1152px;margin:0 auto 34px;padding:26px 30px;background:var(--rdc-pale-2);
  border:1px solid #dbe6fa;border-radius:16px;
}
.rdc-carriers h2{
  font-family:var(--rdc-display)!important;font-weight:400!important;
  font-size:clamp(22px,2.2vw,29px)!important;color:var(--rdc-navy)!important;
  margin:0 0 16px!important;
}
.rdc-carrier-list{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:11px;}
.rdc-carrier-list li:before{content:none!important;}   /* not a bullet list */
.rdc-carrier-list li{
  background:#fff;border:1px solid #dbe6fa;border-radius:999px;padding:10px 20px;
  font-family:var(--rdc-body);font-size:15.2px;font-weight:600;color:var(--rdc-navy);
}
.rdc-carrier-note{margin:0;font-family:var(--rdc-body);font-size:15.4px;color:#3d4a5c;}
.rdc-carrier-note b{color:var(--rdc-navy);}

/* gallery lightbox */
.rdc-lb{
  position:fixed;inset:0;z-index:2147483000;background:rgba(8,14,26,.93);  /* above the sticky header */
  display:flex;align-items:center;justify-content:center;padding:44px 70px;
}
.rdc-lb[hidden]{display:none;}
.rdc-lb-img{max-width:100%;max-height:88vh;border-radius:10px;box-shadow:0 24px 60px rgba(0,0,0,.5);}
.rdc-lb button{
  position:absolute;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);
  color:#fff;border-radius:50%;width:46px;height:46px;font-size:26px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .2s;
}
.rdc-lb button:hover{background:rgba(255,255,255,.22);}
.rdc-lb-close{top:20px;right:24px;}
.rdc-lb-prev{left:16px;}
.rdc-lb-next{right:16px;}
.rdc-lb-count{
  position:absolute;bottom:18px;left:50%;transform:translateX(-50%);
  font-family:var(--rdc-cond);font-size:13px;letter-spacing:2px;color:rgba(255,255,255,.75);
}
@media(max-width:700px){
  .rdc-lb{padding:20px 12px;}
  .rdc-lb-prev{left:6px;} .rdc-lb-next{right:6px;}
}

/* ==========================================================================
   7. NAV PAGES — page titles, galleries, testimonials
   ========================================================================== */
.rdc-page-h1{
  max-width:1152px;margin:0 auto 30px!important;padding:0 0 18px;
  font-family:var(--rdc-display)!important;font-weight:400!important;
  font-size:clamp(30px,3.2vw,43px)!important;line-height:1.14!important;
  color:var(--rdc-navy)!important;border-bottom:1px solid var(--rdc-line);
}
.rdc-page-h1:after{
  content:"";display:block;width:66px;height:4px;margin-top:16px;border-radius:2px;
  background:linear-gradient(90deg,var(--rdc-blue),var(--rdc-blue-dp));
}
/* the New Patient Form title keeps the client's 50px centred type + shadow */
h1.rdc-form-h1{
  font-family:var(--rdc-display)!important;font-size:50px!important;
  line-height:1.2!important;color:var(--rdc-navy)!important;margin:0 0 8px!important;
}

/* smile galleries: 29 photos stacked in one 20,000px column -> real grid */
body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner,
body.parent-pinhole-surgery-gallery .entry-content .et_pb_text_inner{
  column-count:3;column-gap:26px;   /* columns, not grid: the photos are all
                                       different heights, a grid leaves holes */
}
body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner > p,
body.parent-pinhole-surgery-gallery .entry-content .et_pb_text_inner > p{
  break-inside:avoid;page-break-inside:avoid;margin:0 0 26px!important;
}
@media(max-width:1000px){
  body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner,
  body.parent-pinhole-surgery-gallery .entry-content .et_pb_text_inner{column-count:2;}
}
@media(max-width:640px){
  body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner,
  body.parent-pinhole-surgery-gallery .entry-content .et_pb_text_inner{column-count:1;}
}
body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner > p,
body.parent-pinhole-surgery-gallery .entry-content .et_pb_text_inner > p{
  font-size:14.6px;line-height:1.6;color:var(--rdc-muted);text-align:center;
}
body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner > p:has(> br:only-child),
body.parent-pinhole-surgery-gallery .entry-content .et_pb_text_inner > p:has(> br:only-child){display:none;}
body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner img,
body.parent-pinhole-surgery-gallery .entry-content .et_pb_text_inner img{
  width:auto;max-width:100%;height:auto;border-radius:12px;
  box-shadow:0 10px 26px rgba(18,36,74,.14);
}
body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner > p > strong,
body.parent-pinhole-surgery-gallery .entry-content .et_pb_text_inner > p > strong{
  font-family:var(--rdc-cond);font-size:12.5px;letter-spacing:1.8px;text-transform:uppercase;
  color:var(--rdc-blue-dp);
}

/* full-bleed Divi rows on text pages get the site container back */
body.parent-testimonials-downtown-toronto .et_pb_row_fullwidth,
body.parent-patient-forms-downtown-toronto .et_pb_row_fullwidth,
body.parent-cosmetic-dentistry-smiles .et_pb_row_fullwidth,
body.parent-pinhole-surgery-gallery .et_pb_row_fullwidth,
body.parent-special-offers-downtown-toronto .et_pb_row_fullwidth{
  max-width:1152px!important;margin-left:auto!important;margin-right:auto!important;
  padding-left:0!important;padding-right:0!important;
}
/* testimonials read as one wall of text — give each review a card */
body.parent-testimonials-downtown-toronto .entry-content .et_pb_text_inner{
  background:#fff;border:1px solid var(--rdc-line);border-left:3px solid var(--rdc-blue);
  border-radius:14px;padding:30px 32px;box-shadow:0 2px 3px rgba(20,40,80,.04);
}
hr.rdc-tdiv{
  border:0;border-top:1px solid var(--rdc-line);margin:30px 0;
}
body.parent-special-offers-downtown-toronto .entry-content figure{margin:0 0 20px;}
body.parent-special-offers-downtown-toronto .entry-content figure img{
  border-radius:14px;box-shadow:0 14px 32px rgba(18,36,74,.14);
}

@media(max-width:980px){
  body:not(.home) #main-content .container{padding-top:30px!important;}
  body:not(.home) .entry-title{font-size:29px!important;}
  body:not(.home) #left-area .entry-content p,
  body:not(.home) #left-area .entry-content li{font-size:16px!important;}
}
/* <<< RDC-INTERNAL-PAGES <<< */

/* >>> RDC-FOOTER-EMAIL >>> */
.rdc-ft-email{margin-top:8px!important;line-height:1.75;}
.rdc-ft-email a{
  color:rgba(255,255,255,.82)!important;font-family:'Asap',sans-serif;font-size:14.5px;
  text-decoration:none;word-break:break-word;
}
.rdc-ft-email a:hover{color:#9dc0ff!important;text-decoration:underline;}
/* <<< RDC-FOOTER-EMAIL <<< */



/* >>> RDC-SERVICE-SEO >>> */
/* ==========================================================================
   Service pages: on-page contents, and the "more from us" block that closes
   every /dental-services/ page. Links only -- the footer stays the only CTA.
   ========================================================================== */

/* ---- contextual links inside the client's own body copy ---------------- */
body:not(.home) #left-area .entry-content p > a[href^="/"],
body:not(.home) #left-area .entry-content li > a[href^="/"]{
  color:var(--rdc-navy-lk);text-decoration:none;
  box-shadow:inset 0 -1px 0 rgba(41,91,208,.34);
  transition:color .18s var(--rdc-ease),box-shadow .18s var(--rdc-ease);
}
body:not(.home) #left-area .entry-content p > a[href^="/"]:hover,
body:not(.home) #left-area .entry-content li > a[href^="/"]:hover{
  color:var(--rdc-blue-dp);box-shadow:inset 0 -2px 0 var(--rdc-blue-dp);
}

/* ---- on this page (jump links) ---------------------------------------- */
.rdc-toc{
  margin:28px 0 34px;padding:22px 26px 20px;
  background:var(--rdc-pale-2);border-left:4px solid var(--rdc-blue-dp);border-radius:0 12px 12px 0;
}
.rdc-toc-h{
  margin:0 0 12px!important;font-family:var(--rdc-cond)!important;font-size:12px!important;
  font-weight:700!important;letter-spacing:2.4px;text-transform:uppercase;color:var(--rdc-blue-dp)!important;
}
.rdc-toc ul{
  list-style:none!important;margin:0!important;padding:0!important;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:4px 30px;
}
/* the theme paints its own bullet on every .entry-content li -- suppress both
   that pseudo-element and the native marker on our own lists */
body:not(.home) .entry-content .rdc-toc ul li,
.rdc-toc ul li{
  margin:0!important;padding:0!important;list-style:none!important;position:relative;
}
body:not(.home) .entry-content .rdc-toc ul li:before,
.rdc-toc ul li:before{content:none!important;display:none!important;}
.rdc-toc ul li::marker{content:"";}
.rdc-toc a{
  display:block;padding:5px 0 5px 17px;position:relative;
  font-family:var(--rdc-body)!important;font-size:15px!important;line-height:1.5!important;
  color:var(--rdc-navy-lk)!important;text-decoration:none;
}
.rdc-toc a:before{
  content:"";position:absolute;left:0;top:13px;width:6px;height:6px;border-radius:50%;
  background:var(--rdc-blue);
}
.rdc-toc a:hover{color:var(--rdc-blue-dp)!important;text-decoration:underline;}
@media(max-width:640px){ .rdc-toc{padding:18px 20px;} }

/* section anchors must clear the sticky header when a jump link is used */
body:not(.home) .entry-content h2[id],
body:not(.home) .entry-content h3[id]{scroll-margin-top:130px;}

/* ---- more from us: related treatments / cases / articles --------------- */
.rdc-svc-more{
  margin:56px 0 6px;padding:38px 0 0;border-top:1px solid var(--rdc-line);
}
.rdc-more-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:34px 46px;align-items:start;
}
.rdc-more-h{
  margin:0 0 14px!important;padding:0 0 12px;border-bottom:1px solid var(--rdc-line);
  font-family:var(--rdc-cond)!important;font-size:12.5px!important;font-weight:700!important;
  line-height:1.4!important;letter-spacing:2.2px;text-transform:uppercase;
  color:var(--rdc-blue-dp)!important;
}
.rdc-more-list{list-style:none!important;margin:0!important;padding:0!important;}
body:not(.home) .rdc-svc-more .rdc-more-list li,
.rdc-more-list li{
  margin:0!important;padding:0!important;list-style:none!important;position:relative;
  border-bottom:1px solid var(--rdc-line);
}
.rdc-more-list li:last-child{border-bottom:0;}
body:not(.home) .rdc-svc-more .rdc-more-list li:before,
.rdc-more-list li:before{content:none!important;display:none!important;}
.rdc-more-list li::marker{content:"";}
.rdc-more-list a{
  display:block;padding:10px 22px 10px 0;position:relative;
  font-family:var(--rdc-body)!important;font-size:15.6px!important;line-height:1.45!important;
  color:var(--rdc-navy)!important;text-decoration:none;
  transition:color .18s var(--rdc-ease),padding .18s var(--rdc-ease);
}
.rdc-more-list a:after{
  content:"\203A";position:absolute;right:6px;top:50%;transform:translateY(-52%);
  color:var(--rdc-blue);font-size:19px;line-height:1;opacity:0;
  transition:opacity .18s var(--rdc-ease),right .18s var(--rdc-ease);
}
.rdc-more-list a:hover{color:var(--rdc-blue-dp)!important;padding-left:6px;}
.rdc-more-list a:hover:after{opacity:1;right:0;}
.rdc-more-case a{font-weight:600;}

.rdc-byline{
  margin:34px 0 0!important;padding:18px 22px;border-radius:12px;
  background:var(--rdc-pale-2);
  font-family:var(--rdc-body)!important;font-size:15.2px!important;line-height:1.75!important;
  color:var(--rdc-ink-2)!important;
}
.rdc-byline a{color:var(--rdc-navy-lk);text-decoration:none;box-shadow:inset 0 -1px 0 rgba(41,91,208,.34);}
.rdc-byline a:hover{color:var(--rdc-blue-dp);box-shadow:inset 0 -2px 0 var(--rdc-blue-dp);}

/* the ported sub-service link list (oral-maxillofacial page) */
.entry-content a.rdc-subservice{display:inline-block;padding:2px 0;}

@media(max-width:760px){
  .rdc-svc-more{margin-top:42px;padding-top:30px;}
  .rdc-more-grid{gap:26px;}
}

/* ---- featured photo: never upscaled ---- */
/* Every service featured image the client has is 308x246 (300x251 on two).
   The port declared them 1080x675, so the browser reserved a 1.6:1 box for a
   1.25:1 file and then stretched it to ~500px in the two-column header:
   layout shift on load, and a visibly soft photo. Sizes are corrected on the
   <img>; here the header column is told to size to the photo instead of the
   other way round, so nothing is upscaled and no gap opens beside it. */
body.single-dental-services #left-area .et_post_meta_wrapper:first-child:has(> img){
  grid-template-columns:minmax(0,1fr) auto;gap:44px;align-items:center;
}
body.single-dental-services .et_post_meta_wrapper > img{
  width:auto;max-width:min(100%,308px);height:auto;justify-self:end;
}
/* the photo column shrank to its true 308px, so the title column grew --
   size the service <h1> to fill it instead of leaving a gap beside it */
body.single-dental-services #left-area .entry-title{
  font-size:clamp(32px,3.9vw,54px)!important;
}
@media(max-width:900px){
  body.single-dental-services #left-area .et_post_meta_wrapper:first-child:has(> img){
    grid-template-columns:1fr;
  }
  body.single-dental-services .et_post_meta_wrapper > img{max-width:min(100%,308px);}
}

/* ---- bold lead-ins ---- */
/* The site-wide rule turns any <strong> that is a paragraph's first ELEMENT
   child into a block. That was a stand-in for the run-together headings this
   pass converted into real <h2>/<h3>; on a service page it now only fires on
   ordinary mid-sentence bold ("Studies show that <strong>dental implants</strong>
   have a 95 percent success rate") and breaks the sentence onto two lines.
   Off here -- the genuine standalone lead-ins carry .rdc-leadin instead. */
body.single-dental-services .entry-content p > strong:first-child,
body.single-dental-services .entry-content p > b:first-child,
body.single-dental-services .entry-content p > span[style*="font-weight: bold"]:first-child{
  display:inline;font-size:inherit;line-height:inherit;margin:0;
}
body.single-dental-services .entry-content p.rdc-leadin{
  margin:26px 0 8px!important;
}
body.single-dental-services .entry-content p.rdc-leadin > strong:first-child,
body.single-dental-services .entry-content p.rdc-leadin > b:first-child,
body.single-dental-services .entry-content p.rdc-leadin > span[style*="font-weight: bold"]:first-child{
  display:block;font-family:var(--rdc-body);font-weight:700;font-size:17.2px;
  line-height:1.4;color:var(--rdc-navy);
}
/* <<< RDC-SERVICE-SEO <<< */

/* >>> RDC-INTERNAL-SEO >>> */
/* ==========================================================================
   Internal (non-service, non-blog) pages: answer-first lead, NAP card,
   gallery case captions, links-only "more from us". No CTA bands here --
   the footer stays the only CTA, per the site rule.
   ========================================================================== */

.rdc-int-wrap{max-width:1152px;margin:0 auto;padding:0 22px;}

/* ---- answer-first lead (the 25-40 word quotable paragraph) ------------- */
.rdc-answer{
  max-width:1152px;margin:0 auto 34px;padding:24px 30px 22px;
  background:var(--rdc-pale-2);border-left:4px solid var(--rdc-blue-dp);
  border-radius:0 14px 14px 0;
}
.rdc-answer .rdc-eyebrow{
  display:block;margin:0 0 8px;font-family:var(--rdc-cond);font-size:11.5px;font-weight:700;
  letter-spacing:2.2px;text-transform:uppercase;color:var(--rdc-blue-dp);
}
.rdc-answer p{
  margin:0 0 12px!important;font-family:var(--rdc-body)!important;
  font-size:18px!important;line-height:1.72!important;color:var(--rdc-navy)!important;
  max-width:none!important;   /* fill the band -- never a half-width column */
}
.rdc-answer p:last-child{margin-bottom:0!important;}
.rdc-answer a{color:var(--rdc-navy-lk);text-decoration:none;box-shadow:inset 0 -1px 0 rgba(41,91,208,.34);}
.rdc-answer a:hover{color:var(--rdc-blue-dp);box-shadow:inset 0 -2px 0 var(--rdc-blue-dp);}

/* answer + NAP side by side (contact / appointment) */
.rdc-answer-split{
  max-width:1152px;margin:0 auto 36px;
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:34px;align-items:stretch;
}
.rdc-answer-split .rdc-answer{margin:0;height:100%;}
@media(max-width:900px){ .rdc-answer-split{grid-template-columns:1fr;gap:22px;} }

/* ---- NAP card --------------------------------------------------------- */
.rdc-napcard{
  background:#fff;border:1px solid var(--rdc-line);border-radius:14px;
  padding:24px 28px;box-shadow:0 2px 3px rgba(20,40,80,.04);
}
.rdc-napcard .rdc-local-facts{margin:0;}
.rdc-napcard .rdc-local-facts li{grid-template-columns:86px minmax(0,1fr);align-items:start;}
.rdc-napcard .rdc-local-facts span{font-size:15.4px;line-height:1.62;}
.rdc-napcard .rdc-local-facts a{color:var(--rdc-navy-lk);text-decoration:none;}
.rdc-napcard .rdc-local-facts a:hover{color:var(--rdc-blue-dp);text-decoration:underline;}
.rdc-nap-note{
  margin:16px 0 0!important;padding-top:14px;border-top:1px solid var(--rdc-line);
  font-family:var(--rdc-body)!important;font-size:14.8px!important;line-height:1.65!important;
  color:var(--rdc-ink-2)!important;
}
.rdc-nap-note a{color:var(--rdc-navy-lk);text-decoration:none;box-shadow:inset 0 -1px 0 rgba(41,91,208,.34);}

/* ---- links-only "more from us" on internal pages ---------------------- */
.rdc-int-more{max-width:1152px;margin:54px auto 8px!important;padding:0 0 0!important;
  border-top:1px solid var(--rdc-line);padding-top:36px!important;}
.rdc-int-more .rdc-more-h{margin-top:0!important;}

/* ---- smile-gallery case captions -------------------------------------- */
.rdc-cap{
  display:block;margin-top:10px;text-align:left;
  font-family:var(--rdc-body);font-size:14.4px;line-height:1.6;color:var(--rdc-ink-2);
}
.rdc-cap b{
  display:block;font-family:var(--rdc-cond);font-size:11px;font-weight:700;letter-spacing:1.8px;
  text-transform:uppercase;color:var(--rdc-blue-dp);margin-bottom:2px;
}
.rdc-cap .rdc-cap-tx{display:block;margin-top:7px;}

/* the gallery column rule keys off .et_pb_text_inner; the pinhole page uses
   that class for its bare "Patient N" labels too -- those are real headings
   now and must not be columnised */
body.parent-pinhole-surgery-gallery .entry-content .et_pb_text_inner:has(> .rdc-patient){
  column-count:1;
}
.rdc-patient{
  margin:34px 0 6px!important;padding:0 0 10px;border-bottom:1px solid var(--rdc-line);
  font-family:var(--rdc-cond)!important;font-size:12.5px!important;font-weight:700!important;
  letter-spacing:2.2px;text-transform:uppercase;color:var(--rdc-blue-dp)!important;
}

/* ---- offer text lifted out of the promo graphic ----------------------- */
.rdc-offer{max-width:1152px;margin:0 auto 30px;}
.rdc-offer h2{
  margin:0 0 10px!important;font-family:var(--rdc-display)!important;font-weight:400!important;
  font-size:clamp(24px,2.6vw,32px)!important;line-height:1.18!important;color:var(--rdc-navy)!important;
}
.rdc-offer p{margin:0 0 10px!important;font-size:17px!important;line-height:1.7!important;color:var(--rdc-ink-2)!important;max-width:none!important;}
.rdc-offer .rdc-fineprint{font-size:14px!important;color:var(--rdc-muted)!important;}

/* ---- patient-form sheets become openable/printable -------------------- */
.rdc-formlink{display:block;}
.rdc-formlink + .rdc-cap{text-align:center;}

/* ---- smile gallery: CSS columns could not balance once each case carried a
        caption (a whole third column came out empty and captions detached from
        their photo). Real grid cards instead -- overrides the earlier
        column-count block for this page only. ---------------------------- */
body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner{
  column-count:auto!important;column-gap:normal!important;
  display:grid!important;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
  gap:34px 30px;align-items:start;
}
body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner > p,
body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner > img{
  margin:0!important;padding:0!important;text-align:center;
  background:#fff;border:1px solid var(--rdc-line);border-radius:14px;
  padding:16px 16px 18px!important;box-shadow:0 2px 3px rgba(20,40,80,.05);
}
body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner > img{display:block;width:100%;}
body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner > p img{
  box-shadow:none!important;border-radius:8px!important;
}
/* the WordPress spacer paragraphs (&nbsp; only) would render as empty cards */
body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner > p:not(:has(img)){display:none!important;}
@media(max-width:700px){
  body.parent-cosmetic-dentistry-smiles .entry-content .et_pb_text_inner{grid-template-columns:1fr;}
}

/* patient forms: the closing two lines were printing on top of the section's
   bottom wave divider */
body.parent-patient-forms-downtown-toronto .et_pb_section_0.section_has_divider{
  padding-bottom:96px!important;
}
/* <<< RDC-INTERNAL-SEO <<< */

/* >>> RDC-INTERNAL-HERO >>> */
/* ==========================================================================
   Three Divi hero headers carried the page's real title in the SUBHEAD and a
   branding line in the <h1> ("Find out more", "@ The Royal Bank Plaza dental
   centre", "Dental Centre @ The RBC Plaza"). The strings were swapped so the
   <h1> is the page title; this restores the visual hierarchy the client had --
   small eyebrow above, large display title below -- and pairs the title with
   the client's own supporting sentence so the band never has an empty half.
   ========================================================================== */
body.parent-contact-us .et_pb_fullwidth_header_0 .header-content,
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .header-content{
  display:flex;flex-direction:column;
}
body.parent-contact-us .et_pb_fullwidth_header_0 .et_pb_fullwidth_header_subhead,
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .et_pb_fullwidth_header_subhead{ order:1; }
body.parent-contact-us .et_pb_fullwidth_header_0 .et_pb_module_header,
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .et_pb_module_header{ order:2; }
body.parent-contact-us .et_pb_fullwidth_header_0 .et_pb_header_content_wrapper,
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .et_pb_header_content_wrapper{ order:3; }

/* the eyebrow (was the h1's big display type) */
body.parent-contact-us .et_pb_fullwidth_header_0 .et_pb_fullwidth_header_subhead,
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .et_pb_fullwidth_header_subhead,
body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0 .et_pb_fullwidth_header_subhead{
  font-family:var(--rdc-cond)!important;font-size:12px!important;font-weight:700!important;
  letter-spacing:2.6px!important;text-transform:uppercase!important;line-height:1.5!important;
  text-shadow:none!important;margin:0 0 12px!important;display:block;
}
/* the page title */
body.parent-contact-us .et_pb_fullwidth_header_0 .et_pb_module_header,
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .et_pb_module_header,
body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0 h1{
  font-family:var(--rdc-display)!important;font-weight:400!important;
  font-size:clamp(34px,4.4vw,58px)!important;line-height:1.1!important;
  margin:0 0 14px!important;text-shadow:none!important;
}
body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0 h1 span{
  font-size:inherit!important;
}

/* two-column band: title left, the client's own supporting sentence right --
   never a short heading with an empty half beside it */
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .header-content{
  display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  grid-template-areas:"eyebrow ." "title copy";gap:0 40px;align-items:end;
}
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .et_pb_fullwidth_header_subhead{grid-area:eyebrow;}
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .et_pb_module_header{grid-area:title;}
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .et_pb_header_content_wrapper{grid-area:copy;padding-bottom:12px;}
body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0 .et_pb_header_content_wrapper{
  display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:0 40px;align-items:end;
}
body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0 .et_pb_header_content_wrapper h1{grid-column:1;}
body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0 .et_pb_header_content_wrapper p{
  grid-column:2;margin:0 0 12px!important;
}
@media(max-width:900px){
  body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .header-content{
    grid-template-columns:1fr;grid-template-areas:"eyebrow" "title" "copy";align-items:start;
  }
  body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0 .et_pb_header_content_wrapper{
    grid-template-columns:1fr;align-items:start;
  }
  body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0 .et_pb_header_content_wrapper h1,
  body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0 .et_pb_header_content_wrapper p{grid-column:1;}
}

/* ---- appointment: answers stacked in one column beside the NAP card ---- */
.rdc-answer-col{display:flex;flex-direction:column;gap:22px;}
.rdc-answer-col .rdc-answer{margin:0!important;}

/* ---- special offers: transcribed text left, the promo graphic right ---- */
.rdc-offer-grid{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:38px;align-items:center;
  margin-bottom:36px;
}
.rdc-offer-fig figure{margin:0!important;}
.rdc-offer-fig img{width:100%;max-width:567px;height:auto;border-radius:14px;box-shadow:0 14px 32px rgba(18,36,74,.14);}
@media(max-width:860px){ .rdc-offer-grid{grid-template-columns:1fr;gap:24px;} }

/* ---- hero legibility + alignment after the title/eyebrow swap ---------- */
/* contact-us: the eyebrow lands on a bright patch of the glass photo */
body.parent-contact-us .et_pb_fullwidth_header_0 .et_pb_fullwidth_header_overlay{
  background:linear-gradient(180deg,rgba(12,22,42,.46) 0%,rgba(12,22,42,.30) 60%,rgba(12,22,42,.42) 100%)!important;
}
body.parent-contact-us .et_pb_fullwidth_header_0 .et_pb_fullwidth_header_subhead{
  color:rgba(255,255,255,.92)!important;
}
/* covid: the KN95 photo is almost white -- white type is unreadable on it */
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .et_pb_module_header,
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .et_pb_fullwidth_header_subhead{
  color:var(--rdc-navy)!important;
}
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .et_pb_header_content_wrapper p{
  color:var(--rdc-ink-2)!important;
}
/* financial: top-align the band and let the supporting sentence use its column */
body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0 .et_pb_header_content_wrapper{
  align-items:start;
}
body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0 .et_pb_header_content_wrapper p,
body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0 .et_pb_header_content_wrapper p span{
  max-width:none!important;font-size:17px!important;line-height:1.7!important;
}

/* Divi inlines its per-module CSS in the BODY, i.e. after this file, and paints
   the hero h1 with `color:#ffffff!important` at (0,3,1). These selectors are
   (0,5,2) so they win on specificity, not on order. */
body.parent-covid-19-protocols .et_pb_fullwidth_header_0.et_pb_fullwidth_header .header-content h1.et_pb_module_header,
body.parent-covid-19-protocols .et_pb_fullwidth_header_0.et_pb_fullwidth_header .header-content span.et_pb_fullwidth_header_subhead{
  color:var(--rdc-navy)!important;text-shadow:none!important;
}
body.parent-covid-19-protocols .et_pb_fullwidth_header_0.et_pb_fullwidth_header .header-content .et_pb_header_content_wrapper,
body.parent-covid-19-protocols .et_pb_fullwidth_header_0.et_pb_fullwidth_header .header-content .et_pb_header_content_wrapper p{
  color:var(--rdc-ink-2)!important;
}
body.parent-contact-us .et_pb_fullwidth_header_0.et_pb_fullwidth_header .header-content span.et_pb_fullwidth_header_subhead{
  color:rgba(255,255,255,.92)!important;text-shadow:none!important;
}
body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0.et_pb_fullwidth_header .header-content span.et_pb_fullwidth_header_subhead{
  color:var(--rdc-navy)!important;text-shadow:none!important;
}
/* Divi caps the hero copy block at 640px -- too narrow for a two-column band */
body.parent-covid-19-protocols .et_pb_fullwidth_header_0 .header-content,
body.parent-financial-policies-downtown-toronto .et_pb_fullwidth_header_0 .header-content,
body.parent-contact-us .et_pb_fullwidth_header_0 .header-content{
  max-width:none!important;
}
body.parent-contact-us .et_pb_fullwidth_header_0 .header-content{max-width:820px!important;margin:0 auto;}
/* <<< RDC-INTERNAL-HERO <<< */

/* >>> RDC-BLOG-SEO >>> */
/* ==========================================================================
   Blog posts: the closing "more from us" block. Same visual language as the
   service pages' .rdc-svc-more so a reader crossing between the two sees one
   site. Links only -- the footer stays the only CTA.
   ========================================================================== */
.rdc-blog-more{
  margin:52px 0 6px;padding:36px 0 0;border-top:1px solid var(--rdc-line);
}
/* the post sits outside .entry-content, so the theme's list bullets never
   reach it -- but Divi paints a marker on every <li>, so clear it here too */
.rdc-blog-more .rdc-more-list li{list-style:none!important;}
.rdc-blog-more .rdc-more-list li:before{content:none!important;display:none!important;}
.rdc-blog-more .rdc-more-list li::marker{content:"";}

/* contextual link dropped into the client's own paragraph */
#left-area .entry-content a.rdc-ilink{
  color:var(--rdc-navy-lk);text-decoration:none;
  box-shadow:inset 0 -1px 0 rgba(41,91,208,.34);
  transition:color .18s var(--rdc-ease),box-shadow .18s var(--rdc-ease);
}
#left-area .entry-content a.rdc-ilink:hover{
  color:var(--rdc-blue-dp);box-shadow:inset 0 -2px 0 var(--rdc-blue-dp);
}

@media(max-width:760px){
  .rdc-blog-more{margin-top:40px;padding-top:28px;}
}
/* ---- published date: a real freshness signal, already in the markup ------ */
/* The client's own Divi customiser CSS carries `#left-area .post-meta
   {display:none}`, so every article shipped with its date and categories
   hidden. The date is real and already in BlogPosting.datePublished -- showing
   it gives readers (and the E-E-A-T raters) the same signal on the page.
   Scoped by :has() so it only fires on the articles this pass touched, never
   on the appointment page (also a WP post) or the service pages.
   To revert: delete this one rule. */
body.single-post:has(.rdc-blog-more) #left-area .post-meta{
  display:block!important;margin:14px 0 0!important;
}
/* <<< RDC-BLOG-SEO <<< */











/* >>> RDC-FOOTER-CREDIT >>> */
.rdc-ftbar{background:#0f1a2e;border-top:1px solid rgba(255,255,255,.09);}
.rdc-ftbar-inner{
  max-width:1180px;margin:0 auto;padding:16px 40px;
  display:flex;flex-wrap:wrap;gap:10px 26px;align-items:center;justify-content:space-between;
  font-family:'Asap',sans-serif;font-size:13.4px;color:rgba(255,255,255,.62);
}
.ft-credit{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap;color:rgba(255,255,255,.72);}
.ft-credit svg{flex:none;}
.ft-credit a{color:#9dc0ff;text-decoration:none;}
.ft-credit a:hover{color:#fff;text-decoration:underline;}
@media(max-width:760px){
  .rdc-ftbar-inner{flex-direction:column;text-align:center;padding:16px 22px;gap:8px;}
}
/* <<< RDC-FOOTER-CREDIT <<< */































































































































/* >>> RDC-ABOUT-PAGE >>> */
/* ==========================================================================
   /about-us/ — rebuilt on the homepage design system.
   Scoped to .ab-* so nothing here can reach the 770 other ported pages.
   ========================================================================== */
.ab-wrap{width:88%;margin:0 auto;}          /* no max-width cap — house rule */
.ab-hero,.ab-phil,.ab-rec{position:relative;}
.ab-hero *,.ab-glance *,.ab-who *,.ab-phil *,.ab-care *,.ab-docs *,
.ab-team *,.ab-treat *,.ab-rec *,.ab-visit *,.ab-cta *{box-sizing:border-box;}

/* 1 — hero */
.ab-hero{
  position:relative;isolation:isolate;overflow:hidden;
  background:var(--rdc-navy);min-height:min(62vh,560px);
  display:flex;align-items:center;
}
.ab-hero-bg{
  position:absolute;inset:0;z-index:0;
  background:url('/images/practice/about-hero.webp') center 46% / cover no-repeat;
  transform:scale(1.03);animation:abHeroIn 1.4s var(--rdc-ease) both;
}
@keyframes abHeroIn{from{transform:scale(1.09);opacity:.5;}to{transform:scale(1.03);opacity:1;}}
.ab-hero-veil{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,rgba(12,22,44,.90) 0%,rgba(16,30,60,.80) 46%,rgba(20,40,78,.55) 100%);
}
.ab-hero-inner{position:relative;z-index:3;width:88%;margin:0 auto;padding:78px 0 96px;}
.ab-hero-eyebrow{color:#9dc0ff!important;}
.ab-hero h1,
.et-db #et-boc .et-l .ab-hero h1{
  font-family:var(--rdc-display);font-weight:400;color:#fff!important;
  font-size:clamp(30px,3.5vw,50px);line-height:1.1;margin:10px 0 0;letter-spacing:.4px;
}
.ab-hero-lead{
  font-family:var(--rdc-body);font-size:17.2px;line-height:1.82;color:#d3e0f7;
  margin:20px 0 0;max-width:74ch;   /* a measure on the LEAD only, beside the veil */
}
.ab-hero .rdc-hero-btns{margin-top:28px;}

/* 2 — at a glance */
.ab-glance{background:#fff;padding:0;}
.ab-glance-list{
  list-style:none;margin:-38px 0 0;padding:0;position:relative;z-index:4;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;
  background:#fff;border:1px solid #e3ecfb;border-radius:18px;overflow:hidden;
  box-shadow:0 22px 50px rgba(18,36,74,.13);
}
.ab-glance-list li{
  padding:26px 26px 28px;border-right:1px solid #eef2fa;
  display:flex;flex-direction:column;gap:5px;
}
.ab-glance-list li:last-child{border-right:none;}
.ab-g-k{font-family:var(--rdc-cond);font-size:11px;font-weight:700;letter-spacing:2.4px;
  text-transform:uppercase;color:var(--rdc-blue-dp);}
.ab-g-v{font-family:var(--rdc-display);font-size:clamp(19px,1.7vw,25px);line-height:1.15;
  color:var(--rdc-navy);}
.ab-g-s{font-family:var(--rdc-body);font-size:14.6px;line-height:1.5;color:#5a6472;}

/* 3 — who we are */
.ab-who{background:#fff;padding:64px 0 72px;}
.ab-who-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);
  gap:52px;align-items:center;}
.ab-who h2,.et-db #et-boc .et-l .ab-who h2{
  font-family:var(--rdc-display);font-weight:400;color:var(--rdc-navy)!important;
  font-size:clamp(27px,3vw,40px);line-height:1.14;margin:8px 0 18px;}
.ab-who-copy p{font-family:var(--rdc-body);font-size:16.4px;line-height:1.84;color:#4a5464;
  margin:0 0 14px;}
.ab-who-photo{position:relative;border-radius:18px;overflow:hidden;
  box-shadow:0 22px 50px rgba(18,36,74,.18);}
.ab-who-photo img{width:100%;height:auto;display:block;}
.ab-cap{
  position:absolute;left:0;right:0;bottom:0;padding:26px 22px 15px;
  background:linear-gradient(180deg,rgba(10,20,40,0),rgba(10,20,40,.82));
  font-family:var(--rdc-cond);font-size:11.5px;font-weight:700;letter-spacing:2px;
  text-transform:uppercase;color:#e6eeff;}

/* 4 — philosophy */
.ab-phil{background:linear-gradient(168deg,#16233c 0%,#1b2b47 46%,#22406e 100%);
  padding:clamp(88px,8vw,132px) 0 clamp(88px,8vw,132px);text-align:center;}
.ab-phil-inner{position:relative;z-index:2;}
.ab-phil .rdc-eyebrow{color:#9dc0ff;}
.ab-phil h2,.et-db #et-boc .et-l .ab-phil h2{
  font-family:var(--rdc-display);font-weight:400;color:#fff!important;
  font-size:clamp(28px,3.2vw,44px);line-height:1.14;margin:8px 0 22px;}
.ab-phil-lead{font-family:var(--rdc-body);font-size:clamp(17px,1.42vw,25px);line-height:1.8;
  color:#cfdcf3;margin:0;}
.ab-phil-tag{font-family:var(--rdc-display);font-size:clamp(19px,1.7vw,30px);line-height:1.4;
  color:#9dc0ff;margin:26px 0 0;}

/* 5 — how we care */
.ab-care{background:#fff;padding:74px 0 70px;}
.ab-care-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;
  align-items:stretch;}
.ab-care-card{background:linear-gradient(180deg,#f8fbff 0%,#f2f7ff 100%);
  border:1px solid #e3ecfb;border-radius:16px;padding:28px 28px 26px;}
.ab-care-card h3,.et-db #et-boc .et-l .ab-care-card h3{
  font-family:var(--rdc-display);font-weight:400;color:var(--rdc-navy)!important;
  font-size:22px;line-height:1.2;margin:0 0 11px;}
.ab-care-card p{font-family:var(--rdc-body);font-size:15.4px;line-height:1.78;color:#4a5464;margin:0;}

/* 5b — inside the practice: the client's own photographs, own ratios */
.ab-shots{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;
  align-items:start;max-width:1080px;margin:34px auto 0;   /* 360px file never upscaled */
}
.ab-shot{margin:0;}
.ab-shot img{
  width:100%;height:auto;display:block;object-fit:cover;
  border-radius:14px;box-shadow:0 14px 32px rgba(18,36,74,.14);
}
.ab-shot figcaption{
  margin-top:11px;font-family:var(--rdc-cond);font-size:11.5px;font-weight:700;
  letter-spacing:1.9px;text-transform:uppercase;color:var(--rdc-blue-dp);
}
@media(max-width:720px){ .ab-shots{grid-template-columns:1fr;gap:20px;} }

/* 6 — the dentists */
.ab-docs{background:linear-gradient(180deg,#f6f9ff 0%,#eef4ff 100%);padding:74px 0 70px;}
.ab-doc{display:grid;grid-template-columns:250px minmax(0,1fr);gap:38px;align-items:start;
  background:#fff;border:1px solid #e3ecfb;border-radius:18px;padding:30px;
  box-shadow:0 14px 34px rgba(18,36,74,.08);}
.ab-doc + .ab-doc{margin-top:24px;}
.ab-doc-photo{border-radius:14px;overflow:hidden;background:#eef3fc;
  border:1px solid #e2eafa;}
.ab-doc-photo img{width:100%;height:auto;display:block;aspect-ratio:4/5;object-fit:cover;
  object-position:50% 18%;}
.ab-doc-copy h3,.et-db #et-boc .et-l .ab-doc-copy h3{
  font-family:var(--rdc-display);font-weight:400;color:var(--rdc-navy)!important;
  font-size:clamp(23px,2.1vw,29px);line-height:1.18;margin:8px 0 14px;}
.ab-doc-copy p{font-family:var(--rdc-body);font-size:15.8px;line-height:1.82;color:#4a5464;
  margin:0 0 13px;}
.ab-doc-award{color:var(--rdc-navy-lk)!important;font-weight:600;}
.ab-doc-sig{list-style:none;margin:16px 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:9px;}
.ab-doc-sig li{background:var(--rdc-pale-2);color:var(--rdc-blue-dp);border-radius:999px;
  padding:7px 15px;font-family:var(--rdc-body);font-size:13.6px;line-height:1.4;}
.ab-doc-cv{display:inline-flex;align-items:center;gap:8px;text-decoration:none!important;
  font-family:var(--rdc-cond);font-size:12.8px;font-weight:700;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--rdc-blue-dp);}
.ab-doc-cv svg{width:15px;height:15px;transition:transform .25s var(--rdc-ease);}
.ab-doc-cv:hover svg{transform:translateX(4px);}

/* 7 — team */
.ab-team{background:#fff;padding:66px 0 62px;}
.ab-team-inner{display:grid;grid-template-columns:200px minmax(0,1fr);gap:34px;align-items:center;}
.ab-team-photo{border-radius:16px;overflow:hidden;}
.ab-team-photo img{width:100%;height:auto;display:block;aspect-ratio:1/1;object-fit:cover;}
.ab-team h2,.et-db #et-boc .et-l .ab-team h2{
  font-family:var(--rdc-display);font-weight:400;color:var(--rdc-navy)!important;
  font-size:clamp(24px,2.4vw,33px);line-height:1.16;margin:8px 0 4px;}
.ab-team-role{font-family:var(--rdc-cond);font-size:12px;font-weight:700;letter-spacing:2.2px;
  text-transform:uppercase;color:var(--rdc-blue-dp);margin:0 0 13px;}
.ab-team-copy p{font-family:var(--rdc-body);font-size:16px;line-height:1.82;color:#4a5464;margin:0;}

/* 8 — what we treat */
.ab-treat{background:var(--rdc-pale-2);padding:66px 0 64px;}
.ab-treat-list{list-style:none;margin:0 0 26px;padding:0;display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.ab-treat-list a{display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:#fff;border:1px solid #dbe6fa;border-radius:12px;padding:16px 20px;
  font-family:var(--rdc-body);font-size:15.8px;color:var(--rdc-navy);
  text-decoration:none!important;transition:.18s var(--rdc-ease);}
.ab-treat-list a:hover{border-color:var(--rdc-blue);
  box-shadow:0 8px 20px rgba(30,60,120,.12);transform:translateY(-2px);}
.ab-treat-list svg{width:16px;height:16px;flex:none;color:var(--rdc-blue-dp);}
.ab-treat-lead a{background:linear-gradient(180deg,#fff 0%,#f4f8ff 100%);
  border-color:var(--rdc-blue);font-weight:600;}

/* 9 — recognition */
.ab-rec{background:#fff;padding:clamp(78px,7vw,116px) 0 68px;}
.ab-rec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}
.ab-rec-card{border-left:3px solid var(--rdc-blue);background:#f8fbff;border-radius:0 14px 14px 0;
  padding:24px 26px;}
.ab-rec-card p{font-family:var(--rdc-body);font-size:16.2px;line-height:1.8;color:#3d4a5c;margin:8px 0 0;}

/* 10 — before your visit */
.ab-visit{position:relative;background:#fff;padding:clamp(78px,7vw,116px) 0 74px;}
.ab-visit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.ab-visit-card{display:block;background:linear-gradient(180deg,#f8fbff 0%,#f2f7ff 100%);
  border:1px solid #e3ecfb;border-radius:16px;padding:26px 26px 24px;
  text-decoration:none!important;transition:.2s var(--rdc-ease);}
.ab-visit-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(18,36,74,.12);}
.ab-visit-card h3,.et-db #et-boc .et-l .ab-visit-card h3{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-family:var(--rdc-display);font-weight:400;color:var(--rdc-navy)!important;
  font-size:21px;line-height:1.2;margin:0 0 9px;}
.ab-visit-card svg{width:16px;height:16px;flex:none;color:var(--rdc-blue-dp);
  transition:transform .25s var(--rdc-ease);}
.ab-visit-card:hover svg{transform:translateX(4px);}
.ab-visit-card p{font-family:var(--rdc-body);font-size:15.2px;line-height:1.72;color:#5a6472;margin:0;}

/* 11 — closing CTA */
.ab-cta{background:linear-gradient(160deg,#16233c 0%,#1b2b47 46%,#22406e 100%);padding:70px 0 74px;}
.ab-cta-inner{text-align:center;}
.ab-cta h2,.et-db #et-boc .et-l .ab-cta h2{
  font-family:var(--rdc-display);font-weight:400;color:#fff!important;
  font-size:clamp(26px,2.9vw,40px);line-height:1.14;margin:0 0 12px;}
.ab-cta p{font-family:var(--rdc-body);font-size:16.6px;line-height:1.75;color:#c2d4f2;margin:0 0 26px;}
.ab-cta .rdc-hero-btns{justify-content:center;}

@media(max-width:1000px){
  .ab-who-inner{grid-template-columns:1fr;gap:30px;}
  .ab-glance-list{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ab-glance-list li:nth-child(2){border-right:none;}
  .ab-glance-list li:nth-child(-n+2){border-bottom:1px solid #eef2fa;}
  .ab-treat-list{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ab-visit-grid{grid-template-columns:1fr;}
  .ab-care-grid{grid-template-columns:1fr;}
  .ab-rec-grid{grid-template-columns:1fr;}
}
@media(max-width:720px){
  .ab-wrap,.ab-hero-inner{width:92%;}
  .ab-doc{grid-template-columns:1fr;gap:22px;}
  .ab-doc-photo{max-width:220px;}
  .ab-team-inner{grid-template-columns:1fr;gap:20px;}
  .ab-team-photo{max-width:180px;}
  .ab-glance-list{grid-template-columns:1fr;margin-top:-24px;}
  .ab-glance-list li{border-right:none;border-bottom:1px solid #eef2fa;}
  .ab-glance-list li:last-child{border-bottom:none;}
  .ab-treat-list{grid-template-columns:1fr;}
}
@media(prefers-reduced-motion:reduce){
  .ab-hero-bg{animation:none;}
  .ab-visit-card,.ab-treat-list a,.ab-doc-cv svg{transition:none!important;}
}
/* <<< RDC-ABOUT-PAGE <<< */











































































/* >>> RDC-SECTIONS-2-6 >>> */
/* ==========================================================================
   SHARED — section header (two columns: heading left, real sentence right;
   never a narrow heading with an empty half beside it)
   ========================================================================== */
.rdc-eyebrow{
  display:block;font-family:var(--rdc-cond);font-size:11.5px;font-weight:700;
  letter-spacing:2.6px;text-transform:uppercase;color:var(--rdc-blue-dp);margin-bottom:12px;
}
.rdc-sec-head{
  display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);
  gap:38px;align-items:end;margin-bottom:38px;
}
.rdc-sec-head h2{
  margin:0;font-family:var(--rdc-display);font-weight:400;
  font-size:clamp(29px,3.3vw,44px);line-height:1.12;color:var(--rdc-navy);letter-spacing:.4px;
}
.rdc-sec-head > p{
  margin:0;font-family:var(--rdc-body);font-size:16.4px;line-height:1.75;color:var(--rdc-muted);
  padding-bottom:5px;
}
.rdc-sec-head-dark h2{color:#fff;}
.rdc-sec-head-dark .rdc-eyebrow{color:#9dc0ff;}
.rdc-sec-head-dark > p{color:rgba(255,255,255,.82);}

/* ==========================================================================
   S2 — Healthy Smile / Our Philosophy (existing Divi band, equalised)
   ========================================================================== */
.rdc-sec-smile .et_pb_row{display:flex!important;flex-wrap:wrap;align-items:stretch;}
.rdc-sec-smile .et_pb_column{display:flex;flex-direction:column;margin-bottom:0!important;}
.rdc-sec-smile .et_pb_module,.rdc-sec-smile .et_pb_text_inner{height:100%;}
.rdc-sec-smile .et_pb_text_inner{display:flex;flex-direction:column;}
.rdc-sec-smile h5{
  font-family:var(--rdc-cond)!important;font-size:11.5px!important;font-weight:700!important;
  letter-spacing:2.6px!important;text-transform:uppercase;color:#9dc0ff!important;
  line-height:20px!important;height:20px!important;margin:0 0 8px!important;
}
.rdc-sec-smile h2{font-size:clamp(28px,3.1vw,40px)!important;line-height:1.14!important;}
/* "Our Philosophy" has no eyebrow above it, so its <h2> sat higher than
   "Healthy Smile?" next to it. Reserve the h5's exact height (11.5px x 1.2
   + its 6px margin) so both headings start on the same line. No invented
   copy — the left eyebrow is the client's own wording. */
/* the eyebrow row is pinned to 20px + 8px margin, so reserve exactly 28px */
.rdc-sec-smile .et_pb_text_inner:not(:has(h5)) > h2:first-child{margin-top:24px!important;}
.rdc-sec-smile p{font-size:16.2px!important;line-height:1.82!important;text-align:left!important;}
.rdc-sec-smile p + p{margin-top:14px;}
.rdc-sec-smile .rdc-pull{
  margin-top:auto!important;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);
  font-family:'Julius Sans One','Asap',sans-serif!important;font-size:19px!important;
  line-height:1.45!important;color:#bcd6ff!important;
}
@media(max-width:980px){ .rdc-sec-smile .et_pb_column{width:100%!important;} }

/* ==========================================================================
   S3 — Featured treatments
   ========================================================================== */
.rdc-feat{background:#fff;padding:78px 0 74px;}
.rdc-feat-inner,.rdc-tech-inner,.rdc-team-inner{max-width:1180px;margin:0 auto;padding:0 40px;}
.rdc-feat-grid{display:flex;flex-direction:column;gap:26px;}
.rdc-fcard{
  display:grid;grid-template-columns:308px minmax(0,1fr);gap:36px;align-items:center;
  background:#fff;border:1px solid var(--rdc-line);border-radius:16px;padding:24px;
  box-shadow:0 2px 3px rgba(20,40,80,.04);
  transition:box-shadow .35s var(--rdc-ease),border-color .35s var(--rdc-ease);
}
.rdc-fcard:hover{box-shadow:0 16px 36px rgba(20,40,80,.12);border-color:#d8e3f7;}
.rdc-feat-grid .rdc-fcard:nth-child(even){grid-template-columns:minmax(0,1fr) 308px;}
.rdc-feat-grid .rdc-fcard:nth-child(even) .rdc-fcard-media{order:2;}
/* the source photos are 308px wide originals — never rendered larger */
.rdc-fcard-media{display:block;line-height:0;}
.rdc-fcard-media img{
  width:100%;max-width:308px;height:auto;display:block;margin:0 auto;border-radius:12px;
}
.rdc-fcard-body{display:flex;flex-direction:column;}
.rdc-fcard h3{margin:0 0 12px;font-family:var(--rdc-display);font-weight:400;font-size:27px;line-height:1.18;}
.rdc-fcard h3 a{color:var(--rdc-navy);text-decoration:none;}
.rdc-fcard h3 a:hover{color:var(--rdc-blue-dp);}
.rdc-fcard p{margin:0;font-family:var(--rdc-body);font-size:15.4px;line-height:1.78;color:#4a5464;}
.rdc-fcard-link{
  align-self:flex-start;margin-top:16px;display:inline-flex;align-items:center;gap:8px;
  font-family:var(--rdc-cond);font-size:13px;font-weight:700;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--rdc-blue-dp);text-decoration:none;
}
.rdc-fcard-link svg{width:16px;height:16px;transition:transform .3s var(--rdc-ease);}
.rdc-fcard-link:hover svg{transform:translateX(4px);}
@media(max-width:860px){
  .rdc-fcard,.rdc-feat-grid .rdc-fcard:nth-child(even){grid-template-columns:1fr;gap:20px;}
  .rdc-feat-grid .rdc-fcard:nth-child(even) .rdc-fcard-media{order:0;}
  .rdc-fcard-media img{margin:0;}
}

/* ==========================================================================
   S4 — 25-years promo band (existing parallax section, tightened)
   ========================================================================== */
.rdc-sec-promo.et_pb_section{padding-top:56px!important;padding-bottom:56px!important;}
.rdc-sec-promo .et_pb_image{margin-bottom:0!important;}
.rdc-sec-promo .et_pb_row.et_pb_row_1{padding-top:0!important;padding-bottom:0!important;}
.rdc-sec-promo .et_pb_row.et_pb_row_1 .et_pb_column{margin-bottom:0!important;}


/* ==========================================================================
   S6b — Our dentists
   ========================================================================== */
.rdc-team{background:linear-gradient(160deg,#16233c 0%,#1b2b47 46%,#22406e 100%);padding:78px 0 70px;}
.rdc-team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;align-items:start;}
/* photo floats so the bio wraps around it — no empty column under the portrait */
.rdc-doc{
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);
  border-left:3px solid var(--rdc-blue);border-radius:16px;padding:26px;
}
.rdc-doc:after{content:"";display:block;clear:both;}
.rdc-doc-photo{
  float:left;width:196px;margin:4px 24px 12px 0;border-radius:12px;overflow:hidden;
  background:rgba(255,255,255,.06);line-height:0;
}
.rdc-doc-photo img{width:100%;max-width:196px;height:auto;display:block;}
.rdc-doc-copy h3{
  margin:0 0 12px;font-family:var(--rdc-display);font-weight:400;font-size:26px;
  line-height:1.15;color:#fff;
}
.rdc-doc-copy .rdc-eyebrow{color:#9dc0ff;margin-bottom:8px;}
.rdc-doc-copy p{margin:0 0 12px;font-family:var(--rdc-body);font-size:15.2px;line-height:1.78;color:rgba(255,255,255,.84);}
.rdc-doc-list{margin-top:16px;}
.rdc-doc-list span{
  display:block;font-family:var(--rdc-cond);font-size:11px;font-weight:700;letter-spacing:2.2px;
  text-transform:uppercase;color:#9dc0ff;margin-bottom:8px;
}
.rdc-doc-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}
.rdc-doc-list li{
  position:relative;padding-left:19px;font-family:var(--rdc-body);font-size:14.6px;
  line-height:1.62;color:rgba(255,255,255,.8);
}
.rdc-doc-list li:before{
  content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:50%;
  background:var(--rdc-blue);
}
.rdc-team-foot{
  margin-top:34px;padding-top:26px;border-top:1px solid rgba(255,255,255,.14);
  display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between;
}
.rdc-team-foot p{margin:0;font-family:var(--rdc-body);font-size:15.6px;color:rgba(255,255,255,.86);}
@media(max-width:1080px){ .rdc-team-grid{grid-template-columns:1fr;} }
@media(max-width:620px){
  .rdc-doc-photo{float:none;margin:0 0 16px;width:180px;}
  .rdc-sec-head{grid-template-columns:1fr;align-items:start;gap:16px;}
  .rdc-feat-inner,.rdc-tech-inner,.rdc-team-inner{padding:0 22px;}
}
@media(max-width:820px){ .rdc-sec-head{grid-template-columns:1fr;align-items:start;gap:16px;} }

/* The Freepik icon swap (2026-08-21) strips width/height off every inline SVG,
   and `.rdc-tech-ic` never had a CSS size — so the two technology icons
   rendered at 1100x1100 and swallowed the homepage. Sized to match
   `.rdc-diff-ic` (38px chip / ~22px glyph). */
.rdc-tech-ic{display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;flex:none;border-radius:11px;background:#dce8ff;
  color:var(--rdc-blue-dp);}
.rdc-tech-ic svg{width:22px;height:22px;display:block;fill:currentColor;}
.rdc-tech-list li{display:flex;align-items:center;gap:12px;}
/* safety net: an inline icon that lost its width/height attributes must never
   fill its band. Scoped to <span> wrappers so the full-width wave dividers,
   which live in <div class="rdc-curve">, are untouched. */
span[class*="rdc-"] > svg:not([width]){max-width:46px;max-height:46px;}

/* `.rdc-tech` sits OUTSIDE `.et-l`, so the site-wide heading repaint
   (`.et-db #et-boc .et-l h2:not(...)`) never reaches it and the client's global
   `h1..h6{color:#fff}` won — the section heading was white on a white band and
   invisible. `.rdc-team` escapes the repaint the same way but sits on a DARK
   band, so it must stay white; this is scoped to the technology copy only. */
.rdc-tech-copy h2,.rdc-tech-copy h3{color:var(--rdc-navy);}
.rdc-tech-copy .rdc-tech-extra b{color:var(--rdc-navy);}

/* The technology section's LAYOUT css was missing entirely — `.rdc-tech`,
   `.rdc-tech-media` and `.rdc-tech-cap` had zero rules, so the band had no
   padding, the photo ran full width and its caption sat jammed against its
   right edge. Same failure as the .rdc-diff bullets: a later script replaced a
   CSS range and took these with it. Restored to match .rdc-feat / .rdc-team. */
.rdc-tech{background:#fff;padding:70px 0 66px;}
.rdc-tech-inner{display:grid;grid-template-columns:minmax(0,460px) minmax(0,1fr);
  gap:clamp(28px,3.4vw,56px);align-items:center;}
.rdc-tech-media{display:flex;flex-direction:column;gap:10px;min-width:0;}
.rdc-tech-media img{width:100%;max-width:855px;height:auto;display:block;
  border-radius:18px;box-shadow:0 18px 46px rgba(27,43,71,.16);}
.rdc-tech-cap{font-family:var(--rdc-cond);font-size:12.5px;letter-spacing:.4px;
  color:var(--rdc-muted);}
.rdc-tech-copy{min-width:0;}
.rdc-tech-copy h2{margin:0 0 18px;}
.rdc-tech-list{list-style:none!important;padding:0;margin:0 0 20px;}
.rdc-tech-list li{list-style:none!important;margin-bottom:12px;}
.rdc-tech-list li::marker{content:none;}
.rdc-tech-extra p{margin:0 0 10px;font-size:15.6px;line-height:1.8;}
@media(max-width:900px){
  .rdc-tech{padding:54px 0 50px;}
  .rdc-tech-inner{grid-template-columns:1fr;}
}

/* `.et_pb_section_3{min-height:1264px}` is a Divi leftover in the page's INLINE
   \3c style> (loads after this file). The band's real content ends 517px above its
   own bottom edge — a big empty white block under the four service cards.
   Beaten on SPECIFICITY, not order: 3 classes (0,3,0) vs Divi's (0,1,0). */
.rdc-sec-services.et_pb_section_3.et_pb_section{min-height:0!important;}

/* ── mega-menu hover bridge, v2 ──────────────────────────────────────────────
   The old bridge was a ::before on the PANEL. That can never work: the panel is
   `visibility:hidden` until hovered, and a hidden element cannot receive hover,
   so `.rdc-mega:hover` never fires once the pointer leaves the nav item. The
   bridge has to extend the TRIGGER's hover area instead.
   Gated behind `.rdc-mega-wrap:hover` so it exists only while the menu is
   already open — it keeps the panel open, it never opens it by itself.
   Gap measured at 26px (the wrap is position:static by design, so the panel's
   top:100% resolves against the header, not the nav item). */
/* SELECTOR FIX 2026-09-01: this was `.rdc-mega-wrap > a`, but "Services" was later
   converted from a link to `<span class="rdc-noroute">` (its hub page was retired),
   so the selector matched NOTHING and the 23px gap between the nav item (bottom 149)
   and the panel (top 172) was dead — the menu closed the moment the pointer left the
   word "Services". Match the trigger whatever element it is. */
.rdc-mega-wrap > a,.rdc-mega-wrap > .rdc-noroute{position:relative;}
.rdc-mega-wrap:hover > a::after,
.rdc-mega-wrap:hover > .rdc-noroute::after,
.rdc-mega-wrap.rdc-open > a::after,
.rdc-mega-wrap.rdc-open > .rdc-noroute::after{
  content:"";position:absolute;top:100%;left:-48px;right:-48px;height:34px;
}
/* same treatment for the small About / Smile Gallery dropdowns */
.rdc-dd:not(.rdc-mega-wrap) > a,.rdc-dd:not(.rdc-mega-wrap) > .rdc-noroute{position:relative;}
.rdc-dd:not(.rdc-mega-wrap):hover > a::after,
.rdc-dd:not(.rdc-mega-wrap):hover > .rdc-noroute::after,
.rdc-dd:not(.rdc-mega-wrap).rdc-open > a::after,
.rdc-dd:not(.rdc-mega-wrap).rdc-open > .rdc-noroute::after{
  content:"";position:absolute;top:100%;left:-24px;right:-24px;height:18px;
}
/* <<< RDC-SECTIONS-2-6 <<< */

/* >>> RDC-SECTION-7-8 >>> */
/* ==========================================================================
   S7 — What makes us different (PIF differentiators, own section)
   ========================================================================== */
.rdc-diff{background:#fff;padding:76px 0 72px;}
.rdc-diff-inner,.rdc-ins-inner{max-width:1180px;margin:0 auto;padding:0 40px;}
.rdc-acc{margin-top:34px;border-top:1px solid #e6edf9;}
.rdc-acc-item{border-bottom:1px solid #e6edf9;}
.rdc-acc-btn{
  width:100%;display:flex;align-items:center;gap:20px;
  padding:26px 4px;background:none;border:0;cursor:pointer;text-align:left;
  transition:color .18s var(--rdc-ease);
}
.rdc-acc-n{
  flex:none;font-family:var(--rdc-display);font-size:clamp(19px,1.6vw,24px);
  line-height:1;color:#c2d4f2;letter-spacing:1px;min-width:34px;
  transition:color .18s var(--rdc-ease);
}
.rdc-acc-btn .rdc-diff-ic{
  flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;
  border-radius:12px;background:var(--rdc-pale-2);border:0;color:var(--rdc-blue-dp);
  box-shadow:none;margin:0;transition:background .18s var(--rdc-ease);
}
.rdc-acc-btn .rdc-diff-ic svg{width:24px;height:24px;}
.rdc-acc-t{
  flex:1;font-family:var(--rdc-display);font-weight:400;
  font-size:clamp(19px,1.75vw,26px);line-height:1.2;color:var(--rdc-navy);
}
.rdc-acc-chev{
  flex:none;width:22px;height:22px;color:var(--rdc-blue-dp);
  transition:transform .3s var(--rdc-ease);
}
.rdc-acc-btn:hover .rdc-acc-n{color:var(--rdc-blue);}
.rdc-acc-btn:hover .rdc-diff-ic{background:#dce8ff;}
.rdc-acc-btn:focus-visible{outline:2px solid var(--rdc-blue);outline-offset:2px;border-radius:8px;}
.rdc-acc-item[data-open] .rdc-acc-chev{transform:rotate(180deg);}
.rdc-acc-item[data-open] .rdc-acc-n{color:var(--rdc-blue);}

.rdc-acc-panel{
  overflow:hidden;height:0;
  transition:height .34s var(--rdc-ease),opacity .28s var(--rdc-ease);
  opacity:0;
}
.rdc-acc-item[data-open] .rdc-acc-panel{opacity:1;}
.rdc-acc-inner{padding:0 4px 28px 98px;}
.rdc-acc-lead{
  margin:0 0 14px!important;font-family:var(--rdc-body);font-size:16.2px;
  line-height:1.8;color:#3d4a5c;
}
.rdc-acc-list{list-style:none;margin:0;padding:0;}
.rdc-acc-list li{
  position:relative;padding:0 0 0 22px;margin:0 0 10px;
  font-family:var(--rdc-body);font-size:15.8px;line-height:1.75;color:#4a5464;
}
.rdc-acc-list li:last-child{margin-bottom:0;}
.rdc-acc-list li:before{
  content:''!important;position:absolute;left:0;top:10px;width:6px;height:6px;
  border-radius:50%;background:var(--rdc-blue);
}
@media(max-width:820px){
  .rdc-acc-btn{gap:14px;padding:22px 2px;}
  .rdc-acc-n{min-width:28px;}
  .rdc-acc-btn .rdc-diff-ic{width:38px;height:38px;}
  .rdc-acc-btn .rdc-diff-ic svg{width:21px;height:21px;}
  .rdc-acc-inner{padding:0 2px 24px 0;}
}
@media(prefers-reduced-motion:reduce){
  .rdc-acc-panel,.rdc-acc-chev{transition:none!important;}
}

/* ==========================================================================
   S8 — Insurance (PIF insurance_plans)
   ========================================================================== */
.rdc-ins{background:var(--rdc-pale-2);padding:66px 0 62px;}
.rdc-ins-list{
  list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px;
}
.rdc-ins-list li{
  background:#fff;border:1px solid #dbe6fa;border-radius:999px;padding:11px 22px;
  font-family:var(--rdc-body);font-size:15.4px;font-weight:600;color:var(--rdc-navy);
  box-shadow:0 2px 4px rgba(20,40,80,.04);
}
.rdc-ins-foot{
  margin-top:26px;padding-top:22px;border-top:1px solid #d5e2f7;
  display:flex;flex-wrap:wrap;gap:16px 30px;align-items:center;justify-content:space-between;
}
.rdc-ins-cdcp{margin:0;font-family:var(--rdc-body);font-size:15.6px;line-height:1.7;color:#3d4a5c;}
.rdc-ins-cdcp b{color:var(--rdc-navy);}
.rdc-ins-link{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--rdc-cond);font-size:13px;
  font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--rdc-blue-dp);
  text-decoration:none;white-space:nowrap;
}
.rdc-ins-link svg{width:16px;height:16px;transition:transform .3s var(--rdc-ease);}
.rdc-ins-link:hover svg{transform:translateX(4px);}
@media(max-width:620px){
  .rdc-diff-inner,.rdc-ins-inner{padding:0 22px;}
  .rdc-ins-foot{flex-direction:column;align-items:flex-start;}
}

/* our card lists own their own marker — kill the inherited ones */
.rdc-diff-list,.rdc-diff-list li,.ip-card-list,.ip-card-list li,
.rdc-acc-list,.rdc-acc-list li{
  list-style:none!important;list-style-type:none!important;}
.rdc-diff-list li::marker,.ip-card-list li::marker,.rdc-acc-list li::marker{content:none!important;font-size:0!important;}
body:not(.home) .entry-content .ip-card-list li:before,
body:not(.home) .entry-content .ip-card-list li{padding-left:0;margin-bottom:0;}
body:not(.home) .entry-content .ip-card-list li{position:relative;padding-left:20px;margin-bottom:10px;}
body:not(.home) .entry-content .ip-card-list li:before{
  content:''!important;position:absolute;left:0;top:9px;width:7px;height:7px;
  border-radius:50%;background:var(--rdc-blue);}
/* <<< RDC-SECTION-7-8 <<< */

/* >>> RDC-LOCAL >>> */
.rdc-sec-head-solo{display:block;}
.rdc-sec-head-solo > .rdc-eyebrow{display:block;}
.rdc-sec-head-solo h2{margin-top:8px;}
.rdc-local{background:#fff;padding:74px 0 70px;}
.rdc-local-inner{
  max-width:1180px;margin:0 auto;padding:0 40px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:48px;align-items:center;
}
.rdc-local-copy h2{
  margin:0 0 18px;font-family:var(--rdc-display);font-weight:400;
  font-size:clamp(27px,3vw,38px);line-height:1.15;color:var(--rdc-navy);
}
.rdc-local-copy p{margin:0 0 14px;font-family:var(--rdc-body);font-size:16.2px;line-height:1.8;color:#4a5464;}
.rdc-local-facts{list-style:none;margin:22px 0 20px;padding:0;display:flex;flex-direction:column;gap:12px;}
.rdc-local-facts li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:baseline;}
.rdc-local-facts b{
  font-family:var(--rdc-cond);font-size:11.5px;font-weight:700;letter-spacing:2.2px;
  text-transform:uppercase;color:var(--rdc-blue-dp);
}
.rdc-local-facts span{font-family:var(--rdc-body);font-size:15.8px;line-height:1.6;color:var(--rdc-navy);}
.rdc-local-facts a{color:var(--rdc-navy);text-decoration:none;}
.rdc-local-facts a:hover{color:var(--rdc-blue-dp);}
.rdc-local-cta{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:4px;}
.rdc-local-link{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--rdc-cond);font-size:13px;
  font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--rdc-blue-dp);
  text-decoration:none;
}
.rdc-local-link svg{width:16px;height:16px;transition:transform .3s var(--rdc-ease);}
.rdc-local-link:hover svg{transform:translateX(4px);}
.rdc-local-map img{
  width:100%;max-width:976px;height:auto;display:block;border-radius:16px;
  box-shadow:0 18px 40px rgba(18,36,74,.16);
}
@media(max-width:960px){ .rdc-local-inner{grid-template-columns:1fr;gap:28px;padding:0 22px;} }
/* <<< RDC-LOCAL <<< */

/* >>> RDC-SERVICES-CURVES >>> */
/* ==========================================================================
   CURVES — task #221, @leonard: "add curves to the new layout so it has that
   element just like the old site ... do something better."
   The path data is the client's OWN three-layer Divi wave (the divider that
   used to sit under the header). It is reused as a section transition and is
   always filled with the colour of the band it flows INTO, so each edge reads
   as one band spilling over the next instead of a decorative stripe.
   ========================================================================== */
.rdc-curve{
  position:absolute;left:0;right:0;width:100%;
  line-height:0;pointer-events:none;user-select:none;z-index:5;
}
.rdc-curve svg{display:block;width:100%;height:100%;}
.rdc-curve-bottom{bottom:-1px;}
.rdc-curve-top{top:-1px;transform:rotate(180deg);}

/* every band that carries a curve has to be a positioning context, and has to
   reserve room so the wave never crosses live copy */
body.home .rdc-hero,body.home .rdc-sec-smile,body.home .rdc-tl,
body.home .rdc-sec-promo,body.home .rdc-local,body.home .rdc-team{position:relative;}
body.home .rdc-sec-smile{padding-bottom:clamp(58px,6vw,108px)!important;}
body.home .rdc-sec-promo{padding-top:clamp(46px,5.2vw,92px)!important;}
body.home .rdc-local{padding-bottom:clamp(96px,9vw,150px);}
body.home .rdc-team{padding-top:clamp(96px,9vw,150px);}
/* the hero's top wave sits over the photograph, above the veil, under the copy */
body.home .rdc-hero > .rdc-curve-top{z-index:2;}

/* ==========================================================================
   S3 — FEATURED TREATMENTS, rebuilt on the Broadview services layout
   (task #221, @gaurav: "layout of services same like broadview").
   Asymmetric trio: quiet side slot | elevated white photo card | quiet side
   slot. Arrows, dots, autoplay. Royal's blues, Royal's display face.
   Each service's COMPLETE paragraph is in the markup at all times — the side
   slots collapse it, they never cut it.
   ========================================================================== */
.rdc-tl{
  position:relative;overflow:hidden;
  background:linear-gradient(168deg,#16233c 0%,#1b2b47 44%,#22406e 100%);
  padding:clamp(96px,9vw,150px) 0 clamp(66px,6vw,96px);
}
.rdc-tl-inner{max-width:1180px;margin:0 auto;padding:0 40px;position:relative;z-index:2;}
.rdc-tl-head{text-align:center;margin-bottom:38px;}
.rdc-tl-head .rdc-eyebrow{color:#9dc0ff;}
.rdc-tl-head h2,
.et-db #et-boc .et-l .rdc-tl-head h2{
  font-family:var(--rdc-display);color:#fff;
  font-size:clamp(29px,3.2vw,44px);line-height:1.14;margin:8px 0 0;
}
.rdc-tl-head p{
  font-family:var(--rdc-body);font-size:16.4px;line-height:1.8;
  color:#c2d4f2;margin:14px auto 0;max-width:760px;
}

.rdc-tl-slider{display:flex;align-items:stretch;gap:14px;}
.rdc-tl-stage{
  flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);
  gap:24px;align-items:center;
  transition:opacity .22s var(--rdc-ease),transform .22s var(--rdc-ease);
}
.rdc-tl-stage.is-next{opacity:0;transform:translateX(-26px);}
.rdc-tl-stage.is-prev{opacity:0;transform:translateX(26px);}
.rdc-tl-item{grid-row:1;}
.rdc-tl-item[data-pos="left"]  {grid-column:1;}
.rdc-tl-item[data-pos="center"]{grid-column:2;}
.rdc-tl-item[data-pos="right"] {grid-column:3;}
.rdc-tl-link{display:block;text-decoration:none!important;height:100%;}

/* --- the two quiet side slots -------------------------------------------
   Each flanking slot is a FULL-HEIGHT panel carrying that service's own
   photograph, dimmed back so the white centre card still leads. Stretching
   them is what keeps the band honest: an icon floating mid-column beside a
   600px card is exactly the dead air the house rule bans, and a hand-drawn
   watermark would be an abstract placeholder on top of it.
   The service's complete paragraph stays in the markup, collapsed, and is
   revealed in full the moment the slot rotates into the centre. */
.rdc-tl-item[data-pos="left"] .rdc-tl-link,
.rdc-tl-item[data-pos="right"] .rdc-tl-link{
  position:relative;display:flex;flex-direction:column;
  border-radius:18px;overflow:hidden;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(199,216,255,.16);
  transition:transform .22s var(--rdc-ease),background .22s var(--rdc-ease);
}
.rdc-tl-item[data-pos="left"] .rdc-tl-link:hover,
.rdc-tl-item[data-pos="right"] .rdc-tl-link:hover{
  transform:translateY(-4px);background:rgba(255,255,255,.10);
}
/* aspect-ratio matches the source file exactly (900x468) => nothing is cropped */
.rdc-tl-item[data-pos="left"] .rdc-tl-photo,
.rdc-tl-item[data-pos="right"] .rdc-tl-photo{
  display:block;flex:0 0 auto;aspect-ratio:3/4;background:none;
}
.rdc-tl-photo img.rdc-tl-wide{display:block;}
.rdc-tl-photo img.rdc-tl-tall{display:none;}
.rdc-tl-item[data-pos="left"] .rdc-tl-photo img.rdc-tl-wide,
.rdc-tl-item[data-pos="right"] .rdc-tl-photo img.rdc-tl-wide{display:none;}
.rdc-tl-item[data-pos="left"] .rdc-tl-photo img.rdc-tl-tall,
.rdc-tl-item[data-pos="right"] .rdc-tl-photo img.rdc-tl-tall{display:block;}
.rdc-tl-item[data-pos="left"] .rdc-tl-photo img,
.rdc-tl-item[data-pos="right"] .rdc-tl-photo img{
  width:100%;height:100%;object-fit:cover;display:block;
  opacity:.88;transition:opacity .22s var(--rdc-ease);
}
.rdc-tl-item[data-pos="left"] .rdc-tl-link:hover .rdc-tl-photo img,
.rdc-tl-item[data-pos="right"] .rdc-tl-link:hover .rdc-tl-photo img{opacity:1;}
.rdc-tl-item[data-pos="left"] .rdc-tl-copy,
.rdc-tl-item[data-pos="right"] .rdc-tl-copy{display:none;}
.rdc-tl-item[data-pos="left"] .rdc-tl-body,
.rdc-tl-item[data-pos="right"] .rdc-tl-body{
  position:relative;z-index:2;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:132px;padding:24px 20px 26px;text-align:center;
}
.rdc-tl-item[data-pos="left"] .rdc-tl-title,
.rdc-tl-item[data-pos="right"] .rdc-tl-title{
  display:block;font-family:var(--rdc-display);color:#fff;
  font-size:clamp(19px,1.7vw,25px);line-height:1.25;margin:0 0 14px;
}
.rdc-tl-item[data-pos="left"] .rdc-tl-more,
.rdc-tl-item[data-pos="right"] .rdc-tl-more{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--rdc-cond);font-size:12.5px;font-weight:700;
  letter-spacing:1.6px;text-transform:uppercase;color:#9dc0ff;
}

/* --- the elevated centre card ------------------------------------------- */
.rdc-tl-item[data-pos="center"] .rdc-tl-link{
  display:block;background:#fff;border-radius:20px;overflow:hidden;
  box-shadow:0 26px 60px rgba(6,16,38,.42);
  transition:transform .22s var(--rdc-ease),box-shadow .22s var(--rdc-ease);
}
.rdc-tl-item[data-pos="center"] .rdc-tl-link:hover{
  transform:translateY(-5px);box-shadow:0 34px 74px rgba(6,16,38,.5);
}
.rdc-tl-photo{display:block;line-height:0;background:var(--rdc-pale-2);}
.rdc-tl-item[data-pos="center"] .rdc-tl-photo{aspect-ratio:900/468;}
.rdc-tl-photo img{width:100%;height:100%;object-fit:cover;}
.rdc-tl-body{display:block;padding:28px 34px 32px;}
.rdc-tl-item[data-pos="center"] .rdc-tl-title{
  display:block;font-family:var(--rdc-display);color:var(--rdc-navy);
  font-size:clamp(23px,2.1vw,29px);line-height:1.2;margin:0 0 14px;
}
.rdc-tl-copy{
  display:block;font-family:var(--rdc-body);font-size:15.6px;line-height:1.82;
  color:#48546a;margin:0 0 18px;min-height:11.5em;
}
.rdc-tl-item[data-pos="center"] .rdc-tl-more{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--rdc-cond);font-size:13px;font-weight:700;
  letter-spacing:1.6px;text-transform:uppercase;color:var(--rdc-blue-dp);
}
.rdc-tl-more svg{width:16px;height:16px;flex:none;transition:transform .2s var(--rdc-ease);}
.rdc-tl-link:hover .rdc-tl-more svg{transform:translateX(4px);}

/* --- arrows, dots, tail link -------------------------------------------- */
.rdc-tl-arrow{
  flex:0 0 auto;align-self:center;width:48px;height:48px;border-radius:50%;
  border:1px solid rgba(199,216,255,.42);background:rgba(255,255,255,.07);
  color:#fff;cursor:pointer;padding:11px;transition:.16s var(--rdc-ease);
}
.rdc-tl-arrow svg{width:100%;height:100%;display:block;}
.rdc-tl-arrow:hover{background:var(--rdc-blue);border-color:var(--rdc-blue);color:#0d1a30;}
.rdc-tl-arrow:focus-visible{outline:2px solid var(--rdc-blue);outline-offset:3px;}
.rdc-tl-dots{display:flex;justify-content:center;gap:9px;margin-top:30px;}
.rdc-tl-dots button{
  width:9px;height:9px;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:rgba(199,216,255,.30);transition:.2s var(--rdc-ease);
}
.rdc-tl-dots button.active{background:var(--rdc-blue);width:28px;border-radius:6px;}
.rdc-tl-all{text-align:center;margin-top:26px;}
.rdc-tl-all a{
  display:inline-flex;align-items:center;gap:8px;text-decoration:none!important;
  font-family:var(--rdc-cond);font-size:13px;font-weight:700;letter-spacing:1.6px;
  text-transform:uppercase;color:#c7d8ff;padding-bottom:3px;
  border-bottom:1px solid rgba(199,216,255,.35);
}
.rdc-tl-all a:hover{color:#fff;border-bottom-color:#fff;}
.rdc-tl-all svg{width:16px;height:16px;flex:none;}

@media(max-width:1100px){
  .rdc-tl-stage{gap:16px;}
  .rdc-tl-body{padding:24px 24px 28px;}
}
@media(max-width:880px){
  /* one full-width card; the arrows overlay the photo so the card keeps the
     whole column instead of being squeezed between them */
  .rdc-tl-inner{padding:0 22px;}
  .rdc-tl-slider{position:relative;gap:0;}
  .rdc-tl-stage{grid-template-columns:1fr;gap:0;}
  .rdc-tl-item[data-pos="left"],.rdc-tl-item[data-pos="right"]{display:none;}
  .rdc-tl-item[data-pos="center"]{grid-column:1;}
  .rdc-tl-arrow{
    position:absolute;top:calc(clamp(180px,17vw,228px) / 2 - 21px);z-index:4;
    width:42px;height:42px;padding:10px;background:rgba(13,26,48,.62);
    border-color:rgba(255,255,255,.35);
  }
  .rdc-tl-prev{left:10px;} .rdc-tl-next{right:10px;}
}
@media(prefers-reduced-motion:reduce){
  .rdc-tl-stage,.rdc-tl-more svg,.rdc-tl-item[data-pos="center"] .rdc-tl-link{transition:none!important;}
}
/* <<< RDC-SERVICES-CURVES <<< */



/* >>> RDC-INNER-PAGES-V2 >>> */
/* ==========================================================================
   Internal pages, rebuilt on the homepage design system (.ip-*).
   Same palette, display face, curves and rhythm as /about-us/ and the homepage.
   Scoped to .ip-* so nothing here reaches the ~760 still-ported pages.
   ========================================================================== */
.ip-wrap{width:88%;margin:0 auto;}            /* no max-width cap — house rule */
.ip-hero,.ip-cta,.ip-gal,.ip-split{position:relative;}

/* hero */
.ip-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--rdc-navy);
  min-height:min(52vh,460px);display:flex;align-items:center;}
.ip-hero-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-repeat:no-repeat;
  transform:scale(1.03);animation:ipHeroIn 1.4s var(--rdc-ease) both;}
@keyframes ipHeroIn{from{transform:scale(1.09);opacity:.5;}to{transform:scale(1.03);opacity:1;}}
.ip-hero-veil{position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,rgba(12,22,44,.90) 0%,rgba(16,30,60,.80) 46%,rgba(20,40,78,.55) 100%);}
.ip-hero-inner{position:relative;z-index:3;width:88%;margin:0 auto;padding:68px 0 86px;}
.ip-hero-eyebrow{color:#9dc0ff!important;}
.ip-hero h1,.et-db #et-boc .et-l .ip-hero h1{
  font-family:var(--rdc-display);font-weight:400;color:#fff!important;
  font-size:clamp(29px,3.3vw,47px);line-height:1.1;margin:10px 0 0;letter-spacing:.4px;}
.ip-hero-lead{font-family:var(--rdc-body);font-size:17px;line-height:1.82;color:#d3e0f7;
  margin:18px 0 0;max-width:74ch;}
.ip-hero .rdc-hero-btns{margin-top:26px;}

/* at-a-glance strip */
.ip-glance{background:#fff;}
.ip-glance-list{list-style:none;margin:-38px 0 0;padding:0;position:relative;z-index:4;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;background:#fff;
  border:1px solid #e3ecfb;border-radius:18px;overflow:hidden;
  box-shadow:0 22px 50px rgba(18,36,74,.13);}
.ip-glance-list li{padding:24px 24px 26px;border-right:1px solid #eef2fa;
  display:flex;flex-direction:column;gap:5px;}
.ip-glance-list li:last-child{border-right:none;}
.ip-g-k{font-family:var(--rdc-cond);font-size:11px;font-weight:700;letter-spacing:2.4px;
  text-transform:uppercase;color:var(--rdc-blue-dp);}
.ip-g-v{font-family:var(--rdc-display);font-size:clamp(18px,1.6vw,24px);line-height:1.15;
  color:var(--rdc-navy);}
.ip-g-s{font-family:var(--rdc-body);font-size:14.4px;line-height:1.5;color:#5a6472;}

/* shared band typography */
.ip-prose,.ip-cards,.ip-links,.ip-gal{background:#fff;padding:66px 0 62px;}
.ip-cards{background:linear-gradient(180deg,#f6f9ff 0%,#eef4ff 100%);}
.ip-gal{background:var(--rdc-pale-2);}
.ip-prose h2,.ip-cards h2,.ip-links h2,.ip-gal h2,.ip-split h2,
.et-db #et-boc .et-l .ip-prose h2,.et-db #et-boc .et-l .ip-cards h2,
.et-db #et-boc .et-l .ip-links h2,.et-db #et-boc .et-l .ip-gal h2,
.et-db #et-boc .et-l .ip-split h2{
  font-family:var(--rdc-display);font-weight:400;color:var(--rdc-navy)!important;
  font-size:clamp(26px,2.9vw,40px);line-height:1.14;margin:8px 0 0;}
.ip-copy p{font-family:var(--rdc-body);font-size:16.4px;line-height:1.84;color:#4a5464;
  margin:0 0 15px;}
.ip-copy p:last-child{margin-bottom:0;}
.ip-copy ul{margin:0 0 16px;padding-left:22px;}
.ip-copy li{font-family:var(--rdc-body);font-size:16.2px;line-height:1.8;color:#4a5464;
  margin:0 0 8px;}

/* cards */
.ip-card-grid{display:grid;gap:24px;align-items:start;margin-top:30px;}
.ip-card-grid[data-cols="2"]{grid-template-columns:repeat(2,minmax(0,1fr));}
.ip-card-grid[data-cols="3"]{grid-template-columns:repeat(3,minmax(0,1fr));}
.ip-card{background:#fff;border:1px solid #e3ecfb;border-radius:16px;padding:26px 26px 24px;}
.ip-cards .ip-card{background:#fff;}
.ip-card h3,.et-db #et-boc .et-l .ip-card h3{
  font-family:var(--rdc-display);font-weight:400;color:var(--rdc-navy)!important;
  font-size:21px;line-height:1.2;margin:0 0 10px;}
.ip-card p{font-family:var(--rdc-body);font-size:15.4px;line-height:1.78;color:#4a5464;margin:0;}
.ip-card-lead{margin:0 0 12px!important;}
.ip-card-list{list-style:none;margin:0;padding:0;}
.ip-card-list li{position:relative;padding:0 0 0 20px;margin:0 0 10px;
  font-family:var(--rdc-body);font-size:15.4px;line-height:1.72;color:#4a5464;}
.ip-card-list li:last-child{margin-bottom:0;}
.ip-card-list li:before{content:'';position:absolute;left:0;top:9px;width:7px;height:7px;
  border-radius:50%;background:var(--rdc-blue);}

/* link cards */
.ip-link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:30px;}
.ip-link-card{display:block;background:linear-gradient(180deg,#f8fbff 0%,#f2f7ff 100%);
  border:1px solid #e3ecfb;border-radius:16px;padding:24px 24px 22px;
  text-decoration:none!important;transition:.2s var(--rdc-ease);}
.ip-link-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(18,36,74,.12);}
.ip-link-card h3,.et-db #et-boc .et-l .ip-link-card h3{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-family:var(--rdc-display);font-weight:400;color:var(--rdc-navy)!important;
  font-size:20px;line-height:1.2;margin:0 0 8px;}
.ip-link-card svg{width:16px;height:16px;flex:none;color:var(--rdc-blue-dp);
  transition:transform .25s var(--rdc-ease);}
.ip-link-card:hover svg{transform:translateX(4px);}
.ip-link-card p{font-family:var(--rdc-body);font-size:15px;line-height:1.72;color:#5a6472;margin:0;}

/* gallery — every figure keeps its own file ratio */
.ip-gal-note{font-family:var(--rdc-body);font-size:16px;line-height:1.8;color:#4a5464;
  margin:16px 0 0;}
.ip-shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;
  align-items:start;margin-top:30px;}
.ip-shots[data-cols="4"]{grid-template-columns:repeat(4,minmax(0,1fr));}
.ip-shot{margin:0;display:flex;flex-direction:column;align-items:center;}
.ip-shot img{width:100%;height:auto;display:block;object-fit:cover;border-radius:14px;
  box-shadow:0 12px 28px rgba(18,36,74,.13);background:#fff;}
.ip-shot figcaption{width:100%;margin-top:10px;font-family:var(--rdc-cond);font-size:11.5px;font-weight:700;
  letter-spacing:1.9px;text-transform:uppercase;color:var(--rdc-blue-dp);}

/* before/after pairs, grouped per patient */
.ip-pairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin-top:30px;}
.ip-pair{background:#fff;border:1px solid #e3ecfb;border-radius:16px;padding:22px 22px 20px;}
.ip-pair h3,.et-db #et-boc .et-l .ip-pair h3{
  font-family:var(--rdc-display);font-weight:400;color:var(--rdc-navy)!important;
  font-size:20px;line-height:1.2;margin:0 0 16px;}
.ip-pair-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start;}
.ip-pair-fig{margin:0;display:flex;flex-direction:column;align-items:center;}
.ip-pair-fig img{width:100%;height:auto;display:block;object-fit:cover;border-radius:10px;}
.ip-pair-fig figcaption{width:100%;margin-top:8px;font-family:var(--rdc-cond);font-size:10.5px;
  font-weight:700;letter-spacing:1.7px;text-transform:uppercase;color:var(--rdc-blue-dp);}
@media(max-width:900px){.ip-pairs{grid-template-columns:1fr;}}

/* verbatim case notes */
.ip-case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:30px;}
.ip-case{background:#fff;border:1px solid #e3ecfb;border-radius:14px;padding:20px 22px;}
.ip-case p{margin:0 0 10px;font-family:var(--rdc-body);font-size:15.2px;line-height:1.7;color:#4a5464;}
.ip-case p:last-child{margin-bottom:0;}
.ip-case span{display:block;font-family:var(--rdc-cond);font-size:10.5px;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;color:var(--rdc-blue-dp);margin-bottom:3px;}
.ip-case-m{color:var(--rdc-navy)!important;}
@media(max-width:900px){.ip-case-grid{grid-template-columns:1fr;}}

/* multi-column list blocks inside a prose band */
.ip-cols2,.ip-cols3{display:grid;gap:34px;}
.ip-cols2{grid-template-columns:repeat(2,minmax(0,1fr));}
.ip-cols3{grid-template-columns:repeat(3,minmax(0,1fr));}
.ip-cols2 h3,.ip-cols3 h3,
.et-db #et-boc .et-l .ip-cols2 h3,.et-db #et-boc .et-l .ip-cols3 h3{
  font-family:var(--rdc-display);font-weight:400;color:var(--rdc-navy)!important;
  font-size:20px;line-height:1.2;margin:0 0 12px;}
@media(max-width:900px){.ip-cols2,.ip-cols3{grid-template-columns:1fr;gap:24px;}}

/* copy beside a photo */
.ip-split{background:#fff;padding:62px 0 66px;}
.ip-split-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;
  align-items:center;}
.ip-split-rev .ip-split-photo{order:-1;}
.ip-split-copy p{font-family:var(--rdc-body);font-size:16.4px;line-height:1.84;color:#4a5464;
  margin:14px 0 0;}
.ip-split-photo{position:relative;border-radius:18px;overflow:hidden;margin:0 auto;
  box-shadow:0 20px 46px rgba(18,36,74,.17);}
.ip-split-photo img{width:100%;height:auto;display:block;}
.ip-cap{position:absolute;left:0;right:0;bottom:0;padding:26px 22px 14px;
  background:linear-gradient(180deg,rgba(10,20,40,0),rgba(10,20,40,.82));
  font-family:var(--rdc-cond);font-size:11.5px;font-weight:700;letter-spacing:2px;
  text-transform:uppercase;color:#e6eeff;}

/* preserved raw block (the working contact form) */
.ip-raw{background:#fff;padding:0 0 66px;}
.ip-formhead{background:#fff;padding:62px 0 0;}
.ip-formhead .rdc-sec-head{margin-bottom:22px;}
.ip-raw .et_pb_contact_form{max-width:none;}
.ip-raw input[type=text],.ip-raw textarea,.ip-raw select{
  width:100%;font-family:var(--rdc-body);font-size:15.6px;color:var(--rdc-navy);
  background:#f8fbff;border:1px solid #dbe6fa;border-radius:10px;padding:13px 15px;}
.ip-raw input[type=text]:focus,.ip-raw textarea:focus,.ip-raw select:focus{
  outline:2px solid var(--rdc-blue);outline-offset:1px;background:#fff;}
.ip-raw textarea{min-height:150px;resize:vertical;}
.ip-raw p{margin:0 0 16px;}
.ip-raw .et_contact_bottom_container{
  float:none!important;display:flex;flex-direction:column;align-items:flex-start;
  gap:16px;margin:22px 0 0;padding:0;text-align:left;width:100%;}
.ip-raw .et_contact_bottom_container:after{content:none!important;}
.ip-raw .cf-turnstile{margin:0!important;}
.ip-raw input[type=submit],
.ip-raw button[type=submit],
.ip-raw .et_pb_contact_submit.et_pb_button{
  float:none!important;display:inline-flex!important;align-items:center;
  width:auto!important;min-width:0!important;max-width:none;
  background:linear-gradient(90deg,var(--rdc-blue) 0%,var(--rdc-blue-dp) 100%)!important;
  color:#fff!important;border:0!important;border-radius:999px!important;
  padding:13px 30px!important;margin:0!important;cursor:pointer;line-height:1.1!important;
  font-family:var(--rdc-cond)!important;font-size:13px!important;font-weight:700!important;
  letter-spacing:1.6px!important;text-transform:uppercase!important;}
.ip-raw .et_pb_contact_submit.et_pb_button:after{content:none!important;
  display:none!important;}
.ip-raw .et_pb_contact_submit.et_pb_button:hover{
  background:linear-gradient(90deg,var(--rdc-blue-dp) 0%,var(--rdc-navy-lk) 100%)!important;
  padding:13px 30px!important;}

/* GHL form embed — reserved height + a placeholder while GHL boots */
.rdc-ghl-wrap{position:relative;min-height:712px;border-radius:12px;overflow:hidden;
  background:#f8fbff;border:1px solid #e3ecfb;}
.rdc-ghl-wrap iframe{display:block;width:100%;min-height:712px;border:0;}
.rdc-ghl-load{
  position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:12px;text-align:center;padding:30px;
  background:#f8fbff;transition:opacity .3s var(--rdc-ease);
}
.rdc-ghl-wrap.is-ready .rdc-ghl-load{opacity:0;pointer-events:none;}
/* reservation is only needed until GHL has sized itself */
.rdc-ghl-wrap.is-ready,.rdc-ghl-wrap.is-ready iframe{min-height:0;}
.rdc-ghl-load b{font-family:var(--rdc-display);font-weight:400;font-size:20px;color:var(--rdc-navy);}
.rdc-ghl-load span:last-child{font-family:var(--rdc-body);font-size:14.6px;line-height:1.7;
  color:#5a6472;max-width:44ch;}
.rdc-ghl-spin{
  width:30px;height:30px;border-radius:50%;border:3px solid #dbe6fa;
  border-top-color:var(--rdc-blue);animation:rdcSpin .8s linear infinite;
}
@keyframes rdcSpin{to{transform:rotate(360deg);}}
@media(prefers-reduced-motion:reduce){.rdc-ghl-spin{animation-duration:2.4s;}}

/* closing CTA */
.ip-cta{background:linear-gradient(160deg,#16233c 0%,#1b2b47 46%,#22406e 100%);padding:66px 0 70px;}
.ip-cta-inner{text-align:center;}
.ip-cta h2,.et-db #et-boc .et-l .ip-cta h2{
  font-family:var(--rdc-display);font-weight:400;color:#fff!important;
  font-size:clamp(25px,2.8vw,38px);line-height:1.14;margin:0 0 12px;}
.ip-cta p{font-family:var(--rdc-body);font-size:16.4px;line-height:1.75;color:#c2d4f2;margin:0 0 24px;}
.ip-cta .rdc-hero-btns{justify-content:center;}

@media(max-width:1000px){
  .ip-glance-list{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ip-glance-list li:nth-child(2){border-right:none;}
  .ip-glance-list li:nth-child(-n+2){border-bottom:1px solid #eef2fa;}
  .ip-card-grid[data-cols="2"],.ip-card-grid[data-cols="3"]{grid-template-columns:1fr;}
  .ip-link-grid{grid-template-columns:1fr;}
  .ip-split-inner{grid-template-columns:1fr;gap:28px;}
  .ip-split-rev .ip-split-photo{order:0;}
  .ip-shots,.ip-shots[data-cols="4"]{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:640px){
  .ip-wrap,.ip-hero-inner{width:92%;}
  .ip-glance-list{grid-template-columns:1fr;margin-top:-24px;}
  .ip-glance-list li{border-right:none;border-bottom:1px solid #eef2fa;}
  .ip-glance-list li:last-child{border-bottom:none;}
  .ip-shots,.ip-shots[data-cols="4"]{grid-template-columns:1fr;}
}
@media(prefers-reduced-motion:reduce){
  .ip-hero-bg{animation:none;}
  .ip-link-card,.ip-link-card svg{transition:none!important;}
}

/* our card lists own their own marker — kill the inherited ones */
.rdc-diff-list,.rdc-diff-list li,.ip-card-list,.ip-card-list li,
.rdc-acc-list,.rdc-acc-list li{
  list-style:none!important;list-style-type:none!important;}
.rdc-diff-list li::marker,.ip-card-list li::marker,.rdc-acc-list li::marker{content:none!important;font-size:0!important;}
body:not(.home) .entry-content .ip-card-list li:before,
body:not(.home) .entry-content .ip-card-list li{padding-left:0;margin-bottom:0;}
body:not(.home) .entry-content .ip-card-list li{position:relative;padding-left:20px;margin-bottom:10px;}
body:not(.home) .entry-content .ip-card-list li:before{
  content:''!important;position:absolute;left:0;top:9px;width:7px;height:7px;
  border-radius:50%;background:var(--rdc-blue);}
/* <<< RDC-INNER-PAGES-V2 <<< */

/* >>> RDC-MOTION >>> */
/* ==========================================================================
   Hero rotation + site-wide scroll reveal.
   ========================================================================== */
/* dark-band headings must out-specify the site-wide heading repaint (1,3,1) */
.rdc-hero h1,
.et-db #et-boc .et-l .rdc-hero h1{color:#fff!important;}
.rdc-hero h1 .rdc-h1-sub,
.et-db #et-boc .et-l .rdc-hero h1 .rdc-h1-sub{color:var(--rdc-blue)!important;}
.rdc-hero-eyebrow,
.et-db #et-boc .et-l .rdc-hero-eyebrow{color:#9dc0ff!important;}

.rdc-hero-slides{position:absolute;inset:0;z-index:0;overflow:hidden;}
.rdc-hero-slide{
  position:absolute;inset:0;background-size:cover;background-repeat:no-repeat;
  opacity:0;transform:scale(1.06);
  transition:opacity 1.1s cubic-bezier(.4,0,.2,1);
  will-change:opacity,transform;
}
.rdc-hero-slide.is-active{opacity:1;animation:rdcKen 9s linear forwards;}
@keyframes rdcKen{from{transform:scale(1.06);}to{transform:scale(1.005);}}

/* --- scroll reveal ------------------------------------------------------
   The hidden state only exists once JS has added `.rdc-motion` to <html>, so
   content is never invisible if the script fails to run. */
.rdc-motion [data-rv]{opacity:0;transform:translateY(18px);}
.rdc-motion [data-rv].rv-in{
  opacity:1;transform:none;
  transition:opacity .62s cubic-bezier(.22,.61,.36,1),
             transform .62s cubic-bezier(.22,.61,.36,1);
}
.rdc-motion [data-rv].rv-in[data-rv-d="1"]{transition-delay:.08s}
.rdc-motion [data-rv].rv-in[data-rv-d="2"]{transition-delay:.16s}
.rdc-motion [data-rv].rv-in[data-rv-d="3"]{transition-delay:.24s}
.rdc-motion [data-rv].rv-in[data-rv-d="4"]{transition-delay:.32s}

@media(prefers-reduced-motion:reduce){
  .rdc-hero-slide.is-active{animation:none;}
  .rdc-hero-slide{transition:none;}
  .rdc-motion [data-rv]{opacity:1!important;transform:none!important;}
}
/* <<< RDC-MOTION <<< */

/* >>> RDC-SERVICE-PAGES-V2 >>> */
/* ==========================================================================
   Service pages — MASTER structure, ROYAL skin.
   The master body's inline styles resolve through 8 custom properties; they are
   redefined here on .rdcsp so the whole page takes Royal's palette without one
   sentence of copy being edited. Everything is scoped to .rdcsp so it cannot
   reach the ~770 ported Divi pages.
   ========================================================================== */
.rdcsp{
  --navy:       var(--rdc-navy);
  --teal:       var(--rdc-blue-dp);      /* master's accent -> Royal deep blue */
  --teal-pale:  var(--rdc-pale-2);
  --white:      #ffffff;
  --gray-800:   var(--rdc-ink-2);
  --gray-600:   var(--rdc-muted);
  --gray-200:   var(--rdc-line);
  --gray-bg:    #f4f7fd;
  font-family: var(--rdc-body);
  color: var(--rdc-ink-2);
}
/* Divi caps its page-level .container at max-width:1280px. Measured on the
   deployed page that left the content at 70% of a 1440 viewport and 44% of a
   2560 one — both far under the 80% floor. Uncapped for THESE pages only, via
   the rdc-sp2 body class. A `width:88%` on our own wrapper is worthless while
   an ancestor is capped: the percentage is of the capped parent. */
/* ONLY the OUTER Divi container — a blanket `#main-content .container` rule
   also hit our own breadcrumb wrapper and rendered it edge-to-edge while the
   rest of the page sat at 88%. Direct child, so our inner containers keep
   their own width. */
body.rdc-sp2 #main-content > .container{
  max-width:none!important; width:100%!important;
  padding:0!important; }   /* padding-TOP too — that was the last 44px gap */
body.rdc-sp2 #main-content #content-area,
body.rdc-sp2 #main-content #left-area{ max-width:none!important; width:100%!important; }

/* Divi's own .container ships padding:44px 0 — that was the dead white band
   under the hero, above the breadcrumb. Our rows carry their own spacing. */
/* ── no white gap between the header and the hero ────────────────────────
   `.et_pb_section_0_tb_header` reserves min-height:173px + padding-bottom:43px
   + margin-bottom:2px while the real header (.rdc-hd) is only 89px tall, and
   Divi's bottom wave divider sits in the leftover. Measured: 219px above the
   hero, ~130px of it empty.
   SCOPED TO body.rdc-sp2 — zeroing this site-wide clips the logo and drops the
   wave on top of the nav across all ~774 ported inner pages (project memory). */
body.rdc-sp2 .et_pb_section_0_tb_header{
  min-height:0!important; padding-bottom:0!important; margin-bottom:0!important; }
body.rdc-sp2 .et_pb_section_0_tb_header .et_pb_bottom_inside_divider{ display:none!important; }
body.rdc-sp2 #main-content{ padding-top:0!important; margin-top:0!important; }

.rdcsp .container{ width:88%; margin:0 auto; }     /* no max-width — house rule */
/* the 44px comes from THIS project's own site-wide inner-page rule,
   `body:not(.home) #main-content .container{padding-top:44px!important}` at
   (1,2,1) — a plain `.rdcsp .container` at (0,2,0) loses even with !important,
   because equal-importance ties are broken by specificity, not source order. */
/* Divi's .container also carries max-width:1280px, and it re-applies to every
   container INSIDE our page. At 2560 that capped the breadcrumb and the body
   to 1280 and centred them — (2560-1280)/2 = 640px of drift — while the hero
   and the shell sat at 88% (154px). Everything must share ONE starting point.
   Needs the id-qualified selector to out-rank this project's own
   `body:not(.home) #main-content .container` rule. */
body.rdc-sp2 #main-content .rdcsp .container{
  max-width:none!important; padding:0!important; }
/* breadcrumb lines up with the hero and the shell: same 88%, same centring */
body.rdc-sp2 #main-content .rdcsp-breadcrumb .container{
  width:88%!important; margin:0 auto!important; }
/* inside the main column the shell has ALREADY applied the 88% — these run
   the full width of the column, never re-inset (Broadview:
   `.sp-v2 .spv-main .container{max-width:none;padding:0;margin:0;width:auto}`) */
body.rdc-sp2 #main-content .rdcsp-shell .rdcsp-main .container{
  width:100%!important; margin:0!important; }
/* ── the main column is ONE editorial column ───────────────────────────────
   Gaurav pointed at Broadview's rendering: the photo sits FULL WIDTH above its
   own heading and the text runs the full column. Their markup is the same
   two-column `sp-split`; their CSS collapses it inside the main column
   (`.sp-v2 .spv-main .sp-split{grid-template-columns:1fr}`). Mine kept the
   side-by-side split, which cramped every paragraph into ~430px. */
.rdcsp-shell .rdcsp-main .rdcsp-split{ grid-template-columns:1fr!important; gap:0!important; }
.rdcsp-shell .rdcsp-main .rdcsp-split.reverse .rdcsp-video,
.rdcsp-shell .rdcsp-main .rdcsp-split.reverse .rdcsp-split-img{ order:0; }
/* no tinted bands inside the column — sections flow as one column */
.rdcsp-shell .rdcsp-main .rdcsp-row{ padding:16px 0; background:none!important;
  border-radius:0; margin:0; padding-left:0; padding-right:0; }
.rdcsp-shell .rdcsp-main .rdcsp-row p:last-child{ margin-bottom:0; }
.rdcsp-shell .rdcsp-main .rdcsp-split-text > .rdcsp-eyebrow{ margin-top:6px; }
.rdcsp-shell .rdcsp-main .rdcsp-row:first-child{ padding-top:6px; }
.rdcsp-shell .rdcsp-main .rdcsp-video{ margin-bottom:24px; width:100%; max-width:none; }
.rdcsp-shell .rdcsp-main .rdcsp-video-still{ aspect-ratio:16/9; justify-self:stretch; }
.rdcsp-shell .rdcsp-main .rdcsp-video-still img{ position:absolute!important;
  inset:0; width:100%!important; height:100%!important; object-fit:cover; }
/* the one promoted feature photo */
.rdcsp .rdcsp-sublinks{ display:grid; gap:12px; margin-top:18px;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.rdcsp .rdcsp-sublinks .ip-link-card{ display:block; border:1px solid var(--rdc-line);
  border-radius:14px; padding:16px 18px; background:#fff; text-decoration:none;
  box-shadow:0 8px 22px rgba(27,43,71,.06); transition:transform .16s ease,box-shadow .16s ease; }
.rdcsp .rdcsp-sublinks .ip-link-card:hover{ transform:translateY(-3px);
  box-shadow:0 14px 32px rgba(27,43,71,.12); }
.rdcsp .rdcsp-sublinks h4{ display:flex; align-items:center; justify-content:space-between;
  gap:10px; margin:0; color:var(--rdc-blue-dp); }
.rdcsp .rdcsp-sublinks svg{ width:17px; height:17px; flex:none; }
.rdcsp .rdcsp-feature{ margin:0 0 24px; }
.rdcsp .rdcsp-feature img{ max-width:100%; }
.rdcsp .rdcsp-feature img{ display:block; width:100%; height:auto; border-radius:18px;
  box-shadow:0 18px 46px rgba(27,43,71,.16); }

/* inside the main column the shell already applies the 88% */
.rdcsp-shell .rdcsp-main .container{ width:100%!important; }
.rdcsp img{ max-width:100%; height:auto; }
.rdcsp p{ font-size:16.5px; line-height:1.85; }

/* ── hero ─────────────────────────────────────────────────────────────────── */
.rdcsp .rdcsp-hero{
  position:relative; isolation:isolate; overflow:hidden;
  min-height:clamp(300px,30vw,430px); display:flex; align-items:flex-end;
  background:linear-gradient(135deg,var(--rdc-navy) 0%,#22406e 58%,var(--rdc-blue-dp) 100%);
}
.rdcsp .rdcsp-hero-bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  background-repeat:no-repeat; opacity:.62; z-index:0;
}
.rdcsp .rdcsp-hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(100deg,rgba(27,43,71,.92) 0%,rgba(27,43,71,.72) 42%,rgba(27,43,71,.10) 78%);
}
.rdcsp .rdcsp-hero-inner{ position:relative; z-index:2; width:88%; margin:0 auto;
  padding:clamp(46px,6vw,86px) 0 clamp(52px,6vw,92px); }
.rdcsp .rdcsp-hero h1{
  font-family:var(--rdc-display); color:#fff; margin:0;
  font-size:clamp(30px,3.5vw,54px); line-height:1.08; letter-spacing:.4px;
}
.rdcsp .rdcsp-subtitle{
  color:var(--rdc-pale); font-size:clamp(15px,1.25vw,19px); margin:14px 0 0;
  font-family:var(--rdc-cond); letter-spacing:.3px;
}
.rdcsp .rdc-curve{ position:absolute; left:0; right:0; bottom:-1px; z-index:3; line-height:0; }
.rdcsp .rdc-curve svg{ display:block; width:100%; height:100%; }

/* ── breadcrumb ───────────────────────────────────────────────────────────── */
.rdcsp .rdcsp-breadcrumb{ background:#fff; padding:16px 0 4px; font-size:13.5px;
  font-family:var(--rdc-cond); letter-spacing:.3px; }
.rdcsp .rdcsp-breadcrumb a{ color:var(--rdc-blue-dp); text-decoration:none; }
.rdcsp .rdcsp-breadcrumb a:hover{ text-decoration:underline; }
.rdcsp .rdcsp-breadcrumb .sep{ color:var(--rdc-muted); margin:0 8px; }
.rdcsp .rdcsp-breadcrumb .current{ color:var(--rdc-ink-2); }

/* ── two-column shell: main copy + sticky sidebar ─────────────────────────── */
.rdcsp-shell{ width:88%; margin:0 auto; display:grid; gap:clamp(28px,3vw,52px);
  grid-template-columns:minmax(0,1fr) 322px; align-items:start;
  padding:8px 0 0; }
.rdcsp-shell .rdcsp-main{ min-width:0; }
@media(max-width:1080px){ .rdcsp-shell{ grid-template-columns:minmax(0,1fr); } }

/* ── bands ────────────────────────────────────────────────────────────────── */
.rdcsp .rdcsp-row{ padding:clamp(28px,3vw,46px) 0; }
.rdcsp .rdcsp-row-gray{ background:var(--gray-bg); border-radius:18px;
  padding-left:clamp(18px,2vw,34px); padding-right:clamp(18px,2vw,34px);
  margin:10px 0; }
.rdcsp .rdcsp-intro p{ font-size:17.5px; line-height:1.82; color:var(--rdc-ink-2); }
.rdcsp .rdcsp-intro strong{ color:var(--rdc-navy); }
.rdcsp .rdcsp-intro a, .rdcsp .rdcsp-main a{ color:var(--rdc-blue-dp); }

/* ── jump links ───────────────────────────────────────────────────────────── */
.rdcsp .rdcsp-jumps{ margin-top:22px; border-left:4px solid var(--rdc-blue);
  background:var(--rdc-pale-2); border-radius:0 14px 14px 0; padding:18px 22px; }
.rdcsp .rdcsp-jumps-grid{ display:grid; gap:8px 26px;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.rdcsp .rdcsp-jumps-grid a{ font-size:14.8px; color:var(--rdc-navy-lk);
  text-decoration:none; padding-left:16px; position:relative; }
.rdcsp .rdcsp-jumps-grid a:before{ content:""; position:absolute; left:0; top:.62em;
  width:7px; height:7px; border-radius:50%; background:var(--rdc-blue); }
.rdcsp .rdcsp-jumps-grid a:hover{ text-decoration:underline; }

/* ── split copy + media ───────────────────────────────────────────────────── */
.rdcsp .rdcsp-split{ display:grid; gap:clamp(22px,2.4vw,40px);
  grid-template-columns:minmax(0,0.92fr) minmax(0,1.08fr); align-items:center; }
.rdcsp .rdcsp-split.reverse .rdcsp-split-img,
.rdcsp .rdcsp-split.reverse .rdcsp-video{ order:2; }
@media(max-width:820px){ .rdcsp .rdcsp-split{ grid-template-columns:minmax(0,1fr); }
  .rdcsp .rdcsp-split.reverse .rdcsp-split-img,
  .rdcsp .rdcsp-split.reverse .rdcsp-video{ order:0; } }
.rdcsp .rdcsp-split-img{ justify-self:center; width:100%; }
.rdcsp .rdcsp-split-img img{ width:100%; border-radius:16px;
  box-shadow:0 16px 40px rgba(27,43,71,.16); display:block; }
.rdcsp .rdcsp-video{ position:relative; aspect-ratio:16/9; border-radius:16px;
  overflow:hidden; box-shadow:0 16px 40px rgba(27,43,71,.16); }
/* a poster still is a photo, not a 16/9 player — let it keep its own shape
   and never render wider than the file itself */
.rdcsp .rdcsp-video-still{ aspect-ratio:auto; justify-self:center; }
.rdcsp .rdcsp-video-still img{ position:static!important; height:auto!important; }
.rdcsp .rdcsp-video iframe,
.rdcsp .rdcsp-video img{ position:absolute; inset:0; width:100%; height:100%; border:0;
  object-fit:cover; display:block; }
.rdcsp .rdcsp-eyebrow, .rdcsp .rdc-eyebrow{
  display:block; font-family:var(--rdc-cond); font-size:12.5px; font-weight:700;
  letter-spacing:2.2px; text-transform:uppercase; color:var(--rdc-blue-dp);
  margin-bottom:8px; }
/* Julius Sans One only ships weight 400 and is a wide, light face, so a
   28px section heading read smaller and weaker than the 16.5px body copy
   beside it. Sized up and tightened rather than swapped, to keep the
   display face the rest of the site uses. */
/* `body:not(.home) .entry-content h3{clamp(20px,2vw,25px)}` — this project's
   own site-wide inner-page rule — capped section headings at 25px, smaller
   than they should be next to 16.6px body copy. Needs the id-qualified
   selector to out-rank it. THIRD time one of our own site-wide rules has
   beaten this block; always check what already styles the element. */
body.rdc-sp2 #main-content .rdcsp h3{ font-family:var(--rdc-display);
  color:var(--rdc-navy); font-size:clamp(27px,2.6vw,38px)!important;
  line-height:1.14; letter-spacing:.2px; margin:0 0 14px; }
body.rdc-sp2 #main-content .rdcsp h4{ font-family:var(--rdc-body);
  font-weight:700; color:var(--rdc-navy); font-size:17.5px!important; margin:0 0 8px; }
body.rdc-sp2 #main-content .rdcsp .rdcsp-eyebrow{ font-size:12.5px!important; }
body.rdc-sp2 #main-content .rdcsp p{ font-size:16.6px!important; line-height:1.85; }

/* ── benefit cards ────────────────────────────────────────────────────────── */
.rdcsp .rdcsp-cards-grid{ display:grid; gap:18px; margin-top:24px;
  grid-template-columns:repeat(auto-fit,minmax(252px,1fr)); align-items:start; }
.rdcsp .rdcsp-card{ background:#fff; border:1px solid var(--rdc-line);
  border-radius:16px; padding:24px 22px;
  box-shadow:0 10px 26px rgba(27,43,71,.07); }
.rdcsp .rdcsp-card-icon{ width:46px; height:46px; border-radius:13px;
  background:var(--rdc-pale-2); display:flex; align-items:center;
  justify-content:center; margin-bottom:14px; }
/* Freepik outline icons are FILL-based paths with fill="currentColor" —
   the previous `fill:none; stroke:...` (right for the master's Feather
   shapes) rendered them completely invisible. */
.rdcsp .rdcsp-card-icon svg{ width:26px; height:26px; display:block;
  fill:currentColor; color:var(--rdc-blue-dp); }
.rdcsp .rdcsp-card p{ font-size:15px; line-height:1.75; color:var(--rdc-muted); margin:0; }

/* ── callout ──────────────────────────────────────────────────────────────── */
.rdcsp .rdcsp-callout{ margin-top:24px; padding:20px 24px;
  background:var(--rdc-pale-2); border-left:4px solid var(--rdc-blue);
  border-radius:0 14px 14px 0; font-size:16px; line-height:1.8; }
.rdcsp .rdcsp-callout strong{ color:var(--rdc-navy); }

/* ── lists ────────────────────────────────────────────────────────────────── */
.rdcsp .rdcsp-list{ list-style:none!important; padding-left:0; margin:14px 0; }
.rdcsp .rdcsp-list li{ list-style:none!important; position:relative;
  padding-left:26px; margin-bottom:11px; font-size:16px; line-height:1.8; }
.rdcsp .rdcsp-list li::marker{ content:none; }
.rdcsp .rdcsp-list li:before{ content:""; position:absolute; left:2px; top:.66em;
  width:8px; height:8px; border-radius:50%; background:var(--rdc-blue); }

/* ── FAQ accordion ────────────────────────────────────────────────────────── */
.rdcsp .rdcsp-faq-item{ border:1px solid var(--rdc-line); border-radius:14px;
  margin-bottom:12px; background:#fff; overflow:hidden; }
.rdcsp .rdcsp-faq-btn{ width:100%; text-align:left; background:none; border:0;
  cursor:pointer; padding:18px 22px; font-family:var(--rdc-body);
  font-size:16.5px; font-weight:600; color:var(--rdc-navy);
  display:flex; align-items:center; justify-content:space-between; gap:16px; }
.rdcsp .rdcsp-faq-btn:focus-visible{ outline:3px solid var(--rdc-blue); outline-offset:-3px; }
.rdcsp .rdcsp-faq-chevron{ width:20px; height:20px; flex:none;
  transition:transform .28s var(--rdc-ease); }
.rdcsp .rdcsp-faq-item.open .rdcsp-faq-chevron{ transform:rotate(180deg); }
.rdcsp .rdcsp-faq-answer{ display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .32s var(--rdc-ease); }
.rdcsp .rdcsp-faq-item.open .rdcsp-faq-answer{ grid-template-rows:1fr; }
.rdcsp .rdcsp-faq-answer-inner{ overflow:hidden; }
.rdcsp .rdcsp-faq-answer-inner p{ margin:0; padding:0 22px 20px;
  font-size:16px; line-height:1.82; color:var(--rdc-ink-2); }

/* ── bottom CTA ───────────────────────────────────────────────────────────── */
.rdcsp .rdcsp-cta{ margin-top:14px; border-radius:20px; text-align:center;
  padding:clamp(32px,4vw,56px) clamp(20px,3vw,48px);
  background:linear-gradient(135deg,var(--rdc-navy) 0%,#22406e 62%,var(--rdc-blue-dp) 100%);
  color:#fff; }
.rdcsp .rdcsp-cta h2{ font-family:var(--rdc-display); color:#fff; margin:0 0 12px;
  font-size:clamp(24px,2.5vw,38px); line-height:1.14; }
.rdcsp .rdcsp-cta p{ color:var(--rdc-pale); margin:0 auto 22px; font-size:16.5px; }
.rdcsp .rdcsp-cta-btns{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.rdcsp .rdcsp-btn-primary,.rdcsp .rdcsp-btn-ghost{
  display:inline-flex; align-items:center; gap:9px; border-radius:999px;
  padding:13px 26px; font-weight:700; font-size:15.5px; text-decoration:none;
  white-space:nowrap; }
.rdcsp .rdcsp-btn-primary{ background:var(--rdc-blue); color:#0b1b33; }
.rdcsp .rdcsp-btn-primary:hover{ background:#8fb3ff; }
.rdcsp .rdcsp-btn-ghost{ border:2px solid rgba(255,255,255,.55); color:#fff; }
.rdcsp .rdcsp-btn-ghost:hover{ border-color:#fff; background:rgba(255,255,255,.10); }

/* ── sidebar ──────────────────────────────────────────────────────────────── */
.rdcsp-side{ position:sticky; top:104px; display:flex; flex-direction:column; gap:16px; }
@media(max-width:1080px){ .rdcsp-side{ position:static; } }

/* Master hardcodes pixel grids inline, e.g. the implant page's
   `grid-template-columns:94px 80px 80px 111px` (365px + gaps) — which
   overflowed a 343px mobile column by 226px. Force any inline grid in the
   body to a single column on small screens; our own grids are class-based
   and unaffected. */
@media(max-width:640px){
  .rdcsp-main [style*="grid-template-columns"]{ grid-template-columns:1fr!important; }
  .rdcsp-main [style*="display:grid"]{ grid-template-columns:1fr!important; }
}
.rdcsp-main table{ display:block; overflow-x:auto; max-width:100%; }
.rdcsp-side-cta{ border-radius:18px; padding:26px 24px; color:#fff;
  background:linear-gradient(150deg,var(--rdc-navy) 0%,#22406e 70%,var(--rdc-blue-dp) 100%);
  box-shadow:0 18px 40px rgba(27,43,71,.20); }
.rdcsp-side-cta .rdc-eyebrow{ color:var(--rdc-pale); }
.rdcsp-side-cta h3{ font-family:var(--rdc-display); color:#fff; margin:0 0 10px;
  font-size:24px; line-height:1.15; }
.rdcsp-side-cta p{ color:var(--rdc-pale); font-size:14.6px; line-height:1.7; margin:0 0 18px; }
.rdcsp-side-btn{ display:flex; align-items:center; justify-content:center; gap:8px;
  background:var(--rdc-blue); color:#0b1b33; border-radius:999px; padding:12px 18px;
  font-weight:700; font-size:15px; text-decoration:none; }
.rdcsp-side-btn:hover{ background:#8fb3ff; }
.rdcsp-side-btn svg{ width:17px; height:17px; flex:none; }
.rdcsp-side-call{ display:block; text-align:center; margin-top:10px; color:#fff;
  font-size:17px; font-weight:700; text-decoration:none; white-space:nowrap; }
.rdcsp-side-nav{ border:1px solid var(--rdc-line); border-radius:18px;
  background:#fff; padding:20px 20px 14px; }
.rdcsp-side-h{ font-family:var(--rdc-cond); font-size:11px; font-weight:700;
  letter-spacing:2.5px; text-transform:uppercase; color:var(--rdc-blue-dp);
  margin:0 0 12px; }
.rdcsp-side-nav a{ display:block; padding:9px 0; font-size:15.2px;
  color:var(--rdc-navy-lk); text-decoration:none;
  border-bottom:1px solid var(--rdc-line); }
.rdcsp-side-nav a:last-of-type{ border-bottom:0; }
.rdcsp-side-nav a:hover{ color:var(--rdc-blue-dp); }
.rdcsp-side-nav a.active{ font-weight:700; color:var(--rdc-blue-dp); }
.rdcsp-side-all{ display:flex!important; align-items:center; gap:7px;
  margin-top:6px; font-weight:700; color:var(--rdc-blue-dp)!important; }
.rdcsp-side-all svg{ width:16px; height:16px; flex:none; }

/* the site-wide heading repaint is (1,3,1) and loads later — every heading on a
   dark band here needs the qualified selector or it goes navy-on-navy. FIFTH
   time on this project; see project memory. */
.et-db #et-boc .et-l .rdcsp .rdcsp-hero h1,
.et-db #et-boc .et-l .rdcsp .rdcsp-cta h2,
/* Sweep EVERY dark surface at once rather than patching one element at a
   time — the CTA paragraph was missed on the first pass and shipped
   dark-on-navy. The three dark bands are the hero, the bottom CTA and the
   sidebar card; anything inside them is light by default. */
.et-db #et-boc .et-l .rdcsp-hero :where(h1,h2,h3,h4,p,span,a,li),
.et-db #et-boc .et-l .rdcsp-cta  :where(h1,h2,h3,h4,p,span,li),
.et-db #et-boc .et-l .rdcsp-side-cta :where(h1,h2,h3,h4,p,span,li){ color:#fff!important; }
.et-db #et-boc .et-l .rdcsp-hero .rdcsp-subtitle,
.et-db #et-boc .et-l .rdcsp-cta p,
.et-db #et-boc .et-l .rdcsp-side-cta p{ color:var(--rdc-pale)!important; }
.et-db #et-boc .et-l .rdcsp-hero .rdcsp-eyebrow,
.et-db #et-boc .et-l .rdcsp-side-cta .rdc-eyebrow{ color:var(--rdc-pale)!important; }
.et-db #et-boc .et-l .rdcsp-side-cta h3{ color:#fff!important; }
/* Scope the navy repaint to the MAIN COLUMN. `.rdcsp h3` also matched the
   sidebar's h3 — which sits on the navy CTA card — and painted it navy on
   navy at (1,4,1)!important, out-weighing the white rule above. That is the
   SIXTH dark-on-dark heading on this project and the first one I caused with
   my own selector rather than the client's. */
.et-db #et-boc .et-l .rdcsp-main h3,
.et-db #et-boc .et-l .rdcsp-main h4{ color:var(--rdc-navy)!important; }

/* The client's stylesheet paints every link #0a0009 and underlines it at
   (1,3,1) from the page's inline \3c style>, which loads after this file — the
   sidebar button, phone and nav all inherited it. */
.et-db #et-boc .et-l .rdcsp-side-cta h3{ color:#fff!important; }
.et-db #et-boc .et-l .rdcsp-side-cta p{ color:var(--rdc-pale)!important; }
.et-db #et-boc .et-l .rdcsp-side-btn{ color:#0b1b33!important; text-decoration:none!important; }
.et-db #et-boc .et-l .rdcsp-side-call{ color:#fff!important; text-decoration:none!important; }
.et-db #et-boc .et-l .rdcsp-side-nav a{ color:var(--rdc-navy-lk)!important; text-decoration:none!important; }
.et-db #et-boc .et-l .rdcsp-side-nav a.active,
.et-db #et-boc .et-l .rdcsp-side-all{ color:var(--rdc-blue-dp)!important; }
.et-db #et-boc .et-l .rdcsp-main a{ color:var(--rdc-blue-dp)!important; }
.et-db #et-boc .et-l .rdcsp-cta .rdcsp-btn-primary{ color:#0b1b33!important; text-decoration:none!important; }
.et-db #et-boc .et-l .rdcsp-cta .rdcsp-btn-ghost{ color:#fff!important; text-decoration:none!important; }
/* Gaurav 2026-08-27: "remove underline from links for sections". The client's
   stylesheet underlines every <a> site-wide; the jump box and breadcrumb are
   navigation, not prose, and the underlines read as noise. Prose links inside
   the copy keep an underline on hover so they stay findable. */
.et-db #et-boc .et-l .rdcsp-jumps-grid a{ color:var(--rdc-navy-lk)!important;
  text-decoration:none!important; }
.et-db #et-boc .et-l .rdcsp-jumps-grid a:hover{ text-decoration:underline!important; }
.et-db #et-boc .et-l .rdcsp-breadcrumb a{ text-decoration:none!important; }
.et-db #et-boc .et-l .rdcsp-breadcrumb a:hover{ text-decoration:underline!important; }
.et-db #et-boc .et-l .rdcsp-main a{ text-decoration:none!important; }
.et-db #et-boc .et-l .rdcsp-main .rdcsp-intro a:hover,
.et-db #et-boc .et-l .rdcsp-main p a:hover{ text-decoration:underline!important; }
/* <<< RDC-SERVICE-PAGES-V2 <<< */

/* >>> RDC-CATEGORY-PAGES >>> */
.rdcsp .rdcsp-cat-grid{display:grid;gap:18px;margin-top:20px;
  grid-template-columns:repeat(auto-fit,minmax(272px,1fr));align-items:start;}
.rdcsp .rdcsp-cat-card{display:block;background:#fff;border:1px solid var(--rdc-line);
  border-radius:16px;padding:22px 22px 20px;text-decoration:none;
  box-shadow:0 10px 26px rgba(27,43,71,.07);
  transition:transform .16s var(--rdc-ease),box-shadow .16s var(--rdc-ease);}
.rdcsp .rdcsp-cat-card:hover{transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(27,43,71,.14);}
.rdcsp .rdcsp-cat-card h3{display:flex;align-items:center;justify-content:space-between;
  gap:12px;margin:0 0 10px;font-size:clamp(19px,1.5vw,23px)!important;}
.rdcsp .rdcsp-cat-card svg{width:18px;height:18px;flex:none;color:var(--rdc-blue-dp);}
.rdcsp .rdcsp-cat-card p{margin:0;font-size:15px;line-height:1.72;color:var(--rdc-muted);}
/* the hub lists names only — tighter cards, and the category name is the link */
.rdcsp .rdcsp-cat-grid-tight{grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:12px;}
.rdcsp .rdcsp-cat-grid-tight .rdcsp-cat-card{padding:15px 18px;}
.rdcsp .rdcsp-cat-grid-tight .rdcsp-cat-card h3{margin:0;font-size:16.5px!important;
  font-family:var(--rdc-body);font-weight:600;}
.et-db #et-boc .et-l .rdcsp .rdcsp-cat-link{color:var(--rdc-navy)!important;
  text-decoration:none!important;display:inline-flex;align-items:center;gap:10px;}
.rdcsp .rdcsp-cat-link svg{width:20px;height:20px;color:var(--rdc-blue-dp);}
/* <<< RDC-CATEGORY-PAGES <<< */

/* >>> RDC-TESTIMONIALS >>> */
.ip-quotes{display:grid;gap:22px;margin-top:24px;}
.ip-quote{background:#fff;border:1px solid var(--rdc-line);border-left:4px solid var(--rdc-blue);
  border-radius:0 16px 16px 0;padding:26px 28px;box-shadow:0 10px 26px rgba(27,43,71,.06);}
.ip-quote p{margin:0 0 14px;font-size:16.4px;line-height:1.85;}
.ip-quote p:last-of-type{margin-bottom:16px;}
.ip-quote-by{display:block;font-family:var(--rdc-cond);font-size:13px;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--rdc-blue-dp);}
.ip-quote-when{color:var(--rdc-muted);letter-spacing:.6px;text-transform:none;font-size:13px;}
/* <<< RDC-TESTIMONIALS <<< */

/* >>> RDC-MEGA-INNER >>> */
/* The mega-menu links had NO explicit colour anywhere — on the homepage they
   simply INHERITED the light colour from `.rdc-mega`. On every inner page the
   client's stylesheet paints `.et-db #et-boc .et-l a{color:#0a0009}` at
   (1,2,1), which overrides inheritance, so all 31 service links rendered
   near-BLACK on the navy panel. Stated explicitly at (1,3,1) so it wins. */
.et-db #et-boc .et-l .rdc-mega-col a,
.rdc-mega-col a{ color:#d5e0f2!important; text-decoration:none!important; }
.et-db #et-boc .et-l .rdc-mega-col a:hover,
.rdc-mega-col a:hover{ color:#ffffff!important; }
.et-db #et-boc .et-l .rdc-mega-cat,
.rdc-mega-cat{ color:var(--rdc-blue)!important; }
.et-db #et-boc .et-l .rdc-mega a.rdc-mega-all,
.rdc-mega a.rdc-mega-all{ color:#ffffff!important; text-decoration:none!important; }
.et-db #et-boc .et-l .rdc-mega-foot,
.et-db #et-boc .et-l .rdc-mega-foot b{ color:#ffffff!important; }
/* <<< RDC-MEGA-INNER <<< */

/* === SMILE-CASES (owned by build-smile-cases.py) === */
/* Built on the /pinhole-surgery-gallery/ .ip-pair pattern (Gaurav picked it
   2026-08-28): title, the two photos SIDE BY SIDE with a caption under each,
   then the patient's own words and the treatment. Two cards per row. */
.sc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:26px;align-items:start;margin-top:30px;}
.sc-case{background:#fff;border:1px solid #e3ecfb;border-radius:16px;
  padding:22px 22px 20px;}
.sc-case h3,.et-db #et-boc .et-l .sc-case h3{
  font-family:var(--rdc-display);font-weight:400;color:var(--rdc-navy)!important;
  font-size:20px;line-height:1.2;margin:0 0 16px;}
.sc-pair-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;align-items:stretch;}
/* the before and after crops differ by a few px, which dropped one caption
   below the other. Equal-height figures with the caption pinned to the bottom
   put BEFORE and AFTER on the same line. */
.sc-fig{margin:0;display:flex;flex-direction:column;align-items:center;
  justify-content:space-between;}
.sc-fig img{width:100%;height:auto;display:block;border-radius:10px;}
.sc-fig figcaption{width:100%;margin-top:8px;font-family:var(--rdc-cond);font-size:10.5px;
  font-weight:700;letter-spacing:1.7px;text-transform:uppercase;color:var(--rdc-blue-dp);}
/* the 9 cases whose source is not a clean two-photo pair keep their own baked
   Before/After labels and run the full width of the card */
.sc-single{text-align:center;}
.sc-single img{width:100%;height:auto;display:block;margin:0 auto;border-radius:10px;}

.sc-body{margin-top:18px;padding-top:16px;border-top:1px solid #e3ecfb;}
.sc-lab,.et-db #et-boc .et-l .sc-lab{font-family:var(--rdc-cond);font-size:11px;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;color:var(--rdc-blue-dp);
  margin:0 0 8px;line-height:1.3;}
.sc-body .sc-lab+*{margin-top:0;}
.sc-quote,.et-db #et-boc .et-l .sc-quote{margin:0 0 16px;padding:0 0 0 13px;
  border-left:3px solid var(--rdc-pale);font-family:var(--rdc-body);font-size:15.2px;
  line-height:1.7;color:#4a5464;font-style:italic;}
.sc-treat,.et-db #et-boc .et-l .sc-treat{margin:0;padding:0;list-style:none;}
.sc-treat li,.et-db #et-boc .et-l .sc-treat li{position:relative;padding:0 0 0 17px;
  margin:0 0 7px;font-family:var(--rdc-body);font-size:15.2px;line-height:1.7;
  color:#4a5464;list-style:none;}
.sc-treat li:last-child{margin-bottom:0;}
.sc-treat li::before{content:"";position:absolute;left:0;top:.68em;width:6px;height:6px;
  border-radius:50%;background:var(--rdc-blue-br);}
@media(min-width:1700px){.sc-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:900px){.sc-grid{grid-template-columns:1fr;}}

/* === end SMILE-CASES === */

/* a card that spans the whole grid row — used to absorb a section that was
   too thin to justify its own band (NO DEAD AIR) */
.ip-card-grid .ip-card-wide{grid-column:1 / -1;}

/* "Services" is no longer a link (its hub page is retired) but it still opens
   the mega menu, so it keeps the pointer affordance and the nav styling. */
.rdc-navitem > .rdc-noroute,.rdc-navitem.rdc-mega-wrap > .rdc-noroute{cursor:pointer;}
.rdc-noroute{color:inherit;}

/* FOOTER, STACKED (mobile): the columns carry border-bottom + padding-bottom but
   padding-top:0, so the next column's icon sat flush against the divider above it
   — same defect as the hero strip. Give the divider room on both sides.
   Gaurav 2026-08-31. */
@media(max-width:980px){
  .et-l--footer .et_pb_row .et_pb_column{padding-top:26px!important;}
  .et-l--footer .et_pb_row .et_pb_column:first-child{padding-top:0!important;}
  .et-l--footer .et_pb_row .et_pb_column:last-child{border-bottom:0!important;}
}

/* HERO LEAD WAS DARK-ON-DARK ON EVERY INNER PAGE.
   `.ip-hero-lead{color:#d3e0f7}` is declared at (0,1,0) and the client's Divi
   ships `.et-db #et-boc .et-l p` at (1,2,1), which wins — so the lead rendered
   rgb(42,58,74) slate on a dark hero photo and was barely readable. Same trap as
   the mega links going black: a colour that only works by inheritance, or at low
   specificity, is a latent bug. State it explicitly and out-rank Divi.
   Found 2026-08-31 on /appointment/ — it affected all 12 hero pages. */
/* the competing Divi rule is `body:not(.home) #left-area .entry-content p`
   — (1 id, 2 classes, 2 elements) and !important. Both being !important, the
   more specific selector wins, so match its shape and add one class. */
body:not(.home) #left-area .entry-content .ip-hero p.ip-hero-lead,
.et-db #et-boc .et-l .ip-hero .ip-hero-lead,
.ip-hero .ip-hero-lead{color:#d3e0f7!important;}
.et-db #et-boc .et-l .ip-hero .rdc-eyebrow,
.ip-hero .ip-hero-eyebrow{color:#9dc0ff!important;}

/* BEFORE/AFTER PAIRS STACK ON A PHONE.
   Side by side inside a single-column card, each clinical photo was rendering
   ~150px wide at 390px — too small to actually see the result. Stacked, each
   photo gets the full card width (~330px), which is more than double.
   The <figcaption> still labels each one, so nothing is ambiguous.
   Gaurav asked for a mobile pass 2026-08-31. */
@media(max-width:560px){
  .sc-pair-grid,.ip-pair-grid{grid-template-columns:1fr!important;gap:10px;}
  .sc-fig img,.ip-pair-fig img{max-width:100%!important;}
}

/* the "types of X" sub-nav had NO rule of its own and fell back to UA list
   margins; its items were also split across several <ul>s so a gap appeared after
   every second one. One list now, laid out like the page's own jump-links box. */
.rdcsp .rdcsp-types-nav{ margin-top:18px; }
.rdcsp .rdcsp-types-nav ul{ list-style:none; margin:0; padding:0;
  display:grid; gap:10px 26px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.rdcsp .rdcsp-types-nav li{ margin:0; list-style:none; }
.rdcsp .rdcsp-types-nav li{ position:relative; padding-left:16px; }
/* the site already draws a bullet on `li::before` here — do NOT add a second one
   on the <a> or every item renders two dots. */
.rdcsp .rdcsp-types-nav a{ font-size:14.8px; color:var(--rdc-navy-lk); text-decoration:none; }
.rdcsp .rdcsp-types-nav a:hover{ text-decoration:underline; }

/* `ul.ulRow` — the service-option lists on service pages.
   The <li> kept the NATIVE list-style:disc marker on top of the site's own blue
   `li::before` dot, so every item rendered TWO bullets; and the <ul> was
   display:block, so 13 items ran down one 539px column. */
.rdcsp ul.ulRow{ list-style:none!important; margin:18px 0 0; padding:0;
  display:grid; gap:10px 26px; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.rdcsp ul.ulRow li{ list-style:none!important; margin:0; padding-left:16px; position:relative; }
.rdcsp ul.ulRow li::marker{ content:""; }
.rdcsp ul.ulRow a{ font-size:14.8px; color:var(--rdc-navy-lk); text-decoration:none; }
.rdcsp ul.ulRow a:hover{ text-decoration:underline; }
/* an option we list but have no page for: the words stay, the dead link does not */
.rdcsp ul.ulRow .ulRow-plain{ font-size:14.8px; color:var(--rdc-ink-2); }
@media(max-width:560px){ .rdcsp ul.ulRow{ grid-template-columns:1fr; } }

/* SERVICE-PAGE SECTION RHYTHM (Gaurav 2026-09-01: "why there is too much gap?
   please fix it everywhere").
   The gap between the end of one section's copy and the next heading measured
   80-88px, stacked from FOUR sources: the previous row's padding-bottom (16) +
   its last paragraph's margin-bottom (18) + the next row's padding-top (16) +
   the heading's own margin-top (30-38). The heading margin is redundant — the
   row already pads — so it is zeroed, but ONLY where the heading actually starts
   its row, so a second heading mid-section keeps its breathing room.
   Result: 80-88px -> ~50px. */
.rdcsp .rdcsp-row{ padding-top:26px!important; padding-bottom:26px!important; }
/* zero the leading/trailing margin at EVERY nesting depth inside a row, so the
   26+26 padding is the only thing between sections and the rhythm is identical
   whatever wrapper the row happens to use (split-text, types-header, plain). */
.rdcsp .rdcsp-row > .container > :first-child,
.rdcsp .rdcsp-row > .container > :first-child > :first-child,
.rdcsp .rdcsp-row > .container > :first-child > :first-child > :first-child{ margin-top:0!important; }
.rdcsp .rdcsp-row > .container > :last-child,
.rdcsp .rdcsp-row > .container > :last-child > :last-child,
.rdcsp .rdcsp-row > .container > :last-child > :last-child > :last-child{ margin-bottom:0!important; }

/* TIGHTER TYPE SITE-WIDE (Gaurav 2026-09-01: "why you can not eliminate these
   kind of extra spaces? everywhere on every page").
   The element margins were already small — 8px between a bold question and its
   answer, 12px under a heading. What READ as a gap was the LEADING: 16.6px type
   in a 30.7px line box puts ~14px of blank above and below every single line, so
   an 8px margin looks like 30px+. Measure the line box, not just the margin.
   line-height 1.85 -> 1.68, and the block margins come down to match. */
/* the competing rules are `body:not(.home) #left-area .entry-content p` and
   `body.rdc-sp2 #main-content .rdcsp p`, BOTH !important and both more specific
   than a bare `.rdcsp p` — so match their shape or nothing changes. */
body:not(.home) #left-area .entry-content .rdcsp p,
body:not(.home) #left-area .entry-content .rdcsp li,
body:not(.home) #left-area .entry-content .ip-copy p,
body:not(.home) #left-area .entry-content .ip-copy li,
body.rdc-sp2 #main-content .rdcsp p,
body.rdc-sp2 #main-content .rdcsp li,
.rdcsp p, .rdcsp li,
.ip-copy p, .ip-copy li, .ip-card p, .ip-link-card p, .ab-doc-copy p,
.sc-quote, .sc-treat li, .rdc-diff p, .rdc-tl p, .rdc-ins p, .rdc-local p{
  line-height:1.68!important; }
body:not(.home) #left-area .entry-content .rdcsp p,
body.rdc-sp2 #main-content .rdcsp p,
.rdcsp p{ margin-bottom:14px!important; }
body:not(.home) #left-area .entry-content .rdcsp li,
body.rdc-sp2 #main-content .rdcsp li,
.rdcsp li{ margin-bottom:6px!important; }
.rdcsp h2, .rdcsp h3, .rdcsp h4{ margin-bottom:10px!important; }
.rdcsp ul{ margin-top:10px!important; margin-bottom:14px!important; }
/* callout boxes: the bold question and its answer are two <p>s, so the generic
   14px paragraph margin applied between them. Inside a box it wants less. */
body:not(.home) #left-area .entry-content .rdcsp div[style*="border-left"],
body.rdc-sp2 #main-content .rdcsp div[style*="border-left"],
.rdcsp div[style*="border-left"]{ margin-bottom:18px!important; }
body:not(.home) #left-area .entry-content .rdcsp div[style*="border-left"] p,
body.rdc-sp2 #main-content .rdcsp div[style*="border-left"] p,
.rdcsp div[style*="border-left"] p{ margin-bottom:7px!important; }
body:not(.home) #left-area .entry-content .rdcsp div[style*="border-left"] p:last-child,
.rdcsp div[style*="border-left"] p:last-child{ margin-bottom:0!important; }

/* the drawer's "Services" is a label, not a link (its hub page is retired), so it
   needs the same weight and rule as the <a> siblings around it. */
/* mirror `.rdc-mob a` exactly (padding 12px 4px / 16px / 600 / bottom rule) so the
   non-link "Services" label lines up with its siblings instead of sitting 7px left
   with no divider. */
.rdc-mob .rdc-mob-lab{ display:block; padding:12px 4px; color:#2b2f36; font-size:16px;
  font-weight:600; border-bottom:1px solid #f2f4f8; }

/* ── TIGHTER SECTION RHYTHM — ALL SERVICE PAGES ────────────────────────────
   Piloted on /new-patient-exam-downtown-toronto/ and approved by Gaurav
   2026-09-01 ("looks good now, apply for all pages"). Gaps there were 66-241px
   (avg 102) and are now 26-41px on the text-to-text ones, avg 61.
   The height of a photo column inside a .rdcsp-split is NOT touched — that space
   is the image, not padding, and squashing it would crop the photo. */
.rdcsp .rdcsp-row{ padding-top:6px!important; padding-bottom:6px!important; }
.rdcsp .rdcsp-split{ margin:0!important; row-gap:14px!important; }
.rdcsp .rdcsp-list{ margin-top:6px!important; margin-bottom:6px!important; }
.rdcsp .rdcsp-callout{ margin-top:10px!important; margin-bottom:10px!important; }
.rdcsp .rdcsp-eyebrow{ margin-bottom:2px!important; display:block; }
.rdcsp h2, .rdcsp h3{ margin-top:0!important; margin-bottom:8px!important; }
.rdcsp .rdcsp-jumps{ margin-top:12px!important; }

/* INTERNAL-PAGE + HOMEPAGE BANDS — same complaint, different system.
   These sections carried 66-130px of padding each (.ab-phil 115/115,
   .rdc-tl 130/86, .rdc-team 130/70, .rdc-local 74/130) while the service pages
   now sit at 6px. They are full-bleed alternating bands, so they keep MORE air
   than a service row — but 130px is a dead band, not breathing room.
   Normalised to 40px. Heroes and the CTA keep their own padding.
   Gaurav 2026-09-01: "apply for all pages if there is space like that". */
.ip-gal, .ip-links, .ip-cards, .ip-prose, .ip-split, .ip-raw, .ip-formhead,
.ab-who, .ab-phil, .ab-care, .ab-docs, .ab-team, .ab-treat,
.rdc-diff, .rdc-tl, .rdc-tech, .rdc-team, .rdc-local, .rdc-ins, .rdc-sec-smile{
  padding-top:40px!important; padding-bottom:40px!important; }
/* first band after a hero needs no top air — the hero curve already provides it */
.ip-hero + section, .ab-hero + section, .rdc-hero + section,
.ip-glance + section, .ab-glance + section{ padding-top:26px!important; }


/* ── DOUBLE BULLET FIX ───────────────────────────────────────────────────────
   Divi ships `#left-area ul{list-style-type:disc}` and `#left-area ol{list-style-
   type:decimal}`. Those selectors carry an ID, so they out-rank this file's own
   `body:not(.home) .entry-content ul,ol{list-style:none}` reset above, and every
   unclassed list in a post or a service page drew the NATIVE marker on top of the
   blue `li::before` dot / circled counter — two bullets per item, 158 pages.
   Re-state the reset with an ID of our own so it wins the cascade. Do NOT add a
   second dot anywhere below: `li::before` already draws the one bullet we keep. */
body:not(.home) #left-area   .entry-content ul,
body:not(.home) #left-area   .entry-content ol,
body:not(.home) #main-content .entry-content ul,
body:not(.home) #main-content .entry-content ol,
body:not(.home) #et-boc      .entry-content ul,
body:not(.home) #et-boc      .entry-content ol{ list-style:none; }
body:not(.home) #left-area   .entry-content li::marker,
body:not(.home) #main-content .entry-content li::marker,
body:not(.home) #et-boc      .entry-content li::marker{ content:none; }

/* >>> RDC-A11Y-FOOTER-LEGAL >>> */
.rdc-ftbar-legal{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;}
.rdc-ftbar-legal a{color:#dce8ff;text-decoration:underline;text-underline-offset:3px;}
.rdc-ftbar-legal a:hover{color:#fff;}
.rdc-ftbar-legal a:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:2px;}
.rdc-ftbar-legal span{color:rgba(255,255,255,.62);}
@media(max-width:760px){.rdc-ftbar-legal{justify-content:center;}}
/* <<< RDC-A11Y-FOOTER-LEGAL <<< */

/* >>> RDC-A11Y-MBAR-LAB >>> */
/* the scroll bar's drawer gets the same "Services" label + category links as the burger
   drawer; the label mirrors `#rdc-mbar-drawer a` */
#rdc-mbar-drawer .rdc-mob-lab{display:block;padding:13px 4px;color:#2b2f36;font-size:16px;font-weight:600;border-bottom:1px solid #f2f4f8;}
/* <<< RDC-A11Y-MBAR-LAB <<< */

/* >>> RDC-A11Y-FOCUS >>> */
.rdc-skip{position:absolute;left:12px;top:-80px;z-index:2147483000;background:#1b2b47;color:#fff!important;
  padding:12px 18px;border-radius:6px;font:600 16px/1.2 'Asap',sans-serif;text-decoration:none;}
.rdc-skip:focus{top:12px;}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible,summary:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible,[role="button"]:focus-visible{
  outline:2px solid #fff!important;outline-offset:2px!important;box-shadow:0 0 0 4px #1b2b47!important;}
/* <<< RDC-A11Y-FOCUS <<< */

/* >>> RDC-A11Y-SRONLY >>> */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
/* <<< RDC-A11Y-SRONLY <<< */

/* >>> RDC-A11Y-LINKS-CONTRAST >>> */
.rdc-byline a, a.rdc-ilink, .rdcsp-breadcrumb a, .rdcsp-list li a, [class*="rdcsp"] li > a:not([class]),
#main-content p a:not([class*="btn"]):not(.et_pb_button):not(.rdc-hero-btns a){
  text-decoration:underline!important;text-underline-offset:2px;text-decoration-thickness:1px;}
/* Divi's builder copies its rules under `.et-db #et-boc .et-l` (one id), which outranks the
   plain selectors above on builder pages; repeat them under the same prefix + html/body */
html body.et-db #et-boc .et-l :is(.rdc-byline a, a.rdc-ilink, .rdcsp-breadcrumb a, .rdcsp-list li a,
  [class*="rdcsp"] li > a:not([class]), p a:not([class*="btn"]):not(.et_pb_button)){
  text-decoration:underline!important;text-underline-offset:2px;}
html body .rdc-ftbar .rdc-ftbar-legal a{color:#dce8ff!important;text-decoration:underline!important;}
html body .rdc-ftbar .rdc-ftbar-legal a:hover{color:#fff!important;}
.lg-toc li a{display:inline-block;min-height:24px;padding:2px 0;}
.page-id-30143 .et_pb_bg_layout_dark h5{color:#8f8e8d!important;}
.page-id-30143 .et_pb_bg_layout_dark strong{color:#c7d8ff!important;}
.page-id-30143 .et_pb_text_1 h3{color:#2f5bd0!important;}
/* <<< RDC-A11Y-LINKS-CONTRAST <<< */

/* >>> RDC-A11Y-LAUNCHER-CLEAR >>> */
/* the accessibility launcher sits fixed bottom-left; on phones the footer bar ends where it
   sits, so give the bar room underneath for the legal links to clear it */
@media(max-width:760px){.rdc-ftbar-inner{padding-bottom:84px;}}
/* <<< RDC-A11Y-LAUNCHER-CLEAR <<< */

/* >>> RDC-A11Y-MF-H1 >>> */
.mf-sr-h1{display:none;}
@media (max-width:767px){
  .mf-sr-h1{display:block;position:absolute!important;width:1px!important;height:1px!important;padding:0!important;
    margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
}
/* <<< RDC-A11Y-MF-H1 <<< */

/* >>> RDC-A11Y-HOME-STATES >>> */
body.home #page-container .et_pb_text_0 h5{color:#999897!important;}
body.home #page-container .et_pb_text_2 h5{color:#767676!important;}
body.home #page-container .et_pb_blurb .et_pb_module_header span{color:#2f5bd0!important;}
body.home #page-container .et_pb_section .et_pb_button_0.et_pb_bg_layout_light,
body.home #page-container .et_pb_section .et_pb_button_1.et_pb_bg_layout_light,
body.home #page-container .et_pb_section .et_pb_button_2.et_pb_bg_layout_light,
body.home #page-container .et_pb_section .et_pb_button_3.et_pb_bg_layout_light{background-color:#2f5bd0!important;border-color:#2f5bd0!important;}
body.home .rdc-acc-n{color:#4a6fd2;}
body.home .rdc-acc-btn:hover .rdc-acc-n,body.home .rdc-acc-item[data-open] .rdc-acc-n{color:#2f5bd0;}
.rdc-tl-dots{gap:0;}
.rdc-tl-dots button{width:24px!important;height:24px;border-radius:12px;background:transparent!important;position:relative;}
.rdc-tl-dots button::before{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;border-radius:50%;
  transform:translate(-50%,-50%);background:rgba(199,216,255,.30);transition:.2s var(--rdc-ease);}
.rdc-tl-dots button.active{width:37px!important;}
.rdc-tl-dots button.active::before{width:28px;border-radius:6px;background:var(--rdc-blue);}
body:not(.home) .entry-content a:not(.et_pb_button):hover{color:#2f5bd0;}
body:not(.home) .entry-content a.rdc-btn:hover,body:not(.home) .entry-content a.rdc-btn:focus{color:#fff!important;}
.lg-toc a:hover,.lg-toc a:focus,.lg-prose a:hover,.lg-prose a:focus{color:#2f5bd0!important;}
/* service-page FAQ: a closed answer is collapsed to 0 height but its links stayed in the Tab
   order and the accessibility tree; hide it properly once the close animation ends */
.rdcsp .rdcsp-faq-item:not(.open) .rdcsp-faq-answer-inner{visibility:hidden;transition:visibility 0s .32s;}
.rdcsp .rdcsp-faq-item.open .rdcsp-faq-answer-inner{visibility:visible;transition:visibility 0s 0s;}
/* widget text size 125% / 150%: the desktop header grid squeezed the logo to 0px wide. Only
   while enlarged text is on, the nav may wrap onto a second row and the logo keeps >=150px. */
html.a11y-text-1 .rdc-hd-nav,html.a11y-text-2 .rdc-hd-nav{flex-wrap:wrap;row-gap:6px;}
html.a11y-text-1 .rdc-hd-logo img,html.a11y-text-2 .rdc-hd-logo img{min-width:150px;}
/* <<< RDC-A11Y-HOME-STATES <<< */

/* 2026-10-28 team section: keep the Book button clear of the bottom wave, which is
   clamp(46px,5.2vw,92px) tall. Section padding is pinned to 40px!important above. */
.rdc-team .rdc-team-foot{margin-bottom:clamp(46px,5.2vw,92px);}

/* 2026-10-29: links inside the homepage doctor lists (Dr. Preston publications) - light on the dark card */
.rdc-doc-list li a{color:#9dc0ff;text-decoration:underline;text-underline-offset:2px;}
.rdc-doc-list li a:hover,.rdc-doc-list li a:focus-visible{color:#fff;}

.ab-doc-comm{margin-top:-6px;}
.ab-doc-comm span{font-weight:700;}
