/* ===================== VARIABLES ===================== */
:root{
  --cream:#F0E8D8;
  --cream-soft:#E8DEC8;
  --olive:#3A4526;
  --olive-deep:#2C3520;
  --terracotta:#C87F1E;
  --terracotta-dark:#AD6A14;
  --charcoal:#2A2418;
  --cream-text:#F5EFE0;
  --line-dark: rgba(42,36,24,0.14);
  --line-light: rgba(245,239,224,0.22);
  --ease: cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--cream);
  color:var(--charcoal);
  font-family:'Inter',sans-serif;
  font-weight:400;
  overflow-x:hidden;
  line-height:1.6;
}
img{ max-width:100%; display:block; }
h1,h2,h3{
  font-family:'Playfair Display',serif;
  font-weight:600;
  margin:0;
}
em{ font-style:italic; font-family:'Playfair Display',serif; }
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
.section-inner{
  max-width:1240px;
  margin:0 auto;
  padding:0 40px;
}
.eyebrow{
  font-family:'Inter',sans-serif;
  font-size:0.78rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--terracotta-dark);
  margin-bottom:18px;
  font-weight:500;
}
.eyebrow-light{ color:var(--terracotta); }
.section-title{
  font-size:clamp(2.1rem,4vw,3.2rem);
  line-height:1.15;
  margin-bottom:28px;
}
.title-light{ color:var(--cream-text); }

/* ===================== FADE UP ===================== */
.fade-up{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.fade-up.in-view{ opacity:1; transform:translateY(0); }
.stagger .fade-up:nth-child(1){ transition-delay:0s; }
.stagger .fade-up:nth-child(2){ transition-delay:.1s; }
.stagger .fade-up:nth-child(3){ transition-delay:.2s; }
.stagger .fade-up:nth-child(4){ transition-delay:.3s; }

/* ===================== BUTTONS ===================== */
.btn{
  display:inline-flex;
  align-items:center;
  gap:14px;
  font-size:0.92rem;
  font-weight:500;
  letter-spacing:0.02em;
  cursor:pointer;
  transition:color .25s var(--ease);
  background:none;
  border:none;
  padding:0;
  font-family:'Inter',sans-serif;
}
.btn-circle{
  width:46px; height:46px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  transition:transform .35s var(--ease), background .3s var(--ease), border-color .3s var(--ease);
}
.btn-arrow{ font-size:1.1rem; transition:transform .3s var(--ease); }
.btn:hover .btn-circle{ transform:scale(1.08); }
.btn:hover .btn-arrow{ transform:translateX(3px); }

.btn-primary .btn-circle{ background:var(--terracotta); color:var(--cream); }
.btn-primary{ color:var(--charcoal); }
.btn-primary:hover{ color:var(--terracotta-dark); }

.btn-outline-dark .btn-circle{ background:transparent; border:1px solid var(--charcoal); color:var(--charcoal); }
.btn-outline-dark{ color:var(--charcoal); }
.btn-outline-dark:hover{ color:var(--terracotta); }
.btn-outline-dark:hover .btn-circle{ border-color:var(--terracotta); color:var(--terracotta); }

.btn-outline-light .btn-circle{ background:transparent; border:1px solid var(--cream-text); color:var(--cream-text); }
.btn-outline-light{ color:var(--cream-text); }
.btn-outline-light:hover{ color:var(--terracotta); }
.btn-outline-light:hover .btn-circle{ border-color:var(--terracotta); color:var(--terracotta); }

.btn-sm .btn-circle{ width:38px; height:38px; }
.btn-row{ display:flex; gap:32px; flex-wrap:wrap; margin-top:44px; }

/* ===================== HEADER / TOPBAR ===================== */
.site-header{
  position:static;
  background:var(--cream);
}
.header-topbar{
  max-width:1280px; margin:0 auto; padding:12px 40px;
  display:grid; grid-template-columns:1fr auto 1fr;
  align-items:center; gap:24px;
  border-bottom:1px solid var(--line-dark);
}
.topbar-link{
  font-size:0.8rem;
  letter-spacing:0.02em;
  color:var(--charcoal);
  background:none; border:none; cursor:pointer; padding:0;
  font-family:'Inter',sans-serif;
  transition:color .25s var(--ease);
  justify-self:start;
}
.menu-btn{ justify-self:end; }
.topbar-link:hover{ color:var(--terracotta); }

.brand-badge{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  justify-self:center;
  color:var(--charcoal);
}
.badge-sun{
  width:34px; height:19px;
  margin-bottom:2px;
  color:var(--terracotta-dark);
}
.badge-sun path,
.badge-sun line{
  stroke:currentColor;
  stroke-width:1.3;
  stroke-linecap:round;
}
.badge-title{
  font-family:'Playfair Display',serif;
  font-size:0.68rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--charcoal);
}
.badge-rule{
  width:26px; height:1px;
  background:var(--line-dark);
  margin:3px 0;
}
.badge-sub{
  font-family:'Playfair Display',serif;
  font-style:italic;
  font-size:0.62rem;
  color:var(--terracotta-dark);
}

/* ===================== NAV OVERLAY (MEGA MENU) ===================== */
.nav-overlay{
  position:fixed; inset:0; z-index:1200;
  background:var(--olive);
  overflow-y:auto;
  padding:110px 40px 60px;
  opacity:0; visibility:hidden;
  transform:translateY(-16px);
  transition:opacity .45s var(--ease), transform .45s var(--ease), visibility 0s linear .45s;
}
.nav-overlay.open{
  opacity:1; visibility:visible; transform:translateY(0);
  transition:opacity .45s var(--ease), transform .45s var(--ease), visibility 0s linear 0s;
}
.nav-overlay-close{
  position:fixed; top:28px; right:40px; z-index:1201;
  background:none; border:none; color:var(--cream-text);
  font-size:2rem; line-height:1; cursor:pointer;
  transition:color .25s var(--ease);
}
.nav-overlay-close:hover{ color:var(--terracotta); }

