/* =========================================================================
   Manchester Dermatology Clinic - design system layer
   Editorial hierarchy inspired by modern healthcare sites; blue-led identity.
   Presentation only. No content, markup or functionality is altered here.
   ========================================================================= */

/* ---------- 0. Editorial display face (self-hosted, variable) ---------- */
@font-face{
  font-family:"Newsreader";
  src:url("fonts/newsreader-latin.woff2") format("woff2");
  font-weight:400 500;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Newsreader";
  src:url("fonts/newsreader-latin-ext.woff2") format("woff2");
  font-weight:400 500;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ---------- 1. Tokens ---------- */
:root{
  /* blue is the brand and stays dominant */
  --mdc-blue-900:#0B1E3A;
  --mdc-blue-800:#132573;
  --mdc-blue-700:#066AAB;
  --mdc-blue-600:#0A80C8;
  --mdc-blue-100:#DCEFF8;
  --mdc-blue-050:#F1F8FC;
  --mdc-sky:#CFEAF6;

  --mdc-ink:#12273E;
  --mdc-muted:#52606D;
  --mdc-white:#FFFFFF;
  --mdc-cream:#FBF8F3;
  --mdc-line:#D8E1E8;

  /* retained accents from the existing site */
  --mdc-brand:#5E51C9;
  --mdc-brand-2:#8E7BFF;
  --mdc-deep:#132573;
  --mdc-green:#35AB01;
  --mdc-body:#4C5A6B;

  --font-display:"Newsreader",Georgia,"Times New Roman",serif;
  --font-sans:"Kumbh Sans","Segoe UI",Arial,sans-serif;

  --text-hero:clamp(2.35rem,4.4vw,4.25rem);
  --text-h2:clamp(1.95rem,3.3vw,3.15rem);
  --text-h3:clamp(1.3rem,1.8vw,1.95rem);
  --text-lead:clamp(1.06rem,.55vw + .93rem,1.3rem);
  --text-body:clamp(1rem,.28vw + .95rem,1.09rem);

  --container:76rem;
  --gutter:clamp(1.25rem,4vw,3rem);
  --section-y:clamp(3.75rem,7.5vw,7rem);

  --radius-sm:.75rem;
  --radius-md:1.25rem;
  --radius-lg:2rem;
  --radius-pill:999px;

  --mdc-shadow:0 1px 2px rgba(11,30,58,.04), 0 12px 32px -14px rgba(11,30,58,.16);
  --mdc-shadow-hover:0 2px 6px rgba(11,30,58,.06), 0 30px 60px -22px rgba(11,30,58,.30);
  --mdc-shadow-media:0 30px 70px -30px rgba(11,30,58,.55);
  --mdc-ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- 2. Shared primitives (only inside mdc- scopes) ---------- */
[class*="mdc-"] .elementor-heading-title{
  text-wrap:balance;
}
[class*="mdc-"] .elementor-widget-text-editor p{
  text-wrap:pretty;
}

/* rail + rhythm */
.mdc-rail > .e-con-inner{
  max-width:var(--container);
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* editorial heading */
.mdc-display .elementor-heading-title{
  font-family:var(--font-display);
  font-weight:400;
  letter-spacing:-.012em;
  line-height:1.06;
}

/* ---------- 3. Focus visibility (accessibility) ---------- */
[class*="mdc-"] a:focus-visible,
[class*="mdc-"] button:focus-visible,
[class*="mdc-"] input:focus-visible,
[class*="mdc-"] select:focus-visible,
[class*="mdc-"] textarea:focus-visible,
.site-header a:focus-visible,
.site-header button:focus-visible{
  outline:3px solid var(--mdc-blue-600);
  outline-offset:3px;
  border-radius:4px;
}

/* ---------- 4. Scroll reveal (progressive enhancement) ---------- */
.mdc-reveal[data-mdc-reveal]{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .6s var(--mdc-ease), transform .6s var(--mdc-ease);
  transition-delay:var(--mdc-delay,0ms);
  will-change:opacity,transform;
}
.mdc-reveal[data-mdc-reveal="in"]{
  opacity:1;
  transform:none;
  will-change:auto;
}

@media (prefers-reduced-motion:reduce){
  .mdc-reveal[data-mdc-reveal]{opacity:1 !important;transform:none !important;transition:none !important;}
  [class*="mdc-"] *,
  [class*="mdc-"] *::before,
  [class*="mdc-"] *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* =========================================================================
   5. Header refinement (structure and links untouched)
   ========================================================================= */
.site-header .header-button-wrap .button.header-button{
  border-radius:var(--radius-pill);
  padding:.85em 1.7em;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  font-weight:700;
  letter-spacing:.005em;
  transition:transform .18s var(--mdc-ease), box-shadow .18s var(--mdc-ease), background-color .18s var(--mdc-ease);
}
.site-header .header-button-wrap .button.header-button:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 22px -10px rgba(11,30,58,.55);
}
.site-header .header-button-wrap .button.header-button:active{transform:none;}

.site-header .header-contact-wrap .contact-button{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  border-radius:var(--radius-pill);
  padding-inline:.35em;
  transition:opacity .18s var(--mdc-ease);
}
.site-header .header-contact-wrap .contact-button:hover{opacity:.82;}

/* animated underline on primary nav, colour untouched */
.main-navigation .primary-menu-container > ul > li.menu-item > a{
  position:relative;
}
.main-navigation .primary-menu-container > ul > li.menu-item > a::before{
  content:"";
  position:absolute;
  left:calc(2em / 2);
  right:calc(2em / 2);
  bottom:2em;
  height:2px;
  border-radius:2px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .22s var(--mdc-ease);
}
.main-navigation .primary-menu-container > ul > li.menu-item > a:hover::before,
.main-navigation .primary-menu-container > ul > li.menu-item > a:focus-visible::before,
.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a::before{
  transform:scaleX(1);
}

/* softer lift once the sticky header leaves the top of the page */
#masthead .base-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner{
  box-shadow:0 10px 30px -18px rgba(11,30,58,.55);
}

/* =========================================================================
   6. Floating UI - keep clear of content and respect safe areas
   ========================================================================= */
.call-now-button.cnb-right{
  right:max(14px, env(safe-area-inset-right)) !important;
  bottom:max(14px, env(safe-area-inset-bottom)) !important;
}
.base-scroll-to-top.scroll-up-side-right{
  bottom:max(84px, calc(env(safe-area-inset-bottom) + 84px));
}
@media (max-width:600px){
  .cnb-zoom-90{--cnb-zoom:.8;}
}
/* =========================================================================
   7. Home - section rhythm and colour fields
   ========================================================================= */
.mdc-welcome.e-con,
.mdc-offering.e-con,
.mdc-reviews.e-con,
.mdc-team.e-con,
.mdc-contact.e-con,
.mdc-locate.e-con{
  --padding-top:var(--section-y);
  --padding-bottom:var(--section-y);
  --padding-left:0px;
  --padding-right:0px;
}
.mdc-welcome.e-con{background-color:var(--mdc-cream);}
.mdc-offering.e-con{background-color:var(--mdc-white);}
.mdc-team.e-con{background-color:var(--mdc-blue-050);}
.mdc-contact.e-con{background-color:var(--mdc-cream);}
.mdc-locate.e-con{background-color:var(--mdc-white);}

.mdc-welcome > .e-con-inner,
.mdc-offering > .e-con-inner,
.mdc-reviews > .e-con-inner,
.mdc-team > .e-con-inner,
.mdc-contact > .e-con-inner,
.mdc-locate > .e-con-inner{
  max-width:var(--container);
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* =========================================================================
   8. Hero - colour field + editorial split
   ========================================================================= */
.mdc-hero--split.e-con{
  --min-height:auto;
  --padding-top:clamp(2.75rem,5.5vw,5.5rem);
  --padding-bottom:clamp(2.75rem,5.5vw,5.5rem);
  --padding-left:0px;
  --padding-right:0px;
  position:relative;
  overflow:clip;
  background-color:var(--mdc-blue-700);
  /* replaces a 2560px fixed-attachment backdrop with a right-hand media panel */
  background-image:none !important;
  background-attachment:scroll !important;
}
.mdc-hero--split.e-con::before{display:none !important;}
.mdc-hero--split.e-con::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(120% 100% at 85% 0%, rgba(19,37,115,.55) 0%, rgba(19,37,115,0) 60%);
}

.mdc-hero--split > .e-con-inner{
  position:relative;
  z-index:1;
  max-width:var(--container);
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  column-gap:clamp(2rem,4vw,4.25rem);
  row-gap:1rem;
  align-items:center;
}
.mdc-hero--split > .e-con-inner > .elementor-widget{grid-column:1;width:100%;}
.mdc-hero--split > .e-con-inner::after{
  content:"";
  grid-column:2;
  grid-row:1 / -1;
  align-self:center;
  aspect-ratio:16 / 11;
  border-radius:var(--radius-lg);
  background:url("https://manchesterdermatologyclinic.com/wp-content/uploads/2026/08/mdc-clinic-entrance.avif") center/cover no-repeat;
  box-shadow:var(--mdc-shadow-media);
}

.mdc-hero.e-con .elementor-widget-heading .elementor-heading-title{
  font-family:var(--font-display);
  font-size:var(--text-hero);
  font-weight:400;
  line-height:1.03;
  letter-spacing:-.015em;
  margin:0;
  text-wrap:balance;
}
.mdc-hero.e-con .elementor-widget-text-editor p{
  font-family:var(--font-sans);
  font-size:var(--text-lead);
  line-height:1.6;
  font-weight:400;
  margin:0;
  max-width:36ch;
}
.mdc-hero.e-con .elementor-widget-text-editor em,
.mdc-hero.e-con .elementor-widget-text-editor strong{
  font-style:normal;
  font-weight:500;
}
.mdc-hero.e-con .elementor-widget-button .elementor-button{
  border-radius:var(--radius-pill);
  background-color:var(--mdc-white);
  color:var(--mdc-blue-800);
  fill:var(--mdc-blue-800);
  padding:.95em 2em;
  min-height:52px;
  display:inline-flex;
  align-items:center;
  gap:.55em;
  font-weight:700;
  font-size:1rem;
  box-shadow:0 12px 28px -16px rgba(0,0,0,.8);
  transition:transform .18s var(--mdc-ease), box-shadow .18s var(--mdc-ease), background-color .18s var(--mdc-ease);
}
.mdc-hero.e-con .elementor-widget-button .elementor-button:hover{
  transform:translateY(-2px);
  background-color:var(--mdc-blue-100);
  box-shadow:0 18px 34px -18px rgba(0,0,0,.85);
}
.mdc-hero.e-con .elementor-widget-button .elementor-button:active{transform:none;}

@media (max-width:900px){
  .mdc-hero--split > .e-con-inner{grid-template-columns:minmax(0,1fr);row-gap:.85rem;}
  .mdc-hero > .e-con-inner > .elementor-widget{grid-column:1;}
  .mdc-hero--split > .e-con-inner::after{
    grid-column:1;
    grid-row:auto;
    aspect-ratio:16 / 10;
    margin-top:1.25rem;
    border-radius:var(--radius-md);
  }
  .mdc-hero.e-con .elementor-widget-text-editor p{max-width:none;}
}
/* =========================================================================
   9. Welcome statement
   ========================================================================= */
.mdc-welcome > .e-con-inner{max-width:60rem;text-align:center;}
.mdc-welcome.e-con .elementor-widget-animated-headline .elementor-headline{
  font-family:var(--font-display);
  font-size:var(--text-h2);
  font-weight:400;
  line-height:1.14;
  letter-spacing:-.012em;
  color:var(--mdc-ink);
  text-wrap:balance;
  margin:0;
}
.mdc-welcome.e-con .elementor-widget-animated-headline .elementor-headline-dynamic-wrapper,
.mdc-welcome.e-con .elementor-widget-animated-headline .elementor-headline-plain-text{
  font-size:inherit;
  line-height:inherit;
}

/* =========================================================================
   10. Section headers (offering / reviews / team / contact / map)
   ========================================================================= */
.mdc-offering > .e-con-inner > .elementor-widget-heading .elementor-heading-title,
.mdc-reviews > .e-con-inner > .elementor-widget-heading .elementor-heading-title,
.mdc-team > .e-con-inner > .elementor-widget-heading .elementor-heading-title,
.mdc-contact > .e-con-inner > .elementor-widget-heading .elementor-heading-title{
  font-family:var(--font-display);
  font-size:var(--text-h2);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.014em;
  margin:0 0 .5rem;
  text-wrap:balance;
}
.mdc-offering > .e-con-inner > .elementor-widget-text-editor p,
.mdc-reviews > .e-con-inner > .elementor-widget-text-editor p,
.mdc-team > .e-con-inner > .elementor-widget-text-editor p{
  font-size:var(--text-body);
  line-height:1.7;
  max-width:66ch;
  margin-inline:auto;
  margin-block:0 clamp(1.75rem,3vw,2.75rem);
}

/* =========================================================================
   11. Treatment + team carousels (logic, order and links untouched)
   ========================================================================= */
.mdc-offering .swiper-slide .e-con.e-con-full,
.mdc-team .swiper-slide .e-con.e-con-full{
  position:relative;
  border-radius:var(--radius-md);
  overflow:hidden;
  isolation:isolate;
}
.mdc-offering .swiper-slide .e-con.e-con-full::before,
.mdc-team .swiper-slide .e-con.e-con-full::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(to top, rgba(11,30,58,.86) 0%, rgba(11,30,58,.34) 46%, rgba(11,30,58,0) 78%);
}
.mdc-offering .swiper-slide .elementor-widget,
.mdc-team .swiper-slide .elementor-widget{position:relative;z-index:2;}

.mdc-offering .swiper-slide .elementor-background-slideshow__slide__image,
.mdc-team .swiper-slide .elementor-background-slideshow__slide__image{
  transition:transform .5s var(--mdc-ease);
}
.mdc-offering .swiper-slide:hover .elementor-background-slideshow__slide__image,
.mdc-team .swiper-slide:hover .elementor-background-slideshow__slide__image{
  transform:scale(1.03);
}

.mdc-offering .swiper-slide .elementor-heading-title,
.mdc-team .swiper-slide .elementor-heading-title{
  font-family:var(--font-display);
  font-weight:400;
  line-height:1.16;
  letter-spacing:-.008em;
  text-wrap:balance;
}

/* controls */
.mdc-offering .elementor-swiper-button,
.mdc-team .elementor-swiper-button{
  width:44px;
  height:44px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--mdc-white);
  color:var(--mdc-blue-700);
  fill:var(--mdc-blue-700);
  box-shadow:var(--mdc-shadow);
  transition:transform .18s var(--mdc-ease), background-color .18s var(--mdc-ease);
}
.mdc-offering .elementor-swiper-button:hover,
.mdc-team .elementor-swiper-button:hover{
  transform:scale(1.06);
  background:var(--mdc-blue-100);
}
.mdc-offering .elementor-swiper-button svg,
.mdc-team .elementor-swiper-button svg{width:18px;height:18px;}

