/* =========================================================
   Dr. Anna Levi & Associates — Shared Stylesheet
   Anchor palette: Sage / Clay / Cream / Ink
   Warm accents: Honey · Blush · Sky
   Type: Fraunces (display) + DM Sans (body)
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..700;1,9..144,300..700&family=DM+Sans:wght@300;400;500;600;700&display=swap');

/* ---------- tokens ---------- */
:root{
  /* Sage (primary anchor) */
  --sage:        #8FA88A;
  --sage-deep:   #5F7E5B;
  --sage-darker: #41603F;
  --sage-soft:   #D6E0D3;
  --sage-whisper:#E8EFE5;

  /* Clay (warm anchor) */
  --clay:        #C47B5A;
  --clay-deep:   #A8604A;
  --clay-soft:   #E8D2C1;
  --clay-whisper:#F3E4D8;

  /* Honey (new — golden warmth) */
  --honey:        #E8B96A;
  --honey-deep:   #C99A4D;
  --honey-soft:   #F4DCAA;
  --honey-whisper:#FAEFCF;

  /* Blush (new — soft warmth) */
  --blush:        #E8A097;
  --blush-deep:   #C97D72;
  --blush-soft:   #F2C9C0;
  --blush-whisper:#F9E4DF;

  /* Sky (new — calming blue-green) */
  --sky:        #88B5BA;
  --sky-deep:   #5F8E94;
  --sky-soft:   #C5DCDF;
  --sky-whisper:#E5F0F2;

  --cream:       #F5EEE3;
  --cream-deep:  #EDE3D1;
  --cream-warm:  #FAF5EC;
  --ink:         #141414;
  --ink-soft:    #2A2520;
  --muted:       #6B5B4B;
  --muted-soft:  #9A8A78;
  --line:        rgba(20,20,20,0.09);
  --line-soft:   rgba(20,20,20,0.05);

  --f-display: 'Fraunces', 'Playfair Display', Georgia, serif;
  --f-body:    'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;

  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --shadow-soft: 0 2px 12px rgba(20,20,20,0.05);
  --shadow-med:  0 14px 44px rgba(20,20,20,0.09);
  --shadow-lift: 0 28px 64px rgba(20,20,20,0.13);
  --shadow-glow: 0 18px 48px rgba(95,126,91,0.22);

  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 24px;
  --radius-xl: 36px;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  font-family:var(--f-body);
  background:var(--cream);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  font-feature-settings:"ss01","cv11";
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;cursor:pointer;border:none;background:none;}
input,select,textarea{font:inherit;color:inherit;}
::selection{background:var(--sage);color:var(--cream);}

/* gentle ambient color blobs that drift in the background */
body::after{
  content:'';
  position:fixed;inset:0;
  pointer-events:none;
  z-index:0;
  background:
    radial-gradient(640px circle at 15% -5%, rgba(244,220,170,0.42), transparent 60%),
    radial-gradient(720px circle at 110% 50%, rgba(232,160,151,0.18), transparent 60%),
    radial-gradient(580px circle at -10% 105%, rgba(143,168,138,0.28), transparent 60%);
}

/* ---------- top bar (sage) ---------- */
.top-bar{
  position:relative;z-index:10;
  background:linear-gradient(90deg, var(--sage-darker), var(--sage-deep));
  color:#ffffff;
  text-align:center;padding:11px 24px;
  font-size:13px;font-weight:400;letter-spacing:0.01em;
  display:flex;align-items:center;justify-content:center;gap:14px;
  flex-wrap:wrap;
}
.top-bar .top-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--honey-soft);}
.top-bar a{
  color:#ffffff;font-weight:500;border-bottom:1px solid rgba(255,255,255,0.5);
  padding-bottom:1px;transition:border-color .2s,color .2s;
}
.top-bar a:hover{border-color:var(--honey-soft);color:var(--honey-soft);}