.mega-menu{
  max-width:1080px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:60px;
}
.mega-heading{
  font-size:0.75rem;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--terracotta);
  margin-bottom:20px;
}
.mega-col-categories{ display:flex; flex-direction:column; align-items:flex-start; }
.mega-category{
  background:none; border:none; cursor:pointer;
  font-family:'Playfair Display',serif;
  font-size:1.5rem;
  color:rgba(245,239,224,0.55);
  padding:9px 0;
  text-align:left;
  transition:color .25s var(--ease);
}
.mega-category:hover{ color:var(--cream-text); }
.mega-category.active{ color:var(--terracotta); }
.mega-secondary{
  display:flex; flex-direction:column; align-items:flex-start; gap:14px;
  margin-top:36px;
  padding-top:28px;
  border-top:1px solid var(--line-light);
}
.mega-secondary a{
  font-size:0.95rem;
  color:rgba(245,239,224,0.75);
  transition:color .25s var(--ease);
}
.mega-secondary a:hover{ color:var(--terracotta); }

.mega-col-items{ padding-top:2px; }
.mega-subitems{ display:none; flex-direction:column; align-items:flex-start; gap:15px; }
.mega-subitems.active{ display:flex; }
.mega-subitems a{
  font-size:0.98rem;
  color:rgba(245,239,224,0.8);
  transition:color .25s var(--ease);
}
.mega-subitems a:hover{ color:var(--terracotta); }

.mega-col-location{ display:flex; flex-direction:column; align-items:flex-start; }
.mega-location-media{
  width:100%; aspect-ratio:4/3;
  border-radius:4px; overflow:hidden;
  margin-bottom:22px;
}
.mega-location-media img{ width:100%; height:100%; object-fit:cover; }
.mega-location-label{
  font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--terracotta);
  margin-top:16px; margin-bottom:6px;
}
.mega-location-label:first-of-type{ margin-top:0; }
.mega-location-text{ font-size:0.92rem; color:rgba(245,239,224,0.8); line-height:1.5; }
.mega-social{ display:flex; gap:12px; margin-top:16px; }
.mega-social a{
  width:34px; height:34px;
  border:1px solid var(--line-light);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--cream-text);
  transition:border-color .25s var(--ease), color .25s var(--ease);
}
.mega-social a:hover{ border-color:var(--terracotta); color:var(--terracotta); }
.mega-social svg{ width:16px; height:16px; stroke:currentColor; stroke-width:1.4; fill:none; }
.mega-cta{ color:var(--cream-text); margin-top:30px; }
.mega-cta:hover{ color:var(--terracotta); }

@media (max-width:900px){
  .nav-overlay{ padding:100px 24px 50px; }
  .mega-menu{ grid-template-columns:1fr; gap:44px; max-width:420px; }
  .mega-category{ font-size:1.3rem; }
}

/* ===================== HERO ===================== */
.hero{
  position:relative;
  background:var(--cream);
  overflow:hidden;
}
.hero-body{
  position:relative;
  max-width:1280px;
  margin:0 auto;
  padding:50px 40px 70px;
  min-height:calc(100vh - 68px);
  display:grid;
  grid-template-columns:1fr minmax(260px,32%) 1fr;
  grid-template-rows:auto 1fr;
  column-gap:56px;
}
.hero-giant-text{
  grid-column:1 / -1;
  grid-row:1;
  text-align:center;
  white-space:nowrap;
  font-family:'Playfair Display',serif;
  font-weight:600;
  font-size:clamp(4.5rem,13vw,11rem);
  line-height:1;
  color:rgba(255,253,246,0.92);
  mix-blend-mode:overlay;
  pointer-events:none;
  user-select:none;
  z-index:3;
  margin-top:6px;
}
.hero-giant-text em{ color:rgba(230,220,190,0.85); }
.hero-center-media{
  grid-column:2;
  grid-row:1 / 3;
  position:relative;
  z-index:2;
  border-radius:4px;
  overflow:hidden;
  min-height:380px;
  margin-top:6px;
  box-shadow:0 40px 90px rgba(42,36,24,0.22);
}
.hero-center-media img{ width:100%; height:100%; object-fit:cover; }
.hero-left{
  grid-column:1;
  grid-row:2;
  align-self:end;
  z-index:3;
  padding-bottom:8px;
  max-width:420px;
}
.hero-title{
  font-size:clamp(2.4rem,5vw,3.6rem);
  line-height:1.08;
  color:var(--charcoal);
  margin-bottom:18px;
}
.hero-title em{ color:rgba(42,36,24,0.4); }
.hero-tagline{
  font-size:1.05rem;
  font-weight:500;
  color:var(--charcoal);
  margin-bottom:14px;
}
.hero-sub{
  font-size:0.92rem;
  color:rgba(42,36,24,0.65);
  margin-bottom:34px;
}
.hero-right{
  grid-column:3;
  grid-row:2;
  align-self:end;
  z-index:3;
  padding-bottom:8px;
  display:flex;
  flex-direction:column;
  gap:16px;
  max-width:340px;
  margin-left:auto;
}
.visit-line{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  font-size:0.9rem;
  color:var(--charcoal);
  line-height:1.4;
}
.directions-link{
  font-size:0.82rem;
  font-weight:500;
  white-space:nowrap;
  border-bottom:1px solid var(--charcoal);
  transition:color .25s var(--ease), border-color .25s var(--ease);
}
.directions-link:hover{ color:var(--terracotta); border-color:var(--terracotta); }
.hero-map-thumb{
  position:relative;
  display:block;
  height:170px;
  border-radius:4px;
  overflow:hidden;
  background:#DED2B4;
}
.hero-map-grid{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(58,69,38,0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(58,69,38,0.1) 1px, transparent 1px);
  background-size:26px 26px;
  transition:transform .5s var(--ease);
}
.hero-map-thumb:hover .hero-map-grid{ transform:scale(1.06); }
.hero-map-pin{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-100%);
  width:14px; height:14px;
  background:var(--terracotta);
  border:2px solid var(--cream);
  border-radius:50% 50% 50% 0;
  transform:translate(-50%,-100%) rotate(-45deg);
  box-shadow:0 4px 10px rgba(42,36,24,0.3);
}

