/* Shared Este brand mark sizing for the static Folixa export. */
img[src*="assets/este-logo.svg"],
img[srcset*="assets/este-logo.svg"] {
  display: block;
  height: auto !important;
  max-width: none !important;
  object-fit: contain;
}

/* Este's green logo gradient is the shared palette for every interactive
   component in the locally exported site. */
:root {
  --este-green: #038a32;
  --este-green-deep: #0c591c;
  --este-green-soft: #e8f4ea;
  --este-green-border: #b9ddc0;
  --este-lime: #038a32;
  --este-ink: #081d10;
}

/* These variables feed the existing Elementor controls, links and states. */
.elementor-kit-6 {
  --e-global-color-primary: var(--este-green);
  /* Large layout surfaces stay neutral; green is reserved for the brand and
     for actions instead of becoming a full-page background colour. */
  --e-global-color-accent: #f8fafc;
  --e-global-color-e5665f6: var(--este-green-deep);
  --e-global-color-c7e169d: #f8fafc;
  --e-global-color-ef3ace8: #e5e7eb;
}

/* Primary actions deliberately use the same two greens as the logo. */
.elementor-kit-6 .elementor-button,
.elementor-kit-6 button,
.elementor-kit-6 input[type="button"],
.elementor-kit-6 input[type="submit"],
.elementor-kit-6 .metform-btn,
.elementor-kit-6 .jkit-pagination-button,
.elementor-kit-6 .elementskit-menu-hamburger {
  background: linear-gradient(105deg, var(--este-green) 0%, var(--este-green-deep) 100%) !important;
  border-color: var(--este-green-deep) !important;
  color: #fff !important;
}

.elementor-kit-6 .elementor-button:hover,
.elementor-kit-6 .elementor-button:focus,
.elementor-kit-6 button:hover,
.elementor-kit-6 button:focus,
.elementor-kit-6 input[type="button"]:hover,
.elementor-kit-6 input[type="button"]:focus,
.elementor-kit-6 input[type="submit"]:hover,
.elementor-kit-6 input[type="submit"]:focus,
.elementor-kit-6 .metform-btn:hover,
.elementor-kit-6 .metform-btn:focus,
.elementor-kit-6 .jkit-pagination-button:hover,
.elementor-kit-6 .jkit-pagination-button:focus,
.elementor-kit-6 .elementskit-menu-hamburger:hover,
.elementor-kit-6 .elementskit-menu-hamburger:focus {
  background: linear-gradient(105deg, var(--este-green-deep) 0%, var(--este-green) 100%) !important;
  border-color: var(--este-green) !important;
  color: #fff !important;
}

/* Short, deliberate feedback replaces the template's bouncy stock effects. */
.elementor-kit-6 .elementor-button,
.elementor-kit-6 button,
.elementor-kit-6 input[type="button"],
.elementor-kit-6 input[type="submit"],
.elementor-kit-6 .metform-btn,
.elementor-kit-6 .jkit-pagination-button,
.elementor-kit-6 .elementskit-menu-hamburger {
  box-shadow: 0 6px 16px rgba(12, 89, 28, 0.16);
  transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease !important;
}

.elementor-kit-6 .elementor-button:hover,
.elementor-kit-6 .elementor-button:focus,
.elementor-kit-6 button:hover,
.elementor-kit-6 button:focus,
.elementor-kit-6 input[type="button"]:hover,
.elementor-kit-6 input[type="button"]:focus,
.elementor-kit-6 input[type="submit"]:hover,
.elementor-kit-6 input[type="submit"]:focus,
.elementor-kit-6 .metform-btn:hover,
.elementor-kit-6 .metform-btn:focus,
.elementor-kit-6 .jkit-pagination-button:hover,
.elementor-kit-6 .jkit-pagination-button:focus,
.elementor-kit-6 .elementskit-menu-hamburger:hover,
.elementor-kit-6 .elementskit-menu-hamburger:focus {
  animation: none !important;
  box-shadow: 0 10px 24px rgba(12, 89, 28, 0.24);
  transform: translateY(-2px);
}

.elementor-kit-6 .elementor-button svg,
.elementor-kit-6 .elementor-button:hover svg,
.elementor-kit-6 .elementor-button:focus svg,
.elementor-kit-6 .elementskit-menu-hamburger > .ekit-menu-icon {
  fill: currentColor !important;
  color: currentColor !important;
}

/* Text actions, selected controls and decorative service icons use the same
   brand family without turning body copy into a coloured surface. */
.elementor-kit-6 main a:not(.elementor-button):not(.jkit-pagination-button),
.elementor-kit-6 .elementor-widget-icon-box .elementor-icon,
.elementor-kit-6 .elementor-widget-icon-list .elementor-icon,
.elementor-kit-6 .elementor-widget-icon-list .elementor-icon i,
.elementor-kit-6 .elementor-widget-icon-list .elementor-icon svg,
.elementor-kit-6 .elementor-widget-social-icons .elementor-social-icon,
.elementor-kit-6 .e-n-accordion-item[open] .e-n-accordion-item-title,
.elementor-kit-6 .e-n-accordion-item-title[aria-expanded="true"] {
  color: var(--este-green-deep) !important;
}

.elementor-kit-6 .elementor-widget-icon-box .elementor-icon svg,
.elementor-kit-6 .elementor-widget-icon-list .elementor-icon svg {
  fill: currentColor !important;
}

.elementor-kit-6 input:focus,
.elementor-kit-6 textarea:focus,
.elementor-kit-6 select:focus {
  border-color: var(--este-green) !important;
  box-shadow: 0 0 0 3px rgba(3, 138, 50, 0.18) !important;
  outline: 0;
}

/* One lightweight, viewport-aware reveal animation is used everywhere rather
   than stacking multiple Elementor keyframes on nested containers. */
.este-reveal {
  visibility: visible !important;
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition: opacity 600ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--este-reveal-delay, 0ms);
  will-change: opacity, transform;
}

.este-reveal.animated {
  animation: none !important;
}

.este-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  will-change: auto;
}

.elementor-kit-6 .e-transform,
.elementor-kit-6 .jeg-elementor-kit.jkit-postblock article {
  transition: transform 240ms ease, box-shadow 240ms ease;
}

.elementor-kit-6 .e-transform:hover,
.elementor-kit-6 .jeg-elementor-kit.jkit-postblock article:hover {
  transform: translateY(-4px);
}

.elementor-kit-6 .jeg-elementor-kit.jkit-postblock article img {
  height: 100% !important;
  left: 50% !important;
  object-position: center !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  transition: filter 220ms ease !important;
  width: 100% !important;
}

.elementor-kit-6 .jeg-elementor-kit.jkit-postblock article:hover img {
  filter: brightness(.94);
  object-position: center !important;
  transform: translate(-50%, -50%) !important;
}

.google-stars {
  color: #f5a623;
  display: inline-block;
  font-size: 1rem;
  letter-spacing: 0.12em;
  line-height: 1;
}

img.google-review-avatar,
img[src*="assets/google-reviews/"] {
  aspect-ratio: 1;
  border: 2px solid var(--este-green);
  border-radius: 50% !important;
  object-fit: cover;
}

/* The final three Google review cards use the same presentation as the
   Elementor-authored cards above them, while keeping their content local. */
.elementor-element-5af0c21,
.elementor-element-1d0bf53,
.elementor-element-f229d76 {
  background: #f8fafc;
  border: 1px solid #d9dee5;
  border-radius: .5rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  justify-content: space-between;
  min-height: 17rem;
  padding: 1.25rem;
}

.elementor-element-5af0c21 > .elementor-widget-text-editor,
.elementor-element-1d0bf53 > .elementor-widget-text-editor,
.elementor-element-f229d76 > .elementor-widget-text-editor {
  color: #1a1a1a;
  font-size: 1rem;
  line-height: 1.55;
}

.elementor-element-5af0c21 > .e-con,
.elementor-element-1d0bf53 > .e-con,
.elementor-element-f229d76 > .e-con {
  align-items: center;
  display: flex;
  flex-direction: row !important;
  gap: 1rem;
  margin-top: auto;
}

.elementor-element-5af0c21 > .e-con > .e-con:first-child,
.elementor-element-1d0bf53 > .e-con > .e-con:first-child,
.elementor-element-f229d76 > .e-con > .e-con:first-child {
  flex: 0 0 4.25rem;
}

.elementor-element-5af0c21 > .e-con > .e-con:last-child,
.elementor-element-1d0bf53 > .e-con > .e-con:last-child,
.elementor-element-f229d76 > .e-con > .e-con:last-child {
  flex: 1;
  flex-direction: column;
  gap: 0;
}

.elementor-element-5af0c21 h6,
.elementor-element-1d0bf53 h6,
.elementor-element-f229d76 h6 {
  color: #1a1a1a;
  font-size: 1rem;
  margin: 0 0 .15rem;
}

.elementor-element-5af0c21 .elementor-heading-title p,
.elementor-element-1d0bf53 .elementor-heading-title p,
.elementor-element-f229d76 .elementor-heading-title p {
  color: #5e6673;
  font-size: .8125rem;
  margin: 0;
}

/* Google review strip: each real review retains the original card treatment,
   while a cloned second set creates a seamless, constant movement. */
.elementor-1174 .elementor-element-428f43f {
  overflow: hidden;
}

.elementor-1174 .elementor-element-428f43f > .e-con-inner {
  max-width: none;
  overflow: hidden;
  width: 100%;
}

#continuous-review-marquee {
  align-items: stretch;
  animation: este-review-marquee 72s linear infinite;
  display: flex !important;
  gap: 2rem;
  grid-template-columns: none !important;
  overflow: visible;
  padding: 0;
  transform: translate3d(0, 0, 0);
  width: max-content;
  will-change: transform;
}

#continuous-review-marquee > .e-con {
  background: #f8fafc !important;
  border: 1px solid #d9dee5 !important;
  border-radius: .5rem !important;
  box-sizing: border-box;
  display: flex !important;
  flex: 0 0 clamp(18rem, 29vw, 23rem);
  flex-direction: column !important;
  gap: 1.35rem !important;
  justify-content: space-between;
  min-height: 18rem;
  opacity: 1 !important;
  padding: 1.25rem !important;
  transform: none !important;
  transition: box-shadow 200ms ease, border-color 200ms ease !important;
}

#continuous-review-marquee > .e-con:hover {
  border-color: var(--este-green-border) !important;
  box-shadow: 0 12px 28px rgba(12, 89, 28, .12);
}

#continuous-review-marquee > .e-con > .elementor-widget-text-editor {
  color: #1a1a1a;
  font-family: var(--este-ui-font);
  font-size: clamp(1rem, .94rem + .25vw, 1.12rem);
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.5;
  margin: 0;
}

#continuous-review-marquee > .e-con > .e-con {
  align-items: center;
  display: flex !important;
  flex-direction: row !important;
  gap: .9rem !important;
  justify-content: flex-start;
  margin-top: auto;
}

#continuous-review-marquee > .e-con > .e-con > .e-con:first-child {
  display: flex !important;
  flex: 0 0 3.5rem;
  width: 3.5rem;
}

#continuous-review-marquee > .e-con > .e-con > .e-con:first-child img {
  height: 3.5rem !important;
  width: 3.5rem !important;
}

#continuous-review-marquee > .e-con > .e-con > .e-con:last-child {
  display: flex !important;
  flex: 1;
  flex-direction: column !important;
  gap: .15rem !important;
  justify-content: center;
}

#continuous-review-marquee h6 {
  color: #1a1a1a;
  font-size: 1rem;
  margin: 0;
}

#continuous-review-marquee .elementor-heading-title p {
  color: #5e6673;
  font-size: .875rem;
  margin: 0;
}

@keyframes este-review-marquee {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(calc(-50% - .75rem), 0, 0); }
}

/* The review rail gets its own compact trust panel so it reads as a real
   Google review experience instead of a generic slider. */
.elementor-1174 .elementor-element-428f43f > .e-con-inner {
  isolation: isolate;
  position: relative;
}

.este-review-toolbar {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin: 0 auto 1.4rem;
  max-width: min(75rem, calc(100% - 2rem));
  padding: 0 .2rem;
  position: relative;
  z-index: 3;
}

.este-review-source,
.este-review-summary {
  align-items: center;
  display: flex;
  gap: .75rem;
}

.este-review-source > span:last-child {
  display: grid;
  gap: .12rem;
}

.este-review-source strong {
  color: #17231a;
  font-family: var(--este-ui-font);
  font-size: .98rem;
  letter-spacing: -.02em;
}

.este-review-source small {
  color: #657167;
  font-size: .78rem;
}

.este-google-mark {
  align-items: center;
  background: #fff;
  border: 1px solid #dce4dd;
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(23, 35, 26, .08);
  color: #4285f4;
  display: inline-flex;
  font-family: Arial, sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  height: 2.4rem;
  justify-content: center;
  position: relative;
  width: 2.4rem;
}