/* ---------- nav ---------- */
nav.site-nav{
  position:sticky;top:0;z-index:500;
  background:transparent;
  padding:0 48px;height:82px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid transparent;
  transition:background .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease),height .3s var(--ease);
}
nav.site-nav.is-scrolled{
  height:72px;
  border-bottom-color:var(--line);
  background:rgba(245,238,227,0.94);
  backdrop-filter:saturate(120%) blur(8px);
  -webkit-backdrop-filter:saturate(120%) blur(8px);
  box-shadow:0 1px 0 rgba(20,20,20,0.02);
}
.nav-logo{display:flex;align-items:center;gap:10px;cursor:pointer;transition:opacity .2s;}
.nav-logo:hover{opacity:.78;}
.nav-logo:hover .nav-logo-mark{transform:rotate(-8deg) scale(1.04);}
.nav-logo-mark{
  width:42px;height:42px;border-radius:50%;
  object-fit:cover;display:block;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.22), 0 4px 14px rgba(95,126,91,0.22);
  transition:transform .3s var(--ease);
}
.nav-logo-text{font-family:var(--f-display);font-weight:400;font-size:19px;letter-spacing:-0.01em;line-height:1;}
.nav-logo-text em{font-style:italic;color:var(--sage-deep);}
.nav-logo-sub{display:block;font-family:var(--f-body);font-weight:400;font-size:10.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted-soft);margin-top:4px;}

.nav-links{display:flex;align-items:center;gap:36px;list-style:none;}
.nav-links > li > a{
  position:relative;font-size:14.5px;font-weight:400;color:var(--ink-soft);
  padding-bottom:3px;transition:color .2s;
}
.nav-links > li > a::after{
  content:'';position:absolute;left:0;right:0;bottom:-1px;height:1.5px;
  background:var(--ink);
  transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--ease);
}
.nav-links > li > a:hover{color:var(--ink);}
.nav-links > li > a:hover::after{transform:scaleX(1);}
.nav-links > li > a.current{color:var(--ink);font-weight:500;}
.nav-links > li > a.current::after{transform:scaleX(1);}
/* selector kept specific enough to beat `.nav-links > li > a` so the pill
   matches the .btn-primary CTAs (cream text, weight 500, same tracking). */
.nav-links > li > a.nav-cta,
.nav-cta{
  background:var(--sage-deep);color:var(--cream);
  padding:0 24px;height:44px;border-radius:999px;
  font-size:14.5px;font-weight:500;letter-spacing:0.01em;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  transition:background .25s,transform .25s var(--ease),box-shadow .25s;
  box-shadow:0 6px 18px rgba(95,126,91,0.24);
}
.nav-cta::after{display:none !important;}
.nav-links > li > a.nav-cta:hover,
.nav-cta:hover{background:var(--sage);color:var(--cream);transform:translateY(-1px);box-shadow:0 10px 24px rgba(143,168,138,0.32);}
.nav-cta svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .25s var(--ease);}
.nav-cta:hover svg{transform:translateX(3px);}

.nav-hamburger{display:none;flex-direction:column;gap:5px;padding:8px;}
.nav-hamburger span{width:22px;height:1.5px;background:var(--ink);border-radius:2px;transition:transform .3s,opacity .3s;}
nav.nav-open .nav-hamburger span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
nav.nav-open .nav-hamburger span:nth-child(2){opacity:0;}
nav.nav-open .nav-hamburger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.nav-overlay{display:none;position:fixed;inset:0;background:rgba(20,20,20,0.3);z-index:98;}

/* nav adopts the theme of the section behind it: light text + sage backdrop
   over dark sections (credbar, visit), default ink text over light ones. */
nav.site-nav.nav-dark.is-scrolled{
  background:rgba(65,96,63,0.86);
  border-bottom-color:rgba(245,238,227,0.14);
  box-shadow:0 1px 0 rgba(20,20,20,0.06);
}
nav.site-nav.nav-dark .nav-logo-text{color:var(--cream);}
nav.site-nav.nav-dark .nav-logo-text em{color:inherit;}
nav.site-nav.nav-dark .nav-logo-sub{color:rgba(245,238,227,0.66);}
nav.site-nav.nav-dark .nav-links > li > a{color:rgba(245,238,227,0.86);}
nav.site-nav.nav-dark .nav-links > li > a:hover,
nav.site-nav.nav-dark .nav-links > li > a.current{color:var(--cream);}
nav.site-nav.nav-dark .nav-links > li > a::after{background:var(--cream);}
nav.site-nav.nav-dark .nav-links > li > a.nav-cta,
nav.site-nav.nav-dark .nav-cta{background:var(--honey);color:var(--ink);box-shadow:0 6px 18px rgba(232,185,106,0.32);}
nav.site-nav.nav-dark .nav-links > li > a.nav-cta:hover,
nav.site-nav.nav-dark .nav-cta:hover{background:var(--cream);color:var(--ink);box-shadow:0 10px 24px rgba(245,238,227,0.3);}
nav.site-nav.nav-dark .nav-hamburger span{background:var(--cream);}