@media (max-width:1000px){
  .hero-body{ grid-template-columns:1fr; grid-template-rows:auto auto auto auto; row-gap:28px; padding-top:20px; }
  .hero-giant-text{ grid-row:1; margin-top:0; font-size:clamp(2.6rem,13vw,5rem); }
  .hero-center-media{ grid-column:1; grid-row:3; min-height:320px; margin-top:0; }
  .hero-left,.hero-right{ grid-column:1; align-self:auto; max-width:none; margin-left:0; }
  .hero-left{ grid-row:2; }
  .hero-right{ grid-row:4; }
}

/* ===================== MARQUEE ===================== */
.marquee-section{
  background:var(--cream);
  padding:50px 0 70px;
  border-bottom:1px solid var(--line-dark);
  overflow:hidden;
}
.marquee-label{
  text-align:center;
  font-size:0.78rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:rgba(42,36,24,0.55);
  margin-bottom:28px;
}
.marquee-track{
  display:flex;
  width:max-content;
  animation:marqueeScroll 34s linear infinite;
}
.marquee-group{
  display:flex;
  align-items:center;
  gap:20px;
  padding-right:20px;
  white-space:nowrap;
}
.marquee-group span{
  font-family:'Playfair Display',serif;
  font-style:italic;
  font-size:1.5rem;
  color:rgba(42,36,24,0.4);
}
@keyframes marqueeScroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

/* ===================== PIN & REVEAL ===================== */
.pin-reveal{
  position:relative;
  height:340vh;
  background:var(--olive);
}
@media (max-width:700px){
  .pin-reveal{ height:220vh; }
}
.pin-reveal-sticky{
  position:sticky;
  top:0;
  height:100vh;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.pin-title{
  position:absolute;
  z-index:4;
  text-align:center;
  font-family:'Playfair Display',serif;
  font-weight:600;
  color:rgba(230,175,90,0.8);
  font-size:clamp(4.5rem,13vw,11.5rem);
  line-height:1;
  mix-blend-mode:overlay;
  pointer-events:none;
}
.pin-title em{ color:rgba(255,205,120,0.9); }
@media (max-width:700px){
  .pin-title{ font-size:clamp(2.6rem,12vw,4.5rem); }
  .pin-stats{ padding:20px; gap:22px; }
  .pin-stat{ min-width:100px; }
}
.pin-image{
  position:relative;
  z-index:2;
  width:14px;
  height:14px;
  border-radius:50%;
  overflow:hidden;
  box-shadow:0 30px 70px rgba(0,0,0,0.4);
  will-change:width, height, border-radius;
}
.pin-image img{
  width:100%; height:100%; object-fit:cover;
  filter:saturate(1.05);
}
.pin-stats{
  position:absolute;
  z-index:3;
  inset:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:50px;
  opacity:0;
  pointer-events:none;
  padding:40px;
}
.pin-stat{
  text-align:center;
  min-width:140px;
}
.pin-stat-num{
  display:block;
  font-family:'Playfair Display',serif;
  font-size:clamp(2.2rem,4vw,3.4rem);
  color:var(--terracotta);
}
.pin-stat-label{
  display:block;
  margin-top:8px;
  font-size:0.78rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--cream-text);
  max-width:160px;
}
.pin-stats-copy{
  flex-basis:100%;
  text-align:center;
  max-width:520px;
  margin:10px auto 0;
  color:rgba(245,239,224,0.75);
  font-size:0.95rem;
}

/* ===================== SERVICES ===================== */
.services{ padding:150px 0 130px; background:var(--cream); }
.services-grid{
  display:grid;
  grid-template-columns:260px 1fr;
  gap:60px;
  margin-top:20px;
}
.services-tabs{
  display:flex;
  flex-direction:column;
  gap:14px;
  align-items:flex-start;
}
.tab-pill{
  font-family:'Inter',sans-serif;
  font-size:0.9rem;
  background:transparent;
  border:1px solid var(--line-dark);
  color:rgba(42,36,24,0.65);
  padding:14px 26px;
  border-radius:40px;
  cursor:pointer;
  transition:all .3s var(--ease);
}
.tab-pill:hover{ border-color:var(--terracotta); color:var(--terracotta-dark); }
.tab-pill.active{
  background:var(--terracotta);
  border-color:var(--terracotta);
  color:var(--cream);
}
.cards-panel{
  display:none;
  grid-template-columns:repeat(3,1fr);
  gap:34px;
}
.cards-panel.active{ display:grid; }
.service-card{
  background:var(--cream-soft);
  padding:34px 28px;
  border-radius:8px;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.service-card:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(42,36,24,0.1); }