.mdc-offering .swiper-pagination-bullet,
.mdc-team .swiper-pagination-bullet{
  width:8px;
  height:8px;
  border-radius:99px;
  background:var(--mdc-blue-700);
  opacity:.26;
  transition:width .25s var(--mdc-ease), opacity .25s var(--mdc-ease);
}
.mdc-offering .swiper-pagination-bullet-active,
.mdc-team .swiper-pagination-bullet-active{width:24px;opacity:1;}

/* =========================================================================
   12. Patient reviews - PROTECTED
   Only typography, width and rhythm. Background image, translucent overlay,
   composition and crop are deliberately left untouched.
   ========================================================================= */
.mdc-reviews .elementor-widget-text-editor p{
  line-height:1.72;
}
.mdc-reviews .elementor-star-rating{letter-spacing:.12em;}

/* =========================================================================
   13. Contact form (WPForms tokens only - fields, names, validation intact)
   ========================================================================= */
.mdc-contact > .e-con-inner{max-width:58rem;}
.mdc-contact .wpforms-container{
  --wpforms-field-border-radius:12px;
  --wpforms-field-size-input-height:52px;
  --wpforms-field-size-input-spacing:16px;
  --wpforms-field-border-color:var(--mdc-line);
  --wpforms-field-text-color:var(--mdc-ink);
  --wpforms-label-color:var(--mdc-ink);
  --wpforms-label-sublabel-color:var(--mdc-muted);
  --wpforms-button-border-radius:999px;
  --wpforms-button-size-height:52px;
  --wpforms-button-size-padding-h:32px;
  --wpforms-button-background-color:var(--mdc-blue-700);
  --wpforms-button-text-color:#ffffff;
  background:var(--mdc-white);
  border:1px solid var(--mdc-line);
  border-radius:var(--radius-lg);
  padding:clamp(1.5rem,3vw,2.75rem);
  box-shadow:var(--mdc-shadow);
}
.mdc-contact .wpforms-container .wpforms-field-label{font-weight:600;}
.mdc-contact .wpforms-container button[type=submit]{
  transition:transform .18s var(--mdc-ease), box-shadow .18s var(--mdc-ease), filter .18s var(--mdc-ease);
}
.mdc-contact .wpforms-container button[type=submit]:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 28px -14px rgba(6,106,171,.8);
}

/* =========================================================================
   14. Map + credibility strip
   ========================================================================= */
.mdc-locate .elementor-widget-google_maps .elementor-widget-container{
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--mdc-shadow);
}
.mdc-locate .elementor-widget-image img{
  transition:opacity .2s var(--mdc-ease);
}
/* =========================================================================
   15. Corrections pass
   ========================================================================= */
:root{
  --section-y:clamp(3.25rem,6vw,5.75rem);
}

/* --- hero: neutralise the builder min-height and centre the copy column --- */
.mdc-hero--split.e-con{--min-height:auto !important;}
.mdc-hero--split > .e-con-inner{
  grid-template-rows:1fr auto auto auto 1fr;
  row-gap:0;
}
.mdc-hero--split > .e-con-inner > .elementor-widget:nth-child(1){grid-row:2;margin-bottom:.85rem;}
.mdc-hero--split > .e-con-inner > .elementor-widget:nth-child(2){grid-row:3;margin-bottom:1.6rem;}
.mdc-hero--split > .e-con-inner > .elementor-widget:nth-child(3){grid-row:4;}
@media (max-width:900px){
  .mdc-hero--split > .e-con-inner{grid-template-rows:auto;}
  .mdc-hero--split > .e-con-inner > .elementor-widget:nth-child(1),
  .mdc-hero--split > .e-con-inner > .elementor-widget:nth-child(2),
  .mdc-hero--split > .e-con-inner > .elementor-widget:nth-child(3){grid-row:auto;}
}

/* --- welcome: one type family across the whole statement --- */
.mdc-welcome.e-con .elementor-widget-animated-headline .elementor-headline *{
  font-family:inherit;
  line-height:inherit;
}
.mdc-welcome.e-con .elementor-widget-animated-headline .elementor-headline b,
.mdc-welcome.e-con .elementor-widget-animated-headline .elementor-headline strong,
.mdc-welcome.e-con .elementor-widget-animated-headline .elementor-headline-dynamic-text{
  font-weight:500;
}