/* ---------- typography helpers ---------- */
.eyebrow{
  font-family:var(--f-body);font-size:12px;font-weight:500;
  letter-spacing:0.22em;text-transform:uppercase;color:var(--sage-deep);
  display:inline-flex;align-items:center;gap:12px;
}
.eyebrow::before{
  content:'';width:24px;height:1.5px;
  background:linear-gradient(90deg, var(--sage), var(--honey));
  display:inline-block;border-radius:2px;
}
.eyebrow.no-mark::before{display:none;}

h1,h2,h3,h4{font-family:var(--f-display);font-weight:400;color:var(--ink);letter-spacing:-0.02em;line-height:1.05;}
h1{font-size:clamp(44px,7vw,94px);font-weight:350;}
h1 em{font-style:italic;color:inherit;font-weight:400;}
h2{font-size:clamp(34px,4.6vw,58px);font-weight:350;line-height:1.08;}
h2 em{font-style:italic;color:inherit;font-weight:350;}
h3{font-size:clamp(22px,2.4vw,30px);font-weight:450;line-height:1.18;}

p.lede{font-size:clamp(17px,1.4vw,20px);line-height:1.55;color:var(--muted);font-weight:400;max-width:62ch;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 28px;border-radius:999px;
  font-family:var(--f-body);font-size:14.5px;font-weight:500;letter-spacing:0.01em;
  transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease),box-shadow .25s;
  cursor:pointer;white-space:nowrap;
  position:relative;overflow:hidden;
}
.btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .25s var(--ease);}
.btn:hover svg{transform:translateX(4px);}
.btn-primary{background:var(--sage-deep);color:var(--cream);box-shadow:0 8px 22px rgba(95,126,91,0.26);}
.btn-primary:hover{background:var(--sage-darker);transform:translateY(-2px);box-shadow:0 14px 32px rgba(65,96,63,0.34);}
.btn-clay{background:var(--clay);color:var(--cream);box-shadow:0 8px 22px rgba(196,123,90,0.26);}
.btn-clay:hover{background:var(--clay-deep);transform:translateY(-2px);box-shadow:0 14px 32px rgba(168,96,74,0.34);}
.btn-honey{background:var(--honey);color:var(--ink);box-shadow:0 8px 22px rgba(232,185,106,0.34);}
.btn-honey:hover{background:var(--honey-deep);color:var(--cream);transform:translateY(-2px);box-shadow:0 14px 32px rgba(201,154,77,0.40);}
.btn-dark{background:var(--ink);color:var(--cream);}
.btn-dark:hover{background:var(--sage-deep);transform:translateY(-2px);}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--ink);}
.btn-ghost:hover{background:var(--ink);color:var(--cream);transform:translateY(-2px);}
.btn-cream{background:var(--cream);color:var(--ink);}
.btn-cream:hover{background:var(--ink);color:var(--cream);transform:translateY(-2px);}

/* ---------- container / layout ---------- */
.wrap{max-width:1240px;margin:0 auto;padding:0 48px;position:relative;}
.wrap-narrow{max-width:920px;margin:0 auto;padding:0 48px;position:relative;}

main{position:relative;z-index:2;}
section{position:relative;}

/* ---------- reveal-on-scroll utilities ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-scale{opacity:0;transform:scale(0.96);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out);}
.reveal-scale.is-visible{opacity:1;transform:scale(1);}
.reveal-left{opacity:0;transform:translateX(-32px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);}
.reveal-left.is-visible{opacity:1;transform:translateX(0);}
.reveal-right{opacity:0;transform:translateX(32px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);}
.reveal-right.is-visible{opacity:1;transform:translateX(0);}
.reveal-d1{transition-delay:.08s;} .reveal-d2{transition-delay:.18s;} .reveal-d3{transition-delay:.28s;}
.reveal-d4{transition-delay:.38s;} .reveal-d5{transition-delay:.48s;}

@media (prefers-reduced-motion: reduce){
  .reveal,.reveal-scale,.reveal-left,.reveal-right{opacity:1;transform:none;transition:none;}
}


/* shared image holder */
.img-holder{
  position:relative;overflow:hidden;
  background:linear-gradient(145deg, var(--sage-whisper), var(--cream-warm));
}
.img-holder img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s var(--ease-out);
}
.img-holder:hover img{transform:scale(1.04);}