.service-card h3{ font-size:1.3rem; margin-bottom:14px; }
.service-card p{ font-size:0.92rem; color:rgba(42,36,24,0.68); }
.service-card hr{ border:none; border-top:1px solid var(--line-dark); margin:22px 0 16px; }
.learn-more{
  font-size:0.85rem;
  font-weight:500;
  display:inline-flex;
  align-items:center;
  gap:8px;
  border-bottom:1px solid transparent;
  transition:color .25s var(--ease), border-color .25s var(--ease);
}
.learn-more span{ transition:transform .25s var(--ease); }
.learn-more:hover{ color:var(--terracotta); border-color:var(--terracotta); }
.learn-more:hover span{ transform:translateX(4px); }
.learn-more-light{ color:var(--cream-text); }
.learn-more-light:hover{ color:var(--terracotta); border-color:var(--terracotta); }

/* ===================== FEATURED TREATMENT ===================== */
.featured-treatment{
  position:relative;
  min-height:88vh;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.featured-bg{ position:absolute; inset:0; }
.featured-bg img{ width:100%; height:100%; object-fit:cover; }
.featured-overlay{
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(20,16,8,0.78) 0%, rgba(20,16,8,0.42) 52%, rgba(20,16,8,0.08) 100%);
}
.featured-content{ position:relative; z-index:1; max-width:460px; }
.featured-content .section-title{ margin-bottom:22px; }
.featured-content .section-title em{ color:var(--terracotta); }
.featured-content p{ color:rgba(245,239,224,0.85); font-size:1rem; margin-bottom:28px; }

/* ===================== BLOG ===================== */
.blog{ padding:150px 0; background:var(--cream); }
.blog-header{
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:60px; gap:24px; flex-wrap:wrap;
}
.blog-header .section-title{ margin-bottom:0; }
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.blog-media{ aspect-ratio:4/3; border-radius:6px; overflow:hidden; margin-bottom:24px; }
.blog-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.blog-card:hover .blog-media img{ transform:scale(1.06); }
.blog-category{
  font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--terracotta-dark); margin-bottom:10px;
}
.blog-card h3{ font-size:1.2rem; margin-bottom:12px; line-height:1.32; }
.blog-card p{ font-size:0.9rem; color:rgba(42,36,24,0.65); margin-bottom:18px; }

@media (max-width:900px){
  .featured-treatment{ min-height:auto; padding:110px 0; }
  .featured-overlay{ background:linear-gradient(180deg, rgba(20,16,8,0.35) 0%, rgba(20,16,8,0.82) 60%); }
  .blog-grid{ grid-template-columns:1fr; gap:44px; }
}

/* ===================== PHILOSOPHY ===================== */
.philosophy{ background:var(--olive); padding:150px 0; }
.philosophy-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
}
.philosophy-media{ border-radius:10px; overflow:hidden; box-shadow:0 40px 80px rgba(0,0,0,0.35); }
.philosophy-copy p{ color:rgba(245,239,224,0.78); margin-bottom:20px; font-size:1rem; }
.philosophy-copy .section-title em{ color:var(--terracotta); }

/* ===================== MEET THE OWNER ===================== */
.team{ background:var(--cream); padding:150px 0 0; }
.team-grid{
  display:grid;
  grid-template-columns:0.62fr 0.1fr 1fr;
  align-items:start;
}
.team-media{
  grid-column:1;
  aspect-ratio:3/4;
  border-radius:4px;
  overflow:hidden;
  box-shadow:0 30px 70px rgba(42,36,24,0.18);
}
.team-media img{ width:100%; height:100%; object-fit:cover; }
.team-copy{ grid-column:3; }
.team-copy .section-title{ font-size:clamp(1.9rem,3.4vw,2.7rem); }
.team-copy .section-title em{ color:var(--terracotta); }
.team-copy p{ color:rgba(42,36,24,0.68); font-size:0.98rem; margin-bottom:34px; max-width:520px; }
.inline-link{ text-decoration:underline; text-underline-offset:3px; transition:color .25s var(--ease); }
.inline-link:hover{ color:var(--terracotta); }
.team-features{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:40px;
  margin-top:110px;
  padding-top:56px;
  padding-bottom:90px;
  border-top:1px solid var(--line-dark);
}
.feature-icon{
  width:36px; height:36px;
  color:var(--terracotta);
  stroke:currentColor;
  stroke-width:1.3;
  stroke-linecap:round;
  stroke-linejoin:round;
  margin-bottom:26px;
}
.team-feature p{ font-size:0.92rem; color:rgba(42,36,24,0.68); max-width:220px; }

@media (max-width:1000px){
  .team-grid{ grid-template-columns:1fr; row-gap:40px; }
  .team-media,.team-copy{ grid-column:1; }
  .team-features{ grid-template-columns:1fr 1fr; row-gap:44px; }
}
@media (max-width:640px){
  .team-features{ grid-template-columns:1fr; }
}

