:root {
  --ink: #40352f; --ink-soft: #5c4f47; --sage: #5d7a6e; --sage-deep: #46615a;
  --rose: #b96f6b; --rose-deep: #a05b58; --peach: #eec49f; --cream: #faf4eb;
  --veil: rgba(250, 244, 235, 0.86); --ring: rgba(93, 122, 110, 0.35);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: "Lato", "Segoe UI", sans-serif; color: var(--ink); background-color: var(--cream);
  background-image: url("images/bg-home-contact.jpg"); background-size: cover; background-position: center top;
  background-attachment: fixed; min-height: 100vh; display: flex; flex-direction: column; line-height: 1.7;
  transition: background-image 200ms ease;
}
body.page-bio { background-image: url("images/bg-bio.jpg"); }
body.page-services-fees, body.page-areas-focus { background-image: url("images/bg-services-areas.jpg"); }
body.page-professional { background-image: url("images/bg-professional.jpg"); }
.wordmark { font-weight: 400; font-size: 1.05rem; display: flex; align-items: center; gap: .65rem; line-height:1.25; white-space:nowrap; }
.nav-logo { height: 54px; width: auto; flex-shrink: 0; margin-left: -0.5rem; }
.wordmark-text { display: flex; flex-direction: column; text-align: left; }
.wordmark-sub { font-size: .92rem; font-weight: 800; letter-spacing: .02em; color: var(--ink); margin-top: 2px; }
h1,h2,h3 { font-weight: 400; line-height: 1.25; color: var(--ink); }
.site-nav { position: sticky; top: 0; z-index: 20; background: var(--veil); backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid rgba(93,122,110,.18); }
.nav-inner { max-width: 1240px; margin: 0 auto; padding: .9rem 1.5rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.wordmark { text-decoration:none; color:var(--ink); letter-spacing:.01em; font-size:1.2rem; cursor:pointer; background:none; border:none; text-align:left; }
.wordmark-name { white-space:nowrap; }
.wordmark-name span { color: var(--ink); }
.nav-links { display:flex; align-items:center; gap:1.75rem; list-style:none; }
.nav-links button.nav-link { text-decoration:none; color:var(--ink); font-size:.98rem; padding:.35rem 0; border-bottom:2px solid transparent;
  transition: color 160ms ease, border-color 160ms ease; background:none; border-top:none; border-left:none; border-right:none; cursor:pointer; font-family:inherit; white-space:nowrap; flex-shrink:0; }
.nav-links button.nav-link:hover { border-bottom-color: var(--ring); }
.nav-links button.nav-link[aria-current="page"] { border-bottom-color: var(--rose); }
.nav-links a:focus-visible, .nav-toggle:focus-visible, .read-more-btn:focus-visible, .nav-link:focus-visible {
  outline: 3px solid var(--sage); outline-offset: 3px; border-radius: 3px; }
.nav-toggle { display:none; background:none; border:1px solid var(--ring); border-radius:8px; padding:.45rem .6rem; cursor:pointer; color:var(--sage-deep); }
.nav-toggle svg { display:block; }
.nav-dropdown { position:relative; }
.nav-dropdown-toggle::after { content:"▾"; font-size:1.05em; margin-left:.35em; display:inline-block; color:var(--rose); }
.nav-dropdown-menu { list-style:none; display:none; position:absolute; top:100%; left:0; margin-top:.4rem; min-width:230px;
  background:var(--cream); border:1px solid rgba(93,122,110,.2); border-radius:12px;
  box-shadow:0 16px 30px rgba(64,53,47,.15); padding:.4rem; z-index:30; }
.nav-dropdown.open > .nav-dropdown-menu { display:block; }
.nav-dropdown-menu li { list-style:none; }
.nav-dropdown-menu button.nav-link { display:block; width:100%; text-align:left; padding:.65rem .85rem;
  border-radius:8px; border-bottom:none !important; white-space:nowrap; }
.nav-dropdown-menu button.nav-link:hover { background:rgba(93,122,110,.1); }
.nav-dropdown-menu button.nav-link[aria-current="page"] { background:rgba(93,122,110,.12); }
.nav-dropdown-menu .nav-dropdown-menu { position:static; box-shadow:none; border:none; border-radius:8px;
  background:rgba(93,122,110,.07); margin:.3rem .3rem .3rem 1rem; padding:.2rem; }
.nav-dropdown-menu .nav-dropdown-menu button.nav-link { padding-left:1rem; font-size:.98rem; white-space:normal; }
#nav-dropdown-areas .nav-dropdown-row { display:flex; align-items:center; }
#nav-dropdown-areas .nav-dropdown-row button.nav-link { flex:1 1 auto; width:auto; }
.nav-dropdown-caret { background:none; border:none; cursor:pointer;
  padding:0; margin:.35rem .5rem .35rem .3rem; color:var(--rose); flex:0 0 auto;
  min-width:2.1rem; min-height:2.1rem; display:flex; align-items:center; justify-content:center; }
.nav-dropdown-caret::after { content:"▾"; font-size:1.5rem; font-weight:700; display:inline-block; transition:transform 160ms ease, color 160ms ease; }
.nav-dropdown-caret:hover { color:var(--rose-deep); }
.nav-dropdown-caret[aria-expanded="true"] { color:var(--rose-deep); }
.nav-dropdown-caret[aria-expanded="true"]::after { transform:rotate(180deg); }
main { flex:1; width:100%; max-width:860px; margin:0 auto; padding: 3.5rem 1.5rem 4.5rem; }
.hero { text-align:center; margin-bottom:2.75rem; }
.portrait { width:190px; height:190px; border-radius:50%; overflow:hidden; margin:0 auto 1.6rem;
  border:2px solid var(--cream); box-shadow:0 14px 34px rgba(64,53,47,.22); }
.portrait img { width:100%; height:100%; object-fit:cover; object-position:center 22%;
  transform:scale(1.03) translateY(3.5%); transform-origin:center 32%; display:block; }
.hero h1 { font-size:clamp(1.8rem,4vw,2.4rem); margin-bottom:.8rem; }
.hero .tagline { font-weight:400; font-size:clamp(1rem,3.5vw,1.65rem); line-height:1.45; color:var(--ink); margin:0 auto; }
.hero .tagline .tagline-sub { display:block; margin-top:.4rem; font-size:.72em; font-weight:400; color:var(--ink); }
.panel { background:var(--veil); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); border-radius:22px;
  border:1px solid rgba(93,122,110,.16); box-shadow:0 18px 44px rgba(64,53,47,.14); padding:clamp(1.6rem,4vw,3rem); }