/* --- body copy contrast (was #7A7A7A, below AA on light surfaces) --- */
.mdc-offering > .e-con-inner > .elementor-widget-text-editor p,
.mdc-team > .e-con-inner > .elementor-widget-text-editor p,
.mdc-reviews > .e-con-inner > .elementor-widget-text-editor p{
  color:var(--mdc-muted);
}
.mdc-offering > .e-con-inner > .elementor-widget-heading .elementor-heading-title,
.mdc-team > .e-con-inner > .elementor-widget-heading .elementor-heading-title,
.mdc-contact > .e-con-inner > .elementor-widget-heading .elementor-heading-title{
  color:var(--mdc-ink);
}

/* --- carousels: trim the trailing gap the widget leaves behind --- */
.mdc-offering .elementor-widget-nested-carousel,
.mdc-team .elementor-widget-nested-carousel{margin-bottom:0;}

/* --- contact form: WPForms ships an id-scoped reset, so this needs weight --- */
.mdc-contact .wpforms-container.wpforms-container-full{
  background:var(--mdc-white) !important;
  border:1px solid var(--mdc-line) !important;
  border-radius:var(--radius-lg) !important;
  padding:clamp(1.5rem,3vw,2.75rem) !important;
  box-shadow:var(--mdc-shadow) !important;
  margin-inline:auto !important;
}

/* --- map + credibility strip --- */
.mdc-locate .elementor-widget-google_maps iframe{min-height:340px;}
.mdc-locate > .e-con-inner > .e-con:last-child{
  gap:clamp(1.5rem,4vw,3.5rem);
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
}
.mdc-locate .elementor-widget-image img{
  max-height:56px;
  width:auto;
  object-fit:contain;
}
.mdc-locate .elementor-widget-text-editor p{
  color:var(--mdc-muted);
  font-size:.95rem;
}
/* --- welcome sits in a full-width container, so the rail is applied inside --- */
.mdc-welcome.e-con-full{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.mdc-welcome.e-con-full > .e-con,
.mdc-welcome.e-con-full > .elementor-widget{
  max-width:64rem;
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.mdc-welcome.e-con .elementor-widget-animated-headline{margin-top:0;}

/* ===== merged: long-form content kit ===== */


:root{
  --mdc-brand:#5E51C9;
  --mdc-brand-2:#8E7BFF;
  --mdc-deep:#132573;
  --mdc-green:#35AB01;
  --mdc-ink:#12273E;
  --mdc-body:#4C5A6B;
  --mdc-line:rgba(19,37,115,.10);
  --mdc-radius:22px;
  --mdc-max:1220px;
  --mdc-shadow:0 1px 2px rgba(19,37,115,.04), 0 12px 32px -14px rgba(19,37,115,.16);
  --mdc-shadow-hover:0 2px 6px rgba(19,37,115,.06), 0 30px 60px -22px rgba(19,37,115,.30);
  --mdc-ease:cubic-bezier(.2,.7,.3,1);
}

/* ---------- 1. Lead / intro panel ---------- */
.mdc-lead.e-con{
  padding-block:clamp(44px,5.5vw,78px) clamp(16px,2vw,26px) !important;
}
.mdc-lead > .e-con-inner{
  max-width:var(--mdc-max);
  width:100%;
  margin-inline:auto;
  padding-inline:clamp(18px,3vw,28px);
}
.mdc-lead .elementor-widget-text-editor > .elementor-widget-container{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,#FAF9FF 0%,#F3F6FF 55%,#F7FBF4 100%);
  border:1px solid var(--mdc-line);
  border-radius:var(--mdc-radius);
  box-shadow:var(--mdc-shadow);
  padding:clamp(26px,3.2vw,44px) clamp(24px,3.4vw,50px);
}
.mdc-lead .elementor-widget-text-editor > .elementor-widget-container::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,var(--mdc-brand) 0%,var(--mdc-brand-2) 55%,var(--mdc-green) 100%);
}
.mdc-lead p{
  margin:0;
  font-size:clamp(1.02rem,.55vw + .92rem,1.16rem);
  line-height:1.85;
  color:var(--mdc-body);
  letter-spacing:.004em;
  text-wrap:pretty;
}

/* ---------- 2. Section header ---------- */
.mdc-section-head.e-con{
  padding-block:clamp(30px,4vw,58px) 0 !important;
}
.mdc-section-head > .e-con-inner{
  max-width:840px;
  width:100%;
  margin-inline:auto;
  padding-inline:clamp(18px,3vw,28px);
  text-align:center;
}
.mdc-section-head h1.elementor-heading-title,
.mdc-section-head h2.elementor-heading-title,
.mdc-section-head h3.elementor-heading-title{
  color:var(--mdc-deep) !important;
  font-size:clamp(1.8rem,2.4vw + 1rem,2.6rem);
  line-height:1.16;
  font-weight:700;
  letter-spacing:-.021em;
  margin:0;
  text-wrap:balance;
}
.mdc-section-head .elementor-widget-heading .elementor-heading-title::after{
  content:"";
  display:block;
  width:68px;
  height:4px;
  margin:20px auto 0;
  border-radius:99px;
  background:linear-gradient(90deg,var(--mdc-brand) 0%,var(--mdc-brand-2) 55%,var(--mdc-green) 100%);
}
.mdc-section-head .elementor-widget-text-editor{
  margin-top:20px;
}
.mdc-section-head p{
  margin:0;
  font-size:clamp(1rem,.35vw + .94rem,1.09rem);
  line-height:1.8;
  color:var(--mdc-body);
  text-wrap:pretty;
}

/* ---------- 3. Topic card grid ---------- */
.mdc-topic-grid.e-con{
  padding-block:clamp(30px,3.6vw,48px) clamp(52px,6vw,92px) !important;
}
.mdc-topic-grid > .e-con-inner{
  max-width:1220px;
  width:100%;
  margin-inline:auto;
  padding-inline:clamp(18px,3vw,28px);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(18px,1.8vw,28px);
  align-items:stretch;
  counter-reset:mdc;
}
@media (max-width:900px){
  .mdc-topic-grid > .e-con-inner{grid-template-columns:1fr;}
}

.mdc-topic-card.e-con{
  counter-increment:mdc;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  height:100%;
  margin:0 !important;
  padding:clamp(26px,2.4vw,38px) clamp(24px,2.4vw,38px) !important;
  background:#fff;
  border:1px solid var(--mdc-line);
  border-radius:var(--mdc-radius);
  box-shadow:var(--mdc-shadow);
  transition:transform .4s var(--mdc-ease), box-shadow .4s var(--mdc-ease), border-color .4s var(--mdc-ease);
}
.mdc-topic-card.e-con::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:3px;
  background:linear-gradient(90deg,var(--mdc-brand) 0%,var(--mdc-brand-2) 50%,var(--mdc-green) 100%);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .5s var(--mdc-ease);
}
.mdc-topic-card.e-con::after{
  content:counter(mdc,decimal-leading-zero);
  position:absolute;
  top:10px; right:22px;
  z-index:-1;
  font-size:3.1rem;
  font-weight:800;
  line-height:1;
  letter-spacing:-.05em;
  color:var(--mdc-brand);
  opacity:.075;
  pointer-events:none;
}
.mdc-topic-card.e-con:hover{
  transform:translateY(-6px);
  box-shadow:var(--mdc-shadow-hover);
  border-color:rgba(94,81,201,.34);
}
.mdc-topic-card.e-con:hover::before{transform:scaleX(1);}

.mdc-topic-card > .e-con-inner{
  max-width:100%;
  width:100%;
  padding:0;
  margin:0;
}
.mdc-topic-card .e-con,
.mdc-topic-card .e-con-inner{
  --gap:0px;
  gap:0;
  padding:0;
  width:100%;
  max-width:100%;
}
.mdc-topic-card h1.elementor-heading-title,
.mdc-topic-card h2.elementor-heading-title,
.mdc-topic-card h3.elementor-heading-title{
  color:var(--mdc-brand) !important;
  font-size:clamp(1.16rem,.6vw + 1.02rem,1.42rem);
  line-height:1.3;
  font-weight:700;
  letter-spacing:-.012em;
  margin:0 0 14px;
  text-wrap:balance;
}
.mdc-topic-card .elementor-widget-text-editor p{
  margin:0;
  font-size:clamp(.98rem,.22vw + .94rem,1.04rem);
  line-height:1.78;
  color:var(--mdc-body);
  text-wrap:pretty;
}
.mdc-topic-card .elementor-widget-text-editor p + p{margin-top:.9em;}

/* odd trailing card fills the row */
.mdc-topic-grid > .e-con-inner > .mdc-topic-card:last-child:nth-child(odd){
  grid-column:1 / -1;
}

/* ---------- 4. Motion (scroll-linked, no JS) ---------- */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .mdc-topic-card > .e-con-inner,
    .mdc-lead .elementor-widget-text-editor > .elementor-widget-container,
    .mdc-section-head > .e-con-inner{
      animation:mdc-rise linear both;
      animation-timeline:view();
      animation-range:entry 0% entry 42%;
    }
    @keyframes mdc-rise{
      from{opacity:0;transform:translateY(24px);}
      to{opacity:1;transform:none;}
    }
  }
}
@media (prefers-reduced-motion:reduce){
  .mdc-topic-card.e-con,
  .mdc-topic-card.e-con::before{transition:none;}
  .mdc-topic-card.e-con:hover{transform:none;}
}
/* ---------- 5. Tight variant (standalone heading above an existing block) ---------- */
.mdc-section-head--tight.e-con{
  padding-block:clamp(34px,4.5vw,66px) clamp(14px,1.8vw,24px) !important;
}
.mdc-section-head--tight > .e-con-inner{max-width:900px;}
/* =========================================================================
   16. Inner-page hero (keeps its own photo field + blue overlay)
   ========================================================================= */