/* ===================== BEFORE / AFTER ===================== */
.results{ padding:110px 0 150px; background:var(--olive); }
.results-topline{ height:1px; background:var(--line-light); margin-bottom:90px; }
.results-grid{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:80px;
  align-items:stretch;
}
.results-copy{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.results-copy .section-title{ margin-bottom:24px; }
.results-copy .section-title em{ color:var(--terracotta); }
.results-copy p{ color:rgba(245,239,224,0.7); font-size:0.98rem; max-width:340px; }
.results-media{ display:flex; flex-direction:column; }
.results-image{
  width:100%;
  aspect-ratio:3/2;
  border-radius:4px;
  overflow:hidden;
}
.results-image img{ width:100%; height:100%; object-fit:cover; display:block; }
.ba-labels{
  display:flex;
  justify-content:space-between;
  margin-top:28px;
  padding-top:20px;
  border-top:1px solid var(--line-light);
  font-family:'Playfair Display',serif;
  font-style:italic;
  font-size:1.15rem;
  color:var(--cream-text);
}

@media (max-width:1000px){
  .results-grid{ grid-template-columns:1fr; }
  .results-copy{ margin-bottom:10px; }
}

/* ===================== TESTIMONIALS ===================== */
.testimonials{ background:var(--olive); padding:150px 0; text-align:center; border-top:1px solid var(--line-light); }
.testimonials .eyebrow,.testimonials .section-title{ text-align:center; }
.testimonial-carousel{ max-width:680px; margin:60px auto 0; }
.testimonial-track{ position:relative; min-height:230px; }
.testimonial-slide{
  position:absolute; inset:0;
  opacity:0;
  transform:translateY(14px);
  transition:opacity .6s var(--ease), transform .6s var(--ease);
  pointer-events:none;
}
.testimonial-slide.active{
  opacity:1; transform:translateY(0);
  pointer-events:auto;
  position:relative;
}
.testimonial-photo{
  width:64px; height:64px; border-radius:50%; object-fit:cover;
  margin:0 auto 26px;
  border:2px solid var(--terracotta);
}
.testimonial-quote{
  font-family:'Playfair Display',serif;
  font-style:italic;
  font-size:1.4rem;
  line-height:1.5;
  color:var(--cream-text);
  margin-bottom:22px;
}
.testimonial-name{
  font-size:0.8rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(245,239,224,0.6);
}
.testimonial-progress{
  margin-top:40px;
  height:2px;
  background:rgba(245,239,224,0.18);
  border-radius:2px;
  overflow:hidden;
}
.testimonial-progress-bar{
  height:100%;
  width:0%;
  background:var(--terracotta);
}
.testimonial-progress-bar.animate{
  transition:width linear;
}

/* ===================== MAP / VISIT ===================== */
.visit{ background:var(--cream); padding:150px 0; text-align:center; }
.visit .eyebrow,.visit .section-title{ text-align:center; }
.map-wrap{ position:relative; margin-top:50px; }
.map-canvas{
  position:relative;
  height:440px;
  border-radius:14px;
  overflow:hidden;
  background:#DCCFAE;
  box-shadow:0 30px 70px rgba(42,36,24,0.2);
  transform:scale(1);
  transition:transform .4s var(--ease);
  transform-origin:center;
}
.map-grid{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(58,69,38,0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(58,69,38,0.08) 1px, transparent 1px);
  background-size:48px 48px;
}
.map-road{ position:absolute; background:#F3ECDA; box-shadow:0 0 0 1px rgba(58,69,38,0.12); }
.map-road-h{ top:52%; left:0; right:0; height:14px; }
.map-road-v{ left:38%; top:0; bottom:0; width:14px; }
.map-blob{ position:absolute; border-radius:50%; background:rgba(58,69,38,0.15); }
.map-blob-1{ width:180px; height:180px; top:10%; right:8%; }
.map-blob-2{ width:120px; height:120px; bottom:8%; left:8%; }
.map-marker{
  position:absolute; top:52%; left:38%; transform:translate(-50%,-100%);
}
.map-pin{
  display:block;
  width:20px; height:20px;
  background:var(--terracotta);
  border:3px solid var(--cream);
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  box-shadow:0 6px 16px rgba(42,36,24,0.35);
  cursor:pointer;
  animation:pinPulse 2.4s ease-in-out infinite;
}
@keyframes pinPulse{
  0%,100%{ box-shadow:0 6px 16px rgba(42,36,24,0.35), 0 0 0 0 rgba(200,127,30,0.4); }
  50%{ box-shadow:0 6px 16px rgba(42,36,24,0.35), 0 0 0 10px rgba(200,127,30,0); }
}
.map-popup{
  position:absolute;
  bottom:calc(100% + 16px);
  left:50%;
  transform:translateX(-50%) translateY(8px);
  background:var(--charcoal);
  color:var(--cream-text);
  padding:14px 18px;
  border-radius:8px;
  width:210px;
  text-align:left;
  font-size:0.82rem;
  display:flex;
  flex-direction:column;
  gap:4px;
  opacity:0;
  visibility:hidden;
  transition:opacity .3s var(--ease), transform .3s var(--ease);
  box-shadow:0 20px 40px rgba(0,0,0,0.3);
}
.map-popup::after{
  content:'';
  position:absolute; top:100%; left:50%; transform:translateX(-50%);
  border:7px solid transparent; border-top-color:var(--charcoal);
}
.map-marker.open .map-popup{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.map-controls{
  position:absolute; right:20px; bottom:20px;
  display:flex; flex-direction:column; gap:8px;
  z-index:5;
}
.map-controls button{
  width:38px; height:38px;
  border-radius:6px;
  border:none;
  background:var(--cream);
  color:var(--charcoal);
  font-size:1.1rem;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(42,36,24,0.2);
  transition:background .25s var(--ease), color .25s var(--ease);
}
.map-controls button:hover{ background:var(--terracotta); color:var(--cream); }

/* ===================== FOOTER ===================== */
.site-footer{ background:var(--olive-deep); padding:130px 0 0; }
.footer-grid{
  display:grid;
  grid-template-columns:1.1fr 0.65fr 0.75fr;
  gap:60px;
  padding-bottom:80px;
  border-bottom:1px solid var(--line-light);
}
.footer-col .section-title{ margin-bottom:26px; }
.footer-col-title{
  font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--terracotta);
  margin-bottom:20px; margin-top:26px;
}
.footer-col-title:first-child{ margin-top:0; }
.contact-form{ display:flex; flex-direction:column; gap:16px; margin-top:10px; }
.form-row{ display:flex; gap:16px; }
.contact-form input,.contact-form textarea{
  background:transparent;
  border:none;
  border-bottom:1px solid var(--line-light);
  color:var(--cream-text);
  font-family:'Inter',sans-serif;
  font-size:0.95rem;
  padding:10px 4px;
  width:100%;
  resize:none;
  transition:border-color .3s var(--ease);
}
.contact-form input::placeholder,.contact-form textarea::placeholder{ color:rgba(245,239,224,0.45); }
.contact-form input:focus,.contact-form textarea:focus{ outline:none; border-color:var(--terracotta); }
.contact-form .btn{ align-self:flex-start; margin-top:12px; color:var(--cream-text); }
.contact-form .btn:hover{ color:var(--terracotta); }

.footer-links{ display:flex; flex-direction:column; align-items:flex-start; }
.footer-links a{
  font-size:0.95rem;
  color:rgba(245,239,224,0.75);
  padding:7px 0;
  transition:color .25s var(--ease);
}
.footer-links a:hover{ color:var(--terracotta); }
.footer-links-more{ margin-top:6px; color:var(--terracotta) !important; font-weight:500; }

.footer-info{ display:flex; flex-direction:column; }
.footer-address,.footer-contact{ color:rgba(245,239,224,0.78); font-size:0.98rem; line-height:1.7; }
.footer-social{ display:flex; gap:12px; }
.footer-social a{
  width:36px; height:36px;
  border:1px solid var(--line-light);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--cream-text);
  transition:border-color .25s var(--ease), color .25s var(--ease);
}
.footer-social a:hover{ border-color:var(--terracotta); color:var(--terracotta); }
.footer-social svg{ width:16px; height:16px; stroke:currentColor; stroke-width:1.4; fill:none; }

.footer-bottom{
  max-width:1240px; margin:0 auto;
  padding:34px 40px;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:12px;
}
.footer-brand{
  font-family:'Playfair Display',serif;
  font-size:1.2rem;
  font-weight:600;
  color:var(--cream-text);
}
.footer-brand em{ color:var(--terracotta); font-weight:500; }
.footer-bottom p{ font-size:0.78rem; color:rgba(245,239,224,0.5); }

@media (max-width:1000px){
  .footer-grid{ grid-template-columns:1fr; gap:50px; }
}

/* ===================== ABOUT PAGE ===================== */
.about-hero{
  position:relative;
  min-height:90vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  padding-bottom:80px;
}
.about-hero-bg{ position:absolute; inset:0; }
.about-hero-bg img{ width:100%; height:100%; object-fit:cover; }
.about-hero-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,16,8,0.1) 0%, rgba(20,16,8,0.8) 100%);
}
.about-hero-content{ position:relative; z-index:1; max-width:680px; }
.about-hero-content .section-title{ margin-bottom:30px; }
.about-hero-content .section-title em{ color:var(--terracotta); }
.about-hero-content .btn-primary{ color:var(--cream-text); }
.about-hero-content .btn-primary:hover{ color:var(--terracotta); }

