/* ==========================================================================
   EOWC Medical & Aesthetics — design system
   Two type systems, exactly as the approved mockups specify:
     default (.em)      About / Contact / Service + every page built on them
                        Playfair Display headings, cream bands, deep green
     .em-home           the Sept 14 home mockup: Jost throughout, grey bands
   Shared: sage #6e897a, the header/footer lockup, buttons, reviews, map.
   ========================================================================== */

:root{
  --cream:#f3e8e0; --cream-2:#ece0d6; --deep:#2f3a2b; --deep-2:#3a4a37;
  --sage:#6e897a; --sage-dark:#5c7568;
  --dark:#2b2a27; --text:#5f5a54; --line:#e2d6ca;
  --gold:#c99a3f;
  --maxw:1200px; --gutter:24px;
  --serif:'Playfair Display',Georgia,'Times New Roman',serif;
  --sans:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --head:var(--serif);
  --band:var(--cream);
  --shadow:0 26px 56px rgba(60,50,40,.16);
}

/* The home page's own tokens, per the Sept 14 mockup. */
body.em-home{
  --cream:#f7f4ef; --dark:#3e4140; --text:#5e5e5e; --line:#eaeaea;
  --deep:#233029; --deep-2:#2f4036; --gold:#f5b301;
  --light:#f5f5f5; --band:#f5f5f5;
  --head:var(--sans);
}

/* -------------------------------------------------- base */
.em *,.em *::before,.em *::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body.em{
  margin:0;font-family:var(--sans);font-size:16px;line-height:1.75;
  color:var(--text);background:#fff;-webkit-font-smoothing:antialiased;
}
.em img{max-width:100%;height:auto;display:block}
.em a{color:inherit;text-decoration:none;transition:color .25s ease}
.em h1,.em h2,.em h3,.em h4,.em h5,.em h6{
  margin:0 0 .6em;font-family:var(--head);color:var(--dark);
  font-weight:600;line-height:1.18;
}
.em h1{font-size:clamp(2.2rem,4.8vw,3.6rem)}
.em h2{font-size:clamp(1.8rem,3.5vw,2.6rem)}
.em h3{font-size:1.3rem}
.em h4{font-size:1.12rem}
body.em-home h1{line-height:1.08}
body.em-home h2{line-height:1.2}
.em p{margin:0 0 1rem}
.em ul,.em ol{margin:0 0 1rem;padding-left:1.25rem}
.em li{margin-bottom:.4rem}
.em em{font-style:italic;color:var(--sage)}
.em strong{color:var(--dark);font-weight:600}
.em hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}
.em :focus-visible{outline:3px solid var(--sage);outline-offset:3px}

