:root {
  --ink: #1f342f;
  --ink-soft: #52655f;
  --cream: #f6f1e8;
  --paper: #fdfcf9;
  --sage: #aebca1;
  --sage-deep: #587060;
  --clay: #ddc3b0;
  --plum: #684957;
  --line: rgba(31, 52, 47, 0.18);
  --page-gutter: clamp(1.25rem, 4vw, 4.5rem);
  --section-space: clamp(4.5rem, 8vw, 8rem);
  --content-narrow: 56.25rem;
  --content-default: 72.5rem;
  --content-wide: 90rem;
  --card-gutter: 1.5rem;
  --gallery-gap: .7rem;
  --gallery-offset-small: 1.4rem;
  --gallery-offset-medium: 4rem;
  --gallery-offset-large: 5.4rem;
  --motion-duration: 520ms;
  --motion-ease: cubic-bezier(.22, .61, .36, 1);
  color: var(--ink);
  background: var(--paper);
  font-family: "DM Sans", Arial, sans-serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); }
a { color: inherit; text-decoration: none; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--plum); outline-offset: 4px; }

.skip-link { left: 1rem; position: fixed; top: -4rem; z-index: 10; background: var(--ink); color: white; padding: .75rem 1rem; }
.skip-link:focus { top: 1rem; }

.container { margin-inline: auto; max-width: var(--content-default); width: 100%; }
.container--wide { max-width: var(--content-wide); }
.container--narrow { max-width: var(--content-narrow); }

.site-header { align-items: center; display: flex; isolation: isolate; justify-content: space-between; padding: 1.5rem var(--page-gutter); position: sticky; top: 0; transition: box-shadow .2s ease; z-index: 10; }
.site-header::before { background: var(--paper); content: ""; inset: 0 calc(50% - 50vw); opacity: 0; position: absolute; transition: opacity .2s ease; z-index: -1; }
.site-header.is-scrolled { box-shadow: 0 .35rem .9rem rgba(31, 52, 47, .09); }
.site-header.is-scrolled::before { opacity: 1; }
.brand { display: block; flex: 0 0 auto; line-height: 0; width: 3.5rem; }
.brand img { aspect-ratio: 1; display: block; object-fit: cover; width: 100%; }
nav { display: flex; gap: clamp(1rem, 2.4vw, 2.5rem); }
nav a, .header-cta { font-size: .82rem; font-weight: 600; letter-spacing: .01em; }
.menu-toggle { display: none; }
nav a, .text-link { text-decoration-color: transparent; text-decoration-thickness: 1px; text-underline-offset: .3rem; transition: color .2s ease, text-decoration-color .2s ease; }
nav a:hover, nav a:focus-visible, .text-link:hover, .text-link:focus-visible { text-decoration-color: currentColor; }
.header-cta { border-bottom: 1px solid var(--ink); padding-bottom: .25rem; }

@media (max-width: 960px) {
  .site-header { padding-block: 1rem; }
  .header-cta { display: none; }
  .menu-toggle { align-items: center; background: transparent; border: 1px solid var(--line); color: var(--ink); cursor: pointer; display: inline-flex; font: inherit; font-size: .7rem; font-weight: 600; gap: .6rem; letter-spacing: .1em; padding: .65rem .75rem; text-transform: uppercase; }
  .menu-toggle-icon { fill: none; height: 1rem; stroke: currentColor; stroke-linecap: round; stroke-width: 1.7; width: 1rem; }
  nav { background: var(--paper); border: 1px solid var(--line); flex-direction: column; gap: 0; inset-inline: var(--page-gutter); padding: .4rem 1rem; position: absolute; top: calc(100% - .25rem); z-index: 5; }
  nav a { padding: .8rem 0; }
  html.menu-ready .site-header nav { display: flex; opacity: 0; pointer-events: none; transform: translateY(-.5rem); transition: opacity .22s ease, transform .22s ease, visibility .22s ease; visibility: hidden; }
  html.menu-ready .site-header.menu-open nav { opacity: 1; pointer-events: auto; transform: translateY(0); visibility: visible; }
}