.about-intro{ background:var(--cream); padding:140px 0; }
.about-intro-grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:80px; align-items:start; }
.about-intro-copy .section-title{
  font-weight:500;
  line-height:1.35;
  margin-bottom:0;
}
.about-intro-copy .section-title em{ color:var(--terracotta); font-weight:500; }
.about-intro-aside p{ color:rgba(42,36,24,0.68); font-size:0.98rem; }

.unique{ background:var(--olive); padding:150px 0; }
.unique-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:56px 44px;
  margin-top:60px;
}
.unique-item h3{ color:var(--cream-text); font-size:1.15rem; margin:0 0 10px; }
.unique-item p{ color:rgba(245,239,224,0.7); font-size:0.92rem; }

#founder{ padding-bottom:150px; }

.roster{ background:var(--cream); padding:130px 0 150px; }
.roster-group-label{
  font-size:0.75rem; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--terracotta-dark);
  margin:56px 0 26px;
}
.roster-group-label:first-of-type{ margin-top:50px; }
.roster-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.roster-media{
  aspect-ratio:3/4; border-radius:4px; overflow:hidden;
  margin-bottom:18px;
  box-shadow:0 20px 50px rgba(42,36,24,0.14);
}
.roster-media img{ width:100%; height:100%; object-fit:cover; }
.roster-card h3{ font-size:1.05rem; margin-bottom:4px; }
.roster-card p{ font-size:0.82rem; letter-spacing:0.03em; color:var(--terracotta-dark); }

.areas{ background:var(--olive); padding:150px 0; }
.areas-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:center; }
.areas-copy p{ color:rgba(245,239,224,0.75); font-size:0.98rem; margin-bottom:30px; max-width:400px; }
.areas-list{ list-style:none; margin:0; padding:0; max-width:360px; }
.areas-list li{
  font-family:'Playfair Display',serif; font-style:italic; font-size:1.1rem;
  color:var(--cream-text);
  padding:14px 0;
  border-bottom:1px solid var(--line-light);
}