.skip-link{position:absolute;left:-9999px;top:0;z-index:2000;background:var(--deep);color:#fff;padding:12px 20px}
.skip-link:focus{left:8px;top:8px}

.em .container,.em .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.em .wrap-narrow{max-width:860px;margin:0 auto;padding:0 var(--gutter)}
.em section{padding:78px 0}
.em .section-head{text-align:center;max-width:760px;margin:0 auto 52px}
.em .section-head h2{margin-bottom:14px}
.em .section-head p{margin-bottom:0}

.em .eyebrow{
  display:block;font-family:var(--sans);color:var(--sage);
  letter-spacing:3px;text-transform:uppercase;font-size:.78rem;
  font-weight:600;margin-bottom:14px;
}
.em .band-cream{background:var(--cream)}
.em .band-light{background:var(--band)}
.em .band-deep{background:var(--deep);color:rgba(255,255,255,.78)}
.em .band-deep h2,.em .band-deep h3,.em .band-deep h4{color:#fff}
.em .band-deep .eyebrow{color:#b9cbb0}
.em .band-deep em{color:#b9cbb0}

/* -------------------------------------------------- icons */
.em .ic{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;display:block}

/* -------------------------------------------------- buttons
   Written at (0,2,1) so Elementor's .elementor-kit-N a{color} cannot win. */
.em a.btn,.em button.btn,.em .em-btns a.btn{
  display:inline-block;font-family:var(--sans);font-weight:500;
  letter-spacing:1px;text-transform:uppercase;font-size:.76rem;
  padding:14px 30px;border-radius:4px;cursor:pointer;
  border:2px solid transparent;transition:all .25s ease;text-align:center;
}
body.em-home a.btn,body.em-home .em-btns a.btn{
  letter-spacing:1.5px;font-size:.8rem;padding:15px 34px;border-radius:2px;
}
.em a.btn-solid,.em .em-btns a.btn-solid{background:var(--deep);color:#fff;border-color:var(--deep)}
.em a.btn-solid:hover,.em .em-btns a.btn-solid:hover{background:var(--deep-2);border-color:var(--deep-2);color:#fff}
.em a.btn-line,.em .em-btns a.btn-line{background:transparent;color:var(--deep);border-color:var(--deep)}
.em a.btn-line:hover,.em .em-btns a.btn-line:hover{background:var(--deep);color:#fff}
.em a.btn-lightline,.em .em-btns a.btn-lightline{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.em a.btn-lightline:hover,.em .em-btns a.btn-lightline:hover{background:#fff;color:var(--deep)}
.em a.btn-sage,.em .em-btns a.btn-sage{background:var(--sage);color:#fff;border-color:var(--sage)}
.em a.btn-sage:hover,.em .em-btns a.btn-sage:hover{background:var(--sage-dark);border-color:var(--sage-dark);color:#fff}
.em a.btn-outline-sage{background:transparent;color:var(--sage);border-color:var(--sage)}
.em a.btn-outline-sage:hover{background:var(--sage);color:#fff}
.em .em-btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:18px}
.em .section-head .em-btns,.em .band-deep .em-btns,.em .cta .em-btns{justify-content:center}

.em a.link-more{
  display:inline-block;margin-top:6px;font-family:var(--sans);font-size:.76rem;
  font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:var(--dark);
}
.em a.link-more:hover{color:var(--sage)}
.em a.link-more::after{content:"";display:block;width:26px;height:2px;background:var(--sage);margin:6px auto 0;transition:width .25s}
.em a.link-more:hover::after{width:44px}

/* -------------------------------------------------- header */
.site-header{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid var(--line)}
body.em-home .site-header{box-shadow:0 1px 12px rgba(0,0,0,.04)}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:8px var(--gutter);max-width:var(--maxw);margin:0 auto;
}
.logo{display:flex;align-items:center;flex:0 0 auto}
.logo .logo-img{height:88px;width:auto}
.logo-text{font-family:var(--head);font-size:1.25rem;color:var(--dark);font-weight:600;line-height:1.1}
.nav{display:flex;align-items:center;gap:28px}
.nav .nav-list{display:flex;align-items:center;gap:26px;list-style:none;margin:0;padding:0}
.nav .nav-item{position:relative;margin:0}
.nav .nav-item>a{
  display:inline-block;font-family:var(--sans);font-size:.92rem;font-weight:500;
  letter-spacing:1px;text-transform:uppercase;color:var(--dark);padding:10px 0;
}
.nav .nav-item>a:hover,.nav .nav-item.is-current>a{color:var(--sage)}
.nav .caret{
  background:none;border:0;padding:4px;margin-left:2px;cursor:pointer;color:var(--sage);
  display:inline-flex;align-items:center;vertical-align:middle;
}
.nav .caret .ic{width:14px;height:14px;transform:rotate(90deg);transition:transform .25s}
.nav .nav-item.open>.caret .ic{transform:rotate(-90deg)}
.nav .sub-menu{
  position:absolute;top:100%;left:-18px;min-width:262px;background:#fff;
  border:1px solid var(--line);border-radius:10px;padding:10px 0;margin:0;
  list-style:none;box-shadow:0 22px 46px rgba(60,50,40,.14);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .22s ease,transform .22s ease,visibility .22s;z-index:50;
}
.nav .nav-item:hover>.sub-menu,.nav .nav-item:focus-within>.sub-menu,.nav .nav-item.open>.sub-menu{
  opacity:1;visibility:visible;transform:translateY(0);
}
.nav .sub-menu li{margin:0}
.nav .sub-menu a{
  display:block;padding:9px 22px;font-size:.9rem;color:var(--text);
  text-transform:none;letter-spacing:.2px;
}
.nav .sub-menu a:hover{background:var(--cream);color:var(--deep)}
.nav .nav-phone{
  display:inline-flex;align-items:center;gap:9px;color:#fff;background:var(--deep);
  border-radius:40px;padding:11px 22px;font-family:var(--sans);font-weight:500;
  font-size:.92rem;letter-spacing:.5px;white-space:nowrap;
}
body.em-home .nav .nav-phone{background:var(--sage)}
.nav .nav-phone:hover{background:var(--deep-2);color:#fff}
body.em-home .nav .nav-phone:hover{background:var(--sage-dark)}
.nav .nav-phone .ic{width:17px;height:17px;flex:0 0 17px}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:12px;margin-right:-6px}
.menu-toggle .bars,.menu-toggle .bars::before,.menu-toggle .bars::after{
  display:block;width:26px;height:2px;background:var(--dark);border-radius:2px;position:relative;
}
.menu-toggle .bars::before,.menu-toggle .bars::after{content:"";position:absolute;left:0}
.menu-toggle .bars::before{top:-8px}
.menu-toggle .bars::after{top:8px}

/* -------------------------------------------------- page head (interior banner) */
.em .pagehead{
  position:relative;text-align:center;color:#fff;padding:96px var(--gutter) 104px;
  background-color:var(--deep);background-size:cover;background-position:center;
}
.em .pagehead::before{content:"";position:absolute;inset:0;background:rgba(43,52,40,.78)}
.em .pagehead>*{position:relative;z-index:2}
/* These must out-specify .em .elementor-widget-heading .elementor-heading-title
   (0,3,0), which sets the dark heading ink for every other band. */
.em .pagehead h1,
.em .pagehead .elementor-widget-heading .elementor-heading-title{
  color:#fff;margin-bottom:12px;max-width:16ch;margin-left:auto;margin-right:auto;
  font-size:clamp(2rem,4.2vw,3.1rem);overflow-wrap:break-word;
}
.em .pagehead p,
.em .pagehead .elementor-widget-text-editor{
  color:rgba(255,255,255,.88);max-width:560px;margin-left:auto;margin-right:auto;
  font-size:1.05rem;font-weight:300;
}
.em .pagehead .eyebrow{color:#b9cbb0}
.em .crumb{margin-top:16px;font-size:.84rem;letter-spacing:1px;color:rgba(255,255,255,.72)}
.em .crumb a{color:rgba(255,255,255,.9)}
.em .crumb a:hover{color:#fff;text-decoration:underline}
.em .crumb .sep{margin:0 .5em;opacity:.6}

/* -------------------------------------------------- home hero (mockup 14) */
.em .hero{padding:0}
.em .hero-card{
  position:relative;width:100%;min-height:640px;display:flex;align-items:center;
  overflow:hidden;background:#232b28;
}
.em .hero-photo{
  position:absolute;inset:0 0 0 auto;width:64%;
  background-size:cover;background-position:center;transition:opacity .6s ease;
}
.em .hero-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#232b28 0%,#232b28 32%,rgba(35,43,40,.55) 52%,rgba(35,43,40,0) 74%);
}
.em .hero-copy{
  position:relative;z-index:2;max-width:560px;padding:60px 56px;color:#fff;
  margin-left:max(var(--gutter),calc((100vw - var(--maxw))/2));transition:opacity .45s ease;
}
.em .hero-copy .eyebrow{color:#9fd3d6}
.em .hero-copy h1{color:#fff;margin-bottom:18px}
.em .hero-copy h1 .accent{color:var(--sage)}
.em .hero-copy p{color:rgba(255,255,255,.8);font-weight:300;font-size:1.08rem;max-width:440px;margin-bottom:30px}
.em a.pill{
  display:inline-flex;align-items:center;gap:14px;background:var(--sage);color:#10201f;
  font-family:var(--sans);font-weight:600;letter-spacing:1.5px;text-transform:uppercase;
  font-size:.78rem;padding:7px 7px 7px 26px;border-radius:40px;transition:all .25s;
}
.em a.pill:hover{background:#fff;color:#10201f}
.em a.pill .arrow{
  width:38px;height:38px;border-radius:50%;background:#10201f;color:var(--sage);
  display:flex;align-items:center;justify-content:center;flex:0 0 38px;
}
.em a.pill .arrow .ic{width:17px;height:17px}
.em .hero-tags{
  position:absolute;right:40px;bottom:32px;z-index:2;display:flex;gap:22px;flex-wrap:wrap;
  color:rgba(255,255,255,.85);font-size:.82rem;letter-spacing:1px;margin:0;padding:0;list-style:none;
}
.em .hero-tags li{display:flex;align-items:center;gap:8px;margin:0}
.em .hero-tags li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--sage);flex:0 0 7px}
.em .hero-controls{
  position:absolute;bottom:30px;z-index:3;display:flex;align-items:center;gap:16px;
  left:calc(max(var(--gutter),(100vw - var(--maxw))/2) + 56px);
}
.em .hero-arrow{
  width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.35);
  background:transparent;color:#fff;cursor:pointer;display:flex;align-items:center;
  justify-content:center;transition:all .25s;padding:0;
}
.em .hero-arrow .ic{width:18px;height:18px}
.em .hero-arrow.prev .ic{transform:rotate(180deg)}
.em .hero-arrow:hover{background:var(--sage);border-color:var(--sage);color:#10201f}
.em .hero-dots{display:flex;gap:9px;align-items:center}
.em .hero-dot{
  width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.35);
  border:0;cursor:pointer;padding:0;transition:all .3s ease;
}
.em .hero-dot.active{background:var(--sage);width:28px;border-radius:5px}
.em .hero-count{color:rgba(255,255,255,.55);font-size:.72rem;letter-spacing:2px;margin-left:4px}

/* -------------------------------------------------- featured treatment columns */
.em .cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}
.em .cat{text-align:center;padding:0 14px}
.em .cat-icon{
  width:134px;height:134px;border-radius:50%;margin:0 auto 24px;display:flex;
  align-items:center;justify-content:center;transition:transform .3s ease;
}
.em .cat-icon .ic{width:62px;height:62px}
.em .cat:hover .cat-icon{transform:translateY(-7px)}
.em .icon-sage{background:#8fa393;color:#f4eddd}
.em .icon-cream{background:#ece5d7;color:#54695c}
.em .icon-deep{background:#5f7468;color:#f4eddd}
.em .cat h3{font-size:1.5rem;margin-bottom:12px}
.em .cat p{font-size:.96rem;line-height:1.7;margin:0 auto 14px;max-width:320px}

/* -------------------------------------------------- about feature panel (home)
   Built as two Elementor columns rather than an absolutely-positioned photo,
   so the section keeps working when Elementor stacks the columns. The overlap
   is produced with a negative margin on the photo column instead. */
.em .elementor-section.about-feature>.elementor-container{align-items:center}
.em .about-panel{
  background:#233029;color:#fff;border-radius:22px;padding:70px 56px;
  position:relative;z-index:2;
}
.em .about-panel .elementor-heading-title,.em .about-panel h2{color:#fff}
.em .about-panel h2 .accent{color:#9ec4ad}
.em .about-panel .eyebrow{color:#a7c0b2}
.em .about-panel .elementor-widget-text-editor{color:rgba(255,255,255,.78)}
.em .about-actions{display:flex;align-items:center;gap:24px;margin-top:26px;flex-wrap:wrap}
.em .about-actions .textlink{
  color:#cfe0d6;font-family:var(--sans);font-weight:600;letter-spacing:1.2px;
  text-transform:uppercase;font-size:.76rem;
}
.em .about-actions .textlink:hover{color:#fff}
.em .about-photo{margin-left:-6%;z-index:1}
.em .about-photo .about-photo-img,.em .about-photo img{
  border-radius:18px;box-shadow:0 30px 70px rgba(0,0,0,.28);
  width:100%;aspect-ratio:4/3.1;object-fit:cover;
}
.em .about-photo .about-photo-img{background-color:var(--cream-2)}

/* -------------------------------------------------- services icon grid */
.em .services-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:44px 28px}
.em .service{text-align:center}
.em .service .icon{
  width:116px;height:116px;border-radius:50%;background:var(--sage);margin:0 auto 20px;
  display:flex;align-items:center;justify-content:center;color:#f4eddd;
  transition:transform .3s ease,background .3s ease;
}
.em .service .icon .ic{width:56px;height:56px}
.em .service:hover .icon{transform:translateY(-6px)}
.em .service:nth-child(3n+1) .icon{background:#8fa393;color:#f4eddd}
.em .service:nth-child(3n+2) .icon{background:#ece5d7;color:#54695c}
.em .service:nth-child(3n) .icon{background:#5f7468;color:#f4eddd}
.em .service h3{font-size:1.12rem;margin-bottom:8px}
.em .service p{font-size:.9rem;line-height:1.6;margin-bottom:10px}

/* -------------------------------------------------- generic card grid */
.em .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.em .cards.two{grid-template-columns:repeat(2,1fr)}
.em .cards.four{grid-template-columns:repeat(4,1fr)}
.em .card{
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:32px 28px;
  transition:box-shadow .3s ease,transform .3s ease;
}
.em .band-cream .card{background:#fbf6f1}
.em .card:hover{box-shadow:0 22px 48px rgba(60,50,40,.12);transform:translateY(-5px)}
.em .card .cic{
  width:60px;height:60px;border-radius:50%;background:var(--cream);color:var(--deep);
  display:flex;align-items:center;justify-content:center;margin-bottom:18px;
}
.em .card .cic .ic{width:30px;height:30px}
.em .card h3{font-size:1.18rem;margin-bottom:10px}
.em .card p:last-child{margin-bottom:0}
/* aspect-ratio boxes: the image must not be able to size its parent */
.em .card .ph{position:relative;aspect-ratio:16/11;border-radius:10px;overflow:hidden;
  background-color:var(--cream-2);margin-bottom:18px}
.em .card .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* -------------------------------------------------- split band */
.em .split{
  max-width:1160px;margin:0 auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;
}
.em .split.rev .split-media{order:2}
.em .split h2{margin-bottom:18px}
.em .split-media .photo{
  position:relative;border-radius:10px;aspect-ratio:4/3;overflow:hidden;
  background-color:var(--cream-2);background-size:cover;background-position:center;
  box-shadow:var(--shadow);
}
.em .split-media .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* -------------------------------------------------- statement band */
.em .statement{background:var(--cream);padding:84px 0 92px;text-align:center}
.em .statement p{
  font-family:var(--head);font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.4;
  color:var(--dark);max-width:900px;margin:0 auto;
}

/* -------------------------------------------------- pillars (deep band) */
.em .pillars{background:var(--deep);color:#fff;padding:92px 0}
.em .pillars .wrap{max-width:1160px;display:grid;grid-template-columns:1fr 1.1fr;gap:60px}
.em .pillars h2{color:#fff;line-height:1.22}
.em .pillars h2 em{color:#b9cbb0}
.em .pillars .grid{display:grid;grid-template-columns:1fr 1fr;gap:36px 44px}
.em .pillar{border-top:1px solid rgba(255,255,255,.16);padding-top:16px}
.em .pillar h4{color:#fff;font-size:1.16rem;margin-bottom:9px}
.em .pillar p{color:rgba(255,255,255,.68);font-size:.92rem;line-height:1.6;margin:0}

/* -------------------------------------------------- team */
.em .team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.em .team-card{
  background:#fbf6f1;border:1px solid var(--line);border-radius:14px;padding:36px 28px;
  text-align:center;transition:box-shadow .3s ease,transform .3s ease;
}
.em .team-card:hover{box-shadow:0 22px 48px rgba(60,50,40,.12);transform:translateY(-5px)}
.em .team-avatar{
  position:relative;width:128px;height:128px;border-radius:50%;margin:0 auto 20px;
  overflow:hidden;background-color:var(--cream-2);background-size:cover;background-position:center;
  box-shadow:0 10px 26px rgba(60,50,40,.18);
}
.em .team-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.em .team-card h3{font-size:1.3rem;margin-bottom:4px}
.em .team-card .role{
  display:block;font-family:var(--sans);color:var(--sage);font-weight:600;
  letter-spacing:1.2px;text-transform:uppercase;font-size:.7rem;margin-bottom:14px;
}
.em .team-card p{font-size:.92rem;color:var(--text);line-height:1.65;margin:0}
.em .team-card.join{background:var(--deep);border-color:var(--deep);display:flex;flex-direction:column;justify-content:center}
.em .team-card.join h3{color:#fff}
.em .team-card.join p{color:rgba(255,255,255,.8);margin:8px 0 16px}

/* -------------------------------------------------- benefits grid (service tpl) */
.em .bcards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.em .bcard{
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px 24px;
  text-align:center;transition:box-shadow .3s ease,transform .3s ease;
}
.em .band-cream .bcard{background:#fbf6f1}
.em .bcard:hover{box-shadow:0 20px 42px rgba(60,50,40,.12);transform:translateY(-4px)}
.em .bcard .bic{
  width:64px;height:64px;border-radius:50%;background:var(--cream);color:var(--deep);
  display:flex;align-items:center;justify-content:center;margin:0 auto 16px;
}
.em .bcard .bic .ic{width:32px;height:32px}
.em .bcard.feature{background:var(--deep);border-color:var(--deep)}
.em .bcard.feature h4{color:#fff}
.em .bcard.feature p{color:rgba(255,255,255,.75)}
.em .bcard.feature .bic{background:rgba(255,255,255,.12);color:#fff}
.em .bcard h4{font-size:1.05rem;margin-bottom:8px}
.em .bcard p{font-size:.9rem;line-height:1.6;margin:0}

/* -------------------------------------------------- stats */
.em .stats{background:var(--deep);color:#fff;padding:56px 0}
.em .stats .row{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;text-align:center}
.em .stat .num{font-family:var(--head);font-size:clamp(1.7rem,3vw,2.4rem);color:#fff;font-weight:600;line-height:1.1}
.em .stat .lbl{font-family:var(--sans);font-size:.8rem;letter-spacing:1.6px;text-transform:uppercase;color:rgba(255,255,255,.72);margin-top:8px}

/* -------------------------------------------------- commitment band */
.em .commit .wrap{max-width:1160px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.em .commit .media{position:relative}
.em .commit .photo{
  position:relative;border-radius:12px;aspect-ratio:4/3.4;overflow:hidden;
  background-color:var(--cream-2);background-size:cover;background-position:center;box-shadow:var(--shadow);
}
.em .commit .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.em .commit .callcard{
  position:absolute;right:-18px;bottom:-26px;background:var(--deep);color:#fff;
  border-radius:12px;padding:22px 26px;box-shadow:0 22px 44px rgba(0,0,0,.24);max-width:260px;
}
.em .commit .callcard .cic{width:34px;height:34px;color:#b9cbb0;margin-bottom:8px}
.em .commit .callcard .cic .ic{width:34px;height:34px}
.em .commit .callcard .t{font-size:.82rem;color:rgba(255,255,255,.75);letter-spacing:.6px}
.em .commit .callcard .n{font-family:var(--head);font-size:1.35rem;color:#fff;margin-top:2px}
.em .commit .callcard a{color:#fff}
.em .feat-list{display:grid;gap:22px;margin:26px 0}
.em .feat{display:flex;gap:16px;align-items:flex-start}
.em .feat .fic{
  flex:0 0 48px;width:48px;height:48px;border-radius:50%;background:var(--cream);
  color:var(--deep);display:flex;align-items:center;justify-content:center;
}
.em .feat .fic .ic{width:24px;height:24px}
.em .feat h4{margin-bottom:4px;font-size:1.05rem}
.em .feat p{margin:0;font-size:.92rem;line-height:1.6}

/* -------------------------------------------------- chips / checklists */
.em .chips{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0;margin:0}
.em .chips li{
  display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);
  border-radius:40px;padding:10px 20px;font-size:.9rem;margin:0;
}
.em .band-cream .chips li{background:#fbf6f1}
.em .chips li .ic{width:17px;height:17px;color:var(--sage);flex:0 0 17px}
.em .pay-pills{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px}
.em .pay-pill{
  display:inline-block;background:var(--sage);border-radius:40px;padding:10px 22px;
  font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:1px;color:#fff;
}

/* -------------------------------------------------- reviews */
.em .reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:12px}
.em .review{
  background:var(--cream);border:1px solid var(--line);padding:34px 30px;
  border-radius:12px;text-align:center;margin:0;
}
body.em-home .review{background:#fff;border-color:transparent;box-shadow:0 10px 30px rgba(0,0,0,.05);border-radius:6px}
.em .review .stars{color:var(--gold);letter-spacing:3px;margin-bottom:14px;font-size:1.05rem}
.em .review blockquote{margin:0;padding:0;border:0}
.em .review p{font-family:var(--head);font-style:italic;color:var(--dark);font-size:1.02rem;line-height:1.5;margin:0}
body.em-home .review p{font-family:var(--sans);color:var(--text);font-size:.94rem}
.em .review .who{
  display:block;margin-top:14px;font-family:var(--sans);font-weight:600;color:var(--sage);
  font-style:normal;letter-spacing:1px;font-size:.82rem;
}

/* -------------------------------------------------- CTA band */
.em .cta{
  background-color:var(--deep);background-size:cover;background-position:center;
  color:#fff;text-align:center;padding:110px 0;position:relative;
}
.em .cta::before{content:"";position:absolute;inset:0;background:rgba(47,58,43,.9)}
.em .cta>*{position:relative;z-index:2}
.em .cta h2,
.em .cta .elementor-widget-heading .elementor-heading-title{color:#fff;margin-bottom:10px}
.em .cta .elementor-widget-text-editor{color:rgba(255,255,255,.82)}
.em .pillars .elementor-widget-heading .elementor-heading-title{color:#fff}
.em .pillars .pillar .elementor-widget-text-editor{color:rgba(255,255,255,.68);font-size:.92rem}
.em .stats-band .elementor-widget-heading .elementor-heading-title{color:#fff}
.em .team-card.join .elementor-widget-heading .elementor-heading-title{color:#fff}
.em .team-card.join .elementor-widget-text-editor{color:rgba(255,255,255,.8)}
.em .bcard.feature .elementor-widget-heading .elementor-heading-title{color:#fff}
.em .cta .eyebrow{color:#b9cbb0}
.em .cta p{color:rgba(255,255,255,.82);max-width:640px;margin:0 auto 26px}

/* -------------------------------------------------- FAQ */
.em .faq .wrap{max-width:1040px}
.em .faq-list{display:grid;gap:14px;align-items:start}
@media(min-width:900px){.em .faq-list{grid-template-columns:1fr 1fr;gap:14px 26px}}
.em details.qa{
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:0;overflow:hidden;
}
.em .band-cream details.qa{background:#fbf6f1}
.em details.qa>summary{
  list-style:none;cursor:pointer;padding:18px 48px 18px 22px;position:relative;
  font-family:var(--head);font-size:1.04rem;color:var(--dark);font-weight:600;line-height:1.35;
}
.em details.qa>summary::-webkit-details-marker{display:none}
.em details.qa>summary::after{
  content:"";position:absolute;right:22px;top:calc(50% - 5px);width:10px;height:10px;
  border-right:2px solid var(--sage);border-bottom:2px solid var(--sage);
  transform:rotate(45deg);transition:transform .25s;
}
.em details.qa[open]>summary::after{transform:rotate(-135deg);top:calc(50% - 2px)}
.em details.qa .a{padding:0 22px 20px;font-size:.95rem}
.em details.qa .a p:last-child{margin-bottom:0}

/* -------------------------------------------------- visit / map */
.em .visit-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:44px;align-items:stretch}
.em .visit-info .info-row{display:flex;gap:16px;margin-bottom:26px;align-items:flex-start}
.em .visit-info .ic-wrap{
  flex:0 0 50px;width:50px;height:50px;border-radius:50%;background:var(--sage);color:#fff;
  display:flex;align-items:center;justify-content:center;
}
.em .visit-info .ic-wrap .ic{width:24px;height:24px}
.em .visit-info h4{color:var(--dark);margin-bottom:3px;font-size:1.1rem}
.em .visit-info p{margin:0;font-size:.95rem;color:var(--text)}
.em .visit-info a:hover{color:var(--sage)}
.em .em-map iframe,.em .visit-map iframe{
  width:100%;height:100%;min-height:400px;border:0;border-radius:14px;display:block;
  box-shadow:0 20px 50px rgba(60,50,40,.12);
}

/* -------------------------------------------------- contact card */
.em .contact-wrap{max-width:1120px;margin:-100px auto 0;position:relative;z-index:5;padding:0 var(--gutter) 90px}
.em .contact-card{
  background:#fff;border-radius:18px;box-shadow:0 34px 80px rgba(60,50,40,.16);
  display:grid;grid-template-columns:.92fr 1.08fr;overflow:hidden;
}
.em .ci-left{padding:54px 48px}
.em .ci-left h2{margin-bottom:10px}
.em .ci-left .intro{color:var(--text);font-size:.96rem;margin-bottom:28px}
.em .info-row{display:flex;gap:16px;margin-bottom:24px;align-items:flex-start}
.em .info-row .ic-wrap{
  flex:0 0 50px;width:50px;height:50px;border-radius:50%;background:var(--sage);color:#fff;
  display:flex;align-items:center;justify-content:center;
}
.em .info-row .ic-wrap .ic{width:24px;height:24px}
.em .info-row h4{font-family:var(--head);color:var(--dark);margin-bottom:3px;font-size:1.12rem}
.em .info-row p{margin:0;font-size:.94rem;color:var(--text)}
.em .social-row{margin-top:32px;padding-top:26px;border-top:1px solid var(--line)}
.em .social-row .lbl{
  font-family:var(--sans);letter-spacing:2px;text-transform:uppercase;font-size:.72rem;
  color:var(--dark);font-weight:600;margin-bottom:14px;
}
.em .social-row .icons{display:flex;gap:12px}
.em .social-row a{
  width:42px;height:42px;border-radius:50%;background:var(--cream);color:var(--deep);
  display:flex;align-items:center;justify-content:center;
}
.em .social-row a .ic{width:20px;height:20px}
.em .social-row a:hover{background:var(--sage);color:#fff}
.em .ci-right{background:var(--cream);padding:54px 48px}
.em .ci-right h2{margin-bottom:22px}

/* -------------------------------------------------- forms */
.em .frow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.em .field{margin-bottom:16px}
.em .field label{
  display:block;font-family:var(--sans);font-size:.74rem;letter-spacing:1px;
  text-transform:uppercase;color:var(--dark);margin-bottom:6px;font-weight:500;
}
.em .field input,.em .field textarea,.em .field select{
  width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:6px;
  font-family:var(--sans);font-size:.95rem;color:var(--text);background:#fff;
}
.em .field textarea{min-height:130px;resize:vertical}
.em .field input:focus,.em .field textarea:focus,.em .field select:focus{outline:none;border-color:var(--sage)}
.em .field.req label::after{content:" *";color:var(--sage)}
.em .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.em .form-note{margin-top:14px;font-size:.88rem}
.em .form-ok{
  background:#eef4ee;border:1px solid var(--sage);color:var(--deep);
  border-radius:8px;padding:16px 18px;margin-bottom:20px;
}
.em .form-err{
  background:#fbeeee;border:1px solid #c9776f;color:#8a3a33;
  border-radius:8px;padding:16px 18px;margin-bottom:20px;
}
.em .form-fine{font-size:.82rem;color:var(--text);margin-top:14px;line-height:1.6}

/* -------------------------------------------------- footer */
.site-footer{background:var(--dark);color:#cfcabf;padding:60px 0 0}
body.em-home .site-footer{color:#c9cbca}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px}
.site-footer h4{
  font-family:var(--sans);color:#fff;font-size:.95rem;letter-spacing:2px;
  text-transform:uppercase;margin-bottom:18px;
}
.site-footer p,.site-footer a{font-size:.92rem;color:#b7b2a8}
body.em-home .site-footer p,body.em-home .site-footer a{color:#b7b9b8}
.site-footer a:hover{color:var(--sage)}
.site-footer .footer-links{list-style:none;margin:0;padding:0}
.footer-links li{margin-bottom:9px}
.socials{display:flex;gap:12px;margin-top:14px}
.socials a{
  width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;color:#fff;
}
.socials a .ic{width:18px;height:18px}
.socials a:hover{background:var(--sage);color:#fff}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);margin-top:48px;padding:22px 0;
  text-align:center;font-size:.82rem;color:#8f8b81;
}
.footer-bottom p{margin:0 0 8px;font-size:.82rem}
.footer-bottom .f-legal a{font-size:.82rem}
.footer-bottom .f-legal span{margin:0 8px;opacity:.5}
.footer-bottom .f-disc{max-width:760px;margin:10px auto 0;opacity:.75;line-height:1.6}

/* ==========================================================================
   Elementor shim
   Pages are built from native Elementor sections; these rules make the
   Elementor container behave like the mockups' .wrap and neutralise the
   kit's own spacing where our bands own it.
   ========================================================================== */
.em .elementor-section.em-band>.elementor-container{
  max-width:var(--maxw);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);
}
.em .elementor-section.em-band.wide>.elementor-container{max-width:1160px}
.em .elementor-section.em-band.narrow>.elementor-container{max-width:880px}
.em .elementor-section.em-band{padding:78px 0}
.em .elementor-section.em-band.tight{padding:54px 0}
.em .elementor-section.em-band.flush{padding:0}
/* Elementor's own rule is (0,2,0) via :not(); match at (0,3,0) to win. */
.em .elementor-widget.elementor-widget-heading:not(:last-child){margin-block-end:14px}
.em .elementor-widget.elementor-widget-text-editor:not(:last-child){margin-block-end:18px}
.em .elementor-widget.elementor-widget-button:not(:last-child){margin-block-end:22px}
.em .elementor-widget-heading .elementor-heading-title{font-family:var(--head);color:var(--dark)}
.em .elementor-widget-text-editor{color:var(--text)}
.em .elementor-widget-text-editor p:last-child{margin-bottom:0}
.em .elementor-element.em-center{text-align:center}
.em .elementor-element.em-center .em-btns{justify-content:center}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media(max-width:1200px){
  .em .hero-copy{margin-left:var(--gutter)}
  .em .hero-controls{left:calc(var(--gutter) + 56px)}
}
@media(max-width:1100px){
  .nav .nav-list{gap:18px}
  .nav{gap:18px}
  .nav .nav-item>a{font-size:.85rem;letter-spacing:.5px}
  .logo .logo-img{height:72px}
  .em .services-grid{grid-template-columns:repeat(4,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:980px){
  .em .services-grid{grid-template-columns:repeat(3,1fr)}
  .em .bcards{grid-template-columns:repeat(2,1fr)}
  .em .cards,.em .cards.four{grid-template-columns:repeat(2,1fr)}
  .em .stats .row{grid-template-columns:repeat(2,1fr);gap:32px}
}
@media(max-width:900px){
  .em .split,.em .pillars .wrap,.em .commit .wrap,.em .visit-grid,.em .contact-card{
    grid-template-columns:1fr;gap:36px;
  }
  .em .split.rev .split-media{order:0}
  .em .pillars .grid{gap:28px 30px}
  .em .team-grid{grid-template-columns:repeat(2,1fr)}
  .em .cat-grid{grid-template-columns:1fr;gap:40px}
  .em .about-panel{padding:48px 30px}
  .em .about-photo{margin-left:0;margin-top:20px}
  .em .about-photo .about-photo-img,.em .about-photo img{aspect-ratio:16/9}
  .em .commit .callcard{position:static;max-width:none;margin-top:18px}
  .em .ci-left,.em .ci-right{padding:42px 30px}
  .em .contact-wrap{margin-top:-70px}
  .em .cta,.em .pagehead{background-attachment:scroll}
  .em .hero-card{min-height:520px}
  .em .hero-photo{width:100%;opacity:.42}
  .em .hero-card::after{background:linear-gradient(90deg,rgba(35,43,40,.94) 0%,rgba(35,43,40,.78) 60%,rgba(35,43,40,.6) 100%)}
  .em .hero-copy{padding:56px 30px 96px;max-width:none}
  .em .hero-tags{display:none}
}
@media(max-width:820px){
  .em .visit-map iframe,.em .em-map iframe{min-height:320px}
}
@media(max-width:768px){
  .menu-toggle{display:block}
  .nav{
    position:fixed;inset:0 0 0 auto;width:min(340px,86vw);background:#fff;
    flex-direction:column;align-items:stretch;gap:0;padding:92px 24px 32px;
    transform:translateX(100%);transition:transform .3s ease;overflow-y:auto;
    box-shadow:-12px 0 40px rgba(0,0,0,.18);z-index:1200;
  }
  body.nav-open .nav{transform:translateX(0)}
  body.nav-open{overflow:hidden}
  .nav .nav-list{flex-direction:column;align-items:stretch;gap:0}
  .nav .nav-item{border-bottom:1px solid var(--line)}
  .nav .nav-item>a{display:block;padding:14px 0;font-size:.95rem}
  .nav .caret{position:absolute;right:0;top:8px;padding:10px}
  .nav .sub-menu{
    position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    border:0;border-radius:0;padding:0 0 10px 14px;display:none;min-width:0;
  }
  .nav .nav-item.open>.sub-menu{display:block}
  .nav .sub-menu a{padding:8px 0}
  .nav .sub-menu a:hover{background:transparent}
  .nav .nav-phone{margin-top:22px;justify-content:center}
  .em section,.em .elementor-section.em-band{padding:56px 0}
  .em .services-grid{grid-template-columns:repeat(2,1fr);gap:32px 18px}
  .em .team-grid,.em .reviews,.em .cards,.em .cards.two,.em .cards.four,
  .em .bcards,.em .pillars .grid,.em .frow{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:32px}
  .em .pagehead{padding:64px var(--gutter) 72px}
  .em .statement{padding:60px 0 64px}
  .em .cta{padding:74px 0}
  .em .about-feature{padding:56px var(--gutter)}
  .em .hero-controls{left:30px;bottom:24px}
}
@media(max-width:480px){
  :root{--gutter:18px}
  .em .stats .row{grid-template-columns:1fr}
  .em .services-grid{grid-template-columns:1fr}
  .em .hero-copy{padding:48px 22px 92px}
  .em .ci-left,.em .ci-right{padding:34px 22px}
  .em a.btn,.em .em-btns a.btn{width:100%}
}

@media(prefers-reduced-motion:reduce){
  .em *,.em *::before,.em *::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important;
  }
}

@media print{
  .site-header,.site-footer,.menu-toggle,.em .cta,.em .em-map{display:none !important}
  .em{color:#000}
}

/* ==========================================================================
   Elementor icon-box: the mockups' circular icon medallions.
   Elementor renders .elementor-icon inside .elementor-widget-icon-box, so the
   mockup's .cat-icon / .service .icon rules never match on their own.
   ========================================================================== */
.em .elementor-widget-icon-box{text-align:center}
.em .elementor-widget-icon-box .elementor-icon-box-wrapper{display:block}
.em .elementor-widget-icon-box .elementor-icon-box-icon{margin:0 auto 20px;display:block}
.em .elementor-widget-icon-box .elementor-icon{
  width:116px;height:116px;border-radius:50%;display:inline-flex;
  align-items:center;justify-content:center;background:var(--sage);color:#f4eddd;
  transition:transform .3s ease,background .3s ease;padding:0;font-size:inherit;
}
.em .elementor-widget-icon-box .elementor-icon svg{
  width:54px;height:54px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;
}
.em .elementor-widget-icon-box:hover .elementor-icon{transform:translateY(-6px)}
.em .elementor-widget-icon-box .elementor-icon-box-title{
  font-family:var(--head);font-size:1.12rem;margin:0 0 8px;line-height:1.25;
}
.em .elementor-widget-icon-box .elementor-icon-box-title a{color:var(--dark)}
.em .elementor-widget-icon-box .elementor-icon-box-title a:hover{color:var(--sage)}
.em .elementor-widget-icon-box .elementor-icon-box-description{
  font-size:.92rem;line-height:1.65;color:var(--text);margin:0;
}
/* Earthy rotation across each row, as the mockups specify. */
.em .em-grid .em-cardcol:nth-child(3n+1) .elementor-icon{background:#8fa393;color:#f4eddd}
.em .em-grid .em-cardcol:nth-child(3n+2) .elementor-icon{background:#ece5d7;color:#54695c}
.em .em-grid .em-cardcol:nth-child(3n)   .elementor-icon{background:#5f7468;color:#f4eddd}
/* Featured treatment columns are larger, per the home mockup. */
.em .em-grid.cols-3 .em-cardcol.cat .elementor-icon{width:134px;height:134px}
.em .em-grid.cols-3 .em-cardcol.cat .elementor-icon svg{width:62px;height:62px}
.em .em-grid.cols-3 .em-cardcol.cat .elementor-icon-box-title{font-size:1.5rem;margin-bottom:12px}
.em .em-grid.cols-3 .em-cardcol.cat .elementor-icon-box-description{font-size:.96rem;max-width:320px;margin:0 auto}
/* Benefit grids (4-up) use the smaller medallion of the service mockup. */
.em .em-grid.cols-4 .elementor-icon{width:76px;height:76px}
.em .em-grid.cols-4 .elementor-icon svg{width:36px;height:36px}
.em .em-grid.cols-4 .elementor-icon-box-title{font-size:1.02rem}
.em .em-grid.cols-4 .elementor-icon-box-description{font-size:.88rem}
/* 5-up service grid on the home page. */
.em .em-grid.cols-5 .elementor-icon{width:104px;height:104px}
.em .em-grid.cols-5 .elementor-icon svg{width:48px;height:48px}

/* Row rhythm */
.em .em-grid,.em .team-grid,.em .reviews,.em .stats-row{margin-bottom:28px}
.em .em-grid:last-child,.em .team-grid:last-child,.em .reviews:last-child,.em .stats-row:last-child{margin-bottom:0}
.em .em-sectionhead{margin-bottom:44px}
.em .em-spacer-col{min-height:1px}

/* Icon-list chips rendered by Elementor */
.em .elementor-widget-icon-list .elementor-icon-list-items.elementor-inline-items{
  display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:0;
}
.em .elementor-widget-icon-list .elementor-inline-items .elementor-icon-list-item{
  margin:0;background:#fff;border:1px solid var(--line);border-radius:40px;
  padding:10px 20px;font-size:.9rem;
}
.em .band-cream .elementor-widget-icon-list .elementor-inline-items .elementor-icon-list-item{background:#fbf6f1}
.em .elementor-widget-icon-list .elementor-icon-list-icon svg{
  width:17px;height:17px;fill:none;stroke:var(--sage);stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;
}
.em .elementor-widget-icon-list .elementor-icon-list-text{color:var(--text)}

/* Accordion (FAQ) */
.em .elementor-widget-accordion .elementor-accordion-item{
  background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:14px;overflow:hidden;
}
.em .band-cream .elementor-widget-accordion .elementor-accordion-item,
.em .faq .elementor-widget-accordion .elementor-accordion-item{background:#fbf6f1}
.em .elementor-widget-accordion .elementor-tab-title{
  font-family:var(--head);font-size:1.04rem;color:var(--dark);font-weight:600;
  padding:18px 22px;line-height:1.35;border:0;
}
.em .elementor-widget-accordion .elementor-tab-title a{color:var(--dark)}
.em .elementor-widget-accordion .elementor-tab-title.elementor-active{color:var(--sage)}
.em .elementor-widget-accordion .elementor-tab-content{
  padding:0 22px 20px;font-size:.95rem;border:0;color:var(--text);
}
.em .elementor-widget-accordion .elementor-tab-content p:last-child{margin-bottom:0}
.em .elementor-widget-accordion .elementor-accordion-icon{color:var(--sage)}

/* Star rating */
.em .elementor-widget-star-rating .elementor-star-rating{color:var(--gold);font-size:1.05rem;letter-spacing:3px}
.em .review .elementor-widget-star-rating{text-align:center}

/* Google map widget */
.em .em-map-w iframe,.em .visit-map iframe{
  border-radius:14px;box-shadow:0 20px 50px rgba(60,50,40,.12);width:100%;display:block;
}

/* Elementor image widget inside our media boxes */
.em .split-media .elementor-widget-image img,
.em .commit .media .elementor-widget-image img{
  border-radius:10px;box-shadow:var(--shadow);width:100%;aspect-ratio:4/3;object-fit:cover;
}
.em .about-hero .split-media .elementor-widget-image img{aspect-ratio:4/5;object-position:center 12%}
.em .team-card .elementor-widget-image img{
  width:128px;height:128px;border-radius:50%;object-fit:cover;margin:0 auto 20px;
  box-shadow:0 10px 26px rgba(60,50,40,.18);
}
