/* Do-inspired editorial composition, built locally; no template code/assets reused. */
:root { --paper:#fdfcf9; --white:#fff; --ink:#1c1c19; --muted:#64635d; --gold:#a97013; --accent:#bf861c; --line:#e2dfd6; --tint:#f1eee5; }
::selection { background:#ead2a1; color:var(--ink); }
.wrap { width:min(1400px,calc(100% - 120px)); }
.site-header { background:var(--paper); border-color:var(--line); }
.brand img { filter:grayscale(1) brightness(.38); }
.header-contact { background:var(--accent); color:#fff; border:0; border-radius:6px; padding:12px 18px; gap:26px; }
.header-contact span { color:inherit; }
.hero { display:grid; grid-template-columns:1fr 1fr; column-gap:6%; position:relative; padding-block:24px 46px; align-items:center; }
.hero-copy { padding-block:35px 60px; }
.hero .eyebrow { color:var(--gold); font-size:12px; letter-spacing:.035em; margin-bottom:32px; }
.hero .eyebrow::before { content:none; }
.hero h1 { font-size:clamp(35px,3.75vw,60px); line-height:1.42; letter-spacing:-.045em; font-weight:450; }
.title-line:last-child { color:var(--ink); }
html[lang=en] .hero h1 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(44px,4.4vw,70px); font-weight:400; line-height:1.12; }
html[lang=en] .title-line:last-child { font-style:italic; }
.hero .hero-bottom { display:block; margin-top:30px; }
.hero-bottom>p { font-size:16px; line-height:1.9; max-width:30em; }
.hero-bottom .text-link { margin-top:30px; background:var(--accent); color:#fff; padding:15px 22px; border-radius:6px; gap:35px; }
.hero-bottom .text-link::after { display:none; }
.hero-bottom .text-link:hover { background:#ab7414; }
.hero-image { position:relative; margin:0; height:calc(100svh - 150px); min-height:420px; max-height:900px; overflow:hidden; border-radius:10px; isolation:isolate; }
.hero-image img { width:100%; height:100%; object-fit:cover; }
.hero-image::after { content:''; position:absolute; inset:60% 0 0; background:linear-gradient(transparent,rgba(26,22,15,.55)); pointer-events:none; }
.hero-image figcaption { position:absolute; bottom:28px; left:28px; right:28px; color:#fff; z-index:1; display:flex; justify-content:space-between; gap:18px; font-size:11px; letter-spacing:.04em; }
.scroll-cue { position:absolute; bottom:22px; left:0; display:flex; align-items:center; gap:28px; font-size:10px; letter-spacing:.13em; color:var(--muted); }
.scroll-cue>span:last-child { color:var(--gold); font-size:19px; }
.section-heading h2 { font-weight:450; }
.services .section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:50px; padding-bottom:30px; border-bottom:1px solid var(--line); margin-bottom:32px; }
.services .section-heading p { max-width:26em; margin:0; font-size:14px; }
.service-stage { gap:8%; grid-template-columns:1fr 1.25fr; }
.service-tab { padding:26px 0; }
.tab-name>span { letter-spacing:.08em; font-size:10px; }
.tab-name strong { font-size:clamp(22px,2.4vw,33px); }
.service-tab[aria-selected=true] { color:var(--gold); }
.service-panel { border-left:1px solid var(--line); padding:24px 0 24px 40px; min-height:350px; }
.service-panel>h3 { font-size:clamp(23px,2.1vw,30px); }
.service-details { padding-top:20px; border-top:1px solid var(--line); }
.process { background:var(--tint); padding-block:40px; }
.process-layout { display:grid; grid-template-columns:.85fr 1fr; gap:9%; align-items:center; }
.process-image { position:relative; height:calc(100svh - 190px); min-height:380px; max-height:680px; margin:0; overflow:hidden; border-radius:8px; }
.process-image img { width:100%; height:100%; object-fit:cover; object-position:85% 60%; transform:scale(1.18); }
.process-image figcaption { position:absolute; inset:auto 22px 22px; background:rgba(253,252,249,.94); padding:19px 20px; font-size:15px; }
.process .section-heading { margin-bottom:28px; }
.process-steps { grid-template-columns:1fr; gap:22px; }
.process-steps li { display:grid; grid-template-columns:40px 1fr; gap:0 15px; padding-top:20px; border-color:#d1cdc2; }
.process-steps .step-number { grid-row:1/3; font-family:Georgia,serif; font-size:24px; margin:0; }
.process-steps h3 { font-size:21px; margin-bottom:8px; }
.process-steps p { grid-column:2; max-width:31em; font-size:14px; }
.founder { grid-template-columns:1fr; gap:0; position:relative; padding-block:40px; }
.founder-intro { position:absolute; left:51%; top:clamp(55px,12vh,130px); }
.founder-intro h2 { font-size:12px; color:var(--gold); letter-spacing:.1em; }
.founder-intro p { display:none; }
.founder-profile { display:grid; grid-template-columns:.85fr 1fr; gap:9%; align-items:center; }
.portrait { width:100%; height:calc(100svh - 180px); max-height:710px; min-height:400px; aspect-ratio:auto; border-radius:8px; background:#d3d3cf; }
.portrait img { object-position:center 26%; filter:saturate(.82); }
.founder-copy { padding-top:50px; }
.founder-copy h3 { font-size:40px; display:block; margin-bottom:25px; }
.founder-copy h3 span { display:block; margin-top:12px; font-family:Georgia,serif; font-size:25px; font-style:italic; }
.founder-copy>p { font-size:15px; line-height:2; max-width:33em; }
.founder-copy .credential { font-size:12px; padding-top:22px; margin-top:26px; }
.contact { background:#efebe1; }
.contact h2 { font-size:clamp(36px,4.4vw,64px); }
.contact-layout { gap:10%; grid-template-columns:1.2fr .8fr; }
.qr-block { justify-self:end; border-left:1px solid #d1ccbf; padding:36px 0 36px 70px; }
.qr-button { border:0; border-radius:8px; padding:18px; }
.qr-button img { width:190px; }
.email-block { margin-top:42px; }
.screen-rail { right:16px; }
.booking-dialog { border-radius:10px; }
.booking-dialog::backdrop { background:rgba(28,28,25,.48); }
@media(prefers-reduced-motion:no-preference) {
  .hero-image { animation:photo-enter 1.1s var(--ease) both; }
  .hero-image img { animation:photo-settle 1.6s var(--ease) both; }
  .hero-image:hover img { scale:1.025; transition:scale 1.2s var(--ease); }
  .portrait img { transition:filter .7s var(--ease), scale 1.2s var(--ease); }
  .portrait:hover img { scale:1.025; }
  @keyframes photo-enter { from{opacity:0;clip-path:inset(3% 0 0 round 10px)} to{opacity:1;clip-path:inset(0 round 10px)} }
  @keyframes photo-settle { from{transform:scale(1.055)} to{transform:scale(1)} }
}
@media(max-width:1100px) {
 .wrap{width:calc(100% - 76px)} .hero{column-gap:4%} .hero h1{font-size:36px} .hero-bottom>p{font-size:14px}
 .hero-image figcaption{left:18px;right:18px;flex-direction:column;gap:8px} .service-panel{padding-left:28px} .founder-copy h3{font-size:32px} .qr-block{padding-left:35px}
}
@media(max-height:740px) and (min-width:768px) {
 .hero{padding-top:18px;padding-bottom:38px} .hero-copy{padding-block:15px} .hero-image{height:calc(100svh - 136px);min-height:340px} .hero h1{font-size:42px}
 .hero .eyebrow{margin-bottom:20px} .hero .hero-bottom{margin-top:20px} .hero-bottom .text-link{margin-top:20px}
 .services .section-heading{padding-bottom:20px;margin-bottom:20px} .service-tab{padding-block:20px} .service-panel{min-height:310px;padding-block:12px}
 .process-image{height:calc(100svh - 150px);min-height:330px} .process .section-heading{margin-bottom:20px} .process-steps{gap:16px} .process-steps li{padding-top:15px}
 .portrait{height:calc(100svh - 145px);min-height:350px} .founder-intro{top:45px} .founder-copy{padding-top:35px}
}
@media(max-width:767px) {
 .process,.founder { padding-block:28px; }
 .wrap{width:calc(100% - 40px)} .hero{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:22px;padding-block:24px 38px}
 .hero-copy{padding:0} .hero .eyebrow{font-size:10px;margin-bottom:16px} .hero h1{font-size:clamp(29px,7.5vw,42px);line-height:1.35}
 html[lang=en] .hero h1{font-size:36px} .hero .hero-bottom{margin-top:16px} .hero-bottom>p{font-size:13px;line-height:1.8} .hero-bottom .text-link{margin-top:18px;padding:10px 16px;font-size:12px}
 .hero-image{height:27svh;min-height:170px;max-height:260px;width:100%;border-radius:7px} .hero-image img{object-position:center 62%} .hero-image figcaption{flex-direction:row;bottom:17px;font-size:8px} .scroll-cue{display:none}
 .services .section-heading{display:block;padding-bottom:0;border:0;margin-bottom:22px} .services .section-heading p{margin-top:10px;font-size:13px}
 .service-stage{display:block} .service-tab{padding:12px 7px 14px} .tab-name strong{font-size:14px} .service-panel{border:0;padding:0;min-height:350px} .service-panel>h3{font-size:21px} .service-details{padding-top:15px}
 .process-layout{display:flex;flex-direction:column;gap:24px} .process-image{height:20svh;min-height:130px;max-height:190px;width:100%;order:2} .process-image figcaption{font-size:11px;padding:10px 12px;inset:auto 12px 12px} .process-image img{object-position:center 65%}
 .process .section-heading{margin-bottom:18px} .process .section-heading h2{font-size:25px} .process .section-heading p{font-size:13px} .process-steps{gap:14px} .process-steps li{padding-top:13px;grid-template-columns:28px 1fr;gap:0 10px} .process-steps .step-number{font-size:19px} .process-steps h3{font-size:17px;margin-bottom:5px} .process-steps p{font-size:12px;line-height:1.8}
 .founder-intro{position:static;margin-bottom:20px} .founder-profile{grid-template-columns:1fr;gap:22px} .portrait{width:100%;height:29svh;min-height:190px;max-height:270px} .portrait img{object-position:center 20%} .founder-copy{padding:0} .founder-copy h3{font-size:26px;display:flex;gap:15px;margin-bottom:14px} .founder-copy h3 span{font-size:18px;margin:0} .founder-copy>p{font-size:12px;line-height:1.85} .founder-copy .credential{font-size:10px;margin-top:15px;padding-top:14px}
 .contact-layout{grid-template-columns:1fr;gap:28px} .contact h2{font-size:33px} .email-block{margin-top:28px} .qr-block{justify-self:start;padding:0;border:0} .qr-button{padding:10px} .qr-button img{width:124px} .footer{font-size:9px}
}