.about-cta{ position:relative; min-height:85vh; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.about-cta-bg{ position:absolute; inset:0; }
.about-cta-bg img{ width:100%; height:100%; object-fit:cover; }
.about-cta-overlay{ position:absolute; inset:0; background:rgba(20,16,8,0.55); }
.about-cta-content{ position:relative; z-index:1; text-align:center; max-width:600px; }
.about-cta-content .eyebrow{ text-align:center; }
.about-cta-content .section-title{ text-align:center; margin-bottom:30px; }
.about-cta-content .section-title em{ color:var(--terracotta); }
.about-cta-content .btn{ justify-content:center; }
.about-cta-content .btn-primary{ color:var(--cream-text); }
.about-cta-content .btn-primary:hover{ color:var(--terracotta); }

@media (max-width:1000px){
  .about-intro-grid{ grid-template-columns:1fr; gap:40px; }
  .unique-grid{ grid-template-columns:1fr 1fr; }
  .roster-grid{ grid-template-columns:1fr 1fr; }
  .areas-grid{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .unique-grid{ grid-template-columns:1fr; }
  .roster-grid{ grid-template-columns:1fr; }
}
@media (max-width:700px){
  .about-hero{ min-height:70vh; padding-bottom:50px; }
  .about-intro{ padding:90px 0; }
  .unique{ padding:90px 0; }
  .unique-grid{ gap:44px; margin-top:44px; }
  #founder{ padding-bottom:70px; }
  .roster{ padding:70px 0 100px; }
  .roster-group-label{ margin:44px 0 22px; }
  .roster-group-label:first-of-type{ margin-top:0; }
  .roster-grid{ gap:32px; }
  .areas{ padding:100px 0; }
  .about-cta{ min-height:65vh; }
}

/* ===================== CONTACT PAGE ===================== */
.contact-hero{ background:var(--cream); padding:170px 0 120px; }
.contact-hero-grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.contact-hero-copy .section-title{ margin-bottom:20px; }
.contact-hero-copy p{ color:rgba(42,36,24,0.65); font-size:1rem; max-width:420px; }

.contact-hero-form{ background:var(--cream-soft); padding:40px; border-radius:6px; }
.consult-form{ display:flex; flex-direction:column; gap:20px; }
.consult-form .form-row{ display:flex; gap:16px; }
.field{ display:flex; flex-direction:column; gap:8px; flex:1; }
.field label{ font-size:0.85rem; color:var(--charcoal); font-weight:500; }
.field input,.consult-form textarea{
  background:var(--cream);
  border:1px solid var(--line-dark);
  border-radius:4px;
  padding:12px 14px;
  font-family:'Inter',sans-serif;
  font-size:0.92rem;
  color:var(--charcoal);
  resize:none;
  transition:border-color .25s var(--ease);
}
.field input:focus,.consult-form textarea:focus{ outline:none; border-color:var(--terracotta); }
.consent{
  display:flex; align-items:flex-start; gap:10px;
  font-size:0.78rem; color:rgba(42,36,24,0.6); line-height:1.5;
  cursor:pointer;
}
.consent input{ margin-top:3px; flex-shrink:0; }
.consult-form .btn{ align-self:flex-start; }

.contact-map-section{ position:relative; background:var(--cream); }
.map-canvas-full{
  height:560px;
  border-radius:0;
  box-shadow:none;
  transform-origin:center;
}
.contact-map-section .map-controls{ right:30px; bottom:30px; }
.contact-info-card{
  position:absolute; left:6%; bottom:40px;
  background:var(--cream);
  padding:32px 34px;
  border-radius:6px;
  box-shadow:0 30px 60px rgba(42,36,24,0.28);
  max-width:300px;
  z-index:2;
}
.contact-info-card h3{ font-family:'Playfair Display',serif; font-size:1.2rem; margin-bottom:18px; }
.contact-info-row{
  display:flex; align-items:flex-start; gap:10px;
  font-size:0.88rem; color:rgba(42,36,24,0.75);
  margin-bottom:12px; line-height:1.4;
}
.contact-info-row svg{ width:16px; height:16px; flex-shrink:0; margin-top:2px; color:var(--terracotta); stroke:currentColor; stroke-width:1.4; }
.contact-hours-label{
  font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--terracotta-dark); margin:18px 0 6px;
}
.contact-hours{ font-size:0.85rem; color:rgba(42,36,24,0.7); line-height:1.6; }

@media (max-width:900px){
  .contact-hero{ padding:140px 0 60px; }
  .contact-hero-grid{ grid-template-columns:1fr; gap:40px; }
  .contact-hero-form{ padding:28px; }
  .map-canvas-full{ height:380px; }
  .contact-info-card{
    position:static;
    margin:-50px 24px 0;
    max-width:none;
  }
}

/* ===================== BLOG LISTING ===================== */
.blog-hero{ background:var(--cream); padding:170px 0 90px; text-align:center; }
.blog-hero .eyebrow,.blog-hero .section-title{ text-align:center; }
.blog-hero p{ max-width:520px; margin:0 auto; color:rgba(42,36,24,0.65); font-size:1rem; }
.blog-listing{ background:var(--cream); padding:0 0 150px; }

/* ===================== ARTICLE PAGE ===================== */
.article-hero{
  position:relative;
  min-height:55vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  padding-bottom:70px;
}
.article-hero-bg{ position:absolute; inset:0; }
.article-hero-bg img{ width:100%; height:100%; object-fit:cover; }
.article-hero-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,16,8,0.1) 0%, rgba(20,16,8,0.82) 100%);
}
.article-hero-content{ position:relative; z-index:1; max-width:760px; }
.article-hero-content .eyebrow{ color:var(--terracotta); }
.article-hero-content .section-title{ margin-bottom:0; }

.article-body{ background:var(--cream); padding:90px 0 40px; }
.article-body-inner{ max-width:700px; margin:0 auto; }
.article-meta{
  display:flex; align-items:center; gap:14px; margin-bottom:44px;
  font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--terracotta-dark);
}
.article-meta span{ color:rgba(42,36,24,0.4); text-transform:none; letter-spacing:0; font-size:0.85rem; }
.article-body-inner h2{ font-size:1.6rem; margin:48px 0 18px; }
.article-body-inner p{ font-size:1.05rem; line-height:1.85; color:rgba(42,36,24,0.75); margin-bottom:24px; }
.article-body-inner ul{ margin:0 0 24px; padding-left:22px; }
.article-body-inner li{ font-size:1.02rem; line-height:1.8; color:rgba(42,36,24,0.75); margin-bottom:10px; }
.article-quote{
  font-family:'Playfair Display',serif; font-style:italic;
  font-size:1.4rem; line-height:1.5; color:var(--charcoal);
  border-left:3px solid var(--terracotta);
  padding-left:28px; margin:50px 0;
}
.article-body-inner .btn{ margin-top:10px; }