.este-google-mark::after {
  background: linear-gradient(90deg, #ea4335 0 25%, #fbbc05 25% 50%, #34a853 50% 75%, #4285f4 75%);
  border-radius: 99px;
  content: "";
  bottom: .32rem;
  height: .16rem;
  left: .63rem;
  position: absolute;
  width: 1.12rem;
}

.este-review-summary { color: #657167; font-size: .8rem; }
.este-review-summary .google-stars { font-size: .92rem; letter-spacing: .08em; }

.este-review-live { align-items: center; display: inline-flex; gap: .42rem; white-space: nowrap; }
.este-review-live i { background: var(--este-green); border-radius: 50%; height: .42rem; width: .42rem; animation: este-live-pulse 1.8s ease-out infinite; }

.este-review-toggle {
  align-items: center;
  background: #fff !important;
  border: 1px solid #d7e2d9 !important;
  border-radius: 50% !important;
  box-shadow: none !important;
  color: var(--este-green-deep) !important;
  display: inline-flex;
  font-size: .75rem;
  height: 2.15rem;
  justify-content: center;
  padding: 0 !important;
  transform: none !important;
  width: 2.15rem;
}

.este-review-toggle:hover,
.este-review-toggle:focus { background: var(--este-green-soft) !important; box-shadow: 0 5px 14px rgba(12, 89, 28, .12) !important; transform: translateY(-1px) !important; }

.este-review-track::before,
.este-review-track::after {
  bottom: 0;
  content: "";
  pointer-events: none;
  position: absolute;
  top: 4.6rem;
  width: clamp(1.25rem, 5vw, 5.5rem);
  z-index: 2;
}

.este-review-track::before { background: linear-gradient(90deg, #fff 4%, rgba(255,255,255,0)); left: 0; }
.este-review-track::after { background: linear-gradient(270deg, #fff 4%, rgba(255,255,255,0)); right: 0; }

.este-review-track:hover #continuous-review-marquee,
.este-review-track:focus-within #continuous-review-marquee,
.este-review-track.is-paused #continuous-review-marquee { animation-play-state: paused; }

#continuous-review-marquee {
  animation-duration: 66s;
  gap: 1.5rem;
  padding: .25rem 0 .8rem;
}

#continuous-review-marquee > .e-con {
  background: linear-gradient(145deg, #fff 0%, #f5faf6 100%) !important;
  border-color: #d8e6da !important;
  border-radius: 1rem !important;
  box-shadow: 0 10px 25px rgba(17, 58, 28, .07);
  min-height: 18.6rem;
  overflow: hidden;
  padding: 1.55rem !important;
  position: relative;
  transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease !important;
}

#continuous-review-marquee > .e-con::before {
  color: rgba(3, 138, 50, .11);
  content: "“";
  font-family: Georgia, serif;
  font-size: 5rem;
  left: 1.15rem;
  line-height: 1;
  position: absolute;
  top: .55rem;
}

#continuous-review-marquee > .e-con::after {
  color: #f5a623;
  content: "★★★★★";
  font-size: .78rem;
  letter-spacing: .16em;
  position: absolute;
  right: 1.35rem;
  top: 1.5rem;
}

#continuous-review-marquee > .e-con:hover {
  border-color: var(--este-green-border) !important;
  box-shadow: 0 18px 36px rgba(12, 89, 28, .15);
  transform: translateY(-5px) !important;
}

#continuous-review-marquee > .e-con > .elementor-widget-text-editor { padding-top: 2.25rem; position: relative; z-index: 1; }

@keyframes este-live-pulse {
  0% { box-shadow: 0 0 0 0 rgba(3, 138, 50, .38); }
  70% { box-shadow: 0 0 0 .42rem rgba(3, 138, 50, 0); }
  100% { box-shadow: 0 0 0 0 rgba(3, 138, 50, 0); }
}

/* Site-wide motion stays short and quiet: it clarifies interaction without
   competing with the content or the constantly moving review rail. */
html { scroll-behavior: smooth; }

@keyframes este-title-enter {
  from { opacity: 0; transform: translate3d(0, .8rem, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

.elementor-kit-6 main h1 { animation: este-title-enter 720ms cubic-bezier(.22, 1, .36, 1) both; }

.elementor-kit-6 .elementor-widget-image:not(.elementor-widget-image-box) img:not(.google-review-avatar) { transition: transform 520ms cubic-bezier(.22, 1, .36, 1), filter 520ms ease; }
.elementor-kit-6 .elementor-widget-image a:hover img:not(.google-review-avatar) { filter: saturate(1.04); transform: scale(1.025); }

@media (max-width: 767px) {
  #continuous-review-marquee {
    animation-duration: 54s;
    gap: 1.25rem;
  }

  #continuous-review-marquee > .e-con {
    flex-basis: min(82vw, 21rem);
    min-height: 17rem;
  }

  @keyframes este-review-marquee {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(calc(-50% - .625rem), 0, 0); }
  }
}

/* Shared two-row navigation mirrors the clinic-style reference while keeping
   every route self-contained for direct file opening. */
body.este-nav-ready .ekit-template-content-header { display: none !important; }

.este-site-nav {
  color: #f5f0ed;
  font-family: var(--este-ui-font);
  position: relative;
  z-index: 9999;
}

.este-nav-top { background: #2b3545; border-bottom: 1px solid rgba(230, 215, 204, .24); }
.este-nav-main { background: #19222e; }

.este-nav-shell {
  box-sizing: border-box;
  margin: 0 auto;
  max-width: 82rem;
  padding-left: clamp(1.25rem, 4vw, 3.25rem);
  padding-right: clamp(1.25rem, 4vw, 3.25rem);
}

.este-nav-top-inner { align-items: center; display: flex; justify-content: space-between; min-height: 6.9rem; }
.este-nav-logo { display: inline-flex; line-height: 0; }
.este-nav-logo img { display: block; height: auto; max-width: 15rem; width: min(15rem, 48vw); }

.este-nav-phone {
  align-items: center;
  color: #eee1da !important;
  display: inline-flex;
  font-size: .92rem;
  font-weight: 600;
  gap: .55rem;
  letter-spacing: .01em;
  text-decoration: none;
}

.este-nav-phone > span:first-child {
  align-items: center;
  background: #cdb29f;
  border-radius: 50%;
  color: #263142;
  display: inline-flex;
  font-size: .9rem;
  height: 1.75rem;
  justify-content: center;
  transform: rotate(-12deg);
  width: 1.75rem;
}

.este-nav-list { align-items: stretch; display: flex; gap: .1rem; justify-content: flex-end; list-style: none; margin: 0; min-height: 3.7rem; padding: 0; }
.este-nav-list > li { align-items: stretch; display: flex; position: relative; }

.este-nav-list > li > a,
.elementor-kit-6 .este-nav-trigger {
  align-items: center;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #eadbd2 !important;
  cursor: pointer;
  display: inline-flex;
  font-family: inherit;
  font-size: .91rem;
  font-weight: 600;
  gap: .55rem;
  justify-content: center;
  letter-spacing: .005em;
  min-height: 3.7rem;
  padding: 0 1rem !important;
  text-decoration: none;
  text-transform: none;
  transition: background 180ms ease, color 180ms ease !important;
}

.este-nav-list > li > a:hover,
.este-nav-list > li > a:focus,
.elementor-kit-6 .este-nav-trigger:hover,
.elementor-kit-6 .este-nav-trigger:focus,
.este-nav-item.is-open > .este-nav-trigger { background: rgba(205, 178, 159, .1) !important; color: #fff !important; transform: none !important; }

.este-nav-trigger::after {
  border-bottom: 2px solid currentColor;
  border-right: 2px solid currentColor;
  content: "";
  height: .35rem;
  margin-top: -.2rem;
  transform: rotate(45deg);
  transition: transform 180ms ease;
  width: .35rem;
}

.este-nav-item.is-open > .este-nav-trigger::after { margin-top: .15rem; transform: rotate(225deg); }

.este-submenu {
  background: #fff;
  border: 1px solid #e6ddd7;
  border-radius: .6rem;
  box-shadow: 0 16px 38px rgba(9, 15, 23, .24);
  display: grid;
  gap: .15rem;
  left: .35rem;
  list-style: none;
  margin: 0;
  min-width: 15.5rem;
  opacity: 0;
  padding: .55rem;
  pointer-events: none;
  position: absolute;
  top: calc(100% - .15rem);
  transform: translate3d(0, .5rem, 0);
  transition: opacity 160ms ease, transform 160ms ease;
  visibility: hidden;
  z-index: 5;
}

.este-nav-item:hover > .este-submenu,
.este-nav-item:focus-within > .este-submenu,
.este-nav-item.is-open > .este-submenu { opacity: 1; pointer-events: auto; transform: translate3d(0, 0, 0); visibility: visible; }
.este-submenu a { border-radius: .35rem; color: #263142 !important; display: block; font-size: .86rem; font-weight: 600; padding: .72rem .8rem; text-decoration: none; transition: background 150ms ease, color 150ms ease; }
.este-submenu a:hover, .este-submenu a:focus { background: #e8f4ea; color: var(--este-green-deep) !important; }

.este-nav-cta { margin-left: .65rem; }
.este-nav-list > .este-nav-cta > a { background: #cdb29f !important; color: #263142 !important; margin: .55rem 0; min-height: 2.6rem; padding: 0 1.1rem !important; }
.este-nav-list > .este-nav-cta > a:hover, .este-nav-list > .este-nav-cta > a:focus { background: #e1c6b5 !important; color: #17202c !important; }

.este-nav-menu-button { display: none !important; }

@media (max-width: 1050px) {
  .este-nav-top-inner { min-height: 5.6rem; }
  .este-nav-phone { display: none; }
  .elementor-kit-6 .este-nav-menu-button {
    background: transparent !important;
    border: 1px solid rgba(238, 225, 218, .55) !important;
    border-radius: .3rem !important;
    box-shadow: none !important;
    display: grid !important;
    gap: .28rem;
    padding: .7rem !important;
    place-items: center;
    width: 2.7rem;
  }
  .este-nav-menu-button span { background: #f1e4dc; display: block; height: 2px; transition: transform 180ms ease, opacity 180ms ease; width: 1.2rem; }
  .este-site-nav.menu-open .este-nav-menu-button span:nth-child(1) { transform: translateY(.31rem) rotate(45deg); }
  .este-site-nav.menu-open .este-nav-menu-button span:nth-child(2) { opacity: 0; }
  .este-site-nav.menu-open .este-nav-menu-button span:nth-child(3) { transform: translateY(-.31rem) rotate(-45deg); }
  .este-nav-main { max-height: 0; overflow: hidden; transition: max-height 260ms ease; }
  .este-site-nav.menu-open .este-nav-main { max-height: 42rem; }
  .este-nav-list { align-items: stretch; flex-direction: column; gap: 0; justify-content: flex-start; min-height: auto; padding: .45rem 0 1rem; }
  .este-nav-list > li { display: block; }
  .este-nav-list > li > a, .elementor-kit-6 .este-nav-trigger { justify-content: space-between; min-height: 3.25rem; padding: 0 .4rem !important; width: 100%; }
  .este-submenu { box-shadow: none; display: none; margin: 0 .25rem .35rem; min-width: 0; opacity: 1; padding: .25rem; pointer-events: auto; position: static; transform: none; visibility: visible; }
  .este-nav-item.is-open > .este-submenu { display: grid; }
  .este-nav-cta { margin: .45rem 0 0; }
  .este-nav-list > .este-nav-cta > a { justify-content: center; margin: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .este-site-nav *, .este-site-nav *::before, .este-site-nav *::after { transition: none !important; }
}

/* Esste Moda Hair: requested content improvements */
:root {
  --este-green: #07852f;
  --este-green-dark: #034d1c;
  --este-green-ink: #053b18;
  --este-mint: #edf8f0;
  --este-line: #d8e8dd;
  --este-ink: #171b18;
  --este-muted: #5e6862;
  --este-shadow: 0 22px 60px rgba(5, 48, 19, .12);
}

.este-eyebrow {
  align-items: center;
  color: var(--este-green);
  display: inline-flex;
  font-size: .78rem;
  font-weight: 750;
  gap: .55rem;
  letter-spacing: .1em;
  line-height: 1.2;
  text-transform: uppercase;
}

.este-eyebrow::before {
  background: linear-gradient(135deg, #0aa33f, #056826);
  border-radius: 3px;
  content: "";
  height: .62rem;
  width: .62rem;
}

.este-primary-button {
  align-items: center;
  background: linear-gradient(135deg, #079438 0%, #056625 100%);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: .7rem;
  box-shadow: 0 12px 28px rgba(5, 112, 39, .24);
  color: #fff !important;
  display: inline-flex;
  font-size: .94rem;
  font-weight: 700;
  gap: .7rem;
  justify-content: center;
  line-height: 1;
  min-height: 3.25rem;
  padding: .9rem 1.3rem;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.este-primary-button:hover {
  background: linear-gradient(135deg, #056e29 0%, #034d1c 100%);
  box-shadow: 0 16px 34px rgba(5, 78, 29, .32);
  transform: translateY(-2px);
}

.este-primary-button svg,
.este-text-link svg,
.este-card-arrow svg,
.este-chat-send svg {
  fill: none;
  height: 1.15rem;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 1.15rem;
}

/* Homepage treatment showcase */
.elementor-element-b1e2ddb > .e-con-inner {
  display: block !important;
  max-width: none !important;
  padding: 0 !important;
  width: 100% !important;
}

.este-treatment-showcase {
  background: linear-gradient(135deg, #f8fbf9 0%, #edf7f0 100%);
  padding: clamp(4.5rem, 7vw, 7.4rem) max(1.25rem, calc((100vw - 1240px) / 2));
}

.este-section-intro {
  align-items: end;
  display: grid;
  gap: 2rem 4rem;
  grid-template-columns: minmax(0, 1.25fr) minmax(20rem, .75fr);
  margin: 0 auto 2.8rem;
  max-width: 1240px;
}

.este-section-intro h2,
.este-process-heading h2 {
  color: var(--este-ink);
  font-size: clamp(2.5rem, 4.4vw, 4.6rem);
  letter-spacing: -.055em;
  line-height: .98;
  margin: 1rem 0 0;
  max-width: 13ch;
}

.este-section-intro p,
.este-process-heading p {
  color: var(--este-muted);
  font-size: 1rem;
  line-height: 1.72;
  margin: 0 0 1.15rem;
}

.este-text-link {
  align-items: center;
  color: var(--este-green-dark);
  display: inline-flex;
  font-weight: 720;
  gap: .55rem;
}

.este-treatment-grid {
  display: grid;
  gap: 1.15rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0 auto;
  max-width: 1240px;
}

.este-treatment-card {
  aspect-ratio: .8;
  border-radius: 1rem;
  color: #fff !important;
  display: block;
  isolation: isolate;
  overflow: hidden;
  position: relative;
}

.este-treatment-card > img,
.este-treatment-shade {
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
}

.este-treatment-card > img {
  object-fit: cover;
  transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .45s ease;
  z-index: -2;
}

.este-treatment-shade {
  background: linear-gradient(180deg, rgba(1, 23, 8, .08) 15%, rgba(2, 28, 11, .86) 100%);
  z-index: -1;
}

.este-treatment-card > div {
  bottom: 0;
  left: 0;
  padding: 2rem;
  position: absolute;
  right: 0;
}

.este-treatment-card small { color: #a6eaba; font-size: .73rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.este-treatment-card h3 { color: #fff; font-size: clamp(1.55rem, 2.2vw, 2.2rem); letter-spacing: -.035em; line-height: 1.05; margin: .55rem 0 .7rem; }
.este-treatment-card p { color: rgba(255,255,255,.79); line-height: 1.55; margin: 0; max-width: 25rem; }
.este-treatment-index { color: rgba(255,255,255,.8); font-size: .78rem; font-weight: 750; left: 1.5rem; letter-spacing: .08em; position: absolute; top: 1.5rem; }
.este-card-arrow { align-items: center; background: #fff; border-radius: 50%; color: var(--este-green-dark); display: flex; height: 2.8rem; justify-content: center; margin-left: auto; margin-top: 1.2rem; transition: transform .3s ease; width: 2.8rem; }
.este-treatment-card:hover > img { filter: saturate(1.06); transform: scale(1.045); }
.este-treatment-card:hover .este-card-arrow { transform: translateX(.3rem); }

/* Homepage treatment process */
.elementor-element-09ebf3b > .e-con-inner { display: block !important; max-width: none !important; padding: 0 !important; width: 100% !important; }
.este-process { background: #fff; padding: clamp(4.5rem, 7vw, 7rem) max(1.25rem, calc((100vw - 1240px) / 2)); }
.este-process-heading { margin: 0 auto 3rem; max-width: 1240px; text-align: center; }
.este-process-heading h2 { margin-left: auto; margin-right: auto; max-width: 18ch; }
.este-process-heading p { margin: 1.25rem auto 0; max-width: 44rem; }
.este-process-grid { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 auto; max-width: 1240px; position: relative; }
.este-process-step { background: linear-gradient(145deg, #fff, #f6fbf7); border: 1px solid var(--este-line); border-radius: 1rem; box-shadow: 0 12px 35px rgba(4,55,20,.06); min-height: 19rem; opacity:0; overflow: hidden; padding: 1.6rem; position: relative; transform: translateY(24px); transition: border-color .3s ease, box-shadow .3s ease, opacity .65s ease var(--step-delay), transform .65s cubic-bezier(.2,.75,.25,1) var(--step-delay); }
.este-process-step.is-visible { opacity:1; transform:translateY(0); }
.este-process-step:hover { border-color: #92cda4; box-shadow: var(--este-shadow); transform: translateY(-7px); }
.este-step-number { color: rgba(5, 78, 29, .32); font-size: .72rem; font-weight: 800; letter-spacing: .12em; position: absolute; right: 1.3rem; top: 1.25rem; }
.este-step-icon { align-items: center; background: linear-gradient(145deg, #e5f6e9, #fff); border: 1px solid #cee9d5; border-radius: 1rem; color: var(--este-green); display: flex; height: 4.7rem; justify-content: center; margin-bottom: 2.2rem; position: relative; width: 4.7rem; }
.este-step-icon::after { border: 1px solid rgba(8,133,47,.2); border-radius: inherit; content: ""; inset: -.34rem; opacity:.75; position: absolute; transition:opacity .3s ease, transform .3s ease; }
.este-process-step:hover .este-step-icon::after { opacity:1; transform:scale(1.06); }
.este-step-icon svg { fill: none; height: 2.45rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.2; width: 2.45rem; }
.este-process-step h3 { color: var(--este-ink); font-size: 1.32rem; margin: 0 0 .65rem; }
.este-process-step p { color: var(--este-muted); font-size: .94rem; line-height: 1.65; margin: 0; }
.este-step-line { background: linear-gradient(90deg, var(--este-green), transparent); bottom: 0; height: 3px; left: 0; position: absolute; transform: scaleX(.25); transform-origin: left; transition: transform .45s ease; width: 100%; }
.este-process-step:hover .este-step-line { transform: scaleX(1); }

/* Footer newsletter: remove stray vertical separator */
.ekit-template-content-footer .mf-input-wrapper,
.ekit-template-content-footer .mf-btn-wraper,
.ekit-template-content-footer .elementor-element-aa3a16a,
.ekit-template-content-footer .elementor-element-d5ded39,
.ekit-template-content-footer .elementor-element-f783163 {
  border-left: 0 !important;
}
.ekit-template-content-footer .mf-input-wrapper::before,
.ekit-template-content-footer .mf-input-wrapper::after,
.ekit-template-content-footer .mf-btn-wraper::before,
.ekit-template-content-footer .mf-btn-wraper::after,
.ekit-template-content-footer .elementor-element-aa3a16a::before,
.ekit-template-content-footer .elementor-element-aa3a16a::after {
  content: none !important;
  display: none !important;
}

/* Contact consultation and address */
.este-address-card .elementor-icon svg { fill: none; height: 2rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 2rem; }
.este-contact-consultation { background: linear-gradient(115deg, #032f14 0%, #086d2a 100%); overflow: hidden; padding: 0 max(1.25rem, calc((100vw - 1180px) / 2)); position: relative; }
.este-contact-consultation::before { background: radial-gradient(circle, rgba(66,222,110,.24), transparent 67%); content:""; height: 35rem; left: 7%; position:absolute; top:-14rem; width:35rem; }
.este-contact-consult-inner { align-items: center; display: grid; gap: 4rem; grid-template-columns: minmax(19rem, .8fr) minmax(0, 1.2fr); margin: auto; max-width: 1180px; min-height: 31rem; position: relative; }
.este-contact-consult-visual { align-self: end; height: 29rem; position: relative; }
.este-contact-consult-visual img { bottom: 0; height: 100%; left: 50%; object-fit: contain; object-position: bottom; position: absolute; transform: translateX(-50%); width: 100%; z-index: 2; }
.este-consult-orbit { animation: esteOrbit 9s linear infinite; background: rgba(65,224,111,.14); border: 1px solid rgba(166,238,186,.38); border-radius: 50%; height: 20rem; left: 50%; position: absolute; top: 5rem; transform: translateX(-50%); width: 20rem; }
.este-consult-orbit::after { background:#8ee5a8; border-radius:50%; box-shadow:0 0 20px #8ee5a8; content:""; height:.7rem; left:2rem; position:absolute; top:2.8rem; width:.7rem; }
@keyframes esteOrbit { to { transform:translateX(-50%) rotate(360deg) } }
.este-contact-consult-copy { color:#fff; padding:4rem 0; position:relative; z-index:3; }
.este-contact-consult-copy .este-eyebrow { color:#9af0b2; }
.este-contact-consult-copy h2 { color:#fff; font-size:clamp(2.6rem,4.2vw,4.5rem); letter-spacing:-.055em; line-height:1; margin:1rem 0 1.25rem; max-width:13ch; }
.este-contact-consult-copy p { color:rgba(255,255,255,.76); font-size:1.05rem; line-height:1.72; margin:0 0 1.6rem; max-width:42rem; }

/* Blog article pages */
.este-blog-layout { display:block !important; }
.este-blog-layout > .este-blog-aside-hidden { display:none !important; }
.este-blog-article { background:#fff; border:1px solid #e3ece5; border-radius:1rem; box-shadow:0 18px 60px rgba(5,48,19,.08); margin:0 auto !important; max-width:940px !important; overflow:hidden; width:100% !important; }
.este-blog-hero { aspect-ratio:16/7.8; display:block; object-fit:cover; width:100%; }
.este-blog-body { padding:clamp(1.5rem,5vw,4.5rem); }
.este-blog-meta { color:#66716a; display:flex; flex-wrap:wrap; font-size:.82rem; gap:.6rem 1.5rem; margin-bottom:1.4rem; }
.este-blog-meta span + span::before { color:#9cb7a4; content:"•"; margin-right:1.5rem; }
.este-blog-lead { color:#28302b; font-size:clamp(1.2rem,2vw,1.55rem); font-weight:520; line-height:1.65; margin:0 0 2rem; }
.este-blog-note { background:var(--este-mint); border-left:4px solid var(--este-green); border-radius:0 .75rem .75rem 0; color:#315039; line-height:1.65; margin:2rem 0 2.5rem; padding:1.1rem 1.25rem; }
.este-blog-article section { margin:0 0 2.7rem; }
.este-blog-article section h2 { color:var(--este-ink); font-size:clamp(1.7rem,3vw,2.45rem); letter-spacing:-.04em; line-height:1.1; margin:0 0 1rem; }
.este-blog-article section p,
.este-blog-article section li { color:#4e5952; font-size:1rem; line-height:1.82; }
.este-blog-article section ul { display:grid; gap:.65rem; list-style:none; margin:1rem 0 0; padding:0; }
.este-blog-article section li { padding-left:1.7rem; position:relative; }
.este-blog-article section li::before { color:var(--este-green); content:"✓"; font-weight:800; left:0; position:absolute; }
.este-blog-cta { align-items:center; background:linear-gradient(135deg,#053b18,#07852f); border-radius:1rem; color:#fff; display:flex; gap:2rem; justify-content:space-between; margin-top:3rem; padding:clamp(1.4rem,4vw,2.4rem); }
.este-blog-cta span { color:#a8e9ba; font-size:.78rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.este-blog-cta h2 { color:#fff !important; font-size:clamp(1.6rem,3vw,2.25rem) !important; margin:.5rem 0 0 !important; max-width:16ch; }
.este-blog-cta .este-primary-button { background:#fff; box-shadow:none; color:var(--este-green-dark) !important; flex:none; }

/* New and refreshed treatment inner pages */
.este-treatment-page { background:#fff; }
.este-treatment-page > section { padding-left:max(1.25rem,calc((100vw - 1200px)/2)); padding-right:max(1.25rem,calc((100vw - 1200px)/2)); }
.este-treatment-hero { align-items:center; background:linear-gradient(125deg,#f5faf6 0%,#fff 48%,#e5f3e9 100%); display:grid; gap:clamp(2rem,5vw,5rem); grid-template-columns:minmax(0,.9fr) minmax(27rem,1.1fr); min-height:42rem; overflow:hidden; padding-bottom:4rem; padding-top:4rem; }
.este-treatment-hero-copy h1 { color:var(--este-ink); font-size:clamp(3.4rem,6vw,6.4rem); letter-spacing:-.065em; line-height:.92; margin:1.1rem 0 1.4rem; }
.este-treatment-hero-copy > p { color:#536059; font-size:1.08rem; line-height:1.75; margin:0 0 1.7rem; max-width:39rem; }
.este-treatment-actions { align-items:center; display:flex; flex-wrap:wrap; gap:1.2rem; }
.este-secondary-link { color:var(--este-green-dark) !important; font-weight:700; text-decoration:underline; text-decoration-color:#9acba7; text-underline-offset:.3rem; }
.este-treatment-hero-media { border-radius:1.15rem; box-shadow:var(--este-shadow); height:34rem; overflow:hidden; position:relative; }
.este-treatment-hero-media::after { background:linear-gradient(180deg,transparent 55%,rgba(2,35,13,.7)); content:""; inset:0; position:absolute; }
.este-treatment-hero-media img { height:100%; object-fit:cover; width:100%; }
.este-treatment-hero-media > span { bottom:1.4rem; color:#fff; font-size:.78rem; font-weight:750; letter-spacing:.09em; position:absolute; right:1.5rem; text-transform:uppercase; z-index:2; }
.este-treatment-intro { display:grid; gap:3rem 6rem; grid-template-columns:1fr 1fr; padding-bottom:6rem; padding-top:6rem; }
.este-treatment-intro h2,
.este-treatment-process header h2,
.este-treatment-info h2,
.este-treatment-faq header h2,
.este-treatment-final-cta h2 { color:var(--este-ink); font-size:clamp(2.4rem,4.2vw,4.3rem); letter-spacing:-.055em; line-height:1; margin:1rem 0 0; }
.este-treatment-intro p,
.este-treatment-info p { color:var(--este-muted); font-size:1.02rem; line-height:1.8; margin:0; }
.este-benefit-list { display:grid; gap:.65rem; margin-top:1.5rem; }
.este-benefit-list span { align-items:center; color:#2d3931; display:flex; font-weight:650; gap:.7rem; }
.este-benefit-list i { align-items:center; background:var(--este-mint); border-radius:50%; color:var(--este-green); display:flex; font-style:normal; height:1.8rem; justify-content:center; width:1.8rem; }
.este-treatment-process { background:#053b18; color:#fff; padding-bottom:6rem; padding-top:6rem; }
.este-treatment-process header .este-eyebrow { color:#a4edb7; }
.este-treatment-process header h2 { color:#fff; max-width:17ch; }
.este-treatment-process-grid { display:grid; gap:1rem; grid-template-columns:repeat(4,1fr); margin-top:3rem; }
.este-treatment-process-grid article { background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.15); border-radius:1rem; min-height:15rem; padding:1.6rem; transition:background .3s ease, transform .3s ease; }
.este-treatment-process-grid article:hover { background:rgba(255,255,255,.12); transform:translateY(-5px); }
.este-treatment-process-grid b { color:#7ade98; display:block; font-size:.75rem; letter-spacing:.1em; margin-bottom:2.2rem; }
.este-treatment-process-grid h3 { color:#fff; font-size:1.35rem; margin:0 0 .7rem; }
.este-treatment-process-grid p { color:rgba(255,255,255,.68); font-size:.93rem; line-height:1.65; margin:0; }
.este-treatment-info { align-items:center; display:grid; gap:clamp(2rem,6vw,6rem); grid-template-columns:1fr 1fr; padding-bottom:6rem; padding-top:6rem; }
.este-treatment-info-image { border-radius:1rem; height:34rem; overflow:hidden; }
.este-treatment-info-image img { height:100%; object-fit:cover; width:100%; }
.este-treatment-info h2 { font-size:clamp(2.4rem,4vw,3.8rem); margin-bottom:1.25rem; }
.este-treatment-info ul { display:grid; gap:.8rem; list-style:none; margin:1.6rem 0; padding:0; }
.este-treatment-info li { color:#39453e; padding-left:1.7rem; position:relative; }
.este-treatment-info li::before { color:var(--este-green); content:"✓"; font-weight:800; left:0; position:absolute; }
.este-treatment-caution { background:#f1f8f3; border-radius:.8rem; color:#3f5345; line-height:1.6; padding:1.1rem 1.2rem; }
.este-treatment-faq { background:#f6faf7; padding-bottom:6rem; padding-top:6rem; }
.este-treatment-faq header { text-align:center; }
.este-treatment-faq header h2 { margin-left:auto; margin-right:auto; max-width:18ch; }
.este-faq-list { display:grid; gap:.8rem; margin:3rem auto 0; max-width:880px; }
.este-faq-list details { background:#fff; border:1px solid var(--este-line); border-radius:.8rem; padding:0 1.25rem; }
.este-faq-list summary { color:var(--este-ink); cursor:pointer; font-size:1.04rem; font-weight:700; list-style:none; padding:1.25rem 2rem 1.25rem 0; position:relative; }
.este-faq-list summary::after { color:var(--este-green); content:"+"; font-size:1.5rem; position:absolute; right:0; top:1rem; }
.este-faq-list details[open] summary::after { content:"–"; }
.este-faq-list p { color:var(--este-muted); line-height:1.7; margin:0; padding:0 0 1.25rem; }
.este-treatment-final-cta { align-items:center; background:linear-gradient(125deg,#072c14,#087731); color:#fff; display:flex; gap:3rem; justify-content:space-between; padding-bottom:4.5rem; padding-top:4.5rem; }
.este-treatment-final-cta .este-eyebrow { color:#9bebaf; }
.este-treatment-final-cta h2 { color:#fff; font-size:clamp(2.2rem,4vw,3.8rem); max-width:16ch; }
.este-treatment-final-cta p { color:rgba(255,255,255,.7); line-height:1.7; margin:1rem 0 0; max-width:40rem; }
.este-treatment-final-cta .este-primary-button { background:#fff; box-shadow:none; color:var(--este-green-dark) !important; flex:none; }

/* Fixed WhatsApp consultation */
.este-whatsapp-chat { bottom:1.2rem; position:fixed; right:1.2rem; z-index:99999; }
.este-chat-launcher { align-items:center; background:rgba(255,255,255,.98) !important; border:1px solid rgba(8,133,47,.2) !important; border-radius:999px; box-shadow:0 14px 42px rgba(3,44,17,.16); color:var(--este-ink) !important; cursor:pointer; display:grid; gap:.72rem; grid-template-columns:3rem minmax(0,1fr) 1.15rem; min-height:4.2rem; padding:.55rem .72rem .55rem .58rem; position:relative; transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease; width:16rem; }
.este-chat-launcher:hover { border-color:rgba(8,133,47,.42) !important; box-shadow:0 18px 48px rgba(3,44,17,.22); transform:translateY(-2px); }
.este-chat-icon { align-items:center; background:linear-gradient(145deg,#25d366,#0e9f47); border:2px solid #fff; border-radius:50%; box-shadow:0 7px 18px rgba(7,133,47,.28),0 0 0 1px rgba(7,133,47,.16); color:#fff; display:flex; height:3rem; justify-content:center; position:relative; width:3rem; }
.este-chat-icon svg { height:1.95rem; overflow:visible; width:1.95rem; }
.este-chat-icon svg > path:first-child { fill:none; stroke:#fff; stroke-linecap:round; stroke-linejoin:round; stroke-width:2.25; }
.este-chat-icon .este-chat-phone { fill:#fff; stroke:none; }
.este-chat-status { background:#b9f6ca; border:2px solid #fff; border-radius:50%; height:.62rem; position:absolute; right:-.08rem; top:-.08rem; width:.62rem; }
.este-chat-label { display:flex; flex-direction:column; overflow:hidden; text-align:left; }
.este-chat-label strong { color:#064d1d; font-size:.83rem; font-weight:800; line-height:1.15; white-space:nowrap; }
.este-chat-label small { align-items:center; color:#748078; display:flex; font-size:.62rem; gap:.32rem; margin-top:.3rem; white-space:nowrap; }
.este-chat-label small i { animation:esteOnlineDot 2s ease-in-out infinite; background:#1bb34d; border-radius:50%; box-shadow:0 0 0 3px rgba(27,179,77,.12); display:inline-block; height:.42rem; width:.42rem; }
.este-chat-chevron { align-items:center; background:#eff8f1; border-radius:50%; color:#087c30; display:flex; font-size:1.35rem; height:1.6rem; justify-content:center; line-height:1; width:1.6rem; }
@keyframes esteChatShimmer { 0%,100%{background-position:100% 0} 50%{background-position:0 0} }
@keyframes esteOnlineDot { 0%,100%{box-shadow:0 0 0 2px rgba(27,179,77,.12)} 50%{box-shadow:0 0 0 6px rgba(27,179,77,.02)} }
.este-chat-panel { background:#fff; border:1px solid rgba(8,133,47,.16); border-radius:1rem; bottom:5rem; box-shadow:0 24px 70px rgba(3,44,17,.22); overflow:hidden; position:absolute; right:0; width:min(22rem,calc(100vw - 2rem)); }
.este-chat-panel { display:none; }
.este-chat-panel:target { display:none !important; }
.este-chat-panel[hidden] { display:none !important; }
.este-chat-panel > header { align-items:center; background:linear-gradient(135deg,#053b18,#087c30); color:#fff; display:flex; justify-content:space-between; padding:1rem 1.05rem; }
.este-chat-panel header > div { align-items:center; display:flex; gap:.7rem; }
.este-chat-brand-icon { align-items:center; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.24); border-radius:.65rem; color:#fff !important; display:flex; font-size:.92rem !important; font-weight:850; height:2.45rem; justify-content:center; margin:0 !important; width:2.45rem; }
.este-chat-panel header p { display:flex; flex-direction:column; margin:0; }
.este-chat-panel header strong { font-size:.9rem; }
.este-chat-panel header p span { color:rgba(255,255,255,.72); font-size:.62rem; line-height:1.35; margin-top:.2rem; max-width:14rem; }
.este-chat-close { align-items:center; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.12); border-radius:50%; color:#fff !important; display:flex; font-size:1.2rem; height:2rem; justify-content:center; line-height:1; width:2rem; }
.este-chat-body { padding:1rem; }
.este-chat-greeting { background:#f1f8f3; border-radius:.75rem .75rem .75rem .2rem; color:#334039; font-size:.86rem; line-height:1.5; margin:0 0 .85rem; padding:.8rem .9rem; }
.este-chat-options { display:grid; gap:.5rem; grid-template-columns:1fr 1fr; }
.este-chat-options a { align-items:center; background:#fff; border:1px solid #d8e8dd; border-radius:.62rem; color:#344038 !important; display:flex; font-size:.74rem; font-weight:650; justify-content:center; min-height:2.5rem; padding:.55rem; text-align:center; transition:.2s ease; }
.este-chat-options a:hover { background:#eaf7ed; border-color:#168d3f; color:#055823 !important; }
.este-chat-send { align-items:center; background:var(--este-green); border-radius:.65rem; color:#fff !important; display:flex; font-size:.83rem; font-weight:700; gap:.45rem; justify-content:center; margin-top:.8rem; min-height:2.9rem; padding:.7rem; }
.este-chat-send.is-disabled { opacity:.45; pointer-events:none; }
.este-chat-body > small { color:#8a938d; display:block; font-size:.65rem; margin-top:.6rem; text-align:center; }

@media (max-width: 1024px) {
  .este-section-intro,
  .este-treatment-intro,
  .este-treatment-info { grid-template-columns:1fr; }
  .este-treatment-grid { grid-template-columns:repeat(2,1fr); }
  .este-treatment-card:last-child { grid-column:1/-1; aspect-ratio:2/1; }
  .este-process-grid,
  .este-treatment-process-grid { grid-template-columns:repeat(2,1fr); }
  .este-treatment-hero { grid-template-columns:1fr; min-height:0; }
  .este-treatment-hero-media { height:29rem; }
  .este-contact-consult-inner { gap:1rem; grid-template-columns:.8fr 1.2fr; }
}

@media (max-width: 767px) {
  .este-section-intro { align-items:start; grid-template-columns:1fr; }
  .este-section-intro h2,
  .este-process-heading h2 { font-size:clamp(2.35rem,11vw,3.2rem); }
  .este-treatment-grid,
  .este-process-grid,
  .este-treatment-process-grid { grid-template-columns:1fr; }
  .este-treatment-card,
  .este-treatment-card:last-child { aspect-ratio:.86; grid-column:auto; }
  .este-treatment-card > div { padding:1.4rem; }
  .este-process-step { min-height:16rem; }
  .este-contact-consult-inner { grid-template-columns:1fr; min-height:0; }
  .este-contact-consult-visual { height:20rem; order:2; }
  .este-contact-consult-copy { padding:3.5rem 0 0; }
  .este-contact-consult-copy h2 { font-size:clamp(2.4rem,11vw,3.35rem); }
  .este-blog-body { padding:1.35rem; }
  .este-blog-cta,
  .este-treatment-final-cta { align-items:flex-start; flex-direction:column; }
  .este-blog-cta .este-primary-button,
  .este-treatment-final-cta .este-primary-button { width:100%; }
  .este-blog-meta span + span::before { margin-right:.6rem; }
  .este-treatment-page > section { padding-left:1.05rem; padding-right:1.05rem; }
  .este-treatment-hero { padding-bottom:2.5rem; padding-top:2.5rem; }
  .este-treatment-hero-copy h1 { font-size:clamp(2.9rem,15vw,4.4rem); }
  .este-treatment-actions { align-items:stretch; flex-direction:column; }
  .este-secondary-link { text-align:center; }
  .este-treatment-hero-media,
  .este-treatment-info-image { height:23rem; }
  .este-treatment-intro,
  .este-treatment-info,
  .este-treatment-process,
  .este-treatment-faq { padding-bottom:4rem; padding-top:4rem; }
  .este-whatsapp-chat { bottom:.8rem; right:.8rem; }
  .este-chat-launcher { grid-template-columns:2.65rem minmax(0,1fr) 1.15rem; min-height:3.7rem; width:min(15rem,calc(100vw - 1.6rem)); }
  .este-chat-icon { height:2.65rem; width:2.65rem; }
  .este-chat-label strong { font-size:.78rem; }
  .este-chat-label small { font-size:.6rem; }
}

@media (prefers-reduced-motion: reduce) {
  .este-step-icon::after,
  .este-consult-orbit,
  .este-chat-label strong,
  .este-chat-label small i { animation:none !important; }
  .este-treatment-card > img,
  .este-process-step,
  .este-treatment-process-grid article { transition:none !important; }
  .este-process-step { opacity:1 !important; transform:none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .este-reveal,
  .elementor-kit-6 .elementor-button,
  .elementor-kit-6 button,
  .elementor-kit-6 .e-transform,
  .elementor-kit-6 .jeg-elementor-kit.jkit-postblock article,
  .elementor-kit-6 .jeg-elementor-kit.jkit-postblock article img,
  #continuous-review-marquee,
  .elementor-kit-6 main h1,
  .este-review-live i {
    animation: none !important;
    opacity: 1;
    transform: none;
    transition: none !important;
  }
}

/* Main header logo: deliberately prominent without crowding the navigation. */
.elementor-element-89e297a img[src*="assets/este-logo.svg"],
.elementor-element-89e297a img[srcset*="assets/este-logo.svg"] {
  width: 12rem !important;
}

/* Mobile/off-canvas navigation. */
.elementskit-nav-logo img[src*="assets/este-logo.svg"],
.elementskit-nav-logo img[srcset*="assets/este-logo.svg"] {
  width: 11.5rem !important;
}

/* Footer mark gets an intentionally larger treatment. */
.elementor-element-1c4e4b3 img[src*="assets/este-logo.svg"],
.elementor-element-1c4e4b3 img[srcset*="assets/este-logo.svg"] {
  filter: brightness(0) invert(1) !important;
  width: 15rem !important;
}

/* Footer branding and contact/social icons remain visible on the dark surface. */
.ekit-template-content-footer .elementor-icon,
.ekit-template-content-footer .elementor-icon i,
.ekit-template-content-footer .elementor-icon svg,
.ekit-template-content-footer .elementor-social-icon,
.ekit-template-content-footer .elementor-social-icon i,
.ekit-template-content-footer .elementor-social-icon svg,
.ekit-template-content-footer .elementor-icon-list-icon,
.ekit-template-content-footer .elementor-icon-list-icon i,
.ekit-template-content-footer .elementor-icon-list-icon svg {
  color: #fff !important;
  fill: #fff !important;
}

/* Keep the original header layout and place the requested appointment action
   beside its contact button. */
.elementor-element-a4bb91e.este-header-actions {
  align-items: center;
  display: flex !important;
  flex-wrap: nowrap;
  gap: .65rem;
  width: auto !important;
}

.elementor-element-a4bb91e .este-whatsapp-appointment {
  background: #fff !important;
  border: 1px solid var(--este-green) !important;
  color: var(--este-green-deep) !important;
  white-space: nowrap;
}

.elementor-element-a4bb91e .este-whatsapp-appointment:hover {
  background: var(--este-green-deep) !important;
  color: #fff !important;
}

@media (max-width: 767px) {
  .elementor-element-89e297a img[src*="assets/este-logo.svg"],
  .elementor-element-89e297a img[srcset*="assets/este-logo.svg"],
  .elementskit-nav-logo img[src*="assets/este-logo.svg"],
  .elementskit-nav-logo img[srcset*="assets/este-logo.svg"] {
    width: 10.5rem !important;
  }

  .elementor-element-1c4e4b3 img[src*="assets/este-logo.svg"],
  .elementor-element-1c4e4b3 img[srcset*="assets/este-logo.svg"] {
    width: 13rem !important;
  }
}

/* Home page Google reviews: two identical groups make the rightward motion
   truly seamless, so cards are present immediately and never cross a blank gap. */
.elementor-7 .elementor-element-d162ca4 {
  --gap: 1.5rem 1.5rem !important;
  --padding-bottom: 3rem !important;
  --padding-top: 4rem !important;
  overflow: hidden;
}
.elementor-7 .elementor-element-d162ca4 > .e-con-inner { display: block !important; max-width: none !important; }
.elementor-7 .elementor-element-7478523 { margin: 0 auto 1.25rem; max-width: 78rem; padding: 0 clamp(1.25rem, 4vw, 3rem); width: 100% !important; }
.elementor-7 .elementor-element-1bf4ba5 {
  --display: block !important;
  --width: 100% !important;
  display: block !important;
  flex: 0 0 100% !important;
  max-width: none !important;
  width: 100% !important;
}
.elementor-7 .elementor-element-62e57e9 { display: none !important; }
.elementor-7 .elementor-element-353251a {
  --container-widget-width: 100% !important;
  --width: 100% !important;
  flex: 0 0 100% !important;
  margin: 0 !important;
  max-width: none !important;
  min-height: 0 !important;
  width: 100% !important;
}

.elementor-7 .elementor-element-353251a,
.elementor-7 .elementor-element-4494175 { opacity: 1 !important; transform: none !important; visibility: visible !important; }
.elementor-7 .elementor-element-4494175,
.elementor-7 .elementor-element-4494175 > .jeg-elementor-kit {
  display: block !important;
  max-width: none !important;
  overflow: hidden;
  width: 100% !important;
}
.este-home-review-viewport {
  max-width: none !important;
  min-height: 23.5rem;
  overflow: hidden;
  padding: .65rem 0 .35rem;
  position: relative;
  scroll-behavior: auto !important;
  width: 100% !important;
}
.este-home-review-viewport::before,
.este-home-review-viewport::after { bottom: 0; content: ""; pointer-events: none; position: absolute; top: 0; width: clamp(1.2rem, 6vw, 6rem); z-index: 2; }
.este-home-review-viewport::before { background: linear-gradient(90deg, #fff 8%, rgba(255,255,255,0)); left: 0; }
.este-home-review-viewport::after { background: linear-gradient(270deg, #fff 8%, rgba(255,255,255,0)); right: 0; }

.este-home-review-rail {
  display: flex;
  gap: 1.25rem;
  margin: 0 !important;
  width: max-content;
  will-change: transform;
}

.este-home-review-card {
  box-sizing: border-box;
  display: flex;
  flex: 0 0 clamp(19rem, 27vw, 24rem);
  height: 22rem;
  margin: 0 !important;
  opacity: 1 !important;
  padding: 0 !important;
  transform: none !important;
}

.este-home-review-card .testimonial-box {
  background: #fff !important;
  border: 1px solid #dce8df;
  border-radius: 1.1rem;
  box-shadow: 0 10px 30px rgba(12, 72, 27, .09);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  height: 100% !important;
  min-height: 22rem !important;
  overflow: hidden;
  padding: 1.65rem !important;
  position: relative;
  transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease !important;
}

.este-home-review-card .testimonial-box:hover {
  border-color: var(--este-green-border);
  box-shadow: 0 18px 36px rgba(12, 89, 28, .15);
  transform: translateY(-3px) !important;
}

.este-home-review-card .testimonial-box::after {
  color: #607166;
  content: "Google";
  font-family: var(--este-ui-font);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
  position: absolute;
  right: 1.65rem;
  top: 2.05rem;
}

.este-home-review-card .icon-content {
  align-items: center;
  background: var(--este-green-soft);
  border-radius: .75rem;
  color: var(--este-green-deep) !important;
  display: flex;
  height: 2.5rem;
  justify-content: center;
  left: 1.65rem !important;
  position: absolute;
  top: 1.8rem !important;
  width: 2.5rem;
}

.este-home-review-card .icon-content svg { fill: currentColor; height: 1rem; width: 1rem; }
.este-home-review-card .icon-content span { font-family: Georgia, serif; font-size: 2.1rem; line-height: 1; }
.este-home-review-card .comment-content p { color: #1d2a20; font-family: var(--este-ui-font); font-size: .98rem; font-weight: 600; line-height: 1.55; margin: 0; padding: 4.15rem 0 .75rem !important; }
.este-home-review-card .comment-header { margin-bottom: .9rem; }
.este-home-review-card .google-stars { font-size: .86rem; letter-spacing: .13em; }
.este-home-review-card .comment-bio { margin-top: auto; }
.este-home-review-card .bio-details { align-items: center; display: flex; gap: .8rem; }
.este-home-review-card .profile-image img { border: 2px solid var(--este-green) !important; border-radius: 50% !important; height: 3.15rem !important; object-fit: cover; width: 3.15rem !important; }
.este-home-review-card .profile-info { display: grid; gap: .14rem; }
.este-home-review-card .profile-name { color: #17231a; font-family: var(--este-ui-font); font-size: .96rem; }
.este-home-review-card .profile-des { color: #637066; font-size: .78rem; margin: 0; }

@media (max-width: 767px) {
  .elementor-7 .elementor-element-d162ca4 { --padding-bottom: 2.5rem !important; --padding-top: 3rem !important; }
  .este-home-review-viewport { min-height: 25rem; }
  .este-home-review-rail { gap: .9rem; }
  .este-home-review-card { flex-basis: min(82vw, 22rem); height: 23.5rem; }
  .este-home-review-card .testimonial-box { min-height: 23.5rem !important; }
}

/* Turkish-safe local UI typography. The native system family keeps every
   Turkish glyph consistent without depending on remote font subsets. */
:root {
  --este-ui-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

html,
body,
.elementor-kit-6,
.elementor-kit-6 h1,
.elementor-kit-6 h2,
.elementor-kit-6 h3,
.elementor-kit-6 h4,
.elementor-kit-6 h5,
.elementor-kit-6 h6,
.elementor-kit-6 p,
.elementor-kit-6 a,
.elementor-kit-6 button,
.elementor-kit-6 input,
.elementor-kit-6 textarea,
.elementor-kit-6 select,
.elementor-kit-6 label,
.elementor-kit-6 .elementor-button,
.elementor-kit-6 .elementor-heading-title,
.elementor-kit-6 .elementskit-navbar-nav > li > a,
.elementor-kit-6 .elementskit-submenu-panel a,
.elementor-kit-6 .jkit-post-title,
.elementor-kit-6 .jkit-post-excerpt,
.elementor-kit-6 .jkit-readmore,
.elementor-kit-6 .profile-name,
.elementor-kit-6 .profile-des,
.elementor-kit-6 .testimonial-box,
.elementor-kit-6 .elementor-widget-text-editor {
  font-family: var(--este-ui-font) !important;
}

.elementor-kit-6 {
  --e-global-typography-primary-font-family: var(--este-ui-font);
  --e-global-typography-secondary-font-family: var(--este-ui-font);
  --e-global-typography-text-font-family: var(--este-ui-font);
  --e-global-typography-accent-font-family: var(--este-ui-font);
}

/* Compact home banner and keep its patient portraits consistently circular. */
.elementor-7 .elementor-element-4436131 {
  --min-height: 82vh !important;
  --padding-bottom: 3.25rem !important;
}

.elementor-7 .elementor-element-34a343d .elementor-widget-image img {
  height: 3.125rem !important;
  object-fit: cover;
  object-position: center 24%;
  width: 3.125rem !important;
}

@media (max-width: 767px) {
  .elementor-7 .elementor-element-4436131 {
    --min-height: auto !important;
    --padding-bottom: 2.75rem !important;
    --padding-top: 3.5rem !important;
  }

  /* Keep all three hero profile portraits on one line beside the 10K+ copy. */
  .elementor-7 .elementor-element-2efdd37 {
    --align-items: center !important;
    --flex-wrap-mobile: nowrap !important;
    --gap: .75rem .75rem !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
  }

  .elementor-7 .elementor-element-34a343d {
    --flex-wrap-mobile: nowrap !important;
    --width: 7.5rem !important;
    flex: 0 0 7.5rem !important;
    flex-wrap: nowrap !important;
    min-width: 7.5rem !important;
    width: 7.5rem !important;
  }

  .elementor-7 .elementor-element-34a343d > .elementor-widget-image {
    flex: 0 0 3.125rem !important;
    margin-bottom: 0 !important;
    width: 3.125rem !important;
  }

  .elementor-7 .elementor-element-cc5aa2f {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
  }
}

/* Replace the original template's blue about-card overlay with Este green. */
.elementor-7 .elementor-element.elementor-element-3daaa1e::before,
.elementor-7 .elementor-element.elementor-element-3daaa1e > .elementor-background-video-container::before,
.elementor-7 .elementor-element.elementor-element-3daaa1e > .e-con-inner > .elementor-background-video-container::before,
.elementor-7 .elementor-element.elementor-element-3daaa1e > .elementor-background-slideshow::before,
.elementor-7 .elementor-element.elementor-element-3daaa1e > .e-con-inner > .elementor-background-slideshow::before,
.elementor-7 .elementor-element.elementor-element-3daaa1e > .elementor-motion-effects-container > .elementor-motion-effects-layer::before {
  background-image: linear-gradient(180deg, rgba(12, 89, 28, 0) 10%, rgba(12, 89, 28, .94) 100%) !important;
}

/* Home consultation CTA: branded replacement for the template's stock banner. */
.elementor-7 .elementor-element.elementor-element-38d9092 {
  --min-height: 30rem !important;
  --padding-bottom: 0 !important;
  --padding-top: 0 !important;
  background-color: #06180d !important;
  background-image: none !important;
  overflow: hidden;
  position: relative;
}

.elementor-7 .elementor-element.elementor-element-38d9092::before,
.elementor-7 .elementor-element.elementor-element-38d9092 > .elementor-background-video-container::before,
.elementor-7 .elementor-element.elementor-element-38d9092 > .e-con-inner > .elementor-background-video-container::before,
.elementor-7 .elementor-element.elementor-element-38d9092 > .elementor-background-slideshow::before,
.elementor-7 .elementor-element.elementor-element-38d9092 > .e-con-inner > .elementor-background-slideshow::before,
.elementor-7 .elementor-element.elementor-element-38d9092 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before {
  background-color: transparent !important;
  background-image:
    radial-gradient(circle at 23% 52%, rgba(73, 190, 101, .22), transparent 27%),
    linear-gradient(112deg, #06180d 0%, #0a3218 52%, #0c591c 100%) !important;
  opacity: 1 !important;
}

.elementor-7 .elementor-element-38d9092 > .e-con-inner {
  align-items: center;
  display: grid !important;
  gap: clamp(2rem, 6vw, 6rem);
  grid-template-columns: minmax(18rem, .9fr) minmax(28rem, 1.1fr);
  min-height: 30rem;
  position: relative;
  width: min(72rem, 100%);
  z-index: 1;
}

.este-consultation-visual {
  align-self: end;
  height: 28rem;
  isolation: isolate;
  position: relative;
}

.este-consultation-visual::before {
  background: rgba(71, 196, 99, .14);
  border: 1px solid rgba(170, 240, 184, .16);
  border-radius: 50%;
  content: "";
  height: 24rem;
  left: 50%;
  position: absolute;
  top: 52%;
  transform: translate(-50%, -50%);
  width: 24rem;
  z-index: -1;
}

.este-consultation-visual img {
  bottom: 0;
  filter: drop-shadow(0 22px 32px rgba(0, 0, 0, .28));
  height: 30rem !important;
  left: 50%;
  max-width: none !important;
  object-fit: contain;
  position: absolute;
  transform: translateX(-50%);
  width: auto !important;
}

.elementor-7 .elementor-element-57ea458 {
  --align-items: flex-start !important;
  --gap: .9rem .9rem !important;
  --justify-content: center !important;
  --width: 100% !important;
  align-items: flex-start !important;
  max-width: 39rem;
  padding: 3.5rem 0;
  position: relative;
  width: 100% !important;
  z-index: 2;
}

.elementor-7 .elementor-element-e45e1ec {
  margin: 0 !important;
}

.elementor-7 .elementor-element-e45e1ec .elementor-icon-list-icon svg {
  fill: #7ddd92 !important;
}

.elementor-7 .elementor-element-e45e1ec .elementor-icon-list-text {
  color: #9fe8ae !important;
  font-size: .9rem !important;
  font-weight: 700 !important;
  letter-spacing: .01em;
}

.elementor-7 .elementor-element-1bec0e5,
.elementor-7 .elementor-element-90de392 {
  margin: 0 !important;
  max-width: 39rem !important;
  text-align: left !important;
  width: 100% !important;
}

.elementor-7 .elementor-element-1bec0e5 .elementor-heading-title {
  color: #fff !important;
  font-size: clamp(2rem, 4vw, 3.35rem) !important;
  font-weight: 750 !important;
  letter-spacing: -.045em !important;
  line-height: 1.02 !important;
}

.elementor-7 .elementor-element-90de392 p {
  color: rgba(255, 255, 255, .8) !important;
  font-size: 1.05rem;
  line-height: 1.7;
  margin: .25rem 0 .8rem !important;
}

.elementor-7 .elementor-element-6263f12 {
  margin: .5rem 0 0 !important;
}

.elementor-7 .elementor-element-6263f12 .elementor-button {
  background: linear-gradient(135deg, #ffffff 0%, #ddffe5 52%, #bff4cb 100%) !important;
  border: 1px solid rgba(255, 255, 255, .7) !important;
  border-radius: 999px !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .28), 0 0 0 5px rgba(255, 255, 255, .06) !important;
  color: var(--este-green-deep) !important;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: .01em;
  overflow: hidden;
  padding: 1.05rem 1.7rem !important;
  position: relative;
  isolation: isolate;
}

.elementor-7 .elementor-element-6263f12 .elementor-button::before {
  background: linear-gradient(105deg, transparent 20%, rgba(255, 255, 255, .78) 48%, transparent 76%);
  content: "";
  inset: 0;
  position: absolute;
  transform: translateX(-130%);
  transition: transform 620ms cubic-bezier(.22, 1, .36, 1);
  z-index: -1;
}

.elementor-7 .elementor-element-6263f12 .elementor-button-content-wrapper {
  align-items: center;
  display: inline-flex;
  gap: .7rem;
}

.elementor-7 .elementor-element-6263f12 .elementor-button-content-wrapper::before {
  background: var(--este-green);
  border: 4px solid rgba(3, 138, 50, .16);
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(12, 89, 28, .16);
  content: "";
  height: .72rem;
  width: .72rem;
}

.elementor-7 .elementor-element-6263f12 .elementor-button:hover,
.elementor-7 .elementor-element-6263f12 .elementor-button:focus {
  background: #fff !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .34), 0 0 0 6px rgba(159, 232, 174, .13) !important;
  color: var(--este-green) !important;
  transform: translateY(-3px) scale(1.015) !important;
}

.elementor-7 .elementor-element-6263f12 .elementor-button:hover::before,
.elementor-7 .elementor-element-6263f12 .elementor-button:focus::before {
  transform: translateX(130%);
}

@keyframes este-consultation-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(126, 238, 149, .08), inset 0 0 0 1px rgba(255, 255, 255, .03);
    transform: translate(-50%, -50%) scale(.97);
  }
  50% {
    box-shadow: 0 0 0 1.5rem rgba(126, 238, 149, 0), inset 0 0 0 1px rgba(255, 255, 255, .09);
    transform: translate(-50%, -52%) scale(1.035);
  }
}

@keyframes este-consultation-orbit {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

.este-consultation-visual::before {
  animation: este-consultation-pulse 5.4s ease-in-out infinite;
}

.este-consultation-visual::after {
  animation: este-consultation-orbit 18s linear infinite;
  background: conic-gradient(from 10deg, transparent 0 22%, rgba(167, 245, 183, .66) 30%, transparent 38% 72%, rgba(167, 245, 183, .3) 80%, transparent 88%);
  border-radius: 50%;
  content: "";
  height: 26rem;
  left: 50%;
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 1px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 1px));
  pointer-events: none;
  position: absolute;
  top: 52%;
  transform: translate(-50%, -50%);
  width: 26rem;
  z-index: -1;
}

@media (max-width: 900px) {
  .elementor-7 .elementor-element-38d9092 > .e-con-inner {
    gap: 0;
    grid-template-columns: 1fr;
    padding: 3rem 1.25rem 0;
  }

  .este-consultation-visual {
    height: 19rem;
  }

  .este-consultation-visual::before {
    height: 18rem;
    width: 18rem;
  }

  .este-consultation-visual::after {
    height: 19rem;
    width: 19rem;
  }

  .este-consultation-visual img {
    height: 21rem !important;
  }

  .elementor-7 .elementor-element-57ea458 {
    align-items: center !important;
    margin: 0 auto;
    padding: 2rem 0 3.5rem;
    text-align: center;
  }

  .elementor-7 .elementor-element-1bec0e5,
  .elementor-7 .elementor-element-90de392 {
    text-align: center !important;
  }
}

/* Compact mobile header: keep the brand and menu control on one clean row.
   Contact and appointment remain available inside the existing off-canvas menu. */
.este-mobile-nav-actions {
  display: none;
}

@media (max-width: 1024px) {
  /* The original off-canvas panel also opens on keyboard/touch focus. This
     keeps the restored hamburger reliable in a static local export. */
  nav.ekit-wid-con:focus-within .elementskit-menu-container.elementskit-menu-offcanvas-elements {
    left: 0 !important;
  }

  nav.ekit-wid-con:focus-within .elementskit-menu-overlay {
    left: 0 !important;
  }

  .elementor-1741 .elementor-element.elementor-element-37ab2c6 {
    --flex-wrap-mobile: nowrap !important;
    --min-height: 6.75rem !important;
    --padding-bottom: .65rem !important;
    --padding-left: clamp(.9rem, 4vw, 1.4rem) !important;
    --padding-right: clamp(.9rem, 4vw, 1.4rem) !important;
    --padding-top: .65rem !important;
  }

  .elementor-1741 .elementor-element.elementor-element-37ab2c6 > .e-con-inner {
    align-items: center !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 1rem !important;
    justify-content: space-between !important;
    min-height: 5.4rem !important;
    padding: 0 !important;
  }

  .elementor-1741 .elementor-element.elementor-element-89e297a {
    flex: 0 0 auto !important;
    width: auto !important;
  }

  .elementor-element-89e297a img[src*="assets/este-logo.svg"],
  .elementor-element-89e297a img[srcset*="assets/este-logo.svg"] {
    width: 7.25rem !important;
  }

  .elementor-1741 .elementor-element.elementor-element-a200ca3 {
    flex: 0 0 auto !important;
    margin-left: auto !important;
    width: auto !important;
  }

  .elementor-1741 .elementor-element.elementor-element-a200ca3 button.elementskit-menu-hamburger {
    align-items: center;
    border: 1px solid rgba(255, 255, 255, .22) !important;
    border-radius: .85rem !important;
    box-shadow: 0 10px 24px rgba(12, 89, 28, .2) !important;
    display: inline-flex;
    height: 3rem;
    justify-content: center;
    padding: .7rem !important;
    width: 3rem !important;
  }

  .elementor-1741 .elementor-element.elementor-element-a200ca3 button.elementskit-menu-hamburger:hover,
  .elementor-1741 .elementor-element.elementor-element-a200ca3 button.elementskit-menu-hamburger:focus {
    transform: none !important;
  }

  .elementor-1741 .elementor-element.elementor-element-a4bb91e.este-header-actions {
    display: none !important;
  }

  html.este-mobile-menu-open,
  html.este-mobile-menu-open body {
    overflow: hidden;
  }

  .elementor-1741 .elementskit-menu-container.elementskit-menu-offcanvas-elements {
    background: #fff !important;
    box-shadow: 18px 0 55px rgba(6, 24, 13, .2) !important;
    max-width: min(88vw, 22rem) !important;
  }

  .elementor-1741 .elementskit-nav-identity-panel {
    align-items: center;
    border-bottom: 1px solid #e8eee9;
    display: flex !important;
    justify-content: space-between;
    padding: 1.15rem !important;
  }

  .elementor-1741 .elementskit-nav-logo img[src*="assets/este-logo.svg"],
  .elementor-1741 .elementskit-nav-logo img[srcset*="assets/este-logo.svg"] {
    width: 6.5rem !important;
  }

  .elementor-1741 button.elementskit-menu-close {
    align-items: center;
    border-radius: .75rem !important;
    display: inline-flex !important;
    float: none !important;
    height: 2.75rem;
    justify-content: center;
    margin: 0 !important;
    width: 2.75rem !important;
  }

  .elementor-1741 .elementskit-navbar-nav {
    padding: .75rem 1rem .25rem !important;
  }

  .elementor-1741 .elementskit-navbar-nav > li > a,
  .elementor-1741 .elementskit-navbar-nav .elementskit-submenu-panel > li > a {
    border-bottom: 1px solid #edf2ee !important;
    color: #17251c !important;
    font-size: 1rem !important;
    font-weight: 650 !important;
    line-height: 1.35 !important;
    padding: .9rem .75rem !important;
  }

  .elementor-1741 .elementskit-navbar-nav .elementskit-submenu-panel > li > a {
    color: #435349 !important;
    font-size: .92rem !important;
    padding-left: 1rem !important;
  }

  .este-mobile-nav-actions {
    display: grid;
    gap: .65rem;
    margin-top: auto;
    padding: 1rem 1.15rem 1.4rem;
  }

  .este-mobile-nav-actions a {
    align-items: center;
    border: 1px solid var(--este-green);
    border-radius: .8rem;
    display: flex;
    font-size: .95rem;
    font-weight: 750;
    justify-content: center;
    min-height: 3rem;
    text-decoration: none;
  }

  .este-mobile-nav-contact {
    background: #fff;
    color: var(--este-green-deep) !important;
  }

  .este-mobile-nav-appointment {
    background: linear-gradient(105deg, var(--este-green), var(--este-green-deep));
    box-shadow: 0 10px 24px rgba(12, 89, 28, .2);
    color: #fff !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .este-consultation-visual::before,
  .este-consultation-visual::after {
    animation: none !important;
  }
}

/* Full-width clinic hero: local treatment photography with a strong,
   brand-green reading gradient inspired by the supplied composition. */
.elementor-7 .elementor-element.elementor-element-1dd62f8 {
  --padding-left: 2.5rem !important;
  --padding-right: 2.5rem !important;
}

.elementor-7 .elementor-element.elementor-element-4436131 {
  --min-height: 43rem !important;
  --padding-bottom: 4.25rem !important;
  --padding-left: 1.5rem !important;
  --padding-right: 1.5rem !important;
  --padding-top: 4.25rem !important;
  background-color: var(--este-green-deep) !important;
  background-image:
    linear-gradient(90deg, rgba(3, 28, 11, .98) 0%, rgba(5, 48, 19, .94) 31%, rgba(8, 95, 34, .73) 54%, rgba(8, 95, 34, .24) 76%, rgba(3, 28, 11, .08) 100%),
    url("./assets/banner/hero-hairline-consultation.jpg") !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  border-radius: 1rem;
  isolation: isolate;
  overflow: hidden;
  position: relative;
}

.elementor-7 .elementor-element.elementor-element-4436131::before,
.elementor-7 .elementor-element.elementor-element-4436131 > .elementor-background-video-container::before,
.elementor-7 .elementor-element.elementor-element-4436131 > .e-con-inner > .elementor-background-video-container::before,
.elementor-7 .elementor-element.elementor-element-4436131 > .elementor-background-slideshow::before,
.elementor-7 .elementor-element.elementor-element-4436131 > .e-con-inner > .elementor-background-slideshow::before,
.elementor-7 .elementor-element.elementor-element-4436131 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before {
  background-color: transparent !important;
  background-image: none !important;
  opacity: 1 !important;
}

.elementor-7 .elementor-element.elementor-element-4436131::after {
  display: none;
}

.elementor-7 .elementor-element-4436131 > .e-con-inner {
  align-items: center !important;
  gap: clamp(1.5rem, 3vw, 3rem) !important;
  max-width: 76rem !important;
  width: 100% !important;
}

.elementor-7 .elementor-element-fa113f9 {
  --width: 58% !important;
  position: relative;
  z-index: 2;
}

.elementor-7 .elementor-element-fb4034d {
  --width: 42% !important;
  align-items: center !important;
  min-width: 0;
  position: relative;
  z-index: 1;
}

.elementor-7 .elementor-element-b6c0919 .elementor-icon-list-icon svg {
  fill: #fff !important;
}

.elementor-7 .elementor-element-b6c0919 .elementor-icon-list-text {
  color: #fff !important;
  font-size: .92rem !important;
  font-weight: 750 !important;
  letter-spacing: .025em;
}

.elementor-7 .elementor-element-e4c9019 .heading-title {
  color: #fff !important;
  font-size: clamp(3.15rem, 4.9vw, 5rem) !important;
  font-weight: 780 !important;
  letter-spacing: -.06em !important;
  line-height: .96 !important;
  max-width: 44rem;
}

.elementor-7 .elementor-element-e4c9019 .style-color,
.elementor-7 .elementor-element-e4c9019 .style-color span {
  color: #fff !important;
}

.elementor-7 .elementor-element-0754d63 {
  max-width: 38rem !important;
}

.elementor-7 .elementor-element-0754d63 p {
  color: rgba(255, 255, 255, .82) !important;
  font-size: 1.05rem !important;
  line-height: 1.7 !important;
}

.este-hero-service-pills {
  display: grid;
  gap: .7rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: .35rem 0 .55rem;
  max-width: 38rem;
}

.este-hero-service-pills span {
  align-items: center;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  background: rgba(2, 24, 9, .44);
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: .65rem;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 8px 24px rgba(0, 0, 0, .1);
  color: #fff;
  display: flex;
  font-size: .82rem;
  font-weight: 750;
  letter-spacing: .005em;
  min-height: 3.25rem;
  padding: .7rem .8rem .7rem 2.75rem;
  position: relative;
}

.este-hero-service-pills span::before {
  align-items: center;
  background: linear-gradient(105deg, var(--este-green), var(--este-green-deep));
  border: 1px solid rgba(255, 255, 255, .46);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .18);
  color: #fff;
  content: "✓";
  display: flex;
  font-size: .72rem;
  font-weight: 900;
  height: 1.55rem;
  justify-content: center;
  left: .72rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 1.55rem;
}

.elementor-7 .elementor-element-8ac3825 {
  gap: .8rem !important;
  margin-top: .55rem;
}

.elementor-7 .elementor-element-be10aae .elementor-button,
.elementor-7 .elementor-element-166ee88 .elementor-button {
  background: linear-gradient(105deg, var(--este-green), var(--este-green-deep)) !important;
  border: 1px solid var(--este-green-deep) !important;
  border-radius: .5rem !important;
  box-shadow: 0 8px 20px rgba(2, 32, 11, .26), 0 0 0 1px rgba(255, 255, 255, .12) !important;
  color: #fff !important;
  font-weight: 750 !important;
  padding: 1rem 1.35rem !important;
}

.elementor-7 .elementor-element-be10aae .elementor-button:hover,
.elementor-7 .elementor-element-be10aae .elementor-button:focus,
.elementor-7 .elementor-element-166ee88 .elementor-button:hover,
.elementor-7 .elementor-element-166ee88 .elementor-button:focus {
  background: linear-gradient(105deg, var(--este-green-deep), var(--este-green)) !important;
  border-color: var(--este-green) !important;
  color: #fff !important;
  transform: translateY(-3px) !important;
}

.elementor-7 .elementor-element-6cc8d86 .elementor-divider-separator {
  border-color: rgba(255, 255, 255, .16) !important;
}

.elementor-7 .elementor-element-cc5aa2f .elementor-counter,
.elementor-7 .elementor-element-cc5aa2f .elementor-counter-title,
.elementor-7 .elementor-element-cc5aa2f .elementor-counter-number-wrapper {
  color: #fff !important;
}

.este-hero-instagram-composition {
  height: 39rem;
  max-width: 31rem;
  position: relative;
  width: 100%;
}

.este-hero-post {
  background: #fff;
  border: .48rem solid #fff;
  border-radius: 1.45rem;
  box-shadow: 0 28px 70px rgba(0, 0, 0, .34);
  display: block;
  overflow: hidden;
  position: absolute;
  transition: transform 420ms cubic-bezier(.2, .8, .2, 1), box-shadow 420ms ease;
}

.este-hero-post img {
  display: block;
  height: 100% !important;
  object-fit: cover;
  width: 100% !important;
}

.este-hero-post-main {
  animation: este-hero-float 7s ease-in-out infinite;
  height: 35rem;
  right: 0;
  top: 0;
  transform: rotate(2.2deg);
  width: 28rem;
  z-index: 1;
}

.este-hero-post-accent {
  bottom: .25rem;
  height: 17.5rem;
  left: -1.1rem;
  transform: rotate(-4deg);
  width: 14rem;
  z-index: 2;
}

.este-hero-post:hover,
.este-hero-post:focus {
  box-shadow: 0 34px 80px rgba(0, 0, 0, .42);
  outline: 0;
  transform: rotate(0) translateY(-.4rem) scale(1.015);
}

.este-hero-result-note {
  background: var(--este-lime);
  border-radius: 1rem;
  bottom: 1.1rem;
  color: #073418;
  display: grid;
  gap: .2rem;
  padding: 1rem 1.15rem;
  position: absolute;
  right: -.75rem;
  transform: rotate(1.5deg);
  width: 13.5rem;
  z-index: 3;
}

.este-hero-result-note span {
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.este-hero-result-note strong {
  font-size: 1.06rem;
  line-height: 1.18;
}

.este-hero-clinic-visual {
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 1.65rem;
  box-shadow: 0 28px 65px rgba(0, 0, 0, .28);
  height: 35rem;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.este-hero-clinic-visual::after {
  background: linear-gradient(180deg, transparent 58%, rgba(5, 43, 17, .34) 100%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.este-hero-clinic-visual img {
  display: block;
  height: 100% !important;
  object-fit: cover;
  object-position: 50% center;
  transition: transform 700ms cubic-bezier(.2, .8, .2, 1);
  width: 100% !important;
}

.este-hero-clinic-visual:hover img {
  transform: scale(1.025);
}

.este-hero-service-pills,
.este-hero-service-pills *,
.este-hero-clinic-visual,
.este-results-showcase,
.este-results-showcase * {
  font-family: var(--este-ui-font) !important;
}

@keyframes este-hero-float {
  0%, 100% { transform: rotate(2.2deg) translateY(0); }
  50% { transform: rotate(1.2deg) translateY(-.7rem); }
}

.este-results-showcase {
  background: #fff;
  border-bottom: 1px solid #edf1ee;
  border-top: 1px solid #edf1ee;
  color: var(--este-ink);
  overflow: hidden;
  padding: clamp(4rem, 7vw, 6rem) 1.5rem;
  position: relative;
}

.este-results-showcase::before {
  display: none;
}

.este-results-inner {
  margin: 0 auto;
  max-width: 74rem;
  position: relative;
  z-index: 1;
}

.este-results-heading {
  align-items: center;
  display: grid;
  gap: clamp(2rem, 5vw, 4.5rem);
  grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .95fr);
  margin-bottom: 2.5rem;
}

.este-results-kicker {
  align-items: center;
  color: var(--este-green-deep);
  display: inline-flex;
  font-size: .82rem;
  font-weight: 800;
  gap: .65rem;
  letter-spacing: .055em;
  margin-bottom: 1rem;
  text-transform: uppercase;
}

.este-results-kicker::before {
  background: var(--este-green);
  border-radius: .15rem;
  content: "";
  height: .72rem;
  width: .72rem;
}

.este-results-heading h2 {
  color: var(--este-ink);
  font-size: clamp(2.45rem, 4vw, 3.8rem);
  font-weight: 780;
  letter-spacing: -.055em;
  line-height: .98;
  margin: 0;
}

.este-results-intro p {
  color: #435048;
  font-size: 1rem;
  line-height: 1.7;
  margin: 0;
}

.este-results-intro a {
  align-items: center;
  color: var(--este-green-deep) !important;
  display: inline-flex;
  font-weight: 800;
  gap: .45rem;
  text-decoration: none;
}

.este-results-intro a span {
  transition: transform 180ms ease;
}

.este-results-intro a:hover span,
.este-results-intro a:focus span {
  transform: translate(.18rem, -.18rem);
}

.este-results-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0 auto;
  max-width: 54rem;
}

.este-result-card {
  background: #fff;
  border: 1px solid #e0e5e1;
  border-radius: 1.1rem;
  box-shadow: 0 12px 28px rgba(7, 51, 24, .07);
  color: var(--este-ink) !important;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  text-decoration: none !important;
  transition: border-color 260ms ease, box-shadow 260ms ease, transform 260ms ease;
}

.este-result-card:hover,
.este-result-card:focus {
  border-color: var(--este-green-border);
  box-shadow: 0 20px 42px rgba(7, 51, 24, .13);
  outline: 0;
  transform: translateY(-.3rem);
}

.este-result-media {
  aspect-ratio: 4 / 5;
  background: #0b4a20;
  overflow: hidden;
}

.este-result-media img {
  display: block;
  height: 100% !important;
  object-fit: cover;
  transition: transform 520ms cubic-bezier(.2, .8, .2, 1);
  width: 100% !important;
}

.este-result-card:hover .este-result-media img,
.este-result-card:focus .este-result-media img {
  transform: scale(1.035);
}

.este-result-copy {
  display: grid;
  gap: .35rem;
  min-height: 7.4rem;
  padding: 1.2rem 1.25rem 1.35rem;
}

.este-result-copy span {
  color: var(--este-green);
  font-size: .73rem;
  font-weight: 850;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.este-result-copy strong {
  color: #102117;
  font-size: 1.08rem;
  line-height: 1.3;
}

.este-result-copy small {
  color: #69736c;
  font-size: .76rem;
}

@media (max-width: 1024px) {
  .elementor-7 .elementor-element-4436131 > .e-con-inner {
    gap: 1.5rem !important;
  }

  .elementor-7 .elementor-element-fa113f9 {
    --width: 60% !important;
  }

  .elementor-7 .elementor-element-fb4034d {
    --width: 40% !important;
  }

  .este-hero-instagram-composition {
    height: 31rem;
  }

  .este-hero-post-main {
    height: 29rem;
    width: 23rem;
  }

  .este-hero-post-accent {
    height: 13.75rem;
    left: -.5rem;
    width: 11rem;
  }

  .este-hero-result-note {
    right: -.2rem;
    width: 11rem;
  }

  .este-hero-clinic-visual {
    height: 29rem;
  }
}

@media (max-width: 767px) {
  .elementor-7 .elementor-element.elementor-element-4436131 {
    --min-height: auto !important;
    --padding-bottom: 2.6rem !important;
    --padding-left: 1.15rem !important;
    --padding-right: 1.15rem !important;
    --padding-top: 3rem !important;
    background-image:
      linear-gradient(90deg, rgba(3, 28, 11, .98) 0%, rgba(5, 56, 22, .94) 62%, rgba(5, 56, 22, .72) 100%),
      url("./assets/banner/hero-hairline-consultation.jpg") !important;
    background-position: 66% center !important;
    border-radius: .9rem;
  }

  .elementor-7 .elementor-element.elementor-element-1dd62f8 {
    --padding-left: .75rem !important;
    --padding-right: .75rem !important;
  }

  .elementor-7 .elementor-element-4436131 > .e-con-inner {
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 1.75rem !important;
  }

  .elementor-7 .elementor-element-fa113f9 {
    --width: 100% !important;
    width: 100% !important;
  }

  .elementor-7 .elementor-element-fb4034d {
    display: none !important;
  }

  .elementor-7 .elementor-element-e4c9019 .heading-title {
    font-size: clamp(2.65rem, 12.6vw, 4rem) !important;
    line-height: .98 !important;
  }

  .elementor-7 .elementor-element-0754d63 p {
    font-size: .98rem !important;
    line-height: 1.6 !important;
  }

  .elementor-7 .elementor-element-0754d63 {
    --container-widget-width: 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  .elementor-7 .elementor-element-8ac3825 {
    flex-direction: column !important;
  }

  .elementor-7 .elementor-element-8ac3825 .elementor-widget-button {
    width: 100% !important;
  }

  .este-hero-service-pills {
    grid-template-columns: 1fr;
  }

  .este-hero-instagram-composition {
    height: 26.5rem;
    margin: 0 auto;
    max-width: 21rem;
  }

  .este-hero-post-main {
    height: 24.5rem;
    right: .2rem;
    width: 19.6rem;
  }

  .este-hero-post-accent {
    bottom: 0;
    height: 10.5rem;
    left: -.35rem;
    width: 8.4rem;
  }

  .este-hero-result-note {
    bottom: .6rem;
    font-size: .9rem;
    padding: .75rem .8rem;
    right: -.1rem;
    width: 9.5rem;
  }

  .este-hero-result-note span { font-size: .57rem; }
  .este-hero-result-note strong { font-size: .82rem; }

  .este-hero-clinic-visual {
    border-radius: 1.1rem;
    height: 15.5rem;
  }

  .este-hero-clinic-visual img {
    object-position: center 45%;
  }

  .este-results-showcase {
    padding: 3.75rem 1rem;
  }

  .este-results-heading {
    gap: 1.25rem;
    grid-template-columns: 1fr;
    margin-bottom: 1.8rem;
  }

  .este-results-heading h2 {
    font-size: clamp(2.4rem, 11vw, 3.35rem);
  }

  .este-results-grid {
    gap: 1rem;
    grid-template-columns: 1fr;
    max-width: 27rem;
  }

  .este-result-card {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .este-hero-post-main {
    animation: none !important;
  }

  .este-hero-post,
  .este-hero-clinic-visual img,
  .este-result-card,
  .este-result-media img {
    transition: none !important;
  }
}

/* About page rebuilt around Esste Moda Hair's real clinic imagery. */
.este-about-page { color:var(--este-ink); font-family:var(--este-ui-font); overflow:hidden; }
.este-about-page > section { padding-left:max(1.25rem,calc((100vw - 76rem)/2)); padding-right:max(1.25rem,calc((100vw - 76rem)/2)); }
.este-about-hero { align-items:center; background:linear-gradient(135deg,#f5faf6 0%,#fff 58%,#edf7f0 100%); display:grid; gap:clamp(2.5rem,6vw,6rem); grid-template-columns:minmax(0,.92fr) minmax(28rem,1.08fr); min-height:46rem; padding-bottom:5rem; padding-top:5rem; position:relative; }
.este-about-copy h1 { font-size:clamp(3.25rem,5.4vw,5.75rem); letter-spacing:-.065em; line-height:.95; margin:1.2rem 0 1.5rem; max-width:13ch; }
.este-about-copy > p { color:var(--este-muted); font-size:1.08rem; line-height:1.75; max-width:39rem; }
.este-about-actions { align-items:center; display:flex; flex-wrap:wrap; gap:1.2rem; margin-top:2rem; }
.este-about-trust { border-top:1px solid var(--este-line); display:grid; gap:1rem; grid-template-columns:repeat(3,1fr); margin-top:2.7rem; padding-top:1.5rem; }
.este-about-trust span { color:#68736c; font-size:.76rem; line-height:1.35; }
.este-about-trust strong { color:var(--este-green-dark); display:block; font-size:1.45rem; margin-bottom:.18rem; }
.este-about-visual { border-radius:1.4rem; box-shadow:0 28px 70px rgba(4,55,20,.15); height:37rem; overflow:hidden; position:relative; }
.este-about-visual::after { background:linear-gradient(180deg,transparent 55%,rgba(3,39,15,.72)); content:""; inset:0; position:absolute; }
.este-about-visual img { height:100%; object-fit:cover; width:100%; }
.este-about-visual > span { bottom:1.3rem; color:#fff; display:flex; flex-direction:column; left:1.5rem; max-width:18rem; position:absolute; z-index:1; }
.este-about-visual > span b { font-size:1.1rem; margin-bottom:.25rem; }
.este-about-principles { background:#043516; color:#fff; padding-bottom:6rem; padding-top:6rem; }
.este-about-heading { display:grid; gap:2rem; grid-template-columns:1fr 1fr; }
.este-about-heading .este-eyebrow { color:#9eeab4; }
.este-about-heading h2 { color:#fff; font-size:clamp(2.8rem,4.6vw,4.7rem); letter-spacing:-.055em; line-height:1; margin:1rem 0 0; max-width:14ch; }
.este-about-heading p { align-self:end; color:rgba(255,255,255,.7); font-size:1rem; line-height:1.75; margin:0; }
.este-about-principle-grid { display:grid; gap:1rem; grid-template-columns:repeat(4,1fr); margin-top:3.5rem; }
.este-about-principle-grid article { background:rgba(255,255,255,.065); border:1px solid rgba(255,255,255,.14); border-radius:1rem; min-height:17rem; padding:1.5rem; transition:background .3s ease,transform .3s ease; }
.este-about-principle-grid article:hover { background:rgba(255,255,255,.11); transform:translateY(-6px); }
.este-about-principle-grid b { color:#8de4a8; font-size:.75rem; letter-spacing:.1em; }
.este-about-principle-grid h3 { color:#fff; font-size:1.3rem; margin:3.5rem 0 .7rem; }
.este-about-principle-grid p { color:rgba(255,255,255,.65); font-size:.91rem; line-height:1.65; }
.este-about-story { align-items:center; display:grid; gap:clamp(2rem,6vw,6rem); grid-template-columns:1.05fr .95fr; padding-bottom:7rem; padding-top:7rem; }
.este-about-story-media { display:grid; gap:1rem; grid-template-columns:1fr .72fr; height:37rem; }
.este-about-story-media img { border-radius:1rem; height:100%; object-fit:cover; width:100%; }
.este-about-story-media img:last-child { height:76%; margin-top:auto; }
.este-about-story-copy h2 { font-size:clamp(2.7rem,4.4vw,4.3rem); letter-spacing:-.055em; line-height:1; margin:1rem 0 1.4rem; }
.este-about-story-copy p { color:var(--este-muted); line-height:1.8; }
.este-about-story-copy ul { display:grid; gap:.75rem; list-style:none; margin:1.5rem 0 2rem; padding:0; }
.este-about-story-copy li { padding-left:1.8rem; position:relative; }
.este-about-story-copy li::before { color:var(--este-green); content:"✓"; font-weight:900; left:0; position:absolute; }
.este-about-journey { background:#f3f8f4; padding-bottom:6rem; padding-top:6rem; }
.este-about-journey header { margin:0 auto 3rem; max-width:46rem; text-align:center; }
.este-about-journey h2 { font-size:clamp(2.7rem,4.3vw,4.2rem); letter-spacing:-.055em; line-height:1; margin:1rem 0 0; }
.este-about-journey > div { display:grid; gap:1rem; grid-template-columns:repeat(4,1fr); }
.este-about-journey article { background:#fff; border:1px solid var(--este-line); border-radius:1rem; min-height:13rem; padding:1.5rem; }
.este-about-journey article b { color:var(--este-green); font-size:.78rem; }
.este-about-journey article h3 { font-size:1.25rem; margin:2.2rem 0 .6rem; }
.este-about-journey article p { color:var(--este-muted); font-size:.9rem; line-height:1.6; }
.este-about-cta { align-items:center; background:linear-gradient(115deg,#032d12,#087a31); color:#fff; display:flex; gap:3rem; justify-content:space-between; padding-bottom:5rem; padding-top:5rem; }
.este-about-cta .este-eyebrow { color:#a1efb8; }
.este-about-cta h2 { color:#fff; font-size:clamp(2.5rem,4vw,4rem); letter-spacing:-.05em; line-height:1; margin:1rem 0; max-width:17ch; }
.este-about-cta p { color:rgba(255,255,255,.7); line-height:1.7; max-width:40rem; }
.este-about-cta .este-primary-button { background:#fff; color:var(--este-green-dark) !important; flex:none; }

/* Refined address marker and dependable click target. */
.este-address-card .elementor-icon { align-items:center !important; background:#edf8f0 !important; border:1px solid #cde8d4 !important; border-radius:50% !important; color:var(--este-green) !important; display:flex !important; height:3.5rem !important; justify-content:center !important; width:3.5rem !important; }
.este-address-card .elementor-icon svg { display:block !important; fill:none !important; height:1.65rem !important; stroke:currentColor !important; stroke-linecap:round !important; stroke-linejoin:round !important; stroke-width:1.9 !important; width:1.65rem !important; }

/* Hero entry, depth and site-wide scroll reveals. */
.este-hero-animated { animation:esteHeroPan 16s ease-in-out infinite alternate; }
.este-hero-animated .elementor-element-b7ae6d9 { animation:esteHeroCopyIn .85s cubic-bezier(.2,.75,.25,1) .08s both !important; opacity:1 !important; }
.este-hero-animated .elementor-element-d260c30 { animation:esteHeroCopyIn .85s cubic-bezier(.2,.75,.25,1) .35s both !important; opacity:1 !important; }
.este-hero-animated .este-hero-service-pills span { animation:esteHeroPillIn .65s cubic-bezier(.2,.75,.25,1) both; }
.este-hero-animated .este-hero-service-pills span:nth-child(1) { animation-delay:.45s; }
.este-hero-animated .este-hero-service-pills span:nth-child(2) { animation-delay:.56s; }
.este-hero-animated .este-hero-service-pills span:nth-child(3) { animation-delay:.67s; }
@keyframes esteHeroCopyIn { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
@keyframes esteHeroPillIn { from{opacity:0;transform:translateY(16px) scale(.97)} to{opacity:1;transform:translateY(0) scale(1)} }
@keyframes esteHeroPan { from{background-position:50% 50%} to{background-position:54% 50%} }
.este-scroll-reveal { opacity:0; transform:translateY(28px); transition:opacity .72s ease var(--reveal-delay,0ms),transform .72s cubic-bezier(.2,.75,.25,1) var(--reveal-delay,0ms); }
.este-scroll-reveal.is-visible { opacity:1; transform:translateY(0); }

@media (max-width:1024px) {
  .este-about-hero { grid-template-columns:1fr; min-height:0; }
  .este-about-visual { height:32rem; }
  .este-about-principle-grid,.este-about-journey > div { grid-template-columns:repeat(2,1fr); }
  .este-about-story { grid-template-columns:1fr; }
}
@media (max-width:767px) {
  .este-about-page > section { padding-left:1rem; padding-right:1rem; }
  .este-about-hero { gap:2.5rem; padding-bottom:4rem; padding-top:3.5rem; }
  .este-about-copy h1 { font-size:clamp(2.8rem,13vw,4rem); }
  .este-about-actions { align-items:stretch; flex-direction:column; }
  .este-about-actions .este-primary-button { width:100%; }
  .este-about-trust { grid-template-columns:1fr 1fr; }
  .este-about-visual { height:25rem; }
  .este-about-heading,.este-about-principle-grid,.este-about-journey > div { grid-template-columns:1fr; }
  .este-about-principle-grid article { min-height:13rem; }
  .este-about-principle-grid h3 { margin-top:2rem; }
  .este-about-story-media { height:28rem; }
  .este-about-story-copy h2,.este-about-journey h2 { font-size:clamp(2.4rem,11vw,3.4rem); }
  .este-about-cta { align-items:flex-start; flex-direction:column; }
  .este-about-cta .este-primary-button { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  .este-hero-animated,.este-hero-animated * { animation:none !important; }
  .este-scroll-reveal { opacity:1 !important; transform:none !important; transition:none !important; }
}

/* Corporate content scale: internal pages use measured editorial typography. */
.este-about-hero {
  gap:clamp(2.5rem,5vw,5rem);
  grid-template-columns:minmax(0,.96fr) minmax(26rem,1.04fr);
  min-height:39rem;
  padding-bottom:4rem;
  padding-top:4rem;
}
.este-about-copy h1 {
  font-size:clamp(2.6rem,3.7vw,4rem);
  letter-spacing:-.045em;
  line-height:1.05;
  max-width:17ch;
}
.este-about-copy > p { font-size:1rem; max-width:35rem; }
.este-about-visual { height:31rem; }
.este-about-heading h2,
.este-about-story-copy h2,
.este-about-journey h2,
.este-about-cta h2 {
  font-size:clamp(2rem,2.8vw,3.05rem);
  letter-spacing:-.04em;
  line-height:1.1;
}
.este-about-principles,
.este-about-journey { padding-bottom:5rem; padding-top:5rem; }
.este-about-story { padding-bottom:5.5rem; padding-top:5.5rem; }
.este-about-story-media { height:32rem; }

.este-treatment-hero { min-height:38rem; }
.este-treatment-hero-copy h1 {
  font-size:clamp(2.65rem,4.25vw,4.35rem);
  letter-spacing:-.05em;
  line-height:1.02;
}
.este-treatment-hero-media { height:30rem; }
.este-treatment-intro h2,
.este-treatment-info-copy h2,
.este-treatment-process h2,
.este-treatment-faq h2,
.este-treatment-final-cta h2 {
  font-size:clamp(2rem,3vw,3.15rem);
  letter-spacing:-.04em;
  line-height:1.1;
}
.este-contact-consult-copy h2 {
  font-size:clamp(2.1rem,3vw,3.15rem);
  letter-spacing:-.04em;
  line-height:1.08;
}
.single-post h1.elementor-heading-title,
.single-post .elementor-widget-theme-post-title h1 {
  font-size:clamp(2.35rem,3.8vw,3.75rem) !important;
  letter-spacing:-.045em !important;
  line-height:1.08 !important;
}
body:not(.home) main h1.elementor-heading-title {
  font-size:clamp(2.45rem,3.8vw,3.8rem) !important;
  letter-spacing:-.045em !important;
  line-height:1.08 !important;
}
body:not(.home) main h2.elementor-heading-title {
  font-size:clamp(2rem,3vw,3.15rem) !important;
  letter-spacing:-.04em !important;
  line-height:1.12 !important;
}
.este-about-page h1,.este-about-page h2,.este-about-page h3,
.este-treatment-page h1,.este-treatment-page h2,.este-treatment-page h3,
.este-blog-index h1,.este-blog-index h2,.este-blog-index h3,
.este-blog-article h1,.este-blog-article h2,.este-blog-article h3 {
  text-transform:none !important;
}

/* Blog index rebuilt as a three-article Esste Moda Hair editorial page. */
.este-blog-index { color:var(--este-ink); font-family:var(--este-ui-font); overflow:hidden; }
.este-blog-index > section { padding-left:max(1.25rem,calc((100vw - 76rem)/2)); padding-right:max(1.25rem,calc((100vw - 76rem)/2)); }
.este-blog-index-hero { align-items:end; background:linear-gradient(135deg,#f1f8f3,#fff 58%,#eef7f0); display:grid; gap:clamp(2rem,7vw,7rem); grid-template-columns:1.25fr .75fr; padding-bottom:5rem; padding-top:5rem; }
.este-blog-index-hero h1 { font-size:clamp(2.6rem,4vw,4.15rem); letter-spacing:-.05em; line-height:1.04; margin:1rem 0 1.2rem; max-width:17ch; }
.este-blog-index-hero > div > p { color:var(--este-muted); font-size:1.03rem; line-height:1.75; margin:0; max-width:42rem; }
.este-blog-index-hero aside { background:#fff; border:1px solid var(--este-line); border-radius:1rem; box-shadow:0 18px 50px rgba(5,57,22,.08); padding:1.5rem; }
.este-blog-index-hero aside strong { color:var(--este-green-dark); display:block; font-size:.86rem; margin-bottom:.55rem; }
.este-blog-index-hero aside p { color:var(--este-muted); font-size:.85rem; line-height:1.65; margin:0; }
.este-blog-index-list { padding-bottom:6rem; padding-top:5.5rem; }
.este-blog-index-list > header { margin-bottom:2.5rem; }
.este-blog-index-list h2 { font-size:clamp(2.1rem,3vw,3.1rem); letter-spacing:-.04em; line-height:1.1; margin:1rem 0 0; }
.este-blog-index-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(3,1fr); }
.este-blog-index-grid article { background:#fff; border:1px solid var(--este-line); border-radius:1.1rem; box-shadow:0 14px 38px rgba(4,50,19,.07); overflow:hidden; transition:transform .3s ease,box-shadow .3s ease; }
.este-blog-index-grid article:hover { box-shadow:0 22px 50px rgba(4,50,19,.12); transform:translateY(-6px); }
.este-blog-card-image { aspect-ratio:1.35; display:block; overflow:hidden; position:relative; }
.este-blog-card-image::after { background:linear-gradient(180deg,transparent 55%,rgba(3,38,14,.48)); content:""; inset:0; position:absolute; }
.este-blog-card-image img { height:100%; object-fit:cover; transition:transform .55s ease; width:100%; }
.este-blog-index-grid article:hover .este-blog-card-image img { transform:scale(1.035); }
.este-blog-card-image span { bottom:1rem; color:#fff; font-size:.75rem; font-weight:800; left:1rem; position:absolute; z-index:1; }
.este-blog-index-grid article > div { padding:1.35rem; }
.este-blog-index-grid small { color:var(--este-green); font-size:.7rem; font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.este-blog-index-grid h3 { font-size:1.35rem; letter-spacing:-.025em; line-height:1.2; margin:.7rem 0 .65rem; }
.este-blog-index-grid h3 a { color:var(--este-ink) !important; text-decoration:none; }
.este-blog-index-grid p { color:var(--este-muted); font-size:.88rem; line-height:1.65; margin:0 0 1.15rem; }
.este-blog-index-grid .este-text-link { align-items:center; color:var(--este-green-dark) !important; display:inline-flex; font-size:.8rem; font-weight:800; gap:.45rem; text-decoration:none; }
.este-blog-index-grid .este-text-link svg { height:.95rem; width:.95rem; }
.este-blog-index-cta { align-items:center; background:linear-gradient(120deg,#053416,#087b31); color:#fff; display:flex; gap:3rem; justify-content:space-between; padding-bottom:4.5rem; padding-top:4.5rem; }
.este-blog-index-cta .este-eyebrow { color:#a2edb7; }
.este-blog-index-cta h2 { color:#fff; font-size:clamp(2rem,3vw,3rem); letter-spacing:-.04em; line-height:1.1; margin:1rem 0 .8rem; max-width:19ch; }
.este-blog-index-cta p { color:rgba(255,255,255,.72); line-height:1.7; margin:0; max-width:40rem; }
.este-blog-index-cta .este-primary-button { background:#fff; color:var(--este-green-dark) !important; flex:none; }

/* Compact, hash-free WhatsApp concierge. */
.este-chat-launcher {
  appearance:none;
  background:linear-gradient(135deg,#063d1a,#0b7d32) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:1.25rem;
  box-shadow:0 18px 44px rgba(3,48,20,.26),inset 0 1px 0 rgba(255,255,255,.16);
  color:#fff !important;
  font:inherit;
  grid-template-columns:3rem minmax(0,1fr) 1.6rem;
  text-align:left;
  width:17.75rem;
}
.este-chat-launcher:hover { border-color:rgba(255,255,255,.36) !important; box-shadow:0 22px 52px rgba(3,48,20,.34); transform:translateY(-3px); }
.este-chat-icon { background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.2); box-shadow:none; }
.este-chat-status { border-color:#0a6f2d; }
.este-chat-label strong { color:#fff; }
.este-chat-label small { color:rgba(255,255,255,.72); }
.este-chat-chevron { background:rgba(255,255,255,.14); color:#fff; }
.este-chat-panel { border-radius:1.25rem; bottom:5.15rem; width:min(24.5rem,calc(100vw - 1.5rem)); }
.este-chat-panel:target { display:none !important; }
.este-whatsapp-chat.is-open .este-chat-panel { animation:esteChatPanelIn .28s cubic-bezier(.2,.8,.2,1) both; display:block !important; }
.este-chat-toggle { height:1px; opacity:0; pointer-events:none; position:absolute; width:1px; }
.este-chat-toggle:checked ~ .este-chat-panel { animation:esteChatPanelIn .28s cubic-bezier(.2,.8,.2,1) both; display:block !important; }
.este-chat-toggle:checked + .este-chat-launcher .este-chat-chevron { transform:rotate(180deg); }
.este-chat-brand-icon { width:2.8rem; }
.este-chat-close { appearance:none; cursor:pointer; font:inherit; }
.este-chat-greeting { align-items:start; background:#f1f8f3; display:grid; gap:.7rem; grid-template-columns:.6rem 1fr; padding:.85rem .9rem; }
.este-chat-greeting p { margin:0; }
.este-chat-greeting-dot { background:#18a748; border-radius:50%; box-shadow:0 0 0 .25rem rgba(24,167,72,.12); height:.58rem; margin-top:.3rem; width:.58rem; }
.este-chat-options { gap:.55rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.este-chat-options a { display:grid; gap:.55rem; grid-template-columns:1.75rem 1fr; justify-content:stretch; min-height:3.7rem; padding:.55rem .6rem; text-align:left; }
.este-chat-options a > b { align-items:center; background:#e5f3e9; border-radius:.58rem; color:var(--este-green); display:flex; font-size:.61rem; height:1.72rem; justify-content:center; letter-spacing:.04em; width:1.72rem; }
.este-chat-options a > span { display:block; }
.este-chat-options a small { color:#77837a; display:block; font-size:.64rem; font-weight:500; margin-top:.14rem; }
.este-chat-privacy { color:#89928c; font-size:.61rem; line-height:1.45; margin:.65rem .2rem 0; text-align:center; }
@keyframes esteChatPanelIn { from{opacity:0;transform:translateY(.7rem) scale(.98)} to{opacity:1;transform:translateY(0) scale(1)} }

@media (max-width:1024px) {
  .este-blog-index-hero { grid-template-columns:1fr; }
  .este-blog-index-grid { grid-template-columns:repeat(2,1fr); }
  .este-blog-index-grid article:last-child { grid-column:1/-1; max-width:calc(50% - .625rem); }
}

@media (max-width:767px) {
  .este-about-hero { gap:2rem; grid-template-columns:1fr; min-height:0; padding-bottom:3.5rem; padding-top:3rem; }
  .este-about-copy h1 { font-size:clamp(2.05rem,7.2vw,2.55rem); line-height:1.08; max-width:22ch; }
  .este-about-visual { height:21rem; }
  .este-about-heading h2,.este-about-story-copy h2,.este-about-journey h2,.este-about-cta h2 { font-size:clamp(1.9rem,8.5vw,2.55rem); }
  .este-about-story-media { height:24rem; }
  .este-treatment-hero-copy h1 { font-size:clamp(2.15rem,10vw,3.05rem); line-height:1.05; }
  .este-treatment-intro h2,.este-treatment-info-copy h2,.este-treatment-process h2,.este-treatment-faq h2,.este-treatment-final-cta h2,.este-contact-consult-copy h2 { font-size:clamp(1.9rem,8.5vw,2.6rem); }
  .single-post h1.elementor-heading-title,.single-post .elementor-widget-theme-post-title h1 { font-size:clamp(2rem,9.5vw,2.75rem) !important; }
  body:not(.home) main h1.elementor-heading-title { font-size:clamp(2.05rem,8.8vw,2.7rem) !important; }
  body:not(.home) main h2.elementor-heading-title { font-size:clamp(1.8rem,7.8vw,2.45rem) !important; }
  .este-blog-index-hero { padding-bottom:3.75rem; padding-top:3.5rem; }
  .este-blog-index-hero h1 { font-size:clamp(2.15rem,10vw,3rem); }
  .este-blog-index-list { padding-bottom:4rem; padding-top:4rem; }
  .este-blog-index-list h2 { font-size:clamp(1.9rem,8.5vw,2.55rem); }
  .este-blog-index-grid { grid-template-columns:1fr; }
  .este-blog-index-grid article:last-child { grid-column:auto; max-width:none; }
  .este-blog-index-cta { align-items:flex-start; flex-direction:column; padding-bottom:3.75rem; padding-top:3.75rem; }
  .este-blog-index-cta .este-primary-button { width:100%; }
  .este-chat-launcher { grid-template-columns:2.65rem minmax(0,1fr) 1.4rem; width:min(16.4rem,calc(100vw - 1.6rem)); }
  .este-chat-panel { bottom:4.75rem; width:min(23rem,calc(100vw - 1.6rem)); }
}

/* Premium WhatsApp concierge: clear official-style mark, restrained motion and
   a light support card that matches Esste Moda Hair's visual language. */
.este-whatsapp-chat {
  bottom:1.25rem;
  right:1.25rem;
}

.este-chat-launcher {
  align-items:center;
  animation:esteWaLift 5s ease-in-out infinite;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  background:linear-gradient(120deg,rgba(255,255,255,.98),rgba(245,251,247,.96)) !important;
  border:1px solid rgba(7,113,42,.18) !important;
  border-radius:1.25rem;
  box-shadow:0 18px 48px rgba(4,48,18,.18),inset 0 1px 0 #fff;
  color:#12351f !important;
  display:grid;
  gap:.75rem;
  grid-template-columns:minmax(0,1fr) 3.55rem;
  min-height:4.75rem;
  overflow:visible;
  padding:.58rem .58rem .58rem 1.05rem;
  position:relative;
  width:18.5rem;
}

.este-chat-launcher::before {
  background:linear-gradient(180deg,#24d366,#087d32);
  border-radius:999px;
  content:"";
  height:2rem;
  left:-1px;
  opacity:.9;
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:3px;
}

.este-chat-launcher:hover {
  background:linear-gradient(120deg,#fff,#eef8f1) !important;
  border-color:rgba(7,126,45,.35) !important;
  box-shadow:0 24px 58px rgba(4,48,18,.24),inset 0 1px 0 #fff;
  transform:translateY(-4px);
}

.este-chat-label {
  display:flex;
  flex-direction:column;
  gap:.28rem;
  min-width:0;
  overflow:visible;
}

.este-chat-label strong {
  color:#12351f;
  font-size:.98rem;
  font-weight:780;
  letter-spacing:-.018em;
  line-height:1.12;
  white-space:nowrap;
}

.este-chat-label small {
  align-items:center;
  color:#087a31;
  display:flex;
  font-size:.61rem;
  font-weight:800;
  gap:.38rem;
  letter-spacing:.065em;
  margin:0;
  order:-1;
  text-transform:uppercase;
  white-space:nowrap;
}

.este-chat-label small i {
  animation:esteWaOnline 2.4s ease-out infinite;
  background:#22bf55;
  border-radius:50%;
  box-shadow:0 0 0 3px rgba(34,191,85,.13);
  height:.42rem;
  width:.42rem;
}

.este-chat-icon {
  align-items:center;
  animation:esteWaIconFloat 3.8s ease-in-out infinite;
  background:linear-gradient(145deg,#28d76b 0%,#0bab4b 54%,#087f35 100%);
  border:1px solid rgba(255,255,255,.86);
  border-radius:1.08rem;
  box-shadow:0 10px 24px rgba(7,139,54,.3),inset 0 1px 1px rgba(255,255,255,.35);
  display:flex;
  height:3.55rem;
  isolation:isolate;
  justify-content:center;
  position:relative;
  transition:transform .25s ease;
  width:3.55rem;
}

.este-chat-icon::before {
  animation:esteWaSignal 2.8s cubic-bezier(.2,.7,.2,1) infinite;
  border:1px solid rgba(18,183,79,.5);
  border-radius:1.28rem;
  content:"";
  inset:-.32rem;
  position:absolute;
  z-index:-1;
}

.este-chat-icon::after {
  animation:esteWaSpark 2.8s ease-in-out infinite;
  background:#fff;
  border-radius:50%;
  box-shadow:0 0 0 4px rgba(255,255,255,.14);
  content:"";
  height:.3rem;
  left:.48rem;
  opacity:.85;
  position:absolute;
  top:.46rem;
  width:.3rem;
}

.este-chat-launcher:hover .este-chat-icon {
  animation-play-state:paused;
  transform:rotate(-4deg) scale(1.045);
}

.este-whatsapp-mark {
  display:block;
  height:2.15rem;
  overflow:visible;
  width:2.15rem;
}

.este-wa-bubble {
  fill:none;
  stroke:#fff;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:2.3;
}

.este-wa-phone { fill:#fff; }

.este-chat-status {
  animation:esteWaOnline 2.4s ease-out infinite;
  background:#d9ffe4;
  border:2px solid #099a40;
  height:.65rem;
  right:-.03rem;
  top:-.03rem;
  width:.65rem;
}

.este-chat-toggle:checked + .este-chat-launcher {
  animation:none;
  border-color:rgba(7,126,45,.38) !important;
  box-shadow:0 20px 52px rgba(4,48,18,.23),0 0 0 3px rgba(14,158,60,.08);
}

.este-chat-toggle:checked + .este-chat-launcher .este-chat-icon {
  animation:none;
  transform:rotate(-6deg) scale(1.035);
}

.este-chat-panel {
  background:#fff;
  border:1px solid rgba(7,113,42,.17);
  border-radius:1.3rem;
  bottom:5.75rem;
  box-shadow:0 28px 76px rgba(2,38,14,.26),0 0 0 1px rgba(255,255,255,.6) inset;
  width:min(25rem,calc(100vw - 1.5rem));
}

.este-chat-panel > header {
  background:linear-gradient(135deg,#053818 0%,#087d32 62%,#0b9840 100%);
  overflow:hidden;
  padding:1.05rem 1.1rem;
  position:relative;
}

.este-chat-panel > header::after {
  background:radial-gradient(circle,rgba(255,255,255,.18) 0 1px,transparent 1.5px);
  background-size:12px 12px;
  content:"";
  inset:0 0 0 55%;
  opacity:.3;
  pointer-events:none;
  position:absolute;
}

.este-chat-panel header > div { gap:.78rem; position:relative; z-index:1; }

.este-chat-head-icon {
  align-items:center;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.24);
  border-radius:.82rem;
  display:flex;
  height:2.85rem;
  justify-content:center;
  width:2.85rem;
}

.este-chat-head-icon .este-whatsapp-mark { height:1.7rem; width:1.7rem; }
.este-chat-panel header strong { font-size:.96rem; letter-spacing:-.01em; }
.este-chat-panel header p span { color:rgba(255,255,255,.74); font-size:.64rem; margin-top:.22rem; }

.este-chat-close {
  background:rgba(255,255,255,.11);
  border:1px solid rgba(255,255,255,.2);
  cursor:pointer;
  height:2.15rem;
  position:relative;
  transition:background-color .2s ease,transform .2s ease;
  width:2.15rem;
  z-index:2;
}

.este-chat-close:hover { background:rgba(255,255,255,.2); transform:rotate(6deg); }
.este-chat-body { background:linear-gradient(180deg,#f7faf8,#fff); padding:1rem; }
.este-chat-greeting { background:#fff; border:1px solid #dcebe1; border-radius:.95rem; box-shadow:0 7px 20px rgba(5,55,20,.045); margin-bottom:.75rem; }
.este-chat-options { gap:.55rem; }
.este-chat-options a { border-color:#d9e8de; border-radius:.82rem; box-shadow:0 3px 10px rgba(6,52,21,.025); transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease; }
.este-chat-options a:hover { background:#f5fbf7; border-color:#30a75a; box-shadow:0 8px 20px rgba(6,76,28,.09); transform:translateY(-2px); }
.este-chat-options a > b { background:linear-gradient(145deg,#e8f7ec,#dff2e5); }
.este-chat-privacy { color:#849087; letter-spacing:.01em; }

@keyframes esteWaSignal {
  0% { opacity:.66; transform:scale(.88); }
  72%,100% { opacity:0; transform:scale(1.28); }
}

@keyframes esteWaOnline {
  0%,100% { box-shadow:0 0 0 3px rgba(34,191,85,.13); }
  50% { box-shadow:0 0 0 6px rgba(34,191,85,.025); }
}

@keyframes esteWaIconFloat {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-2px); }
}

@keyframes esteWaSpark {
  0%,100% { opacity:.35; transform:scale(.75); }
  48% { opacity:1; transform:scale(1); }
}

@keyframes esteWaLift {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-2px); }
}

@media (max-width:767px) {
  .este-whatsapp-chat { bottom:.8rem; right:.75rem; }
  .este-chat-launcher { grid-template-columns:minmax(0,1fr) 3.25rem; min-height:4.35rem; padding:.52rem .52rem .52rem .9rem; width:min(17.25rem,calc(100vw - 1.5rem)); }
  .este-chat-icon { border-radius:.96rem; height:3.25rem; width:3.25rem; }
  .este-chat-icon .este-whatsapp-mark { height:1.95rem; width:1.95rem; }
  .este-chat-label strong { font-size:.9rem; }
  .este-chat-label small { font-size:.56rem; }
  .este-chat-panel { bottom:5.25rem; width:min(23.4rem,calc(100vw - 1.5rem)); }
}

@media (prefers-reduced-motion:reduce) {
  .este-chat-launcher,.este-chat-icon,.este-chat-icon::before,.este-chat-icon::after,.este-chat-status,.este-chat-label small i { animation:none !important; }
}

/* WhatsApp support widget — compact floating prompt + chat-style panel. */
.este-chat-hint-toggle {
  height:1px;
  opacity:0;
  pointer-events:none;
  position:absolute;
  width:1px;
}

.este-chat-hint {
  align-items:center;
  animation:esteChatHintCycle 8s ease-in-out infinite;
  background:rgba(255,255,255,.97);
  border:1px solid #e0e8e3;
  border-radius:1rem;
  bottom:.3rem;
  box-shadow:0 14px 38px rgba(18,43,27,.14);
  display:flex;
  justify-content:space-between;
  min-height:3.65rem;
  padding:.7rem .65rem .7rem .95rem;
  position:absolute;
  right:4.9rem;
  transform-origin:right center;
  width:17rem;
}

.este-chat-hint::after {
  background:#fff;
  border-right:1px solid #e0e8e3;
  border-top:1px solid #e0e8e3;
  content:"";
  height:.7rem;
  position:absolute;
  right:-.38rem;
  top:50%;
  transform:translateY(-50%) rotate(45deg);
  width:.7rem;
}

.este-chat-hint:hover { animation-play-state:paused; }
.este-chat-hint span { display:flex; flex-direction:column; gap:.22rem; min-width:0; }
.este-chat-hint strong { color:#1d293f; font-size:.78rem; font-weight:760; line-height:1.2; }
.este-chat-hint small { color:#7a8791; font-size:.65rem; line-height:1.2; }
.este-chat-hint label {
  align-items:center;
  background:#f1f5f3;
  border-radius:50%;
  color:#9aa5ac;
  cursor:pointer;
  display:flex;
  flex:0 0 1.8rem;
  font-size:1rem;
  height:1.8rem;
  justify-content:center;
  margin-left:.55rem;
  position:relative;
  transition:background-color .2s ease,color .2s ease;
  z-index:1;
}
.este-chat-hint label:hover { background:#e9f2ec; color:#087d32; }
.este-chat-hint-toggle:not(:checked) + .este-chat-hint { display:none; }
.este-chat-toggle:checked ~ .este-chat-hint { animation:none; opacity:0; pointer-events:none; transform:translateX(1rem) scale(.96); }

.este-chat-launcher {
  align-items:center;
  animation:esteChatButtonBreathe 3.8s ease-in-out infinite;
  background:linear-gradient(145deg,#2bd369,#14bd55 52%,#08a844) !important;
  border:2px solid #fff !important;
  border-radius:50%;
  box-shadow:0 16px 38px rgba(11,169,70,.3),0 0 0 8px rgba(36,211,102,.08);
  color:#fff !important;
  display:flex;
  height:4.35rem;
  justify-content:center;
  min-height:4.35rem;
  overflow:visible;
  padding:0;
  width:4.35rem;
}

.este-chat-launcher::before {
  animation:esteChatHalo 2.8s ease-out infinite;
  background:transparent;
  border:1px solid rgba(32,202,94,.52);
  border-radius:50%;
  content:"";
  height:auto;
  inset:-.45rem;
  opacity:.7;
  position:absolute;
  transform:none;
  width:auto;
}

.este-chat-launcher::after { display:none; }
.este-chat-launcher:hover { background:linear-gradient(145deg,#31dc72,#12b950) !important; box-shadow:0 20px 44px rgba(11,169,70,.38),0 0 0 8px rgba(36,211,102,.1); transform:translateY(-3px) scale(1.025); }
.este-chat-launcher-open,.este-chat-launcher-close { align-items:center; display:flex; justify-content:center; }
.este-chat-launcher-open .este-whatsapp-mark { height:2.25rem; width:2.25rem; }
.este-chat-launcher-close { display:none; font-size:2rem; font-weight:300; height:100%; line-height:1; width:100%; }

.este-chat-toggle:checked ~ .este-chat-launcher {
  animation:none;
  background:linear-gradient(145deg,#21c660,#0bae49) !important;
  border-color:#fff !important;
  border-radius:50%;
  box-shadow:0 17px 42px rgba(11,169,70,.34),0 0 0 9px rgba(36,211,102,.08);
  transform:none;
}
.este-chat-toggle:checked ~ .este-chat-launcher .este-chat-launcher-open { display:none; }
.este-chat-toggle:checked ~ .este-chat-launcher .este-chat-launcher-close { display:flex; }

.este-chat-panel {
  background:#eef5f0;
  border:1px solid #d9e6dc;
  border-radius:1.3rem;
  bottom:5.45rem;
  box-shadow:0 28px 75px rgba(19,40,25,.25);
  overflow:hidden;
  right:0;
  width:min(23rem,calc(100vw - 1.5rem));
}

.este-chat-panel > header {
  background:linear-gradient(135deg,#20c45b,#12aa49);
  min-height:6.3rem;
  padding:1rem 1.05rem;
}
.este-chat-panel > header::after { display:none; }
.este-chat-panel header > div { gap:.8rem; }
.este-chat-avatar {
  align-items:center;
  background:#fff;
  border:2px solid rgba(255,255,255,.75);
  border-radius:50%;
  box-shadow:0 5px 15px rgba(3,78,29,.14);
  display:flex;
  height:4rem;
  justify-content:center;
  position:relative;
  width:4rem;
}
.este-chat-avatar img { display:block; height:2.75rem; object-fit:contain; width:2.75rem; }
.este-chat-avatar i {
  background:#35dc73;
  border:3px solid #fff;
  border-radius:50%;
  bottom:-.08rem;
  height:.78rem;
  position:absolute;
  right:-.05rem;
  width:.78rem;
}
.este-chat-panel header p strong { color:#fff; font-size:.98rem; }
.este-chat-panel header p span { color:rgba(255,255,255,.82); font-size:.65rem; }
.este-chat-close { background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.3); }

.este-chat-conversation {
  background:linear-gradient(rgba(241,247,243,.94),rgba(238,245,240,.94)),radial-gradient(circle at 1px 1px,rgba(18,117,50,.08) 1px,transparent 0);
  background-size:auto,14px 14px;
  padding:1.3rem 1rem 1.5rem;
}
.este-chat-message {
  background:#fff;
  border:1px solid #e2e9e4;
  border-radius:.25rem 1rem 1rem 1rem;
  box-shadow:0 8px 22px rgba(24,54,32,.06);
  color:#344054;
  min-height:6.35rem;
  padding:1rem 1rem 1.35rem;
  position:relative;
}
.este-chat-message strong { color:#087d32; display:block; font-size:.72rem; margin-bottom:.5rem; }
.este-chat-message p { font-size:.82rem; line-height:1.55; margin:0; }
.este-chat-message time { bottom:.65rem; color:#a0a8ad; font-size:.58rem; position:absolute; right:.8rem; }

.este-chat-panel > footer { background:#fff; border-top:1px solid #e3ebe5; padding:.8rem; }
.este-chat-primary {
  align-items:center;
  background:linear-gradient(135deg,#28ce65,#14b850);
  border-radius:.8rem;
  box-shadow:0 9px 22px rgba(18,174,75,.18);
  color:#fff !important;
  display:flex;
  font-size:.84rem;
  font-weight:800;
  gap:.55rem;
  justify-content:center;
  min-height:3.2rem;
  text-decoration:none;
  transition:box-shadow .22s ease,transform .22s ease;
}
.este-chat-primary:hover { box-shadow:0 13px 28px rgba(18,174,75,.27); transform:translateY(-2px); }
.este-chat-primary .este-whatsapp-mark { height:1.35rem; width:1.35rem; }
.este-chat-panel > footer > small { color:#90999f; display:block; font-size:.57rem; margin-top:.48rem; text-align:center; }

@keyframes esteChatHintCycle {
  0%,62%,100% { opacity:1; transform:translateX(0) scale(1); visibility:visible; }
  72%,90% { opacity:0; transform:translateX(1rem) scale(.96); visibility:hidden; }
}
@keyframes esteChatButtonBreathe {
  0%,100% { box-shadow:0 16px 38px rgba(11,169,70,.3),0 0 0 7px rgba(36,211,102,.07); transform:translateY(0); }
  50% { box-shadow:0 19px 43px rgba(11,169,70,.36),0 0 0 11px rgba(36,211,102,.025); transform:translateY(-2px); }
}
@keyframes esteChatHalo {
  0% { opacity:.62; transform:scale(.88); }
  75%,100% { opacity:0; transform:scale(1.25); }
}

@media (max-width:767px) {
  .este-whatsapp-chat { bottom:.8rem; right:.75rem; }
  .este-chat-launcher { height:4rem; min-height:4rem; width:4rem; }
  .este-chat-launcher-open .este-whatsapp-mark { height:2.08rem; width:2.08rem; }
  .este-chat-hint { min-height:3.5rem; right:4.55rem; width:min(16.8rem,calc(100vw - 5.75rem)); }
  .este-chat-panel { bottom:5rem; width:min(23rem,calc(100vw - 1.5rem)); }
}

@media (prefers-reduced-motion:reduce) {
  .este-chat-hint { animation:none !important; }
  .este-chat-launcher,.este-chat-launcher::before { animation:none !important; }
}

/* WhatsApp widget final polish: consistent vector icons and restrained motion. */
.este-whatsapp-chat .este-whatsapp-mark {
  display:block;
  fill:currentColor;
  flex:0 0 auto;
  overflow:visible;
}

.este-whatsapp-chat .este-chat-close-mark {
  display:block;
  fill:none;
  height:1.05rem;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-width:1.9;
  width:1.05rem;
}

.este-whatsapp-chat .este-chat-launcher {
  animation:none !important;
  background:#19bd59 !important;
  border:0 !important;
  box-shadow:0 12px 28px rgba(7,124,47,.27);
  height:3.9rem;
  min-height:3.9rem;
  transition:background-color .2s ease,box-shadow .2s ease,transform .2s ease;
  width:3.9rem;
}

.este-whatsapp-chat .este-chat-launcher::before {
  animation:esteChatGreenWave 2.2s ease-out infinite !important;
  border:2px solid rgba(25,189,89,.58);
  border-radius:50%;
  content:"" !important;
  display:block !important;
  inset:-.08rem;
  pointer-events:none;
  position:absolute;
}

.este-whatsapp-chat .este-chat-launcher::after {
  content:none !important;
  display:none !important;
}

.este-whatsapp-chat .este-chat-launcher:hover {
  background:#12ad4e !important;
  box-shadow:0 15px 34px rgba(7,124,47,.32);
  transform:translateY(-2px);
}

.este-whatsapp-chat .este-chat-launcher-open,
.este-whatsapp-chat .este-chat-launcher-close {
  color:#fff;
}

.este-whatsapp-chat .este-chat-launcher-open .este-whatsapp-mark {
  height:2rem;
  width:2rem;
}

.este-whatsapp-chat .este-chat-launcher-close .este-chat-close-mark {
  height:1.7rem;
  width:1.7rem;
}

.este-whatsapp-chat .este-chat-hint {
  animation:esteChatHintSoftCycle 10s ease-in-out infinite;
  box-shadow:0 12px 30px rgba(18,43,27,.12);
  transition:none;
}

.este-whatsapp-chat .este-chat-hint label,
.este-whatsapp-chat .este-chat-close {
  color:#829087 !important;
}

.este-whatsapp-chat .este-chat-hint label:hover {
  color:#087d32 !important;
}

.este-whatsapp-chat .este-chat-close {
  color:#fff !important;
  transition:background-color .18s ease;
}

.este-whatsapp-chat .este-chat-close:hover {
  background:rgba(255,255,255,.22);
  transform:none;
}

.este-whatsapp-chat .este-chat-primary .este-whatsapp-mark {
  color:#fff;
  height:1.25rem;
  width:1.25rem;
}

.este-chat-toggle:checked ~ .este-chat-panel {
  animation:esteChatPanelSoftEnter .24s cubic-bezier(.2,.75,.25,1) both !important;
}

@keyframes esteChatHintSoftCycle {
  0%,46%,100% { opacity:1; transform:translateY(0); visibility:visible; }
  54%,91% { opacity:0; transform:translateY(.45rem); visibility:hidden; }
}

@keyframes esteChatPanelSoftEnter {
  from { opacity:0; transform:translateY(.7rem); }
  to { opacity:1; transform:translateY(0); }
}

@keyframes esteChatGreenWave {
  0% { opacity:.72; transform:scale(.92); }
  75%,100% { opacity:0; transform:scale(1.34); }
}

.este-whatsapp-chat {
  right:2rem;
}

.este-whatsapp-chat .este-chat-hint {
  right:4.45rem;
}

.este-whatsapp-chat .este-chat-panel {
  bottom:4.85rem;
}

@media (max-width:767px) {
  .este-whatsapp-chat {
    bottom:1.15rem;
    right:1.35rem;
  }

  .este-whatsapp-chat .este-chat-launcher {
    height:3.45rem;
    min-height:3.45rem;
    width:3.45rem;
  }

  .este-whatsapp-chat .este-chat-launcher-open .este-whatsapp-mark {
    height:1.72rem;
    width:1.72rem;
  }

  .este-whatsapp-chat .este-chat-launcher-close .este-chat-close-mark {
    height:1.4rem;
    width:1.4rem;
  }

  .este-whatsapp-chat .este-chat-hint {
    min-height:3.25rem;
    right:3.95rem;
    width:min(15.5rem,calc(100vw - 6rem));
  }

  .este-whatsapp-chat .este-chat-panel {
    bottom:4.35rem;
    right:0;
    width:min(22.5rem,calc(100vw - 2.7rem));
  }
}

@media (prefers-reduced-motion:reduce) {
  .este-whatsapp-chat .este-chat-hint,
  .este-whatsapp-chat .este-chat-launcher::before,
  .este-chat-toggle:checked ~ .este-chat-panel { animation:none !important; }
}