.section { padding: var(--section-space) var(--page-gutter); }
section[id] { scroll-margin-top: 6.5rem; }
.hero { align-items: center; display: grid; gap: clamp(3rem, 5vw, 6rem); grid-template-columns: minmax(0, .9fr) minmax(24rem, 1fr); min-height: calc(100vh - 5rem); padding-top: 3rem; }
.hero-copy, .intro-layout > *, .approach-layout > *, .section-heading > *, .space-heading > *, .contact-layout > * { min-width: 0; }
.eyebrow { color: var(--ink-soft); font-size: .7rem; font-weight: 600; letter-spacing: .14em; margin: 0 0 1.5rem; text-transform: uppercase; }
.hero-location { color: var(--ink-soft); font-size: .82rem; margin: -1rem 0 2.3rem; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: "DM Serif Display", Georgia, serif; font-weight: 400; letter-spacing: -.022em; line-height: 1.14; }
h1 { font-size: clamp(2.8rem, 5.3vw, 5.35rem); margin-bottom: 2rem; max-width: 14ch; }
h2 { font-size: clamp(2.35rem, 4.3vw, 4.8rem); margin-bottom: 1.8rem; max-width: 14ch; }
h3 { font-family: "DM Serif Display", Georgia, serif; font-size: 1.45rem; font-weight: 400; letter-spacing: -.015em; line-height: 1.12; }
p { color: var(--ink-soft); font-size: 1rem; line-height: 1.65; }
.hero-text { font-size: 1.12rem; max-width: 38rem; }
.lead { color: var(--ink); font-family: "DM Serif Display", Georgia, serif; font-size: clamp(1.35rem, 2.15vw, 2rem); letter-spacing: -.015em; line-height: 1.4; }
.hero-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1.75rem; margin-top: 2.3rem; }
.button { display: inline-flex; font-size: .85rem; font-weight: 600; gap: 2rem; padding: .95rem 1.15rem; }
.button-primary { background: var(--ink); color: white; transition: background .2s ease, transform .2s ease; }
.button-primary:hover, .button-primary:focus-visible { background: var(--plum); transform: translateY(-2px); }
.text-link { font-size: .85rem; font-weight: 600; }

.hero-art { aspect-ratio: .92; background: var(--clay); min-height: 37rem; overflow: hidden; position: relative; }
.hero-art > img { height: 100%; object-fit: cover; object-position: 62% center; width: 100%; }

.section-cream { background: var(--cream); }
.privacy-page { padding-block: clamp(3rem, 6vw, 6rem); }
.privacy-content { max-width: var(--content-default); }
.privacy-content h1 { font-size: clamp(2.5rem, 4vw, 4.35rem); max-width: 24ch; }
.privacy-content h2 { font-size: clamp(1.7rem, 2.7vw, 2.8rem); margin-bottom: 1rem; max-width: 26ch; }
.privacy-content > .lead { max-width: 38rem; }
.privacy-details { display: grid; gap: clamp(3.5rem, 7vw, 6rem); margin-top: clamp(3rem, 5vw, 4.5rem); }
.privacy-details section { max-width: 46rem; }
.privacy-details .button { margin-top: .75rem; }
.intro { background: var(--cream); position: relative; }
.intro-layout, .approach-layout { display: grid; gap: clamp(2rem, 8vw, 10rem); grid-template-columns: minmax(9rem, .45fr) minmax(0, 1.2fr); }
.intro-layout > div p:not(.lead) { max-width: 44rem; }
.about-personal { align-items: center; border-top: 1px solid var(--line); display: grid; gap: clamp(1.5rem, 4vw, 3.5rem); grid-template-columns: minmax(9rem, .58fr) minmax(0, 1fr); margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(2rem, 4vw, 3.5rem); }
.about-personal-photo { margin: 0; }
.about-personal-photo-frame { aspect-ratio: 1; overflow: hidden; }
.about-personal-photo img { display: block; height: 100%; object-fit: cover; object-position: center 65%; width: 100%; }
.about-personal .eyebrow { margin-bottom: 1.2rem; }
.about-personal .lead { font-size: clamp(1.2rem, 1.85vw, 1.6rem); max-width: 24ch; }

.clinic-space { background: var(--paper); }
.space-heading { align-items: end; display: flex; gap: 4rem; justify-content: space-between; margin-bottom: 3.5rem; }
.space-heading h2, .support h2 { letter-spacing: -.014em; line-height: 1.19; max-width: 17ch; }
.space-heading > p { max-width: 22rem; margin-bottom: .45rem; }
.clinic-gallery { display: grid; grid-template-columns: 1.05fr .8fr 1.05fr .9fr; gap: var(--gallery-gap); }
.gallery-photo { margin: 0; overflow: hidden; }
.gallery-photo img { display: block; height: 100%; object-fit: cover; transition: transform .5s var(--motion-ease); width: 100%; }
.gallery-photo:hover img { transform: scale(1.03); }
.gallery-photo-reception { aspect-ratio: .82; }
.gallery-photo-arch { aspect-ratio: .67; margin-top: var(--gallery-offset-medium); }
.gallery-photo-shelves { aspect-ratio: .82; margin-top: var(--gallery-offset-small); }
.gallery-photo-chair { aspect-ratio: .7; margin-top: var(--gallery-offset-large); }