.panel h2 { font-size:clamp(1.2rem,4vw,1.65rem); margin-bottom:1.2rem; }
.panel p { margin-bottom:1.15rem; max-width:66ch; }
.panel p:last-child { margin-bottom:0; }
.term-hint { font-style:italic; font-size:.85rem; color:var(--ink-soft); margin-top:-.5rem; margin-bottom:1.3rem; }
.term { border-bottom:1.5px dotted var(--sage-deep); cursor:help; }
#term-tooltip { visibility:hidden; opacity:0; position:fixed; top:0; left:0; background:var(--ink);
  color:var(--cream); padding:.75rem .95rem; border-radius:10px; font-size:.85rem; line-height:1.45;
  width:min(300px, 86vw); text-align:left; box-shadow:0 12px 28px rgba(0,0,0,.28); z-index:200;
  transition:opacity 160ms ease; pointer-events:none; font-style:normal; }
#term-tooltip strong { display:block; color:var(--peach); margin-bottom:.35rem; font-weight:700; }
#term-tooltip.term-tooltip-visible { visibility:visible; opacity:1; }
.approach-text { position:relative; overflow:hidden; transition:max-height 450ms ease; }
.approach-text::after { content:""; position:absolute; inset:auto 0 0 0; height:3.5rem;
  background:linear-gradient(to bottom, rgba(250,244,235,0), var(--cream)); pointer-events:none; transition:opacity 300ms ease; }
.approach-text.expanded { max-height:400rem; }
.approach-text.expanded::after { opacity:0; }
.read-more-btn { display:inline-block; margin-top:1.4rem; font-size:.98rem; font-weight:700; color:var(--ink);
  background:transparent; border:1.5px solid var(--ink); border-radius:999px; padding:.7rem 1.7rem; cursor:pointer; transition:background 160ms ease; }
.read-more-btn:hover { background: rgba(64,53,47,.08); }
.site-footer { background:var(--veil); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  border-top:1px solid rgba(93,122,110,.18); padding:1.4rem 1.5rem; text-align:left; font-size:.88rem; color:var(--ink); }
.site-footer .footer-inner { max-width: 1060px; margin: 0 auto; }
.site-footer p { margin-bottom: .15rem; line-height: 1.3; }
.site-footer p:last-child { margin-bottom: 0; }
.site-footer a { color: var(--ink); }
.service-list h3 { font-size:1.15rem; font-weight:700; margin:1.8rem 0 .5rem; }
.modality-note { text-align: left; line-height: 1.35; border-left: 3px solid var(--sage); padding-left: 1rem; }
.service-list h3:first-child { margin-top:0; }
.service-list .price { display:block; font-size:.92rem; margin-top:.1rem; }
.service-list h3.focus-category { font-size:1.35rem; margin:2.6rem 0 1rem; padding-top:1.8rem;
  border-top:1px solid rgba(93,122,110,.22); scroll-margin-top:6.5rem; }
