@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500;1,600&family=Manrope:wght@400;500;600;700&display=swap');

:root { --ink:#17372f; --ink-deep:#0d2822; --cream:#f5f0e8; --paper:#fbf8f3; --clay:#b8644d; --clay-dark:#8f4637; --sand:#dfc7ae; --line:rgba(23,55,47,.18); --white:#fffdf9; --serif:'Cormorant Garamond', Georgia, serif; --sans:'Manrope', Arial, sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:15px; line-height:1.6; -webkit-font-smoothing:antialiased; }
body:before { content:''; position:fixed; inset:0; pointer-events:none; opacity:.045; z-index:20; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E"); }
a { color:inherit; text-decoration:none; }
button, a { -webkit-tap-highlight-color:transparent; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline:2px solid var(--clay); outline-offset:4px; }
.skip-link { position:absolute; left:1rem; top:-3rem; z-index:40; padding:.6rem .9rem; color:var(--white); background:var(--ink); }
.skip-link:focus { top:1rem; }
.site-shell { overflow:hidden; }
.section-ink { color:var(--cream); background:var(--ink); }
.section-paper { color:var(--ink); background:var(--paper); }
.section-clay { color:var(--cream); background:var(--clay); }
.section-pad { padding:5.5rem 1.35rem; }
.site-header { position:relative; z-index:10; display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:82px; padding:1rem 1.35rem; color:var(--cream); background:var(--ink); }
.brand { display:inline-flex; align-items:center; gap:.6rem; flex-shrink:0; }
.brand-mark { width:58px; height:30px; object-fit:contain; flex-shrink:0; }
.brand-type { display:flex; flex-direction:column; line-height:1; letter-spacing:.11em; }
.brand-type strong { font-size:.78rem; font-weight:700; }
.brand-type small { margin-top:.28rem; font-size:.47rem; letter-spacing:.27em; opacity:.75; }
.header-location { display:none; align-items:center; gap:.55rem; color:rgba(245,240,232,.62); font-size:.58rem; letter-spacing:.19em; white-space:nowrap; }
.header-location i { width:4px; height:4px; border-radius:50%; background:var(--clay); }
.desktop-nav { display:none; align-items:center; gap:1.35rem; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.desktop-nav a { opacity:.82; transition:opacity .2s ease, color .2s ease; }
.desktop-nav a:hover, .desktop-nav a.active { color:var(--sand); opacity:1; }
.desktop-nav .nav-book { padding:.65rem .8rem; border:1px solid rgba(245,240,232,.4); opacity:1; }
.desktop-nav .nav-book span { color:var(--sand); }
.menu-toggle { display:flex; align-items:center; gap:.45rem; border:0; padding:0; color:var(--cream); background:transparent; font:inherit; font-size:.61rem; letter-spacing:.16em; text-transform:uppercase; cursor:pointer; }
.menu-toggle span { display:block; width:16px; height:1px; margin:2px 0; background:currentColor; transition:transform .2s ease; }
.menu-toggle b { margin-left:.2rem; font-weight:600; }
.menu-toggle[aria-expanded=true] span:first-child { transform:translateY(5px) rotate(45deg); }.menu-toggle[aria-expanded=true] span:nth-child(2) { opacity:0; }.menu-toggle[aria-expanded=true] span:last-of-type { transform:translateY(-5px) rotate(-45deg); }
.mobile-menu { position:relative; z-index:9; display:flex; flex-direction:column; gap:0; padding:0 1.35rem 1rem; color:var(--cream); background:var(--ink); border-top:1px solid rgba(245,240,232,.14); }
.mobile-menu[hidden] { display:none; }
.mobile-menu a { padding:.85rem 0; border-bottom:1px solid rgba(245,240,232,.14); font-size:.72rem; letter-spacing:.11em; text-transform:uppercase; }.mobile-menu a:last-child { color:var(--sand); }
.hero { padding:1.25rem 1.35rem 1.6rem; }
.hero-grid { display:grid; gap:3.5rem; }
.eyebrow { display:flex; align-items:center; gap:.55rem; margin:0 0 1.7rem; color:var(--clay-dark); font-size:.61rem; font-weight:700; letter-spacing:.18em; line-height:1.3; text-transform:uppercase; }
.eyebrow span { color:var(--clay); }
.eyebrow-light { color:rgba(245,240,232,.62); }.eyebrow-light span { color:var(--sand); }
.hero-copy { padding-top:2rem; max-width:32rem; }
.hero h1, h2 { margin:0; font-family:var(--serif); font-weight:500; letter-spacing:-.045em; line-height:.87; }
.hero h1 { max-width:100%; color:var(--cream); font-size:clamp(3.25rem, 14vw, 9.5rem); text-transform:uppercase; }
.hero h1 em, h2 em { color:var(--sand); font-style:italic; text-transform:none; }
.hero-description { max-width:24rem; margin:2.2rem 0 .85rem; color:var(--cream); font-family:var(--serif); font-size:1.45rem; line-height:1.1; }
.hero-support { max-width:22rem; margin:0 0 1.8rem; color:rgba(245,240,232,.66); font-size:.78rem; line-height:1.6; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:1.2rem; min-width:205px; padding:.95rem 1.05rem; border:1px solid transparent; font-size:.63rem; font-weight:700; letter-spacing:.12em; line-height:1.3; text-transform:uppercase; transition:transform .2s ease, background .2s ease, color .2s ease; }.button:hover { transform:translateY(-2px); }.button b { font-size:1rem; font-weight:400; }.button-cream { color:var(--ink); background:var(--cream); }.button-cream:hover { color:var(--ink); background:var(--sand); }.button-terracotta { color:var(--white); background:var(--clay); }.button-terracotta:hover { background:var(--clay-dark); }
.hero-visual { position:relative; min-height:430px; }.hero-photo-frame { position:relative; z-index:1; width:82%; height:430px; margin-left:auto; overflow:hidden; background:var(--sand); }.hero-photo-frame:after { content:''; position:absolute; inset:0; background:linear-gradient(130deg, transparent 50%, rgba(23,55,47,.35)); }.hero-photo-frame img { width:100%; height:100%; object-fit:cover; object-position:55% center; filter:saturate(.82); }
.hero-orbit { position:absolute; z-index:0; left:-3.3rem; top:3rem; width:11rem; height:22rem; border:1px solid rgba(223,199,174,.6); border-radius:50%; transform:rotate(23deg); }.hero-orbit:after { content:''; position:absolute; inset:1.4rem -1rem; border:1px solid rgba(223,199,174,.32); border-radius:50%; }.hero-orbit span { position:absolute; width:8px; height:8px; border-radius:50%; background:var(--clay); }.hero-orbit span:first-child { top:10%; right:0; }.hero-orbit span:last-child { bottom:14%; left:4%; background:var(--sand); }
.hero-note { position:absolute; z-index:2; left:0; bottom:2rem; padding:1rem .95rem; color:var(--ink); background:var(--sand); font-family:var(--serif); font-size:1.25rem; line-height:.95; }.hero-note em { color:var(--clay-dark); }.hero-index { position:absolute; right:.15rem; bottom:-.2rem; color:var(--sand); font-size:.7rem; letter-spacing:.12em; }.hero-index span { color:rgba(245,240,232,.45); }
.hero-footer { display:flex; justify-content:space-between; gap:1rem; margin-top:2.25rem; padding-top:1.1rem; border-top:1px solid rgba(245,240,232,.2); color:rgba(245,240,232,.52); font-size:.55rem; letter-spacing:.14em; text-transform:uppercase; }.hero-footer a { color:var(--sand); }.hero-footer b { margin-left:.35rem; font-size:1rem; font-weight:400; }
.experience .section-intro { max-width:31rem; }.narrow-intro h2, .about-copy h2 { font-size:clamp(4rem, 17vw, 8rem); text-transform:uppercase; }.experience-body { display:grid; gap:2rem; margin:3rem 0 3.1rem; }.experience-statement { display:flex; align-items:flex-start; gap:1rem; max-width:25rem; font-family:var(--serif); font-size:1.8rem; line-height:1; }.experience-statement span { width:50px; height:50px; flex-shrink:0; border:1px solid var(--clay); border-radius:50%; }.experience-copy { max-width:26rem; margin-left:auto; }.experience-copy p { margin:0 0 1.5rem; color:rgba(23,55,47,.74); }.text-link { display:inline-flex; align-items:center; gap:.7rem; padding-bottom:.35rem; border-bottom:1px solid var(--clay); color:var(--clay-dark); font-size:.65rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }.text-link span { font-size:1rem; font-weight:400; }.text-link-light { color:var(--sand); border-color:var(--sand); }
.benefit-list { border-top:1px solid var(--line); }.benefit-row { display:grid; grid-template-columns:2.2rem 1fr; gap:.7rem; align-items:start; padding:1.25rem 0; border-bottom:1px solid var(--line); }.benefit-row span { padding-top:.25rem; color:var(--clay); font-size:.62rem; letter-spacing:.12em; }.benefit-row h3 { margin:0; font-family:var(--serif); font-size:1.7rem; font-weight:500; line-height:1; }.benefit-row p { grid-column:2; margin:.35rem 0 0; color:rgba(23,55,47,.58); font-size:.73rem; }
.approach { display:grid; gap:3rem; }.approach-art { position:relative; display:flex; align-items:center; justify-content:center; min-height:270px; border:1px solid rgba(245,240,232,.26); }.approach-art:before, .approach-art:after { content:''; position:absolute; width:82%; height:62%; border:1px solid rgba(245,240,232,.26); border-radius:50%; transform:rotate(35deg); }.approach-art:after { width:70%; height:83%; transform:rotate(-32deg); }.approach-art img { position:relative; z-index:1; width:9rem; height:9rem; object-fit:contain; opacity:.9; filter:none; }.approach-art span { position:absolute; top:1rem; left:1rem; color:var(--sand); font-family:var(--serif); font-size:2rem; }.approach-copy { max-width:31rem; }.approach-copy h2 { font-size:clamp(3.35rem, 14vw, 8rem); text-transform:uppercase; }.approach-copy > p:not(.eyebrow):not(.approach-note) { margin:2rem 0 1rem; color:rgba(245,240,232,.78); font-size:.92rem; }.approach-note { max-width:22rem; margin:0; padding-top:1.1rem; border-top:1px solid rgba(245,240,232,.3); color:var(--sand); font-family:var(--serif); font-size:1.25rem; line-height:1.05; }
.about { display:grid; gap:2.6rem; }.about-photo { position:relative; min-height:420px; }.about-photo img { width:100%; height:100%; min-height:420px; object-fit:cover; object-position:55% center; filter:saturate(.78); }.photo-caption { position:absolute; right:-.1rem; bottom:1rem; padding:.55rem .7rem; color:var(--ink); background:var(--sand); font-size:.56rem; font-weight:700; letter-spacing:.14em; }.about-copy h2 { margin-bottom:2rem; }.about-copy > p:not(.eyebrow) { max-width:27rem; margin:0 0 2.2rem; color:rgba(23,55,47,.78); }.credentials { display:flex; flex-direction:column; gap:.75rem; border-top:1px solid var(--line); }.credentials span { display:flex; align-items:center; gap:.8rem; padding:.8rem 0; border-bottom:1px solid var(--line); font-size:.72rem; font-weight:600; }.credentials b { color:var(--clay); font-size:.62rem; font-weight:700; letter-spacing:.1em; }
.consultation-cta { position:relative; display:grid; gap:2rem; }.cta-mark { display:flex; align-items:flex-start; justify-content:flex-end; height:9rem; }.cta-mark img { width:10rem; height:10rem; object-fit:contain; opacity:.25; filter:none; }.cta-copy { max-width:34rem; }.cta-copy h2, .consultation-close h2 { font-size:clamp(3.35rem, 14vw, 8rem); text-transform:uppercase; }.cta-copy > p:not(.eyebrow) { max-width:23rem; margin:2rem 0 1.6rem; color:rgba(245,240,232,.72); }
.site-footer { padding:3rem 1.35rem 1.4rem; }.footer-top { display:flex; flex-direction:column; gap:1.5rem; padding-bottom:3rem; border-bottom:1px solid rgba(245,240,232,.2); }.footer-top p { margin:0; color:rgba(245,240,232,.55); font-family:var(--serif); font-size:1.3rem; line-height:1; }.footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.8rem; padding-top:1.2rem; color:rgba(245,240,232,.45); font-size:.56rem; letter-spacing:.11em; text-transform:uppercase; }.footer-bottom a { color:var(--sand); }.footer-bottom b { margin-left:.3rem; font-size:.9rem; font-weight:400; }
/* Consultation page */
.consultation-header { border-bottom:1px solid rgba(245,240,232,.16); }.consultation-hero { display:flex; justify-content:space-between; gap:2rem; padding-top:5rem; padding-bottom:4.5rem; }.consultation-hero-copy { max-width:38rem; }.consultation-hero h1 { font-size:clamp(3.35rem, 14vw, 8.5rem); text-transform:uppercase; }.consultation-hero-copy > p:not(.eyebrow) { max-width:25rem; margin:2rem 0 0; color:rgba(245,240,232,.7); font-family:var(--serif); font-size:1.45rem; line-height:1.05; }.consultation-number { display:flex; flex-direction:column; align-items:flex-end; justify-content:flex-end; min-width:6rem; color:var(--sand); }.consultation-number strong { font-family:var(--serif); font-size:5rem; font-weight:500; line-height:.7; }.consultation-number span { margin-top:1rem; font-size:.55rem; letter-spacing:.15em; line-height:1.3; text-align:right; }.booking-panel { display:grid; gap:3rem; }.booking-heading { max-width:34rem; }.cal-booking-shell { min-width:0; width:100%; }.cal-inline { width:100%; min-height:650px; overflow:hidden; border:1px solid var(--line); background:var(--white); }.booking-fallback { margin:1rem 0 0; color:rgba(23,55,47,.64); font-size:.72rem; }.booking-fallback a { color:var(--clay-dark); font-weight:700; text-decoration:underline; text-underline-offset:.25em; }.booking-fallback span { font-size:1rem; text-decoration:none; } .booking-heading h2, .consultation-details h2 { font-size:clamp(3.35rem, 14vw, 7.5rem); text-transform:uppercase; }.booking-heading > p:not(.eyebrow) { max-width:27rem; margin:2rem 0 0; color:rgba(23,55,47,.7); }.cal-preview { border:1px solid var(--line); background:var(--white); }.cal-preview-top { display:flex; align-items:center; gap:.55rem; padding:.85rem 1rem; border-bottom:1px solid var(--line); color:var(--clay-dark); font-size:.58rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }.status-dot { width:7px; height:7px; border-radius:50%; background:var(--clay); }.cal-preview-body { display:flex; align-items:flex-start; gap:1.2rem; padding:2rem 1.3rem; }.cal-preview-body img { width:42px; height:42px; object-fit:contain; filter:opacity(.7); }.cal-preview-body h3 { margin:0 0 .7rem; font-family:var(--serif); font-size:2rem; font-weight:500; line-height:1; }.cal-preview-body p { max-width:27rem; margin:0 0 1rem; color:rgba(23,55,47,.65); font-size:.78rem; }.preview-note { color:var(--clay-dark); font-size:.63rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }.consultation-details { display:grid; gap:3rem; }.details-list { border-top:1px solid rgba(245,240,232,.3); }.details-list div { display:grid; grid-template-columns:2rem 1fr; gap:.7rem; padding:1.1rem 0; border-bottom:1px solid rgba(245,240,232,.3); }.details-list span { color:var(--sand); font-size:.65rem; }.details-list p { margin:0; color:rgba(245,240,232,.8); font-family:var(--serif); font-size:1.35rem; line-height:1.05; }.consultation-close { text-align:center; }.consultation-close .eyebrow { justify-content:center; }.consultation-close h2 { max-width:32rem; margin:0 auto; }.consultation-close > p:not(.eyebrow) { max-width:24rem; margin:1.7rem auto; color:rgba(245,240,232,.66); }.consultation-close .text-link { margin-top:.8rem; }
.reveal { opacity:0; transform:translateY(16px); transition:opacity .65s ease, transform .65s ease; }.reveal.is-visible { opacity:1; transform:none; }
@media (min-width:700px) { .section-pad { padding:8rem 5vw; }.site-header { padding:1.2rem 5vw; }.desktop-nav { display:flex; }.menu-toggle { display:none; }.hero { padding:2rem 5vw 1.8rem; }.hero-grid { grid-template-columns:1fr 1fr; align-items:center; gap:5vw; min-height:650px; }.hero-copy { padding-top:0; }.hero-visual { min-height:570px; }.hero-photo-frame { height:570px; }.hero-footer { margin-top:2rem; }.experience-body { grid-template-columns:1fr 1fr; align-items:end; margin:5rem 0 4.5rem; }.experience-statement { font-size:2.2rem; }.benefit-row { grid-template-columns:3rem minmax(15rem,1fr) minmax(11rem,18rem); align-items:center; gap:1rem; }.benefit-row p { grid-column:3; margin:0; }.approach { grid-template-columns:1fr 1fr; align-items:center; gap:7vw; }.approach-art { min-height:470px; }.about { grid-template-columns:1fr 1fr; align-items:center; gap:7vw; }.about-photo, .about-photo img { min-height:600px; }.consultation-cta { grid-template-columns:1fr 1.25fr; align-items:center; }.cta-mark { height:100%; align-items:center; justify-content:center; }.cta-mark img { width:17rem; height:17rem; }.footer-top { flex-direction:row; justify-content:space-between; align-items:flex-start; }.consultation-hero { padding-top:8rem; padding-bottom:7rem; }.booking-panel { grid-template-columns:.8fr 1.2fr; align-items:start; gap:7vw; }.consultation-details { grid-template-columns:.8fr 1.2fr; align-items:start; gap:7vw; }.cal-preview-body { padding:2.5rem; }.cal-inline { min-height:720px; }.consultation-close { padding-top:9rem; padding-bottom:9rem; } }
@media (min-width:1100px) { body { font-size:16px; }.header-location { display:flex; }.hero h1 { font-size:clamp(7.5rem, 9vw, 12rem); }.hero-description { font-size:1.7rem; }.hero-orbit { left:-5rem; width:14rem; height:28rem; }.hero-note { left:-2rem; }.narrow-intro h2, .about-copy h2 { font-size:9rem; }.approach-copy h2, .cta-copy h2, .consultation-close h2 { font-size:9rem; }.consultation-hero h1 { font-size:9rem; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; }.reveal { opacity:1; transform:none; transition:none; }.button, .desktop-nav a { transition:none; } }

@media (min-width:700px) and (max-width:999px) {
  .hero-grid { grid-template-columns:1fr; gap:3.5rem; }
  .hero-copy { max-width:38rem; }
  .hero h1 { font-size:clamp(5rem, 12vw, 8rem); }
  .hero-visual { width:min(100%, 34rem); margin-left:auto; }
}

@media (max-width:360px) {
  .hero-support { max-width:100%; overflow-wrap:anywhere; font-size:.72rem; }
}

.cal-direct-button { margin-bottom:1rem; }
@media (max-width:360px) {
  .hero h1 { font-size:3rem; letter-spacing:-.06em; }
}