.mdc-hero.e-con{
  --padding-top:clamp(3rem,6vw,6rem);
  --padding-bottom:clamp(3rem,6vw,6rem);
  --padding-left:0px;
  --padding-right:0px;
  background-attachment:scroll !important;
}
.mdc-hero > .e-con-inner{
  max-width:var(--container);
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.mdc-hero:not(.mdc-hero--split).e-con .elementor-widget-heading .elementor-heading-title{
  font-size:clamp(1.85rem,2.4vw + 1rem,3.15rem);
  line-height:1.1;
  max-width:20ch;
}
.mdc-hero:not(.mdc-hero--split).e-con .elementor-widget-text-editor p{
  max-width:56ch;
  margin-top:1rem;
}
.mdc-hero:not(.mdc-hero--split).e-con .elementor-widget-button{margin-top:1.6rem;}

/* =========================================================================
   17. Page head (condition pages)
   ========================================================================= */
.mdc-page-head.e-con{
  --padding-top:clamp(3rem,6vw,5.5rem);
  --padding-bottom:clamp(1.5rem,3vw,2.5rem);
  --padding-left:0px;
  --padding-right:0px;
  background-color:var(--mdc-cream);
}
.mdc-page-head > .e-con-inner{
  max-width:56rem;
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
  text-align:center;
}
.mdc-page-head .elementor-heading-title{
  font-family:var(--font-display);
  font-size:var(--text-h2);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.016em;
  color:var(--mdc-ink);
  margin:0 0 1.1rem;
}
.mdc-page-head .elementor-widget-text-editor p{
  font-size:var(--text-lead);
  line-height:1.7;
  color:var(--mdc-muted);
  margin:0 auto;
  max-width:60ch;
}

/* =========================================================================
   18. Prose block (a single standalone heading + copy)
   ========================================================================= */
.mdc-prose.e-con{
  --padding-top:clamp(2rem,3.5vw,3rem);
  --padding-bottom:clamp(2rem,3.5vw,3rem);
  --padding-left:0px;
  --padding-right:0px;
}
.mdc-prose > .e-con-inner{
  max-width:52rem;
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.mdc-prose .elementor-heading-title{
  font-family:var(--font-display);
  font-size:var(--text-h3);
  font-weight:400;
  line-height:1.18;
  color:var(--mdc-ink);
  margin:0 0 .85rem;
}
.mdc-prose .elementor-widget-text-editor p{
  font-size:var(--text-body);
  line-height:1.78;
  color:var(--mdc-muted);
}
.mdc-prose .elementor-widget-text-editor p + p{margin-top:1em;}

/* =========================================================================
   19. Feature rows - alternating image / copy
   ========================================================================= */
.mdc-feature.e-con{
  --padding-top:clamp(2rem,4vw,3.5rem);
  --padding-bottom:clamp(2rem,4vw,3.5rem);
  --padding-left:0px;
  --padding-right:0px;
}
.mdc-feature > .e-con-inner{
  max-width:var(--container);
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(1.75rem,4vw,4rem);
  align-items:center;
}
.mdc-feature > .e-con-inner > .elementor-widget-image{grid-column:1;grid-row:1;}
.mdc-feature > .e-con-inner > .elementor-widget-heading{grid-column:2;align-self:end;}
.mdc-feature > .e-con-inner > .elementor-widget-text-editor{grid-column:2;align-self:start;}
.mdc-feature:nth-of-type(even) > .e-con-inner > .elementor-widget-image{grid-column:2;}
.mdc-feature:nth-of-type(even) > .e-con-inner > .elementor-widget-heading,
.mdc-feature:nth-of-type(even) > .e-con-inner > .elementor-widget-text-editor{grid-column:1;}
.mdc-feature .elementor-widget-image img{
  width:100%;
  height:auto;
  border-radius:var(--radius-md);
  box-shadow:var(--mdc-shadow);
  display:block;
}
.mdc-feature .elementor-heading-title{
  font-family:var(--font-display);
  font-size:var(--text-h3);
  font-weight:400;
  line-height:1.16;
  color:var(--mdc-ink);
  margin:0 0 .75rem;
}
.mdc-feature .elementor-widget-text-editor p{
  font-size:var(--text-body);
  line-height:1.78;
  color:var(--mdc-muted);
  margin:0;
}
.mdc-feature .elementor-widget-text-editor p + p{margin-top:1em;}
.mdc-feature .elementor-widget-text-editor ul,
.mdc-feature .elementor-widget-text-editor ol{
  margin:.9em 0 0;
  padding-left:1.15em;
  line-height:1.75;
  color:var(--mdc-muted);
}
.mdc-feature .elementor-widget-text-editor li{margin-bottom:.4em;}
@media (max-width:860px){
  .mdc-feature > .e-con-inner{grid-template-columns:minmax(0,1fr);}
  .mdc-feature > .e-con-inner > .elementor-widget-image,
  .mdc-feature > .e-con-inner > .elementor-widget-heading,
  .mdc-feature > .e-con-inner > .elementor-widget-text-editor,
  .mdc-feature:nth-of-type(even) > .e-con-inner > .elementor-widget-image,
  .mdc-feature:nth-of-type(even) > .e-con-inner > .elementor-widget-heading,
  .mdc-feature:nth-of-type(even) > .e-con-inner > .elementor-widget-text-editor{grid-column:1;grid-row:auto;}
}
/* =========================================================================
   20. Media + CTA band ("Before and After")
   ========================================================================= */
.mdc-media-cta.e-con{
  --padding-top:clamp(2.5rem,5vw,4.5rem);
  --padding-bottom:clamp(2.5rem,5vw,4.5rem);
  --padding-left:0px;
  --padding-right:0px;
  background-color:var(--mdc-blue-050);
}
.mdc-media-cta > .e-con-inner{
  max-width:60rem;
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
  text-align:center;
}
.mdc-media-cta .elementor-heading-title{
  font-family:var(--font-display);
  font-size:var(--text-h2);
  font-weight:400;
  line-height:1.1;
  color:var(--mdc-ink);
  margin:0 0 1.75rem;
}
.mdc-media-cta .elementor-widget-image img{
  width:100%;
  height:auto;
  border-radius:var(--radius-md);
  box-shadow:var(--mdc-shadow);
  display:block;
}
.mdc-media-cta .elementor-widget-button{margin-top:1.75rem;}

/* =========================================================================
   21. Shared pill buttons across inner pages
   ========================================================================= */
.mdc-media-cta .elementor-button,
.mdc-hero:not(.mdc-hero--split) .elementor-button,
.mdc-prose .elementor-button,
.mdc-feature .elementor-button{
  border-radius:var(--radius-pill);
  min-height:52px;
  padding:.95em 2em;
  display:inline-flex;
  align-items:center;
  gap:.55em;
  font-weight:700;
  transition:transform .18s var(--mdc-ease), box-shadow .18s var(--mdc-ease), filter .18s var(--mdc-ease);
}
.mdc-media-cta .elementor-button:hover,
.mdc-hero:not(.mdc-hero--split) .elementor-button:hover,
.mdc-prose .elementor-button:hover,
.mdc-feature .elementor-button:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 30px -16px rgba(11,30,58,.6);
}

/* =========================================================================
   22. Trust row (icon + label)
   ========================================================================= */
.mdc-trust.e-con{
  --padding-top:clamp(2rem,4vw,3.25rem);
  --padding-bottom:clamp(2rem,4vw,3.25rem);
  --padding-left:0px;
  --padding-right:0px;
  background-color:var(--mdc-blue-800);
}
.mdc-trust > .e-con-inner{
  max-width:var(--container);
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(1rem,2.5vw,2.25rem);
  align-items:start;
}
.mdc-trust > .e-con-inner > .elementor-widget-icon{
  justify-self:center;
  align-self:end;
}
.mdc-trust > .e-con-inner > .e-con{
  text-align:center;
  padding:0;
  align-self:start;
}
.mdc-trust .elementor-icon svg,
.mdc-trust .elementor-icon i{
  color:var(--mdc-white);
  fill:var(--mdc-white);
}
.mdc-trust .elementor-heading-title{
  font-family:var(--font-sans);
  font-size:clamp(.95rem,.5vw + .85rem,1.08rem);
  font-weight:600;
  line-height:1.35;
  color:var(--mdc-white);
  text-align:center;
  margin:.6rem 0 0;
}
@media (max-width:820px){
  .mdc-trust > .e-con-inner{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:1.75rem;}
}
@media (max-width:420px){
  .mdc-trust > .e-con-inner{grid-template-columns:minmax(0,1fr);}
}

/* =========================================================================
   23. Review cards (the 4-up testimonial rows on inner pages)
   Note: the homepage "What Our Patients Are Saying" block is deliberately
   excluded - it keeps its translucent-over-image treatment.
   ========================================================================= */
.mdc-reviewcards.e-con{
  --padding-top:clamp(2.5rem,5vw,4.25rem);
  --padding-bottom:clamp(2.5rem,5vw,4.25rem);
  --padding-left:0px;
  --padding-right:0px;
}
.mdc-reviewcards > .e-con-inner{
  max-width:var(--container);
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(1rem,1.6vw,1.5rem);
  align-items:stretch;
}
.mdc-reviewcards > .e-con-inner > .e-con{
  height:100%;
  margin:0;
  padding:clamp(1.25rem,1.8vw,1.75rem);
  background:var(--mdc-white);
  border:1px solid var(--mdc-line);
  border-radius:var(--radius-md);
  box-shadow:var(--mdc-shadow);
  transition:transform .3s var(--mdc-ease), box-shadow .3s var(--mdc-ease);
}
.mdc-reviewcards > .e-con-inner > .e-con:hover{
  transform:translateY(-4px);
  box-shadow:var(--mdc-shadow-hover);
}
.mdc-reviewcards .elementor-heading-title{
  font-family:var(--font-sans);
  font-size:1rem;
  font-weight:700;
  line-height:1.35;
  color:var(--mdc-ink);
  margin:.5rem 0 .55rem;
}
.mdc-reviewcards .elementor-widget-text-editor p{
  font-size:.95rem;
  line-height:1.7;
  color:var(--mdc-muted);
  font-style:normal;
  margin:0;
}
.mdc-reviewcards img{border-radius:50%;}
.mdc-reviewcards .elementor-star-rating{letter-spacing:.1em;}
@media (max-width:1000px){
  .mdc-reviewcards > .e-con-inner{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:620px){
  .mdc-reviewcards > .e-con-inner{grid-template-columns:minmax(0,1fr);}
}

/* =========================================================================
   24. Team grid (photographs preserved exactly - frame only)
   ========================================================================= */
.mdc-teamgrid.e-con{
  --padding-top:clamp(1.5rem,3vw,2.5rem);
  --padding-bottom:clamp(2.5rem,5vw,4.5rem);
  --padding-left:0px;
  --padding-right:0px;
}
.mdc-teamgrid > .e-con-inner{
  max-width:var(--container);
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.mdc-teamgrid .elementor-widget-image img{
  border-radius:var(--radius-md);
  display:block;
  width:100%;
  height:auto;
}
.mdc-teamgrid .elementor-heading-title{
  font-family:var(--font-sans);
  font-size:clamp(.95rem,.5vw + .85rem,1.05rem);
  font-weight:600;
  line-height:1.5;
  color:var(--mdc-ink);
  margin-top:.8rem;
}

/* =========================================================================
   25. Newsletter band
   ========================================================================= */
.mdc-newsletter.e-con{
  --padding-top:clamp(2.5rem,5vw,4rem);
  --padding-bottom:clamp(2.5rem,5vw,4rem);
  --padding-left:0px;
  --padding-right:0px;
  background-color:var(--mdc-blue-050);
}
.mdc-newsletter > .e-con-inner{
  max-width:52rem;
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.mdc-newsletter .elementor-widget-text-editor p{
  font-family:var(--font-display);
  font-size:var(--text-h3);
  font-weight:400;
  line-height:1.2;
  color:var(--mdc-ink);
  margin:0 0 1.25rem;
}
.mdc-newsletter .elementor-field-textual{
  min-height:52px;
  border-radius:12px;
  border:1px solid var(--mdc-line);
}
.mdc-newsletter .elementor-button{
  border-radius:var(--radius-pill);
  min-height:52px;
  padding-inline:2rem;
  font-weight:700;
}
/* =========================================================================
   26. Grid-cell width normalisation
   These blocks were authored as percentage-width flex rows. Once they become
   grid cells the old percentage collapses them, so reset the builder's width
   variable inside the components that own a grid.
   ========================================================================= */
.mdc-reviewcards .e-con,
.mdc-trust .e-con,
.mdc-teamgrid .e-con,
.mdc-topic-card .e-con,
.mdc-feature .e-con{
  --width:100%;
  max-width:100%;
}
.mdc-reviewcards > .e-con-inner > .e-con{
  --flex-basis:auto;
  flex:1 1 auto;
}
.mdc-reviewcards .elementor-widget,
.mdc-trust .elementor-widget,
.mdc-teamgrid .elementor-widget{max-width:100%;}
.mdc-reviewcards .elementor-star-rating{
  display:flex;
  gap:.1em;
  white-space:nowrap;
}
/* =========================================================================
   27. Overrides for builder-generated per-element rules
   Elementor writes --width and colours at element-id specificity, so these
   few properties need !important. Nothing else in this file does.
   ========================================================================= */
.mdc-reviewcards > .e-con-inner > .e-con,
.mdc-trust > .e-con-inner > .e-con,
.mdc-trust > .e-con-inner > .elementor-widget{
  --width:100% !important;
  width:100% !important;
  max-width:100% !important;
  flex:0 0 auto !important;
}
.mdc-reviewcards .elementor-heading-title{color:var(--mdc-ink) !important;}
.mdc-trust .elementor-heading-title{color:var(--mdc-white) !important;}
.mdc-trust .elementor-icon{color:var(--mdc-white) !important;fill:var(--mdc-white) !important;}
.mdc-trust .elementor-icon svg{width:34px;height:34px;}

/* trust row: 4 icon/label pairs living as 8 flat children */
.mdc-trust > .e-con-inner{
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-template-rows:auto auto;
  row-gap:.35rem;
}
.mdc-trust > .e-con-inner > :nth-child(1){grid-area:1 / 1;}
.mdc-trust > .e-con-inner > :nth-child(2){grid-area:2 / 1;}
.mdc-trust > .e-con-inner > :nth-child(3){grid-area:1 / 2;}
.mdc-trust > .e-con-inner > :nth-child(4){grid-area:2 / 2;}
.mdc-trust > .e-con-inner > :nth-child(5){grid-area:1 / 3;}
.mdc-trust > .e-con-inner > :nth-child(6){grid-area:2 / 3;}
.mdc-trust > .e-con-inner > :nth-child(7){grid-area:1 / 4;}
.mdc-trust > .e-con-inner > :nth-child(8){grid-area:2 / 4;}
.mdc-trust > .e-con-inner > .elementor-widget-icon .elementor-widget-container,
.mdc-trust > .e-con-inner > .elementor-widget-icon .elementor-icon-wrapper{text-align:center;}

@media (max-width:820px){
  .mdc-trust > .e-con-inner{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,auto);row-gap:.35rem;}
  .mdc-trust > .e-con-inner > :nth-child(1){grid-area:1 / 1;}
  .mdc-trust > .e-con-inner > :nth-child(2){grid-area:2 / 1;}
  .mdc-trust > .e-con-inner > :nth-child(3){grid-area:1 / 2;}
  .mdc-trust > .e-con-inner > :nth-child(4){grid-area:2 / 2;}
  .mdc-trust > .e-con-inner > :nth-child(5){grid-area:3 / 1;}
  .mdc-trust > .e-con-inner > :nth-child(6){grid-area:4 / 1;}
  .mdc-trust > .e-con-inner > :nth-child(7){grid-area:3 / 2;}
  .mdc-trust > .e-con-inner > :nth-child(8){grid-area:4 / 2;}
}
@media (max-width:430px){
  .mdc-trust > .e-con-inner{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(8,auto);}
  .mdc-trust > .e-con-inner > :nth-child(1){grid-area:1 / 1;}
  .mdc-trust > .e-con-inner > :nth-child(2){grid-area:2 / 1;}
  .mdc-trust > .e-con-inner > :nth-child(3){grid-area:3 / 1;}
  .mdc-trust > .e-con-inner > :nth-child(4){grid-area:4 / 1;}
  .mdc-trust > .e-con-inner > :nth-child(5){grid-area:5 / 1;}
  .mdc-trust > .e-con-inner > :nth-child(6){grid-area:6 / 1;}
  .mdc-trust > .e-con-inner > :nth-child(7){grid-area:7 / 1;}
  .mdc-trust > .e-con-inner > :nth-child(8){grid-area:8 / 1;}
}

/* team block keeps its own inner row - frame the photos only */
.mdc-teamgrid > .e-con-inner > .e-con{
  display:flex;
  flex-wrap:wrap;
  gap:clamp(1rem,2vw,1.75rem);
  align-items:stretch;
}
/* one card per review, not a card inside a card */
.mdc-reviewcards > .e-con-inner > .e-con > .e-con{
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  padding:0 !important;
  margin:0 !important;
  height:100%;
}
.mdc-reviewcards > .e-con-inner > .e-con{
  display:flex;
  flex-direction:column;
}
/* feature rows: the widgets were authored at 33%/66% of a flex row */
.mdc-feature > .e-con-inner > .elementor-widget,
.mdc-feature > .e-con-inner > .e-con{
  --width:100% !important;
  width:100% !important;
  max-width:100% !important;
}
.mdc-feature > .e-con-inner > .elementor-widget-image .elementor-widget-container{width:100%;}
.mdc-feature .elementor-widget-image img{width:100% !important;height:auto !important;max-width:100% !important;}
.mdc-feature > .e-con-inner > .elementor-widget-heading,
.mdc-feature > .e-con-inner > .elementor-widget-text-editor{text-align:left;}
.mdc-feature > .e-con-inner > .elementor-widget-heading .elementor-heading-title,
.mdc-feature > .e-con-inner > .elementor-widget-text-editor p{text-align:left;}

/* alternate the image side */
.mdc-feature--alt > .e-con-inner > .elementor-widget-image{grid-column:2;grid-row:1;}
.mdc-feature--alt > .e-con-inner > .elementor-widget-heading,
.mdc-feature--alt > .e-con-inner > .elementor-widget-text-editor{grid-column:1;}
@media (max-width:860px){
  .mdc-feature--alt > .e-con-inner > .elementor-widget-image,
  .mdc-feature--alt > .e-con-inner > .elementor-widget-heading,
  .mdc-feature--alt > .e-con-inner > .elementor-widget-text-editor{grid-column:1;grid-row:auto;}
}
/* deterministic placement for feature rows */
.mdc-feature > .e-con-inner{grid-template-rows:auto auto;}
.mdc-feature > .e-con-inner > .elementor-widget-image{grid-column:1;grid-row:1 / span 2;align-self:center;}
.mdc-feature > .e-con-inner > .elementor-widget-heading{grid-column:2;grid-row:1;align-self:end;}
.mdc-feature > .e-con-inner > .elementor-widget-text-editor{grid-column:2;grid-row:2;align-self:start;}
.mdc-feature--alt > .e-con-inner > .elementor-widget-image{grid-column:2;}
.mdc-feature--alt > .e-con-inner > .elementor-widget-heading,
.mdc-feature--alt > .e-con-inner > .elementor-widget-text-editor{grid-column:1;}
.mdc-feature > .e-con-inner > .elementor-widget-heading,
.mdc-feature > .e-con-inner > .elementor-widget-heading .elementor-heading-title,
.mdc-feature > .e-con-inner > .elementor-widget-text-editor,
.mdc-feature > .e-con-inner > .elementor-widget-text-editor p,
.mdc-feature > .e-con-inner > .elementor-widget-text-editor ul,
.mdc-feature > .e-con-inner > .elementor-widget-text-editor ol{text-align:left !important;}
@media (max-width:860px){
  .mdc-feature > .e-con-inner{grid-template-rows:auto;}
  .mdc-feature > .e-con-inner > .elementor-widget-image,
  .mdc-feature > .e-con-inner > .elementor-widget-heading,
  .mdc-feature > .e-con-inner > .elementor-widget-text-editor,
  .mdc-feature--alt > .e-con-inner > .elementor-widget-image,
  .mdc-feature--alt > .e-con-inner > .elementor-widget-heading,
  .mdc-feature--alt > .e-con-inner > .elementor-widget-text-editor{grid-column:1;grid-row:auto;}
}
/* =========================================================================
   28. Section rhythm on inner pages
   Alternating colour fields, the same device the home page uses to separate
   sections without borders.
   ========================================================================= */
.mdc-lead.e-con{background-color:var(--mdc-white);}
.mdc-section-head.e-con{background-color:var(--mdc-white);}
.mdc-topic-grid.e-con{background-color:var(--mdc-cream);}
.mdc-reviewcards.e-con{background-color:var(--mdc-blue-050);}
.mdc-prose.e-con{background-color:var(--mdc-white);}

/* feature rows alternate white / pale blue so long condition pages breathe */
.mdc-feature.e-con{background-color:var(--mdc-white);}
.mdc-feature--alt.e-con{background-color:var(--mdc-blue-050);}

/* the lead panel keeps its own tinted card, so drop the doubled field */
.mdc-lead + .mdc-section-head.e-con{padding-top:clamp(1.5rem,3vw,2.5rem);}

/* editorial heading treatment shared by every inner-page section header */
.mdc-section-head .elementor-heading-title{
  font-family:var(--font-display);
  font-weight:400;
  letter-spacing:-.014em;
}
.mdc-topic-card .elementor-heading-title{
  font-family:var(--font-display);
  font-weight:400;
  letter-spacing:-.008em;
  font-size:clamp(1.2rem,.7vw + 1.05rem,1.5rem);
}
.mdc-topic-card.e-con::after{font-family:var(--font-display);}

/* review-card titles stay in the UI face for contrast against the serif */
.mdc-reviewcards .elementor-heading-title{font-family:var(--font-sans);}
/* =========================================================================
   29. Patient reviews over a photograph (condition pages)
   Mirrors the home page treatment: the image stays, the reviews sit on it
   translucently. No background, border or card is added to the quotes.
   ========================================================================= */
.mdc-reviews-media.e-con{
  --padding-top:clamp(2.5rem,5vw,4.5rem);
  --padding-bottom:clamp(2.5rem,5vw,4.5rem);
  --padding-left:0px;
  --padding-right:0px;
  background-color:var(--mdc-white);
}
.mdc-reviews-media > .e-con-inner{
  max-width:var(--container);
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* the photographic panel - image, crop and overlay left exactly as authored */
.mdc-reviews-media > .e-con-inner > .e-con{
  --width:100% !important;
  width:100% !important;
  max-width:100% !important;
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--mdc-shadow);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(1rem,2vw,2rem);
  align-items:start;
  padding:clamp(1.5rem,3vw,2.75rem) !important;
}

/* each quote: transparent, so the photograph reads through */
.mdc-reviews-media > .e-con-inner > .e-con > .e-con{
  --width:100% !important;
  width:100% !important;
  max-width:100% !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
}
.mdc-reviews-media .elementor-widget{max-width:100%;}
.mdc-reviews-media .elementor-star-rating{
  display:flex;
  gap:.1em;
  white-space:nowrap;
  margin-bottom:.6rem;
}
.mdc-reviews-media .elementor-widget-text-editor p{
  font-size:.97rem;
  line-height:1.72;
  margin:0;
}
.mdc-reviews-media .elementor-widget-text-editor + .elementor-widget-text-editor p{
  margin-top:.9rem;
  font-style:italic;
  font-weight:600;
}
@media (max-width:1000px){
  .mdc-reviews-media > .e-con-inner > .e-con{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:clamp(1.5rem,3vw,2rem);}
}
@media (max-width:620px){
  .mdc-reviews-media > .e-con-inner > .e-con{grid-template-columns:minmax(0,1fr);}
}
/* fixed attachment is a scroll-jank source on touch devices */
@media (hover:none){
  .mdc-reviews-media > .e-con-inner > .e-con{background-attachment:scroll !important;}
}
/* =========================================================================
   30. Section fields - final rhythm
   One continuous cream band across the long-form block, wider pale-blue
   fields between, mirroring the home page.
   ========================================================================= */
.mdc-page-head.e-con,
.mdc-lead.e-con,
.mdc-section-head.e-con,
.mdc-topic-grid.e-con,
.mdc-contact.e-con{background-color:var(--mdc-cream);}

.mdc-section-head--tight.e-con,
.mdc-prose.e-con,
.mdc-teamgrid.e-con,
.mdc-locate.e-con,
.mdc-feature.e-con{background-color:var(--mdc-white);}

.mdc-media-cta.e-con,
.mdc-reviewcards.e-con,
.mdc-newsletter.e-con,
.mdc-feature--alt.e-con{background-color:var(--mdc-blue-050);}

.mdc-trust.e-con{background-color:var(--mdc-blue-800);}

/* collapse the seam where two same-coloured bands meet */
.mdc-lead.e-con{--padding-bottom:clamp(1rem,2vw,1.75rem);}
.mdc-lead + .mdc-section-head.e-con{--padding-top:clamp(1.25rem,2.5vw,2rem);}
.mdc-section-head + .mdc-topic-grid.e-con{--padding-top:clamp(1.25rem,2.5vw,2rem);}
/* =========================================================================
   31. Header - lighter, calmer, clearer hierarchy
   Structure, links, dropdowns and mobile menu are untouched.
   ========================================================================= */

.main-navigation .primary-menu-container > ul > li.menu-item > a{
  font-weight:600;
  font-size:1rem;
  letter-spacing:.004em;
  padding-top:2.1em;
  padding-bottom:2.1em;
  transition:opacity .18s var(--mdc-ease);
}
.main-navigation .primary-menu-container > ul > li.menu-item > a::before{bottom:1.75em;}

/* utility phone reads as a quiet outlined pill */
.site-header .header-contact-wrap .contact-button{
  border:1.5px solid rgba(255,255,255,.34);
  padding:.55em 1.1em;
  transition:border-color .18s var(--mdc-ease), background-color .18s var(--mdc-ease);
}
.site-header .header-contact-wrap .contact-button:hover{
  opacity:1;
  border-color:rgba(255,255,255,.75);
  background:rgba(255,255,255,.09);
}
.site-header .header-contact-wrap .contact-label{
  font-weight:700;
  letter-spacing:.01em;
}

/* primary action mirrors the hero button */
.site-header .header-button-wrap .button.header-button{
  background-color:var(--mdc-white);
  color:var(--mdc-blue-800);
  border:0;
}
.site-header .header-button-wrap .button.header-button:hover{
  background-color:var(--mdc-blue-100);
  color:var(--mdc-blue-800);
}

/* dropdowns: softer surface, roomier hit areas */
.main-navigation .sub-menu{
  border-radius:var(--radius-sm);
  overflow:hidden;
  box-shadow:0 24px 48px -24px rgba(11,30,58,.55);
  border:1px solid rgba(11,30,58,.08);
  padding-block:.4rem;
}
.main-navigation .sub-menu li a{
  padding-block:.7em;
  min-height:44px;
  display:flex;
  align-items:center;
  transition:background-color .16s var(--mdc-ease);
}

/* hairline under the bar so it reads as a distinct layer */
#masthead .site-main-header-wrap{box-shadow:inset 0 -1px 0 rgba(255,255,255,.14);}

/* =========================================================================
   32. Footer
   Four honest columns - brand, contact, resources, recent posts - closing
   with a credibility strip and a single legal bar.
   ========================================================================= */

/* ---- main band ---------------------------------------------------------- */
.mdc-foot-main.e-con{
  --padding-top:clamp(3.25rem,6vw,5.5rem);
  --padding-bottom:clamp(2.5rem,4.5vw,4rem);
  --padding-left:0px;
  --padding-right:0px;
  background-image:linear-gradient(175deg, #0A6294 0%, #0B4C7E 46%, #0B2246 100%);
}
.mdc-foot-main .e-con{background-color:transparent !important;}
.mdc-foot-main > .e-con-inner{
  max-width:var(--container);
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.mdc-foot-main > .e-con-inner > .e-con,
.mdc-foot-main > .e-con-inner > .e-con > .e-con{
  --width:100% !important;
  width:100% !important;
  max-width:100% !important;
  padding:0 !important;
}

/* the four columns */
.mdc-foot-main > .e-con-inner > .e-con > .e-con{
  display:grid;
  grid-template-columns:1.2fr .95fr .7fr 1.15fr;
  gap:clamp(1.75rem,3.5vw,3.5rem);
  align-items:start;
}
.mdc-foot-main > .e-con-inner > .e-con > .e-con > .e-con{
  --width:100% !important;
  width:100% !important;
  max-width:100% !important;
  padding:0 !important;
  margin:0 !important;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.75rem;
}

/* column headings */
.mdc-foot-main .elementor-heading-title{
  font-family:var(--font-display) !important;
  font-weight:400;
  font-size:clamp(1.18rem,.5vw + 1.05rem,1.4rem);
  line-height:1.2;
  letter-spacing:-.006em;
  color:#FFFFFF !important;
  margin:0 0 .35rem;
  position:relative;
  padding-bottom:.7rem;
}

/* body copy + links */
.mdc-foot-main,
.mdc-foot-main p,
.mdc-foot-main li,
.mdc-foot-main span{
  font-size:.97rem;
  line-height:1.72;
  color:rgba(255,255,255,.88) !important;
}
.mdc-foot-main p{margin:0;}
.mdc-foot-main a{
  color:rgba(255,255,255,.9) !important;
  text-decoration:none;
  transition:color .16s var(--mdc-ease), border-color .16s var(--mdc-ease);
}
.mdc-foot-main a:hover{color:#fff !important;text-decoration:underline;text-underline-offset:.22em;}
.mdc-foot-main a:focus-visible{
  outline:3px solid #fff;
  outline-offset:3px;
  border-radius:3px;
  border-bottom-color:transparent;
}

/* brand column */
.mdc-foot-main .elementor-widget-theme-site-logo img,
.mdc-foot-main .elementor-widget-image img{
  max-width:210px;
  width:100%;
  height:auto;
}
.mdc-foot-main .elementor-widget-theme-site-logo a{border-bottom:0;}

/* contact list */
.mdc-foot-main .elementor-icon-list-items{display:grid;gap:.55rem;}
.mdc-foot-main .elementor-icon-list-item{
  margin:0;
  align-items:flex-start;
}
.mdc-foot-main .elementor-icon-list-item > a,
.mdc-foot-main .elementor-icon-list-item > span{
  min-height:32px;
  display:flex;
  align-items:center;
  gap:.6em;
}
.mdc-foot-main .elementor-icon-list-icon svg,
.mdc-foot-main .elementor-icon-list-icon i{
  color:var(--mdc-sky) !important;
  fill:var(--mdc-sky) !important;
}

/* social */
.mdc-foot-main .elementor-social-icon{
  width:42px;
  height:42px;
  border-radius:50%;
  background-color:rgba(255,255,255,.12) !important;
  transition:transform .18s var(--mdc-ease), background-color .18s var(--mdc-ease);
}
.mdc-foot-main .elementor-social-icon:hover{
  transform:translateY(-3px);
  background-color:rgba(255,255,255,.24) !important;
}
.mdc-foot-main .elementor-social-icon i,
.mdc-foot-main .elementor-social-icon svg{color:#fff;fill:#fff;}

/* recent posts */
.mdc-foot-main .elementor-posts .elementor-post{
  margin-bottom:1.15rem;
}
.mdc-foot-main .elementor-post__thumbnail{border-radius:var(--radius-sm);overflow:hidden;}
.mdc-foot-main .elementor-post__title,
.mdc-foot-main .elementor-post__title a{
  font-size:.97rem !important;
  font-weight:600;
  line-height:1.45;
  color:#fff !important;
  border-bottom:0;
}
.mdc-foot-main .elementor-post__title a:hover{text-decoration:underline;text-underline-offset:.2em;}
.mdc-foot-main .elementor-post__read-more{
  border-bottom:0;
  font-weight:700;
  font-size:.9rem;
}
.mdc-foot-main .elementor-button,
.mdc-foot-main .elementor-posts-nav .page-load-status,
.mdc-foot-main .e-load-more-anchor + *,
.mdc-foot-main a.elementor-button-link{
  border-radius:var(--radius-pill);
  border:1.5px solid rgba(255,255,255,.55);
  padding:.7em 1.6em;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  font-weight:700;
  background:transparent;
}

@media (max-width:1000px){
  .mdc-foot-main > .e-con-inner > .e-con > .e-con{grid-template-columns:1fr 1fr;row-gap:2.5rem;}
}
@media (max-width:620px){
  .mdc-foot-main > .e-con-inner > .e-con > .e-con{grid-template-columns:1fr;row-gap:2.25rem;}
}
/* ---- credibility strip -------------------------------------------------- */
.mdc-foot-trust.e-con{
  --padding-top:clamp(2.25rem,4vw,3.25rem);
  --padding-bottom:clamp(2.25rem,4vw,3.25rem);
  --padding-left:0px;
  --padding-right:0px;
  background-color:var(--mdc-white);
}
.mdc-foot-trust > .e-con-inner{
  max-width:var(--container);
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:clamp(2rem,6vw,5rem);
}
.mdc-foot-trust > .e-con-inner > .e-con{
  --width:auto !important;
  width:auto !important;
  max-width:none !important;
  flex:0 0 auto;
  padding:0 !important;
  margin:0 !important;
}
.mdc-foot-trust img{
  max-height:48px;
  width:auto;
  object-fit:contain;
  filter:grayscale(1);
  opacity:.62;
  transition:filter .22s var(--mdc-ease), opacity .22s var(--mdc-ease);
}
.mdc-foot-trust > .e-con-inner:hover img{filter:grayscale(0);opacity:1;}
@media (max-width:560px){
  .mdc-foot-trust > .e-con-inner{gap:1.75rem;}
  .mdc-foot-trust img{max-height:36px;}
}

/* ---- legal bar ---------------------------------------------------------- */
.mdc-foot-note.e-con,
.mdc-foot-legal.e-con{
  --padding-top:0px;
  --padding-bottom:0px;
  --padding-left:0px;
  --padding-right:0px;
  background-color:var(--mdc-blue-050);
}
.mdc-foot-note.e-con{padding-top:1.1rem !important;}
.mdc-foot-legal.e-con{padding-bottom:1.1rem !important;}
.mdc-foot-note > .e-con-inner,
.mdc-foot-legal > .e-con-inner{
  max-width:var(--container);
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.mdc-foot-note .e-con,
.mdc-foot-legal .e-con{
  --width:100% !important;
  width:100% !important;
  padding:0 !important;
  margin:0 !important;
}
.mdc-foot-note p,
.mdc-foot-legal p{
  font-size:.84rem;
  letter-spacing:.02em;
  line-height:1.6;
  color:var(--mdc-muted) !important;
  margin:0;
  text-align:center;
}
.mdc-foot-note a,
.mdc-foot-legal a{color:var(--mdc-blue-700);}

/* the theme leaves an empty legacy section at the very end */
.site-footer .elementor-section:empty,
.site-footer .elementor-top-section > .elementor-container > .elementor-column:empty{
  display:none;
}
/* =========================================================================
   33. Header refinements
   ========================================================================= */
.site-header .site-branding img.custom-logo{
  max-height:52px;
  width:auto;
  height:auto;
}
@media (max-width:1024px){
  .site-header .site-branding img.custom-logo{max-height:42px;}
}

/* a touch of separation once the bar detaches from the top of the page */
#masthead .base-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner{
  backdrop-filter:saturate(1.15);
  box-shadow:0 12px 28px -20px rgba(11,30,58,.75);
}

/* even optical spacing between the three right-hand utilities */
.site-header .site-header-main-section-right > .site-header-item + .site-header-item{
  margin-left:clamp(.6rem,1.2vw,1.25rem);
}

/* current page reads as current */
.main-navigation .primary-menu-container > ul > li.current-menu-item > a,
.main-navigation .primary-menu-container > ul > li.current-menu-ancestor > a{
  opacity:1;
}
.main-navigation .primary-menu-container > ul > li.menu-item > a:hover{opacity:.92;}

/* dropdown items keep a comfortable rhythm without changing their links */
.main-navigation .sub-menu li a:hover{background-color:rgba(6,106,171,.08);}

/* mobile bar: logo, toggle and the booking action all stay reachable */
@media (max-width:1024px){
  .site-mobile-header-wrap .header-button-wrap .button.header-button{
    padding:.7em 1.15em;
    font-size:.9rem;
    min-height:44px;
  }
  .site-mobile-header-wrap .menu-toggle-open{min-width:44px;min-height:44px;}
}
/* =========================================================================
   34. Footer width + line cleanup
   The footer sits on the site's own 1450px rail so it lines up with the
   header and the page content instead of floating in a narrower column.
   ========================================================================= */
:root{--footer-rail:1450px;}

.mdc-foot-main > .e-con-inner,
.mdc-foot-trust > .e-con-inner,
.mdc-foot-note > .e-con-inner,
.mdc-foot-legal > .e-con-inner{
  max-width:var(--footer-rail);
  width:100%;
  margin-inline:auto;
  padding-inline:clamp(1.25rem,3vw,2.5rem);
}

/* wider rail lets the four columns breathe properly */
.mdc-foot-main > .e-con-inner > .e-con > .e-con{
  grid-template-columns:1.25fr 1fr .75fr 1.2fr;
  gap:clamp(2rem,4vw,4.5rem);
}
@media (max-width:1000px){
  .mdc-foot-main > .e-con-inner > .e-con > .e-con{grid-template-columns:1fr 1fr;row-gap:2.5rem;}
}
@media (max-width:620px){
  .mdc-foot-main > .e-con-inner > .e-con > .e-con{grid-template-columns:1fr;row-gap:2.25rem;}
}

/* no stray rules anywhere in the footer */
.mdc-foot-main .e-con,
.mdc-foot-main .elementor-widget,
.mdc-foot-trust .e-con,
.mdc-foot-note .e-con,
.mdc-foot-legal .e-con,
.mdc-foot-note.e-con,
.mdc-foot-legal.e-con,
.mdc-foot-trust.e-con{
  border:0 !important;
}
.mdc-foot-main .elementor-icon-list-item:not(:last-child){border-bottom:0 !important;}
.mdc-foot-main .elementor-divider,
.mdc-foot-main hr{display:none;}

/* headings sit closer to their content now the rule is gone */
.mdc-foot-main .elementor-heading-title{padding-bottom:0;margin-bottom:.85rem;}

/* the credibility strip opens the footer, so give it a clean top edge only */
.mdc-foot-trust.e-con{
  --padding-top:clamp(2.5rem,4.5vw,3.5rem);
  --padding-bottom:clamp(2.5rem,4.5vw,3.5rem);
}
/* =========================================================================
   35. Opening section - brand blue field
   Every page now starts on the same blue as the home page hero. Cream is
   kept for the sections further down.
   ========================================================================= */
.mdc-opening.e-con{
  --padding-top:clamp(3rem,6vw,5.5rem);
  --padding-bottom:clamp(2.75rem,5vw,4.5rem);
  --padding-left:0px;
  --padding-right:0px;
  position:relative;
  overflow:clip;
  background-color:var(--mdc-blue-700) !important;
  background-image:linear-gradient(168deg, #0A6EAE 0%, #0B5488 52%, #103060 100%) !important;
}
.mdc-opening.e-con::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(120% 110% at 88% 0%, rgba(19,37,115,.42) 0%, rgba(19,37,115,0) 62%);
}
.mdc-opening > .e-con-inner{position:relative;z-index:1;}

.mdc-opening .elementor-heading-title{
  color:#FFFFFF !important;
  font-family:var(--font-display) !important;
  font-weight:400;
  letter-spacing:-.016em;
}
.mdc-opening .elementor-widget-text-editor,
.mdc-opening .elementor-widget-text-editor p,
.mdc-opening p,
.mdc-opening li,
.mdc-opening span{color:rgba(255,255,255,.9) !important;}
.mdc-opening a:not(.elementor-button){
  color:#fff !important;
  text-decoration:underline;
  text-underline-offset:.2em;
}
.mdc-opening .elementor-button{
  background-color:var(--mdc-white) !important;
  color:var(--mdc-blue-800) !important;
  fill:var(--mdc-blue-800) !important;
  border-radius:var(--radius-pill);
  min-height:52px;
  padding:.95em 2em;
  display:inline-flex;
  align-items:center;
  gap:.55em;
  font-weight:700;
  transition:transform .18s var(--mdc-ease), background-color .18s var(--mdc-ease);
}
.mdc-opening .elementor-button:hover{
  transform:translateY(-2px);
  background-color:var(--mdc-blue-100) !important;
}

/* the section underneath an opening block starts the cream run */
.mdc-opening + .mdc-feature.e-con,
.mdc-opening + .mdc-prose.e-con,
.mdc-opening + .mdc-lead.e-con{background-color:var(--mdc-cream);}
/* =========================================================================
   36. Footer corrections
   ========================================================================= */

/* brand column: logo sized and aligned to the column, hours and social below */
.mdc-foot-main .elementor-widget-theme-site-logo,
.mdc-foot-main .elementor-widget-theme-site-logo .elementor-widget-container{
  width:100%;
  text-align:left;
  margin:0 0 .35rem;
}
.mdc-foot-main .elementor-widget-theme-site-logo img{
  max-width:230px;
  width:100%;
  height:auto;
  display:block;
  margin:0;
}
.mdc-foot-main > .e-con-inner > .e-con > .e-con > .e-con{
  --width:100% !important;
  width:100% !important;
  max-width:100% !important;
  padding:0 !important;
  margin:0 !important;
}

/* credibility marks: medium, not small */
.mdc-foot-trust img{max-height:74px;}
@media (max-width:900px){ .mdc-foot-trust img{max-height:60px;} }
@media (max-width:560px){ .mdc-foot-trust img{max-height:50px;} }

/* mobile: pair Contact with Resources instead of leaving it stranded */
@media (max-width:620px){
  .mdc-foot-main > .e-con-inner > .e-con > .e-con{
    grid-template-columns:1fr 1fr;
    column-gap:1.5rem;
    row-gap:2.25rem;
  }
  .mdc-foot-main > .e-con-inner > .e-con > .e-con > .e-con:nth-child(1){grid-column:1 / -1;}
  .mdc-foot-main > .e-con-inner > .e-con > .e-con > .e-con:nth-child(2){grid-column:1;}
  .mdc-foot-main > .e-con-inner > .e-con > .e-con > .e-con:nth-child(3){grid-column:2;}
  .mdc-foot-main > .e-con-inner > .e-con > .e-con > .e-con:nth-child(4){grid-column:1 / -1;}
  .mdc-foot-main .elementor-heading-title{font-size:1.12rem;margin-bottom:.65rem;}
  .mdc-foot-main,
  .mdc-foot-main p,
  .mdc-foot-main li,
  .mdc-foot-main span{font-size:.93rem;}
  .mdc-foot-main .elementor-widget-theme-site-logo img{max-width:190px;}
}

/* =========================================================================
   37. Mobile header
   ========================================================================= */
@media (max-width:1024px){
  .site-mobile-header-wrap .header-button-wrap .button.header-button{
    padding:.62em 1.05em !important;
    font-size:.82rem !important;
    line-height:1.15;
    min-height:42px;
    white-space:nowrap;
    border-radius:var(--radius-pill);
  }
  .site-mobile-header-wrap .site-branding img.custom-logo{max-height:38px;}
  .site-mobile-header-wrap .site-header-row{gap:.5rem;}
}
@media (max-width:400px){
  .site-mobile-header-wrap .header-button-wrap .button.header-button{
    padding:.6em .85em !important;
    font-size:.76rem !important;
  }
  .site-mobile-header-wrap .site-branding img.custom-logo{max-height:32px;}
}

/* =========================================================================
   38. Menu typography - the editorial face, as used across the pages
   ========================================================================= */
.main-navigation .primary-menu-container > ul > li.menu-item > a,
.mobile-navigation .menu-item > a,
.site-header .header-menu-container ul li a{
  font-family:var(--font-display);
  font-weight:500;
  font-size:1.12rem;
  letter-spacing:.002em;
}
.main-navigation .sub-menu li a{
  font-family:var(--font-sans);
  font-weight:500;
  font-size:.97rem;
  letter-spacing:.004em;
}
.site-header .header-contact-wrap .contact-label,
.site-header .header-button-wrap .button.header-button{
  font-family:var(--font-sans);
}
/* mobile drawer uses its own container class */
.mobile-menu-container > ul > li.menu-item > a{
  font-family:var(--font-display);
  font-weight:500;
  font-size:1.15rem;
  letter-spacing:.002em;
}
.mobile-menu-container .sub-menu li a{
  font-family:var(--font-sans);
  font-weight:500;
  font-size:.98rem;
}
.mobile-menu-container li a{min-height:48px;display:flex;align-items:center;}
/* =========================================================================
   39. Header field - deep navy
   The theme paints #masthead at ID specificity, so this needs to match it.
   ========================================================================= */
#masthead,
#masthead .base-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner,
#masthead .site-main-header-wrap,
#masthead .site-mobile-header-wrap{
  background:#0B2246 !important;
}
#masthead .site-main-header-wrap{box-shadow:inset 0 -1px 0 rgba(255,255,255,.10);}
.popup-drawer .drawer-inner{background:#0B2246;}
.popup-drawer .drawer-inner,
.popup-drawer .drawer-inner a,
.popup-drawer .drawer-inner button{color:#fff;}

/* =========================================================================
   40. Opening section type - white throughout
   These widgets carry no colour of their own, so they inherit the theme's
   grey. Set the whole subtree rather than chasing individual widgets.
   ========================================================================= */
.mdc-opening,
.mdc-opening h1, .mdc-opening h2, .mdc-opening h3,
.mdc-opening h4, .mdc-opening h5, .mdc-opening h6,
.mdc-opening p, .mdc-opening li, .mdc-opening span,
.mdc-opening strong, .mdc-opening em, .mdc-opening div,
.mdc-opening .elementor-heading-title,
.mdc-opening .elementor-widget-text-editor,
.mdc-opening .elementor-widget-container{
  color:#FFFFFF !important;
}
.mdc-opening p,
.mdc-opening li{color:rgba(255,255,255,.92) !important;}
.mdc-opening a:not(.elementor-button){
  color:#FFFFFF !important;
  text-decoration:underline;
  text-underline-offset:.2em;
}
.mdc-opening .elementor-button,
.mdc-opening .elementor-button *{
  color:var(--mdc-blue-800) !important;
  fill:var(--mdc-blue-800) !important;
}

/* =========================================================================
   41. Trust strip - navy field, white marks
   #7A7A7A is Elementor's "text" system colour leaking in at element-id
   specificity; these few properties have to be forced.
   ========================================================================= */
.mdc-trust.e-con{
  background-color:var(--mdc-blue-800) !important;
  background-image:none !important;
}
.mdc-trust,
.mdc-trust h1, .mdc-trust h2, .mdc-trust h3,
.mdc-trust h4, .mdc-trust h5, .mdc-trust h6,
.mdc-trust p, .mdc-trust span, .mdc-trust div,
.mdc-trust .elementor-heading-title{
  color:#FFFFFF !important;
}
.mdc-trust .elementor-icon,
.mdc-trust .elementor-icon i,
.mdc-trust .elementor-icon svg,
.mdc-trust svg{
  color:#FFFFFF !important;
  fill:#FFFFFF !important;
}