.service-list h3.focus-category:first-of-type { margin-top:0; padding-top:0; border-top:none; }
.service-list h4.focus-topic { font-size:1.05rem; font-weight:700; margin:1.4rem 0 .4rem; }
.service-list h3.focus-category + h4.focus-topic { margin-top:.2rem; }
.services-note { margin-top:1.6rem; font-size:min(.9rem,1.8vw); white-space:nowrap; }
.contact-form { margin-top:1.8rem; max-width:34rem; }
.contact-form .field { margin-bottom:1.2rem; display:flex; flex-direction:column; }
.contact-form label { font-size:.95rem; margin-bottom:.35rem; }
.contact-form input, .contact-form select, .contact-form textarea {
  font-family:inherit; font-size:1rem; color:var(--ink); background:var(--cream);
  border:1.5px solid rgba(64,53,47,.4); border-radius:10px; padding:.65rem .85rem; }
.contact-form input:focus-visible, .contact-form select:focus-visible, .contact-form textarea:focus-visible {
  outline:3px solid var(--sage); outline-offset:2px; }
.contact-form textarea { min-height:9rem; resize:vertical; }
.form-status { margin-top:1rem; font-size:.95rem; }
.contact-email a { color:var(--ink); }
.page-view { display:none; }
.page-view.active { display:block; }
@media (max-width:1060px) {
  .nav-inner { gap:.5rem; }
  .nav-links { gap:1.1rem; }
  .nav-links button.nav-link { font-size:.88rem; }
  .nav-dropdown-menu .nav-dropdown-menu button.nav-link { font-size:.88rem; }
  .wordmark { font-size:1.02rem; gap:.5rem; }
  .wordmark-sub { font-size:.78rem; }
}
@media (max-width:820px) {
  .nav-links { gap:.5rem; }
  .nav-links button.nav-link { font-size:.74rem; }
  .nav-dropdown-menu .nav-dropdown-menu button.nav-link { font-size:.74rem; }
  .wordmark { font-size:.86rem; gap:.4rem; }
  .wordmark-sub { font-size:.6rem; }
  .nav-logo { height:40px; }
}
@media (max-width:720px) {
  body { background-attachment:scroll; }
  .nav-toggle { display:block; }
  .nav-links { position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0;
    background:var(--cream); border-bottom:1px solid rgba(93,122,110,.2); box-shadow:0 16px 30px rgba(64,53,47,.15); display:none; }
  .nav-links.open { display:flex; }
  .nav-links button.nav-link { display:block; width:100%; text-align:left; padding:.95rem 1.5rem; border-bottom:1px solid rgba(93,122,110,.12); }
  .nav-links button.nav-link[aria-current="page"] { border-bottom-color: rgba(93,122,110,.12); background: rgba(93,122,110,.08); }
  .nav-dropdown-menu { position:static; display:none; box-shadow:none; border:none; border-radius:0;
    background:rgba(93,122,110,.05); margin:0; padding:0; }
  .nav-dropdown.open > .nav-dropdown-menu { display:block; }
  .nav-dropdown-menu button.nav-link { padding:.85rem 1.5rem 0.85rem 2.5rem; border-bottom:1px solid rgba(93,122,110,.12) !important; }
  .nav-dropdown-menu .nav-dropdown-menu { margin:0; background:rgba(93,122,110,.04); }
  .nav-dropdown-menu .nav-dropdown-menu button.nav-link { padding-left:3.5rem; font-size:.74rem; }
  main { padding:2.5rem 1.1rem 3.5rem; }
  .wordmark { font-size:.95rem; gap:.5rem; min-width:0; flex-shrink:1; align-items:center; }
  .nav-logo { height:42px; margin-left:-.3rem; }
  .wordmark-text { min-width:0; }
  .wordmark-sub { font-size:.55rem; white-space:nowrap; }
  .nav-toggle { flex-shrink:0; align-self:flex-start; margin-top:-.3rem; padding:.2rem .35rem; }
  .nav-toggle svg { width:16px; height:16px; }
  .portrait { width:150px; height:150px; }
  .hero h1 { font-size:1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; } .approach-text { transition:none; } * { transition-duration:.01ms !important; }
}