.support { background: var(--paper); }
.section-heading { align-items: end; display: flex; gap: 4rem; justify-content: space-between; margin-bottom: 4rem; }
.section-heading > p { max-width: 22rem; margin-bottom: .45rem; }
.topic-grid { border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, 1fr); }
.topic-grid article { border-right: 1px solid var(--line); min-height: 16rem; padding: 1.6rem var(--card-gutter) 1.4rem; }
.topic-grid article:first-child { padding-left: 0; }
.topic-grid article:last-child { border-right: 0; padding-right: 0; }
.topic-grid h3 { margin: 1.5rem 0 1rem; }
.topic-grid p { font-size: .9rem; }

.section-sage { background: var(--sage); position: relative; }
.approach-layout { grid-template-columns: 1fr 1fr; }
.approach-copy { padding-top: 4.7rem; }
.approach-copy p { color: #30463d; }

.consulting-room { background: var(--cream); }
.consulting-room-layout { align-items: center; display: grid; gap: clamp(2.5rem, 8vw, 8rem); grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); }
.consulting-room-copy h2 { max-width: 10ch; }
.consulting-room-copy .lead { max-width: 24ch; }
.consulting-room-copy > p:not(.eyebrow) { max-width: 34rem; }
.consulting-room-photo { margin: 0; overflow: hidden; }
.consulting-room-photo img { aspect-ratio: 4 / 3; display: block; height: 100%; object-fit: cover; width: 100%; }

.process { background: var(--cream); }
.process-heading { margin-bottom: 0; }
.steps { border-top: 1px solid var(--line); list-style: none; margin: 3.5rem auto 0; padding: 0; }
.steps li { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 1.5rem; grid-template-columns: 10% 1fr; padding: 1.6rem 0; }
.steps span { color: var(--plum); font-family: "DM Serif Display", Georgia, serif; font-size: 1.2rem; }
.steps h3 { margin-bottom: .6rem; }
.steps p { margin-bottom: 0; max-width: 36rem; }

.section-clay { background: var(--clay); }
.faq-list { border-top: 1px solid rgba(31, 52, 47, .35); }
details { border-bottom: 1px solid rgba(31, 52, 47, .35); padding: 1.25rem 0; }
summary { cursor: pointer; font-family: "DM Serif Display", Georgia, serif; font-size: clamp(1.25rem, 2vw, 1.7rem); list-style: none; padding-right: 2rem; position: relative; }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; font-family: "DM Sans", sans-serif; font-size: 1.5rem; font-weight: 400; position: absolute; right: .1rem; top: -.25rem; }
details[open] summary::after { content: "−"; }
details p { max-width: 40rem; margin: 1rem 2rem .25rem 0; }
details[open] p { animation: faq-answer-in .28s var(--motion-ease) both; }