/* ---------- footer (sage) ---------- */
.site-footer{
  position:relative;z-index:2;
  background:linear-gradient(160deg, var(--sage-darker) 0%, #2F4A2D 100%);
  color:var(--cream);
  padding:96px 48px 40px;margin-top:0;
  overflow:hidden;
}
.site-footer::before{
  content:'';position:absolute;top:-180px;right:-120px;width:420px;height:420px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(232,185,106,0.18) 0%, transparent 70%);
  pointer-events:none;
}
.site-footer::after{
  content:'';position:absolute;bottom:-200px;left:-100px;width:480px;height:480px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(196,123,90,0.14) 0%, transparent 70%);
  pointer-events:none;
}
.footer-inner{
  position:relative;z-index:1;
  max-width:1240px;margin:0 auto;
  display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:56px;
  padding-bottom:64px;border-bottom:1px solid rgba(245,238,227,0.15);
}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px;}
.footer-brand .nav-logo-text{color:var(--cream);}
.footer-brand .nav-logo-text em{color:var(--honey-soft);}
.footer-tagline{font-size:14.5px;font-weight:300;color:rgba(245,238,227,0.72);line-height:1.65;max-width:34ch;margin-bottom:22px;}
.footer-contact{font-size:14px;color:rgba(245,238,227,0.85);font-weight:400;line-height:1.85;}
.footer-contact a{border-bottom:1px solid transparent;transition:border-color .2s,color .2s;}
.footer-contact a:hover{color:var(--honey-soft);border-color:var(--honey-soft);}
.footer-col h4{
  font-family:var(--f-body);font-size:11.5px;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--honey-soft);margin-bottom:22px;
}
.footer-col a{display:block;font-size:14.5px;font-weight:300;color:rgba(245,238,227,0.78);padding:5px 0;transition:color .2s,transform .2s;}
.footer-col a:hover{color:var(--cream);transform:translateX(4px);}
.footer-bottom{
  position:relative;z-index:1;
  max-width:1240px;margin:32px auto 0;
  display:flex;align-items:center;justify-content:space-between;
  font-size:13px;font-weight:300;color:rgba(245,238,227,0.55);
  flex-wrap:wrap;gap:12px;
}
.footer-bottom .dot{display:inline-block;width:3px;height:3px;border-radius:50%;background:rgba(245,238,227,0.4);margin:0 10px;vertical-align:middle;}
.footer-bottom a{color:rgba(245,238,227,0.7);text-decoration:none;transition:color .2s;}
.footer-bottom a:hover{color:var(--cream);text-decoration:underline;}

/* ---------- responsive ---------- */
@media (max-width: 1024px){
  nav.site-nav{padding:0 28px;height:72px;}
  nav.site-nav.is-scrolled{height:64px;}
  .nav-hamburger{display:flex;}
  .nav-links{
    position:fixed;top:0;right:0;width:300px;height:100dvh;
    background:var(--cream);flex-direction:column;align-items:flex-start;
    padding:96px 32px 40px;gap:0;
    transform:translateX(100%);transition:transform .4s var(--ease);
    box-shadow:-10px 0 30px rgba(20,20,20,0.12);overflow-y:auto;z-index:99;
    border-left:1px solid var(--line);
  }
  nav.nav-open .nav-links{transform:translateX(0);}
  nav.nav-open .nav-overlay{display:block;}
  .nav-links > li{width:100%;border-bottom:1px solid var(--line-soft);}
  .nav-links > li:last-child{border-bottom:none;margin-top:12px;}
  .nav-links > li > a{display:flex;width:100%;padding:16px 0;font-size:16px;}
  .nav-links > li > a::after{display:none;}
  .nav-cta{justify-content:center;width:100%;padding:14px 20px;}

  .wrap,.wrap-narrow{padding:0 28px;}
  .site-footer{padding:72px 28px 32px;}
  .footer-inner{grid-template-columns:1fr 1fr;gap:40px;padding-bottom:48px;}
  .footer-brand-col{grid-column:1 / -1;}
}
@media (max-width: 640px){
  nav.site-nav{padding:0 20px;}
  .nav-logo-sub{display:none;}
  .top-bar{font-size:12px;padding:9px 18px;gap:10px;}
  .wrap,.wrap-narrow{padding:0 22px;}
  .footer-inner{grid-template-columns:1fr;gap:36px;}
  .footer-bottom{justify-content:center;text-align:center;flex-direction:column;gap:4px;}
  .site-footer{padding:60px 22px 28px;}
  h1{font-size:clamp(38px,10vw,60px);}
}