.article-more{ background:var(--olive); padding:110px 0; }
.article-more .section-title{ margin-bottom:50px; }
.article-more-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.article-more .blog-card h3{ color:var(--cream-text); }
.article-more .blog-card p{ color:rgba(245,239,224,0.7); }
.article-more .blog-category{ color:var(--terracotta); }
.article-more .learn-more{ color:var(--cream-text); }
.article-more .learn-more:hover{ color:var(--terracotta); }

@media (max-width:700px){
  .blog-hero{ padding:130px 0 70px; }
  .article-hero{ min-height:44vh; padding-bottom:44px; }
  .article-body{ padding:70px 0 20px; }
  .article-more{ padding:80px 0; }
  .article-more-grid{ grid-template-columns:1fr; }
}

/* ===================== SERVICE DETAIL PAGE ===================== */
.service-hero{ background:var(--cream); padding:150px 0 0; }
.service-hero-top{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:60px;
  align-items:start;
  padding-bottom:50px;
}
.service-hero-title .section-title{ margin-bottom:0; }
.service-hero-title .section-title em{ color:rgba(42,36,24,0.4); }

.service-quickfacts{
  background:var(--cream-soft);
  border-radius:6px;
  padding:6px 26px;
}
.qf-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
  padding:16px 0;
  border-bottom:1px solid var(--line-dark);
}
.qf-row:last-child{ border-bottom:none; }
.qf-label{
  font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--terracotta-dark);
  flex-shrink:0;
}
.qf-value{ font-size:0.88rem; color:var(--charcoal); text-align:right; }

.service-hero-media{ width:100%; aspect-ratio:16/7; overflow:hidden; }
.service-hero-media img{ width:100%; height:100%; object-fit:cover; }
.service-hero-media.placeholder{ background:var(--cream-soft); }

.service-intro{ background:var(--cream); padding:100px 0; }
.service-intro .section-title{ margin-bottom:40px; }
.service-columns{ display:grid; grid-template-columns:1fr 1fr; gap:50px; }
.service-columns p{ font-size:1rem; line-height:1.85; color:rgba(42,36,24,0.72); }

.service-personalize{ background:var(--olive); padding:110px 0; }
.service-personalize-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:center; }
.service-personalize-media{ aspect-ratio:4/5; border-radius:6px; overflow:hidden; box-shadow:0 30px 70px rgba(0,0,0,0.3); }
.service-personalize-media img{ width:100%; height:100%; object-fit:cover; }
.service-personalize-media.placeholder{ background:rgba(245,239,224,0.08); }
.service-personalize-copy .section-title{ margin-bottom:30px; }
.service-personalize-copy .section-title em{ color:var(--terracotta); }
.service-personalize-copy .service-columns p{ color:rgba(245,239,224,0.75); }

.service-whatis{ background:var(--cream); padding:110px 0 140px; }
.service-whatis .section-title{ margin-bottom:26px; }
.service-whatis > .section-inner > p{ font-size:1.02rem; line-height:1.8; color:rgba(42,36,24,0.72); max-width:760px; margin-bottom:70px; }

.service-timeline-label{
  font-size:0.75rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--terracotta-dark);
  margin-bottom:30px;
}
.service-timeline-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:40px;
  padding-top:30px;
  border-top:1px solid var(--line-dark);
}
.service-timeline-grid h4{ font-family:'Playfair Display',serif; font-size:1.1rem; margin-bottom:10px; }
.service-timeline-grid p{ font-size:0.88rem; color:rgba(42,36,24,0.65); line-height:1.6; }

@media (max-width:1000px){
  .service-hero-top{ grid-template-columns:1fr; gap:30px; }
  .service-columns{ grid-template-columns:1fr; gap:20px; }
  .service-personalize-grid{ grid-template-columns:1fr; gap:40px; }
  .service-timeline-grid{ grid-template-columns:1fr 1fr; gap:30px 40px; }
}
@media (max-width:700px){
  .service-hero{ padding-top:120px; }
  .service-hero-media{ aspect-ratio:4/5; }
  .service-intro{ padding:70px 0; }
  .service-personalize{ padding:80px 0; }
  .service-whatis{ padding:80px 0 100px; }
  .service-timeline-grid{ grid-template-columns:1fr; }
}

.service-cta{ background:var(--olive); padding:120px 0; text-align:center; }
.service-cta .eyebrow{ text-align:center; }
.service-cta .section-title{ text-align:center; margin-bottom:16px; }
.service-cta p{ text-align:center; color:rgba(245,239,224,0.75); max-width:480px; margin:0 auto 34px; }
.service-cta .btn{ justify-content:center; }
@media (max-width:700px){
  .service-cta{ padding:90px 0; }
}

/* ===================== RESPONSIVE ===================== */
@media (max-width:1000px){
  .services-grid{ grid-template-columns:1fr; }
  .services-tabs{ flex-direction:row; flex-wrap:wrap; }
  .cards-panel.active{ grid-template-columns:1fr 1fr; }
  .philosophy-grid{ grid-template-columns:1fr; }
}
@media (max-width:720px){
  .cards-panel.active{ grid-template-columns:1fr; }
  .form-row{ flex-direction:column; }
  .section-inner{ padding:0 24px; }
}
@media (max-width:480px){
  .header-topbar{ padding:12px 20px; }
  .map-canvas{ height:340px; }
}