.contact { background: var(--plum); color: #f9f3e9; }
.contact-layout { align-items: start; display: grid; gap: clamp(2rem, 6vw, 6rem); grid-template-columns: minmax(0, 1.3fr) minmax(19rem, .7fr); }
.contact .eyebrow, .contact p { color: #eadad5; }
.contact h2 { max-width: 14ch; }
.contact-links { display: grid; gap: .65rem; }
.contact-card { border: 1px solid rgba(255,255,255,.35); display: flex; flex-direction: column; justify-content: space-between; min-height: 6.5rem; padding: 1.1rem 1.25rem; transition: background .2s ease, color .2s ease, transform .2s ease; }
.contact-card:hover, .contact-card:focus-visible { background: #f8f2e9; color: var(--ink); transform: translateY(-2px); }
.contact-card-heading { align-items: center; display: inline-flex; font-size: .7rem; font-weight: 600; gap: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.contact-icon { fill: none; flex: 0 0 auto; height: 1.15rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; width: 1.15rem; }
.contact-icon--doctoralia { display: block; object-fit: cover; object-position: left center; width: 1.3rem; }
.contact-icon-dot { fill: currentColor; stroke: none; }
.contact-badge { border: 1px solid currentColor; border-radius: 999px; display: inline-block; font-size: .56rem; font-weight: 600; letter-spacing: .08em; margin-left: .35rem; padding: .18rem .35rem; vertical-align: middle; }
.contact-card strong { font-family: "DM Serif Display", Georgia, serif; font-size: 1.35rem; font-weight: 400; letter-spacing: -.015em; overflow-wrap: anywhere; }
.contact-card i { float: right; font-family: "DM Sans", sans-serif; font-style: normal; transition: transform .2s ease; }
.contact-card:hover i, .contact-card:focus-visible i { transform: translate(.18rem, -.18rem); }
.contact-note { font-size: .84rem; margin-top: 1.5rem; max-width: 31rem; }

footer { background: var(--plum); border-top: 1px solid rgba(255,255,255,.35); color: #eadad5; }
.footer-content { display: flex; font-size: .72rem; justify-content: space-between; padding: 1.5rem var(--page-gutter); }

#consent-banner { align-items: center; background: var(--paper); border: 1px solid var(--line); bottom: 1.25rem; box-shadow: 0 .75rem 2rem rgba(31, 52, 47, .16); display: flex; gap: 1.5rem; inset-inline: 1.25rem; justify-content: space-between; padding: 1rem 1.25rem; position: fixed; z-index: 20; }
#consent-banner.is-hidden { display: none; }
.consent-content { max-width: 46rem; }
.consent-content p { color: var(--ink); font-size: .82rem; line-height: 1.5; margin-bottom: .3rem; }
.consent-content a { color: var(--ink-soft); font-size: .75rem; text-decoration: underline; text-underline-offset: .2rem; }
.consent-actions { display: grid; flex: 0 0 auto; gap: .6rem; grid-template-columns: repeat(2, minmax(6.5rem, 1fr)); }
.consent-accept, .consent-reject { cursor: pointer; font: inherit; font-size: .75rem; font-weight: 600; min-height: 2.75rem; padding: .7rem 1rem; }
.consent-accept { background: var(--ink); border: 1px solid var(--ink); color: white; }
.consent-reject { background: transparent; border: 1px solid var(--ink); color: var(--ink); }
.consent-accept:hover, .consent-accept:focus-visible { background: var(--plum); border-color: var(--plum); }
.consent-reject:hover, .consent-reject:focus-visible { background: var(--cream); }

html.motion-ready .motion-target { opacity: 0; transform: translateY(1.25rem); transition: opacity var(--motion-duration) var(--motion-ease), transform var(--motion-duration) var(--motion-ease); transition-delay: calc(var(--reveal-index, 0) * 75ms); }
html.motion-ready .motion-target.is-revealed { opacity: 1; transform: translateY(0); }
section:target .section-heading, section:target .space-heading, section:target .intro-layout, section:target .approach-layout, section:target .consulting-room-layout, section:target .contact-layout { animation: section-arrival .5s var(--motion-ease); }

@keyframes faq-answer-in {
  from { opacity: 0; transform: translateY(-.35rem); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes section-arrival {
  from { transform: translateY(.55rem); }
  to { transform: translateY(0); }
}

@media (max-width: 720px) {
  .hero { grid-template-columns: 1fr; min-height: auto; padding-top: 3rem; }
  .hero-art { margin-inline: auto; min-height: 28rem; width: 100%; }
  .intro-layout, .approach-layout, .consulting-room-layout, .contact-layout { grid-template-columns: 1fr; }
  .about-personal { grid-template-columns: minmax(9rem, .55fr) minmax(0, 1fr); }
  .section-heading { align-items: start; flex-direction: column; gap: 0; }
  .space-heading { align-items: start; flex-direction: column; gap: 0; }
  .topic-grid { grid-template-columns: 1fr 1fr; }
  .clinic-gallery { grid-template-columns: 1fr 1fr; }
  .gallery-photo-arch { margin-top: 2rem; }
  .gallery-photo-shelves { margin-top: 1rem; }
  .gallery-photo-chair { margin-top: 3rem; }
  .topic-grid article:nth-child(2) { border-right: 0; }
  .topic-grid article:nth-child(odd) { padding-left: 0; }
  .topic-grid article:nth-child(even) { padding-right: 0; }
  .topic-grid article:nth-child(n+3) { border-top: 1px solid var(--line); }
  .approach-copy { padding-top: 0; }
  .contact-layout { gap: 3rem; }
  .footer-content { flex-direction: column; gap: .5rem; }
  #consent-banner { align-items: stretch; bottom: .75rem; flex-direction: column; gap: .9rem; inset-inline: .75rem; padding: 1rem; }
  .consent-actions { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .gallery-photo:hover img { transform: none; }
  details[open] p, section:target .section-heading, section:target .space-heading, section:target .intro-layout, section:target .approach-layout, section:target .consulting-room-layout, section:target .contact-layout { animation: none; }
}

@media (max-width: 440px) {
  .brand { width: 3rem; }
  .header-cta { font-size: .72rem; }
  .about-personal { grid-template-columns: 1fr; }
  .topic-grid { grid-template-columns: 1fr; }
  .clinic-gallery { gap: .5rem; }
  .gallery-photo-arch { margin-top: 2.5rem; }
  .gallery-photo-shelves { margin-top: .75rem; }
  .gallery-photo-chair { margin-top: 2.5rem; }
  .topic-grid article, .topic-grid article:nth-child(2) { border-bottom: 1px solid var(--line); border-right: 0; padding: 1.5rem 0; }
  .topic-grid article:last-child { border-bottom: 0; }
  .topic-grid h3 { margin-top: 1.8rem; }
}
