:root { --ink:#111a2e; --paper:#f6f2eb; --white:#fffdf9; --orange:#d85d38; --line:rgba(17,26,46,.18); --serif:"Iowan Old Style",Baskerville,"Times New Roman",serif; --sans:"Helvetica Neue","Avenir Next",Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font:400 1rem/1.65 var(--sans); }
img { display:block; width:100%; height:100%; object-fit:cover; }
a { color:inherit; }
.topbar { position:sticky; top:0; z-index:10; display:flex; align-items:center; justify-content:space-between; min-height:74px; padding:0 4vw; background:rgba(246,242,235,.94); border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.brand { font-family:var(--serif); font-size:1.35rem; text-decoration:none; }
.top-link { font-size:.8rem; letter-spacing:.06em; text-underline-offset:6px; text-transform:uppercase; }
.label { margin:0; font-size:.76rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase; }
h1,h2 { font-family:var(--serif); font-weight:400; letter-spacing:-.04em; }
h1 { margin:0; font-size:clamp(3.25rem,5.35vw,6.1rem); line-height:.96; }
h2 { margin:0; font-size:clamp(2.4rem,4.35vw,4.9rem); line-height:1; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:54px; padding:.9rem 1.45rem; background:var(--orange); color:white; font-size:.78rem; letter-spacing:.07em; text-decoration:none; text-transform:uppercase; }
.hero { min-height:calc(100vh - 74px); display:grid; grid-template-columns:1.15fr .85fr; gap:6vw; align-items:center; padding:5vw 4vw 6vw; }
.hero-copy .label { margin-bottom:2.2rem; }
.hero-note { margin:2.2rem 0 2rem; font-family:var(--serif); font-size:clamp(1.15rem,1.7vw,1.55rem); }
.portrait { width:100%; aspect-ratio:1.08 / 1; height:auto; max-height:none; margin:0; overflow:hidden; }
.portrait img { object-fit:cover; object-position:center top; transform:none; }
.presentation { display:grid; grid-template-columns:.32fr 1.68fr; gap:5vw; padding:9rem 4vw; background:var(--white); border-top:1px solid var(--line); }
.presentation-copy { max-width:1080px; }
.presentation-copy .signature { max-width:900px; margin:0 0 1.4rem; color:var(--orange); font-family:var(--sans); font-size:clamp(.9rem,1.1vw,1.05rem); font-weight:600; letter-spacing:.07em; line-height:1.45; text-transform:uppercase; }
.presentation-copy h2 { max-width:950px; margin-bottom:3rem; }
.presentation-copy p { max-width:760px; margin:0 0 1rem; font-family:var(--serif); font-size:clamp(1.1rem,1.45vw,1.35rem); line-height:1.58; }
.presentation-copy .tools { margin-top:2.4rem; padding-top:1.3rem; border-top:1px solid var(--line); font-family:var(--sans); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; }
.practice { display:grid; grid-template-columns:.72fr .78fr .5fr; gap:2vw; align-items:end; padding:8rem 4vw; background:var(--ink); color:var(--paper); }
.practice-copy { align-self:center; padding-right:3vw; }
.practice-copy .label { margin-bottom:2rem; }
.practice-copy h2 { font-size:clamp(2.6rem,4vw,4.8rem); }
.practice-copy>p:last-child { margin:2rem 0 0; }
.cabinet-main { height:60vw; max-height:760px; margin:0; overflow:hidden; }
.cabinet-detail { height:42vw; max-height:540px; margin:0; overflow:hidden; }
.booking { display:grid; grid-template-columns:.32fr 1.68fr; gap:5vw; padding:8rem 4vw; background:var(--orange); color:white; }
.booking p { margin:1.5rem 0; font-family:var(--serif); font-size:1.25rem; }
.button-light { background:white; color:var(--ink); }
.contact-actions { display:flex; flex-wrap:wrap; gap:1.2rem 1.8rem; align-items:center; }
.contact-link { font-size:.78rem; font-weight:600; letter-spacing:.07em; text-underline-offset:7px; text-transform:uppercase; }
footer { display:grid; grid-template-columns:1fr 1.2fr auto; gap:3rem; padding:3rem 4vw; background:var(--ink); color:var(--paper); font-size:.78rem; }
footer div { display:flex; flex-direction:column; }
footer strong { font-family:var(--serif); font-size:1.2rem; font-weight:400; }
footer p { margin:0; }
.footer-link { width:max-content; margin-top:.65rem; font-size:.72rem; letter-spacing:.07em; text-underline-offset:5px; text-transform:uppercase; }
@media (max-width:880px) { .hero{min-height:auto;grid-template-columns:1fr;padding-top:4rem}.portrait{aspect-ratio:1.08 / 1;height:auto;max-height:none}.presentation,.booking{grid-template-columns:1fr}.practice{grid-template-columns:1fr 1fr}.practice-copy{grid-column:1/-1;margin-bottom:2rem}.cabinet-main{height:78vw}.cabinet-detail{height:58vw}footer{grid-template-columns:1fr} }
@media (max-width:560px) { .topbar{min-height:66px;padding:0 1.2rem}.top-link{font-size:.68rem}.hero,.presentation,.practice,.booking{padding-left:1.2rem;padding-right:1.2rem}.hero{gap:3.5rem;padding-bottom:4rem}h1{font-size:clamp(2.75rem,12.8vw,4rem)}.portrait{aspect-ratio:1.08 / 1;height:auto}.portrait img{object-position:center top;transform:none}.presentation{padding-top:5.5rem;padding-bottom:5.5rem}.presentation-copy h2{margin:1.8rem 0 2.2rem;font-size:clamp(2.3rem,9.8vw,2.7rem)}.presentation-copy p{font-size:1.08rem;line-height:1.58}.practice{padding-top:5rem;padding-bottom:5rem}.booking{padding-top:5rem;padding-bottom:5rem}.booking h2{margin-top:1.8rem}footer{padding:2.5rem 1.2rem} }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} }
