
/* Sticky-follow effect for Marisa photo in About section */

.elementor-element-cc9cce5,
.marisa-sticky-photo-col {
  overflow: visible !important;
  align-self: flex-start !important;
}
.marisa-sticky-photo-col .elementor-widget-wrap,
.marisa-sticky-photo-col .elementor-widget-genix-image,
.marisa-sticky-photo-col .about-img-wrap {
  overflow: visible !important;
}
.marisa-sticky-photo-col .elementor-widget-container {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 120px !important;
  z-index: 2;
}
@media (max-width: 767px) {
  .marisa-sticky-photo-col .elementor-widget-container {
    position: static !important;
  }
}



/* Make Marisa photo exactly match the height of the bio text column */
.marisa-sticky-photo-col {
  display: flex !important;
  align-self: stretch !important;
}
.marisa-sticky-photo-col .elementor-widget-wrap,
.marisa-sticky-photo-col .elementor-widget-genix-image,
.marisa-sticky-photo-col .elementor-widget-container,
.marisa-sticky-photo-col .about-img-wrap {
  width: 100%;
  height: 100%;
}
.marisa-sticky-photo-col .about-img-wrap img.main-img,
.marisa-sticky-photo-col img.main-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top;
}

/* Hero-style gradient heading for .HelloText */
.HelloText .elementor-heading-title {
  font-size: 64px !important;
  font-weight: 700 !important;
  line-height: 1.05 !important;
  font-family: 'Montserrat', sans-serif !important;
  color: #241934 !important;
}
@media (max-width: 767px) {
  .HelloText .elementor-heading-title { font-size: 40px !important; }
}
/* Blurred gradient blobs clustered at the top of the page, fading out by the features heading */
main, .elementor, .elementor-73 { position: relative; }
main::before {
  content: "";
  position: absolute;
  top: -100px;
  left: -100px;
  width: calc(100% + 200px);
  height: 1680px;
  background:
    radial-gradient(circle at 15% 10%, #CDB6E8 0%, transparent 40%),
    radial-gradient(circle at 80% 5%, #E6D6F3 0%, transparent 38%),
    radial-gradient(circle at 50% 30%, #D9C6F0 0%, transparent 45%),
    radial-gradient(circle at 20% 55%, #E6D6F3 0%, transparent 35%),
    radial-gradient(circle at 85% 50%, #D9C6F0 0%, transparent 35%),
    radial-gradient(circle at 50% 78%, #EFE4F7 0%, transparent 40%);
  filter: blur(90px);
  z-index: 0;
  pointer-events: none;
}
main > * {
  position: relative;
  z-index: 1;
}
/* Services images: uniform square, edge-to-middle-of-screen */
.elementor-element-df1d235, .elementor-element-420e73c, .elementor-element-c8608cc {
  width: 50vw !important;
  max-width: 50vw !important;
  flex: 0 0 50vw !important;
  padding: 0 !important;
}
.elementor-element-df1d235 img, .elementor-element-420e73c img, .elementor-element-c8608cc img {
  width: 50vw !important;
  height: 50vw !important;
  object-fit: cover !important;
  display: block;
}
.elementor-element-420e73c img {
  filter: grayscale(100%) sepia(35%) hue-rotate(220deg) saturate(280%) brightness(1.05);
}
@media (max-width: 767px) {
  .elementor-element-df1d235, .elementor-element-420e73c, .elementor-element-c8608cc, .elementor-element-df1d235 img, .elementor-element-420e73c img, .elementor-element-c8608cc img { width: 100vw !important; max-width: 100vw !important; height: 100vw !important; flex: 0 0 100vw !important; }
}
/* Services text column backgrounds: light grey, applied directly since Elementor column bg-color is not rendering natively here */
.elementor-element-2d36971, .elementor-element-08a703e, .elementor-element-b520ef1 {
  background-color: #E9E9E9 !important;
}
/* How We Care For You - blob card services design */
.elementor-element-4359b46 { background-color: #F2F1F5 !important; }
.elementor-element-28507cb {
  background-color: #FFFFFF !important;
  border-radius: 32px !important;
  box-shadow: 0 20px 60px rgba(91,62,140,0.12) !important;
  max-width: 1100px;
  margin: 0 auto;
}
.elementor-element-12fbc4d, .elementor-element-3dbc8f9, .elementor-element-9329c1a {
  background: linear-gradient(135deg, #E3D6F5 0%, #C7ADE8 100%) !important;
  border-radius: 30% 70% 65% 35% / 55% 40% 60% 45% !important;
  padding: 40px !important;
  position: relative;
  overflow: visible !important;
}
.elementor-element-1b8efa5 img, .elementor-element-521a938 img, .elementor-element-856a1a0 img {
  width: 100% !important;
  height: 340px !important;
  object-fit: cover !important;
  border-radius: 55% 45% 35% 65% / 45% 60% 40% 55% !important;
  display: block;
  box-shadow: 0 12px 40px rgba(36,25,52,0.18);
}
.elementor-element-28507cb .elementor-button {
  background-color: #5B3E8C !important;
  color: #FFFFFF !important;
  border-radius: 10px !important;
  padding: 14px 28px !important;
  font-weight: 600 !important;
}
@media (max-width: 767px) {
  .elementor-element-28507cb { padding: 24px !important; }
  .elementor-element-1b8efa5 img, .elementor-element-521a938 img, .elementor-element-856a1a0 img { height: 260px !important; }
}
/* How We Care For You - precise rebuild from Claude Design spec */
.elementor-element-c3e5532 { background-color: #FFFFFF !important; }
.elementor-element-60af93f { padding: 20px 0 !important; }
.elementor-element-60af93f h2.elementor-heading-title { font-size: 38px !important; font-weight: 800 !important; color: #16181d !important; }
.elementor-element-1d8bdb0 { min-height: 300px !important; overflow: hidden !important; display: flex !important; align-items: center !important; }
.elementor-element-1d8bdb0 { border-radius: 999px 0 0 999px !important; background: linear-gradient(90deg, #E3D6F5 0%, #FFFFFF 68%) !important; }
.elementor-element-3096e8d { min-height: 300px !important; overflow: hidden !important; display: flex !important; align-items: center !important; }
.elementor-element-3096e8d { border-radius: 0 999px 999px 0 !important; background: linear-gradient(270deg, #E3D6F5 0%, #FFFFFF 68%) !important; }
.elementor-element-4135266 { min-height: 300px !important; overflow: hidden !important; display: flex !important; align-items: center !important; }
.elementor-element-4135266 { border-radius: 999px 0 0 999px !important; background: linear-gradient(90deg, #E3D6F5 0%, #FFFFFF 68%) !important; }
.elementor-element-4512fde { width: 300px !important; max-width: 300px !important; flex: 0 0 300px !important; padding: 6px !important; }
.elementor-element-3640583 { width: 300px !important; max-width: 300px !important; flex: 0 0 300px !important; padding: 6px !important; }
.elementor-element-17c848a { width: 300px !important; max-width: 300px !important; flex: 0 0 300px !important; padding: 6px !important; }
.elementor-element-0f837b9 img { width: 300px !important; height: 300px !important; border-radius: 50% !important; object-fit: cover !important; display: block; }
.elementor-element-ce2c3d0 img { width: 300px !important; height: 300px !important; border-radius: 50% !important; object-fit: cover !important; display: block; }
.elementor-element-4bc4174 img { width: 300px !important; height: 300px !important; border-radius: 50% !important; object-fit: cover !important; display: block; }
.elementor-element-e236081 { padding: 0 64px 0 56px !important; }
.elementor-element-e236081 h2.elementor-heading-title { font-size: 24px !important; font-weight: 700 !important; color: #16181d !important; }
.elementor-element-e236081 .elementor-widget-text-editor p { font-size: 15px !important; line-height: 1.7 !important; color: #4d5057 !important; max-width: 460px; }
.elementor-element-e236081 .elementor-button { background-color: #5B3E8C !important; color: #FFFFFF !important; font-size: 14px !important; font-weight: 600 !important; padding: 12px 24px !important; border-radius: 8px !important; }
.elementor-element-7243375 { padding: 0 64px 0 56px !important; }
.elementor-element-7243375 h2.elementor-heading-title { font-size: 24px !important; font-weight: 700 !important; color: #16181d !important; }
.elementor-element-7243375 .elementor-widget-text-editor p { font-size: 15px !important; line-height: 1.7 !important; color: #4d5057 !important; max-width: 460px; }
.elementor-element-7243375 .elementor-button { background-color: #5B3E8C !important; color: #FFFFFF !important; font-size: 14px !important; font-weight: 600 !important; padding: 12px 24px !important; border-radius: 8px !important; }
.elementor-element-72afe18 { padding: 0 64px 0 56px !important; }
.elementor-element-72afe18 h2.elementor-heading-title { font-size: 24px !important; font-weight: 700 !important; color: #16181d !important; }
.elementor-element-72afe18 .elementor-widget-text-editor p { font-size: 15px !important; line-height: 1.7 !important; color: #4d5057 !important; max-width: 460px; }
.elementor-element-72afe18 .elementor-button { background-color: #5B3E8C !important; color: #FFFFFF !important; font-size: 14px !important; font-weight: 600 !important; padding: 12px 24px !important; border-radius: 8px !important; }
@media (max-width: 900px) {
  .elementor-element-60af93f { padding: 32px 24px !important; }
  .elementor-element-1d8bdb0 { flex-direction: column !important; border-radius: 24px !important; background: #E3D6F5 !important; padding: 24px !important; min-height: auto !important; }
  .elementor-element-3096e8d { flex-direction: column !important; border-radius: 24px !important; background: #E3D6F5 !important; padding: 24px !important; min-height: auto !important; }
  .elementor-element-4135266 { flex-direction: column !important; border-radius: 24px !important; background: #E3D6F5 !important; padding: 24px !important; min-height: auto !important; }
  .elementor-element-e236081 { padding: 24px 8px !important; text-align: center; }
  .elementor-element-7243375 { padding: 24px 8px !important; text-align: center; }
  .elementor-element-72afe18 { padding: 24px 8px !important; text-align: center; }
}
/* Fix: force true 300x300 circle, box-sizing correction */
.elementor-element-4512fde { box-sizing: content-box !important; }
.elementor-element-4512fde .elementor-widget-wrap { width: 300px !important; height: 300px !important; }
.elementor-element-3640583 { box-sizing: content-box !important; }
.elementor-element-3640583 .elementor-widget-wrap { width: 300px !important; height: 300px !important; }
.elementor-element-17c848a { box-sizing: content-box !important; }
.elementor-element-17c848a .elementor-widget-wrap { width: 300px !important; height: 300px !important; }
.elementor-element-0f837b9, .elementor-element-0f837b9 .elementor-widget-container { width: 300px !important; height: 300px !important; }
.elementor-element-0f837b9 img { width: 300px !important; height: 300px !important; min-width: 300px !important; box-sizing: border-box !important; }
.elementor-element-ce2c3d0, .elementor-element-ce2c3d0 .elementor-widget-container { width: 300px !important; height: 300px !important; }
.elementor-element-ce2c3d0 img { width: 300px !important; height: 300px !important; min-width: 300px !important; box-sizing: border-box !important; }
.elementor-element-4bc4174, .elementor-element-4bc4174 .elementor-widget-container { width: 300px !important; height: 300px !important; }
.elementor-element-4bc4174 img { width: 300px !important; height: 300px !important; min-width: 300px !important; box-sizing: border-box !important; }
/* Fix: make text column grow to fill remaining row space, anchor image to its edge */
.elementor-element-e236081 { flex: 1 1 auto !important; width: auto !important; max-width: none !important; }
.elementor-element-7243375 { flex: 1 1 auto !important; width: auto !important; max-width: none !important; }
.elementor-element-72afe18 { flex: 1 1 auto !important; width: auto !important; max-width: none !important; }
.elementor-element-4512fde { flex: 0 0 300px !important; }
.elementor-element-3640583 { flex: 0 0 300px !important; }
.elementor-element-17c848a { flex: 0 0 300px !important; }
.elementor-element-3096e8d { justify-content: space-between !important; }
.elementor-element-1d8bdb0, .elementor-element-4135266 { justify-content: flex-start !important; }
/* Fix: eliminate inconsistent column-gap so all 3 rows have identical 6px edge spacing */
.elementor-element-1d8bdb0 { gap: 0 !important; justify-content: flex-start !important; }
.elementor-element-3096e8d { gap: 0 !important; justify-content: flex-start !important; }
.elementor-element-4135266 { gap: 0 !important; justify-content: flex-start !important; }
/* Fix: eliminate inherited float/margin causing 10px off-center shift in image-left rows */
.elementor-element-0f837b9 img { margin: 0 !important; float: none !important; left: auto !important; right: auto !important; position: static !important; }
.elementor-element-0f837b9 .elementor-widget-container { margin: 0 !important; float: none !important; text-align: left !important; }
.elementor-element-ce2c3d0 img { margin: 0 !important; float: none !important; left: auto !important; right: auto !important; position: static !important; }
.elementor-element-ce2c3d0 .elementor-widget-container { margin: 0 !important; float: none !important; text-align: left !important; }
.elementor-element-4bc4174 img { margin: 0 !important; float: none !important; left: auto !important; right: auto !important; position: static !important; }
.elementor-element-4bc4174 .elementor-widget-container { margin: 0 !important; float: none !important; text-align: left !important; }

/* Fix: center the arrow icons between cards in 'Your Dental Hygiene Treatment In Five Simple Steps'. The icon (24px) is wider than its narrow column's content box (10px), and text-align:center on .elementor-icon-wrapper was not symmetrically overflowing it - the icon was flush against the left edge, appearing shifted right of the true gap centre. Switching the wrapper to a centered flexbox fixes it regardless of overflow. */
.elementor-element-de5ce7a .elementor-icon-wrapper,
.elementor-element-06fe98b .elementor-icon-wrapper,
.elementor-element-cad5377 .elementor-icon-wrapper,
.elementor-element-f198f08 .elementor-icon-wrapper {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
}

/* Unify all heading typography (font-family, weight, color) on the homepage to match the 'Qualified, Registered Care' heading style. Font sizes are left untouched so each heading level keeps its own existing scale. */
body.page-id-11 h1,
body.page-id-11 h2,
body.page-id-11 h3,
body.page-id-11 h4,
body.page-id-11 h5,
body.page-id-11 h6 {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 600 !important;
  color: #16181D !important;
}

/* These two headings had earlier per-widget Custom CSS (font-weight:700 !important) with higher specificity than the site-wide heading rule above, so they need a more specific override to actually pick up the unified weight/color */
body.page-id-11 .elementor-element-caa23f5 .elementor-heading-title,
body.page-id-11 .HelloText .elementor-heading-title {
  font-weight: 600 !important;
  color: #16181D !important;
}

/* Make 'Why Choose Me...', 'Discover My Services', and 'Your Dental Hygiene Treatment In Five Simple Steps' match the full size/style of 'Qualified, Registered Care' (44px / line-height 48.4px / letter-spacing -0.44px). Font-family/weight/color already unified by the earlier homepage heading rule. */
body.page-id-11 .elementor-element-f55de17 .elementor-heading-title,
body.page-id-11 .elementor-element-65b59c2 .elementor-heading-title {
  font-size: 44px !important;
  line-height: 48.4px !important;
  letter-spacing: -0.44px !important;
  white-space: normal !important;
}

/* 'Your Dental Hygiene Treatment In Five Simple Steps' - reduced to 40px with 20px bottom padding */
body.page-id-11 .elementor-element-caa23f5 .elementor-heading-title {
  font-size: 40px !important;
  line-height: 44px !important;
  letter-spacing: -0.4px !important;
  white-space: normal !important;
  padding-bottom: 20px !important;
}

/* Match the 'Discover My Services' image size and border radius to the 'Qualified, Registered Care' image (550x366px, 24px rounded corners) */
body.page-id-11 .elementor-element-9384d02 img {
  width: 550px !important;
  max-width: 100% !important;
  height: 366px !important;
  border-radius: 24px !important;
  object-fit: cover !important;
}

/* Shrink the 'Hi! I'm Marisa' portrait photo ~30% for a more balanced, professional layout */
.elementor-element-cc9cce5 .testimonial-img > img {
  width: 70% !important;
  height: auto !important;
}
.elementor-element-cc9cce5 .review-wrap {
  max-width: 126px !important;
  padding: 14px 17px !important;
  left: -18px !important;
}
.elementor-element-cc9cce5 .review-wrap .content p {
  font-size: 11px !important;
}

/* Give the client review/testimonial cards the same look as the FAQ answer card: white background, 24px rounded corners, soft purple-tinted shadow, no solid-fill border, dark Montserrat text instead of white-on-purple */
.elementor-element-6121b7a,
.elementor-element-98f6157,
.elementor-element-c7d7caf,
.elementor-element-e3af0c1 {
  background: #FFFFFF !important;
  border-radius: 24px !important;
  box-shadow: 0 12px 30px rgba(91, 62, 140, 0.1) !important;
  padding: 44px 48px !important;
}
.elementor-element-6121b7a .elementor-widget-text-editor p,
.elementor-element-98f6157 .elementor-widget-text-editor p,
.elementor-element-c7d7caf .elementor-widget-text-editor p,
.elementor-element-e3af0c1 .elementor-widget-text-editor p {
  color: #334770 !important;
}
.elementor-element-6121b7a .elementor-heading-title,
.elementor-element-98f6157 .elementor-heading-title,
.elementor-element-c7d7caf .elementor-heading-title,
.elementor-element-e3af0c1 .elementor-heading-title {
  color: #16181D !important;
}
.elementor-element-6121b7a span.elementor-heading-title,
.elementor-element-98f6157 span.elementor-heading-title,
.elementor-element-c7d7caf span.elementor-heading-title,
.elementor-element-e3af0c1 span.elementor-heading-title {
  color: #5B3E8C !important;
}

/* The previous review-card background/radius override lost to Elementor's higher-specificity generated rule (.elementor-11 .elementor-element.elementor-element-XXXX); matching that selector prefix here so it actually wins */
.elementor-11 .elementor-element.elementor-element-6121b7a,
.elementor-11 .elementor-element.elementor-element-98f6157,
.elementor-11 .elementor-element.elementor-element-c7d7caf,
.elementor-11 .elementor-element.elementor-element-e3af0c1 {
  background: #FFFFFF !important;
  border-radius: 24px !important;
  box-shadow: 0 12px 30px rgba(91, 62, 140, 0.1) !important;
}

/* Remove top page gap above hero (page 11 only) */
body.page-id-11 .tg-page-area { padding-top: 0 !important; }

/* Remove gradient background from 'Hi I'm Marisa' section */
body.page-id-11 .elementor-11 .elementor-element.elementor-element-4e36c7c {
  background: linear-gradient(180deg,#F4F0FA 0%,#F4F0FA 8%,#FFFFFF 20%) !important;
  background-image: linear-gradient(180deg,#F4F0FA 0%,#F4F0FA 8%,#FFFFFF 20%) !important;
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  box-sizing: border-box !important;
}
body.page-id-11 .elementor-11 .elementor-element.elementor-element-4e36c7c > .elementor-container {
  max-width: 1140px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
}

/* Let the section's gradient show through its inner column/container/widget wrappers */
body.page-id-11 .elementor-11 .elementor-element.elementor-element-4e36c7c > .elementor-container,
body.page-id-11 .elementor-11 .elementor-element.elementor-element-cc9cce5,
body.page-id-11 .elementor-11 .elementor-element.elementor-element-918ac57 { background: transparent !important; background-image: none !important; }

/* Cover any gap/seam areas between sections with plain white */
body.page-id-11 .elementor-11,
body.page-id-11 .tp-page-post,
body.page-id-11 .tg-page-content,
body.page-id-11 .tg-page-area,
body.page-id-11 .container,
body.page-id-11 .row,
body.page-id-11 .col-xl-12 { background: #FFFFFF !important; background-image: none !important; }
body.page-id-11 { background: #FFFFFF !important; }


/* Eyebrow pill unification: My Location label (theme sub-title widget) */
.elementor-element-65360ae .sub-title {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: rgba(21,26,46,0.45) !important;
  background: rgba(21,26,46,0.04) !important;
  border: 1px solid rgba(21,26,46,0.12) !important;
  border-radius: 999px !important;
  padding: 6px 14px !important;
}
