@font-face{font-family:'Space Grotesk';src:url('../fonts/heading-space-grotesk.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'Bitter';src:url('../fonts/body-bitter.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--bg:#F3F0E2;--ink:#23372B;--action:#477B4D;--on-action:#ffffff;--accent:#C57645;--highlight:#D5B95F;--surface:#D5B95F44;--focus:#C57645;--header:72px}

*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--catalog-font-body);line-height:1.55}img{display:block;width:100%;height:auto}a{color:inherit;text-underline-offset:.22em}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:99;background:var(--bg);padding:.75rem}.site-header{position:relative;z-index:20;min-height:var(--header);border-bottom:1px solid color-mix(in srgb,var(--ink),transparent 72%);background:var(--bg)}.header-in{max-width:1440px;margin:auto;padding:1rem clamp(1rem,4vw,4rem);display:flex;align-items:center;gap:2rem}.brand{font-weight:900;text-decoration:none;letter-spacing:-.03em}.brand small{display:block;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase}.nav{margin-left:auto}.nav ul{display:flex;gap:clamp(.6rem,1.2vw,1.35rem);list-style:none;margin:0;padding:0;font-size:.78rem;text-transform:uppercase}.mobile-nav{display:none;margin-left:auto}.mobile-nav summary{min-height:44px;padding:.65rem 1rem;border:1px solid currentColor}.mobile-nav nav{position:absolute;left:1rem;right:1rem;top:calc(100% + .5rem);background:var(--bg);border:1px solid currentColor;padding:1rem}.mobile-nav ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.book{display:inline-flex;min-height:44px;align-items:center;padding:.65rem 1rem;background:var(--action);color:var(--on-action);text-decoration:none;font-weight:800;border:1px solid var(--action)}main{overflow:clip}.page-shell{max-width:1320px;margin:auto;padding:clamp(3rem,7vw,8rem) clamp(1rem,4vw,4rem)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.8rem,7vw,7.5rem);line-height:.92;letter-spacing:-.055em;max-width:13ch}h2{font-size:clamp(1.8rem,3.4vw,4rem);line-height:1;letter-spacing:-.035em}.eyebrow{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800}.lede{font-size:clamp(1.05rem,1.7vw,1.35rem);max-width:58ch}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.text-link{display:inline-flex;min-height:44px;align-items:center}.hero{min-height:calc(100svh - var(--header));display:grid;align-items:center}.hero-inner{max-width:1440px;margin:auto;padding:clamp(3rem,7vw,8rem) clamp(1rem,4vw,4rem);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);gap:clamp(2rem,6vw,7rem);align-items:center}.hero-art{position:relative}.hero-art img{aspect-ratio:3/2;object-fit:cover}.section{max-width:1320px;margin:auto;padding:clamp(4rem,8vw,9rem) clamp(1rem,4vw,4rem)}.section-head{display:flex;justify-content:space-between;gap:2rem;align-items:end;margin-bottom:2.5rem}.section-head p{max-width:48ch}.service-list,.gallery-grid,.people-grid,.review-grid,.process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.service,.person,.review,.process-step,.faq-list details{border:1px solid color-mix(in srgb,var(--ink),transparent 70%);padding:1.35rem;background:var(--surface)}.service .price{font-size:1.3rem;font-weight:900;color:var(--action)}.gallery-grid figure{margin:0}.gallery-grid img{aspect-ratio:4/3;object-fit:cover}.gallery-grid figcaption{font-size:.78rem;padding:.7rem 0}.review cite{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.faq-list{display:grid;gap:.75rem}.faq-list summary{cursor:pointer;font-weight:800;min-height:44px;padding:.65rem 0}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,6rem)}form{display:grid;gap:1rem}.field{display:grid;gap:.4rem}input,textarea,select{width:100%;min-height:46px;padding:.75rem;border:1px solid color-mix(in srgb,var(--ink),transparent 55%);background:var(--bg);color:var(--ink);font:inherit}textarea{min-height:150px}button{min-height:46px;padding:.75rem 1.1rem;border:0;background:var(--action);color:var(--on-action);font-weight:900}.status{min-height:1.5em}.contact-band{padding:clamp(4rem,8vw,8rem) clamp(1rem,5vw,5rem);background:var(--action);color:var(--on-action)}.contact-band>div{max-width:1320px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:2rem}.contact-band .book{background:var(--bg);color:var(--ink);border-color:var(--bg)}.subscribe{padding:2rem clamp(1rem,5vw,5rem);background:var(--surface)}.subscribe form{max-width:1320px;margin:auto;display:grid;grid-template-columns:1fr minmax(240px,430px) auto;align-items:end}.site-footer{padding:4rem clamp(1rem,5vw,5rem);border-top:1px solid color-mix(in srgb,var(--ink),transparent 70%)}.footer-in{max-width:1320px;margin:auto;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2rem}.site-footer ul{list-style:none;margin:0;padding:0}.legal{font-size:.7rem;opacity:.7;margin-top:3rem}.page-404 main{min-height:70svh;display:grid;align-items:center}.meta-list{display:grid;gap:.5rem}.meta-list div{display:grid;grid-template-columns:9rem 1fr;border-bottom:1px solid color-mix(in srgb,var(--ink),transparent 80%);padding:.5rem 0}.privacy-copy{max-width:75ch}.privacy-copy section{padding:1.5rem 0;border-bottom:1px solid color-mix(in srgb,var(--ink),transparent 80%)}
@media(max-width:850px){.nav{display:none}.mobile-nav{display:block}.header-in>.book{display:none}.hero-inner,.contact-grid{grid-template-columns:1fr}.hero{min-height:auto}.service-list,.gallery-grid,.people-grid,.review-grid,.process-grid{grid-template-columns:1fr}.section-head,.contact-band>div{display:block}.subscribe form{grid-template-columns:1fr}.footer-in{grid-template-columns:1fr}h1{font-size:clamp(2.7rem,14vw,5.2rem)}.header-in{gap:1rem}.home .hero-inner,.home .section,.home .contact-band{transform:none!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

body{background-image:radial-gradient(circle at 10% 10%,#fff8,transparent 24%),radial-gradient(circle at 90% 50%,var(--highlight),transparent 25%)}.home main{position:relative}.home main::before{content:"";position:absolute;top:85svh;bottom:8rem;left:50%;width:14px;background:var(--highlight);border-radius:50%;transform:translateX(-50%)}.home .section{position:relative;width:72%;min-height:70svh}.home .section:nth-child(odd){margin-left:4%}.home .section:nth-child(even){margin-right:4%}.service,.person,.review{border:0;border-radius:55% 45% 52% 48%;padding:2.2rem;background:var(--surface)}.gallery-grid figure{clip-path:ellipse(48% 44% at 50% 50%)}.contact-band{border-radius:50% 50% 0 0}

/* Material catalogue remediation: functionality, readable states and content depth. */


body{font-family:var(--catalog-font-body)}
h1,h2,h3,.brand,.book,button{font-family:var(--catalog-font-body)}
button:disabled,[aria-busy="true"]{cursor:wait;opacity:.62}
.status[data-state="pending"]{font-weight:700}
.status[data-state="ok"]{color:#126036;font-weight:700}
.status[data-state="error"],.field-error{color:#9b1c1c;font-weight:700}
.field-error{display:block;min-height:1.15em;font-size:.78rem;margin-top:.25rem}
input:user-invalid,select:user-invalid,textarea:user-invalid,[aria-invalid="true"]{outline:3px solid #b42318;outline-offset:2px}
.staff-label{font-family:var(--catalog-font-heading);font-size:1.15rem;font-weight:800;margin:.35rem 0}
.role-portrait{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:1rem}
.specialties{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none!important;padding:0!important;margin:.8rem 0!important}
.specialties li{border:1px solid currentColor;padding:.25rem .55rem;font-size:.78rem}
.review footer{display:grid;gap:.35rem;margin-top:1rem;font-size:.78rem}
.review time{font-variant-numeric:tabular-nums}
.service .inclusions{margin:.85rem 0;padding-left:1.2rem}
.service .boundary,.service .best-for{font-size:.88rem}
.signature-module{position:relative;isolation:isolate}
.signature-module img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:850px){
  .role-portrait{aspect-ratio:16/9}
  .home .section{width:100%;margin-inline:0;transform:none}
  .home .section,.home .section:nth-child(odd),.home .section:nth-child(even){grid-template-columns:1fr;gap:1.5rem}
  .home .service,.home .review,.home .person{grid-template-columns:1fr;transform:none}
}

/* DS-23 — a meandering route with milestone clearings. */
.layout-garden .path-gate{border-radius:55% 45% 48% 52% / 62% 38% 62% 38%;overflow:hidden;box-shadow:0 24px 60px #23372b22}
.layout-garden.home main::before{display:none}
.layout-garden.home .section{width:68%;min-height:62svh;border:0;z-index:1}
.layout-garden.home .section:nth-child(odd){margin-left:4%;margin-right:auto}.layout-garden.home .section:nth-child(even){margin-left:auto;margin-right:4%}
.layout-garden.home .section::before{content:"";position:absolute;top:-2rem;width:4.5rem;height:4.5rem;border:12px solid var(--highlight);border-radius:50%;background:var(--bg);z-index:-1}.layout-garden.home .section:nth-child(odd)::before{right:-20%}.layout-garden.home .section:nth-child(even)::before{left:-20%}
.layout-garden.home .section::after{content:"";position:absolute;top:2rem;height:calc(100% + 6rem);width:32%;border:12px solid var(--highlight);border-block-color:transparent;z-index:-2}.layout-garden.home .section:nth-child(odd)::after{right:-18%;border-left:0;border-radius:0 50% 50% 0}.layout-garden.home .section:nth-child(even)::after{left:-18%;border-right:0;border-radius:50% 0 0 50%}
.layout-garden .service-list{align-items:start}.layout-garden .service{border-radius:50% 46% 52% 44%;min-height:22rem;display:grid;align-content:center}
.layout-garden .gallery-grid figure:nth-child(even){transform:translateY(5rem)}
.layout-garden .page-shell{border-radius:8rem 8rem 0 0;border-top:14px solid var(--highlight)}
@media(max-width:850px){.layout-garden.home .section{width:100%;min-height:auto;padding-block:5rem}.layout-garden.home .section::before{width:2.25rem;height:2.25rem;border-width:7px;right:auto!important;left:.25rem!important}.layout-garden.home .section::after{display:none}.layout-garden .service{border-radius:2.5rem;min-height:auto}.layout-garden .gallery-grid figure:nth-child(even){transform:none}}
/* Catalogue typography identity — headings and reading text. */
:root{--catalog-font-heading:'Space Grotesk', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;--catalog-font-body:'Bitter', Georgia, 'Times New Roman', serif}
html body,input,select,textarea,button{font-family:var(--catalog-font-body)}
h1,h2,h3,h4,h5,h6,.display,.disp,.brand,.logo{font-family:var(--catalog-font-heading)}

/* aajwebz-mailto-nowrap — an address is one token, never split across lines */
a[href^="mailto:"] {
  overflow-wrap: normal;
  word-break: normal;
  white-space: nowrap;
  display: inline-block;
  max-width: 100%;
}
@media (max-width: 380px) {
  a[href^="mailto:"] { font-size: 0.88em; }
}
