@font-face{font-family:'Sora';src:url('../fonts/heading-sora.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'Newsreader';src:url('../fonts/body-newsreader.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
*,*::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.6}img{display:block;width:100%;height:auto}a{color:inherit;text-underline-offset:.22em}button,input,select,textarea{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea: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:100;background:var(--bg);padding:.75rem}.site-header{position:relative;z-index:30;min-height:var(--header);background:var(--header-bg,var(--bg));color:var(--header-ink,var(--ink));border-bottom:var(--header-border,1px solid currentColor)}.header-in{max-width:1500px;margin:auto;min-height:var(--header);padding:.65rem clamp(1rem,3vw,3rem);display:flex;align-items:center;gap:1.25rem}.brand{font-family:var(--catalog-font-heading);font-weight:800;text-decoration:none;line-height:1}.brand small{display:block;font:600 .62rem/1.3 Atkinson Hyperlegible Next,sans-serif;letter-spacing:.14em;text-transform:uppercase;margin-top:.25rem}.chrome-mark{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}.desktop-nav{margin-left:auto}.desktop-nav ul,.drawer ul,.site-footer nav ul{list-style:none;margin:0;padding:0}.desktop-nav ul{display:flex;gap:clamp(.55rem,1vw,1rem);font-size:.72rem;text-transform:uppercase}.desktop-nav a[aria-current=page]{font-weight:900;text-decoration-thickness:3px}.drawer{display:none;margin-left:auto}.drawer summary{min-width:52px;min-height:44px;padding:.6rem;border:1px solid currentColor;cursor:pointer}.drawer nav{position:absolute;left:1rem;right:1rem;top:calc(100% + .25rem);padding:1rem;background:var(--header-bg,var(--bg));border:1px solid currentColor}.drawer ul{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}.book,button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.68rem 1rem;background:var(--action);color:var(--on-action);border:1px solid var(--action);font-weight:850;text-decoration:none}.kicker{font-size:.72rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}h1,h2,h3{font-family:var(--catalog-font-body);line-height:.98;margin-top:0}h1{font-size:clamp(2.8rem,7vw,7rem);letter-spacing:-.045em;max-width:13ch}h2{font-size:clamp(1.9rem,4vw,4.3rem);letter-spacing:-.03em}h3{font-size:clamp(1.15rem,2vw,1.65rem)}p{margin-top:0}.lede{font-size:clamp(1.05rem,1.8vw,1.4rem);max-width:60ch}.actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.page-layout{max-width:1360px;margin:auto;padding:clamp(3rem,7vw,8rem) clamp(1rem,4vw,4rem)}.page-title{display:grid;grid-template-columns:3fr 7fr 4fr;gap:2rem;align-items:end;padding-bottom:2rem;border-bottom:2px solid currentColor}.page-title h1{grid-column:1/3;margin-bottom:0}.page-title>p:last-child{margin-bottom:0}.service-composition{display:grid;gap:0}.service{padding:1.5rem;border-bottom:1px solid currentColor}.service h3{margin-bottom:.35rem}.price{font:850 1.25rem/1 Source Serif 4,sans-serif;color:var(--price,var(--action))}.service ul{padding-left:1.2rem}.gallery-composition{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;margin-top:3rem}.gallery-composition figure{margin:0;grid-column:span 4}.gallery-composition figure:nth-child(1),.gallery-composition figure:nth-child(6){grid-column:span 8}.gallery-composition figcaption{padding:.75rem 0;font-size:.86rem}.staff-composition{display:grid;gap:2rem;margin-top:3rem}.person{display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:2rem;padding-bottom:2rem;border-bottom:1px solid currentColor}.portrait{aspect-ratio:4/5;object-fit:cover}.review{margin:0;padding:2rem;border-bottom:1px solid currentColor}.review p{font-size:clamp(1.05rem,2vw,1.45rem);max-width:58ch}.review footer{display:flex;gap:1rem;flex-wrap:wrap;font-size:.78rem}.avatar{display:grid;place-items:center;width:44px;height:44px;border:1px solid currentColor;border-radius:50%;margin-bottom:1rem}.faq-composition{margin-top:3rem}.faq-composition details{padding:1rem 0;border-bottom:1px solid currentColor}.faq-composition summary{cursor:pointer;min-height:44px;font:750 1.05rem/1.4 Source Serif 4,sans-serif}.escape-hatch,.process-note{padding:3rem;margin-top:3rem;background:var(--surface)}.about-composition,.contact-composition,.privacy-composition{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);margin-top:3rem}.about-composition aside{padding:1rem;border-left:5px solid var(--action)}form{display:grid;gap:1rem}label{display:grid;gap:.35rem;font-weight:700}label span{font-weight:400}input,select,textarea{width:100%;min-height:46px;padding:.75rem;border:1px solid currentColor;background:var(--field,var(--bg));color:var(--ink)}textarea{min-height:150px}.status{min-height:1.5em}.subscribe{padding:2.5rem clamp(1rem,4vw,4rem);background:var(--subscribe,var(--surface))}.subscribe-form{max-width:1360px;margin:auto;display:grid;grid-template-columns:1fr minmax(240px,420px) auto;align-items:end}.subscribe-form .status{grid-column:2/-1}.site-footer{padding:4rem clamp(1rem,4vw,4rem);display:grid;grid-template-columns:1.15fr 1.7fr 1fr;gap:3rem;background:var(--footer-bg,var(--ink));color:var(--footer-ink,var(--bg))}.site-footer nav ul{columns:3}.site-footer li{break-inside:avoid;margin-bottom:.5rem}.footer-facts ul{list-style:none;padding:0}.not-found-page{min-height:70svh;display:grid;align-content:center}.not-found-page h1{font-size:clamp(4rem,12vw,12rem)}
@media(max-width:850px){.desktop-nav,.chrome-mark,.header-book{display:none}.drawer{display:block}.header-in{gap:.6rem}.page-title,.about-composition,.contact-composition,.privacy-composition,.person{grid-template-columns:1fr}.page-title h1{grid-column:auto}.gallery-composition{grid-template-columns:1fr}.gallery-composition figure,.gallery-composition figure:nth-child(1),.gallery-composition figure:nth-child(6){grid-column:auto}.subscribe-form,.site-footer{grid-template-columns:1fr}.subscribe-form .status{grid-column:auto}.site-footer nav ul{columns:2}h1{font-size:clamp(2.6rem,13vw,4.6rem)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
details.drawer:not([open])>nav{display:none}
@media(max-width:480px){.site-footer nav ul{columns:1}.page-title,.page-title>*{min-width:0}.page-title>*{overflow-wrap:anywhere}}
:root{--bg:#F3F1EC;--ink:#20262B;--action:#657880;--on-action:#fff;--accent:#A56A43;--highlight:#D0C5AE;--surface:#DED8CA;--focus:#7A4A2D;--header:80px}.site-header{border:3px solid var(--ink)}.chrome-mark{border:1px solid;padding:.5rem}.desktop-nav li{border-left:1px solid;padding-left:.65rem}.home-sheet{background-image:linear-gradient(#D0C5AE88 1px,transparent 1px),linear-gradient(90deg,#D0C5AE88 1px,transparent 1px);background-size:40px 40px;padding:clamp(1rem,4vw,4rem)}.sheet{max-width:1400px;margin:auto;border:2px solid var(--ink);background:#F3F1ECEF;position:relative}.hero-sheet{min-height:calc(100svh - 80px);display:grid;grid-template-columns:4fr 8fr;gap:2rem;padding:clamp(2rem,5vw,5rem);align-items:center}.sheet-no{position:absolute;right:1rem;top:1rem;font:800 3rem Source Serif 4;color:var(--accent)}.elevation{margin:0;position:relative}.plan-inset{position:absolute;right:1rem;bottom:3rem;width:32%;aspect-ratio:1;padding:1rem;border:2px solid;background:#F3F1ECEF}.scope-sheet header{display:grid;grid-template-columns:1fr 5fr 2fr;padding:1rem;border-bottom:2px solid}.schedule .service{display:grid;grid-template-columns:1fr 3fr 1fr 2fr;gap:1rem}.schedule .service>*{margin:.3rem 0}.section-sheet{display:grid;grid-template-columns:3fr 2fr}.section-sheet>div{padding:3rem}.notes-sheet{display:grid;grid-template-columns:2fr 1fr}.notes-sheet>div{padding:3rem}.title-block{border-left:2px solid}.services-page .service{display:grid;grid-template-columns:1fr 2fr 1fr;gap:1.5rem}.gallery-page figure{border:2px solid;padding:.55rem}.staff-page .person{grid-template-columns:220px 1fr 180px}.reviews-page .review{display:grid;grid-template-columns:70px 1fr 250px}.faq-page details{display:grid;grid-template-columns:1fr 2fr}@media(max-width:850px){.hero-sheet,.section-sheet,.notes-sheet,.schedule .service,.services-page .service,.staff-page .person,.reviews-page .review{grid-template-columns:1fr}.scope-sheet header{grid-template-columns:auto 1fr}.sheet-no{font-size:1.4rem}.plan-inset{width:38%;font-size:.7rem}.faq-page details{display:block}}
.gallery-note{grid-column:span 8;border:2px solid currentColor;padding:clamp(2rem,5vw,5rem);display:grid;align-content:center;background:var(--surface)}.gallery-note h2{max-width:9ch}@media(max-width:850px){.gallery-note{grid-column:auto}}
/* Catalogue typography identity — headings and reading text. */
:root{--catalog-font-heading:'Sora', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;--catalog-font-body:'Newsreader', 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; }
}
