:root{--ink:#292e2c;--muted:#555f59;--green:#244b3b;--paper:#f7f7f2;--line:#d4d9d0;--white:#fff;--soft:#e9eee5;font-family:Arial,"Helvetica Neue",sans-serif;color:var(--ink);background:var(--paper);font-size:16px;line-height:1.6}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--green)}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,iframe:focus-visible{outline:3px solid #94611c;outline-offset:4px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.18;font-weight:500}p+p{margin-top:14px}.wrap{width:min(1080px,calc(100% - 64px));margin-inline:auto}.site-header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-block:22px;border-bottom:1px solid var(--line)}.wordmark{text-decoration:none;font-weight:600;font-size:15px}nav{display:flex;gap:24px}nav a{font-size:14px;text-decoration:none}.hero{display:grid;grid-template-columns:1.08fr 1fr;align-items:center;gap:48px;padding-block:40px}.hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(38px,4.2vw,58px);letter-spacing:-1.8px;max-width:500px}.profession{font-size:16px;color:var(--muted);margin-top:22px}.intro{font-size:21px;line-height:1.5;margin-top:22px}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:48px;padding:12px 22px;border:1px solid var(--green);background:var(--green);color:white;text-decoration:none;border-radius:3px;font-weight:500}.button:hover{background:#17382b;color:#fff}.hero .button{margin-top:26px}.portrait img{display:block;width:100%;height:auto;border-radius:3px}.without-photo{grid-template-columns:1fr}.without-photo .hero-text{max-width:800px}.section{border-top:1px solid var(--line);padding-block:30px}h2{font-family:Georgia,"Times New Roman",serif;font-size:30px;letter-spacing:-.5px}h3{font-size:21px}.service-list{list-style:none;padding:0;margin:24px 0 0;counter-reset:service;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.service-list li{counter-increment:service;border-top:2px solid var(--green);padding-top:16px}.service-list p{margin-top:12px;color:var(--muted);font-size:16px}.details{display:grid;grid-template-columns:1.65fr 1fr;gap:64px;border-top:1px solid var(--line);padding-block:30px}.details h2{margin-bottom:18px}.details p{max-width:650px;color:var(--muted)}.text-link{display:inline-block;margin-top:18px;color:var(--green)}.details #reviews .text-link{margin-top:0}.contact{display:grid;grid-template-columns:1.3fr 1fr;gap:56px;background:var(--soft);padding:30px;margin-bottom:0;border-top:0}.contact p{margin-top:16px;max-width:540px}.contact-links{display:flex;flex-wrap:wrap;gap:10px 22px;list-style:none;padding:0;margin:0}.contact-links a{display:inline-block;padding-block:5px;font-weight:600;color:var(--green)}.phone{font-size:15px;color:var(--muted)}.site-footer{padding-block:22px;font-size:13px;color:var(--muted)}.skip{position:absolute;left:20px;top:-100px;background:#fff;padding:12px;z-index:5}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}p,a,h1,h2,h3{overflow-wrap:anywhere}.admin-body{background:#f2f4ef}.login{width:min(440px,calc(100% - 40px));margin:60px auto;padding:28px;background:white;border:1px solid var(--line)}.login h1{font-size:30px;margin-block:24px 12px}.login form{margin-top:22px}.login label{display:block;margin-block:16px}.admin-header{display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:900px;margin:auto;padding:20px}.editor{width:min(900px,calc(100% - 40px));margin:20px auto 50px}.editor>p{margin-block:12px 22px}.editor h1{font-size:34px}.admin-body input:not([type=hidden]),.admin-body textarea{display:block;width:100%;min-width:0;border:1px solid #87968b;background:#fff;border-radius:3px;padding:10px;color:var(--ink);margin:6px 0 16px}.admin-body textarea{resize:vertical}.admin-body input[type=file]{padding:8px;font-size:14px}fieldset{border:1px solid var(--line);background:white;margin:24px 0;padding:22px;min-width:0}legend{font-size:21px;font-weight:600;padding-inline:8px}.hint{font-size:14px;color:var(--muted);margin-block:10px 18px}button:not(.button){padding:9px 14px;background:#fff;border:1px solid #87968b;border-radius:3px;color:var(--green);min-height:44px}.service-editor{padding-block:16px;border-bottom:1px solid var(--line);margin-bottom:16px}.service-actions{display:flex;flex-wrap:wrap;gap:10px}.save-bar{position:sticky;bottom:0;display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:14px;background:#e9eee5;border:1px solid var(--line);z-index:2}.save-bar span{font-size:13px}#status{padding-block:14px;min-height:48px}#status.error{color:#9d2222}#preview-section{margin-top:24px}#preview{width:100%;height:850px;max-height:80vh;background:white;border:1px solid var(--line)}.preview-heading{display:flex;gap:12px;align-items:center;justify-content:space-between}.preview-heading h2{font-size:24px}#preview-section p{margin-block:16px}.login .button{width:100%}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.site-header{align-items:flex-start;flex-direction:column;gap:12px;padding-block:16px}nav{flex-wrap:wrap;gap:8px 20px}.hero{grid-template-columns:1fr;gap:26px;padding-block:28px}.hero h1{font-size:42px;letter-spacing:-1px}.profession{margin-top:18px}.intro{font-size:19px;margin-top:18px}.portrait{max-width:560px}.service-list{grid-template-columns:1fr;gap:22px;margin-top:22px}.service-list li{padding-top:12px}.service-list p{margin-top:8px}.details{grid-template-columns:1fr;gap:28px;padding-block:26px}.contact{grid-template-columns:1fr;gap:20px;padding:24px 20px}.section{padding-block:26px}h2{font-size:28px}.contact-links{gap:10px 20px}.editor{width:calc(100% - 28px)}fieldset{padding:16px}.save-bar{position:static}.save-bar button{width:100%}.login{margin-block:30px;padding:22px}}

/* Public page: warm paper, editorial typography, restrained green accents. */
.public-site{--paper:#f7f6f1;--ink:#26362f;--muted:#59655e;--green:#204d3b;--line:#d8ddd2;background:var(--paper)}
.public-site .wrap{width:min(1100px,calc(100% - 72px))}
.public-site .site-header{padding-block:23px;border-bottom:1px solid var(--line)}
.public-site .wordmark{display:flex;align-items:center;gap:12px;font-size:14px;letter-spacing:.15px}
.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:var(--green);color:#fff;font-family:Georgia,serif;font-size:17px;font-weight:400;border-radius:50%;letter-spacing:-1px;flex-shrink:0}
.public-site nav{gap:27px}
.public-site nav a{padding-block:8px;color:var(--muted);font-size:14px}
.public-site nav a:hover{text-decoration:underline;color:var(--green)}
.public-site .hero{padding-block:42px 38px;grid-template-columns:1.05fr 1fr;gap:46px}
.public-site .hero h1{font-size:clamp(42px,4.6vw,62px);line-height:1.04;font-weight:400;letter-spacing:-2px;max-width:470px}
.public-site .profession{font-size:15px;line-height:1.65;margin-top:23px;max-width:490px}
.public-site .intro{font-size:20px;line-height:1.55;max-width:540px;margin-top:22px}
.public-site .hero .button{margin-top:25px;font-size:15px;padding:13px 21px;gap:35px;border-radius:2px}
.public-site .button span{font-size:19px;font-weight:400}
.public-site .portrait{background:#fff;padding:9px;border:1px solid var(--line);border-radius:2px}
.public-site .portrait img{height:auto;width:100%;display:block;border-radius:0}
.public-site .without-photo{grid-template-columns:1fr}
.public-site .without-photo .hero-text{max-width:820px;display:grid;grid-template-columns:1fr 1fr;column-gap:54px;align-items:start}
.public-site .without-photo h1{grid-column:1;grid-row:1 / span 3}
.public-site .without-photo .profession{grid-column:2;margin-top:0}
.public-site .without-photo .intro{grid-column:2;margin-top:14px;font-size:19px}
.public-site .without-photo .button{grid-column:2;justify-self:start;margin-top:20px}
.public-site h2{font-family:Georgia,"Times New Roman",serif;font-size:29px;font-weight:400;letter-spacing:-.7px}
.public-site .section{padding-block:29px}
.public-site .services{display:grid;grid-template-columns:230px minmax(0,1fr);gap:40px}
.public-site .services h2{max-width:190px}
.public-site .service-list{display:block;margin:0;counter-reset:none}
.public-site .service-list li{counter-increment:none;border-top:0;display:grid;grid-template-columns:215px minmax(0,1fr);gap:25px;padding:18px 0;border-bottom:1px solid var(--line)}
.public-site .service-list li:first-child{padding-top:0}
.public-site .service-list li:last-child{border-bottom:0;padding-bottom:0}
.public-site .service-list h3{font-family:Georgia,"Times New Roman",serif;font-size:22px;line-height:1.25;letter-spacing:-.3px;color:var(--green)}
.public-site .service-list p{font-size:15px;line-height:1.65;margin:0}
.public-site .details{grid-template-columns:1.65fr 1fr;gap:65px;padding-block:29px 32px}
.public-site .details section:first-child{padding-right:40px;border-right:1px solid var(--line)}
.public-site .details h2{margin-bottom:15px}
.public-site .details p{font-size:15px;line-height:1.7}
.public-site .text-link{font-size:15px;font-weight:600;text-decoration-thickness:1px;margin-top:17px}
.public-site .text-link span[aria-hidden]{display:inline-block;margin-left:6px;font-size:17px}
.public-site .contact{border:0;background:var(--green);color:#fff;padding:30px 32px;grid-template-columns:1.25fr 1fr;gap:45px;border-radius:2px}
.public-site .contact h2{font-size:31px;color:#fff}
.public-site .contact p{font-size:16px;line-height:1.65;margin-top:12px;color:#eef3ed}
.public-site .contact-links{gap:8px;display:flex;flex-wrap:wrap;margin-top:1px}
.public-site .contact-links a{border:1px solid #769284;border-radius:2px;padding:9px 12px;min-height:44px;color:#fff;font-size:14px;text-decoration:none;font-weight:400;white-space:nowrap}
.public-site .contact-links a:hover{background:#35614f;border-color:#fff}
.public-site .contact .phone{font-size:17px;margin-top:16px;letter-spacing:.3px}
.public-site .contact .external-note{font-size:12px;color:#d6e2d8;line-height:1.6;margin-top:11px;max-width:340px}
.public-site .site-footer{display:flex;align-items:center;justify-content:space-between;padding-block:18px;font-size:12px;letter-spacing:.2px}
.public-site .site-footer a{display:grid;place-items:center;min-width:44px;min-height:44px;font-size:20px;text-decoration:none}
@media(max-width:980px){.public-site .services{grid-template-columns:190px minmax(0,1fr);gap:28px}.public-site .service-list li{grid-template-columns:180px minmax(0,1fr);gap:20px}.public-site .contact{grid-template-columns:1fr 1fr;gap:30px}.public-site .hero{gap:30px}}
@media(max-width:760px){.public-site .wrap{width:calc(100% - 36px)}.public-site .site-header{padding-block:16px;gap:13px}.public-site .wordmark{font-size:14px}.public-site nav{gap:8px 22px}.public-site nav a{font-size:13px;padding-block:2px}.public-site .hero{grid-template-columns:1fr;padding-block:28px 30px;gap:26px}.public-site .hero h1{font-size:45px;line-height:1.08;letter-spacing:-1.5px;max-width:440px}.public-site .profession{font-size:14px;margin-top:18px}.public-site .intro{font-size:19px;margin-top:18px}.public-site .portrait{padding:6px;max-width:560px}.public-site .without-photo .hero-text{display:block}.public-site .without-photo .profession{margin-top:20px}.public-site .without-photo .intro{margin-top:18px}.public-site .without-photo .button{margin-top:23px}.public-site .services{grid-template-columns:1fr;gap:24px;padding-block:26px}.public-site .services h2{max-width:none}.public-site .service-list li{grid-template-columns:1fr;gap:9px;padding-block:18px}.public-site .service-list h3{font-size:22px}.public-site .service-list p{font-size:15px}.public-site .details{grid-template-columns:1fr;gap:26px;padding-block:26px}.public-site .details section:first-child{border:0;padding-right:0}.public-site .contact{grid-template-columns:1fr;padding:25px 21px;gap:23px}.public-site .contact-links{gap:8px}.public-site .contact-links a{font-size:14px;padding-inline:11px}.public-site h2{font-size:28px}.public-site .contact h2{font-size:29px}}

/* Mobile layout: intrinsic photo sizes must never widen grid tracks. */
.public-site .hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.public-site .hero>*,.public-site .services>*,.public-site .service-list li>*,.public-site .details>*,.public-site .contact>*{min-width:0}
.public-site .portrait img{max-width:100%;height:auto;object-fit:contain}
.public-site .hero.without-photo{grid-template-columns:minmax(0,1fr)}
.public-site [id]{scroll-margin-top:20px}
@media(max-width:1024px){
 .public-site .wrap{width:calc(100% - 48px)}
 .public-site .hero{gap:28px}
 .public-site .contact{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .public-site .details{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:30px}
}
@media(max-width:760px){
 .public-site .wrap{width:calc(100% - 36px)}
 .public-site .site-header{gap:10px;align-items:stretch}
 .public-site .wordmark{min-height:44px}
 .public-site nav{display:flex;flex-wrap:wrap;gap:0 18px;align-items:center}
 .public-site nav a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;padding:4px 0}
 .public-site .hero{display:flex;flex-direction:column;align-items:stretch;gap:18px;padding-block:25px 28px}
 .public-site .hero-text{display:contents}
 .public-site .hero h1{order:0;font-size:clamp(36px,10vw,48px);max-width:none;margin:0;line-height:1.08;letter-spacing:-1.2px}
 .public-site .hero .portrait{order:1;width:100%;max-width:560px;margin:0;padding:5px}
 .public-site .hero .profession{order:2;margin:0;font-size:15px;line-height:1.6;max-width:none}
 .public-site .hero .intro{order:3;margin:0;font-size:18px;line-height:1.55;max-width:none}
 .public-site .hero .button{order:4;width:100%;margin:2px 0 0;min-height:50px;justify-content:space-between;padding:12px 18px;font-size:16px}
 .public-site .services{grid-template-columns:minmax(0,1fr);gap:22px}
 .public-site .service-list li{grid-template-columns:minmax(0,1fr);gap:9px}
 .public-site .details{grid-template-columns:minmax(0,1fr);gap:26px}
 .public-site .text-link{padding-block:8px;min-height:44px}
 .public-site .contact{grid-template-columns:minmax(0,1fr);padding:24px 20px;gap:22px}
 .public-site .contact-links{display:grid;grid-template-columns:minmax(0,1fr);gap:9px}
 .public-site .contact-links li{min-width:0}
 .public-site .contact-links a{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;font-size:16px;padding:10px 14px;white-space:normal}
 .public-site .contact .external-note{font-size:13px;max-width:none}
 .public-site .contact .phone{font-size:18px}
 .public-site .site-footer{gap:16px}
}
@media(max-width:359px){
 .public-site .wrap{width:calc(100% - 28px)}
 .public-site nav{gap:0 14px}
 .public-site nav a{font-size:13px}
 .public-site .hero h1{font-size:36px}
 .public-site .contact{padding:22px 16px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
