:root { --ink:#172322; --soft-ink:#53615e; --paper:#fbfaf6; --sand:#eee9dd; --line:#d6d1c5; --green:#1d625b; --green-dark:#144943; --coral:#e6785f; --max:1120px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.65 "DM Sans", system-ui, sans-serif; }
a { color:inherit; }
.wrap { width:min(var(--max), calc(100% - 40px)); margin:auto; }
.site-header { padding:24px 0; border-bottom:1px solid var(--line); }
.nav { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; font-weight:700; letter-spacing:-.03em; font-size:1.12rem; line-height:1.1; }
.brand img { width:41px; height:41px; object-fit:contain; }
.brand small { display:block; color:var(--soft-ink); font-weight:500; letter-spacing:0; font-size:.74rem; margin-top:4px; }
.nav-links { display:flex; gap:24px; align-items:center; font-size:.92rem; font-weight:600; }
.nav-links a { text-decoration:none; }
.nav-links a:hover { color:var(--green); }
.menu { display:none; border:0; background:none; font:inherit; font-weight:700; padding:8px 0; }
.hero { padding:76px 0 54px; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center; }
.eyebrow, .section-label { text-transform:uppercase; font-weight:700; letter-spacing:.12em; font-size:.71rem; color:var(--green); }
h1,h2,h3 { letter-spacing:-.045em; line-height:1.12; margin:0; }
h1 { font:400 clamp(2.9rem, 6vw, 5.25rem)/1.03 "Libre Baskerville", Georgia, serif; margin:14px 0 24px; }
h2 { font:400 clamp(2rem, 4vw, 3.3rem)/1.13 "Libre Baskerville", Georgia, serif; }
h3 { font-size:1.2rem; }
.lede { font-size:1.12rem; max-width:615px; color:var(--soft-ink); margin:0 0 30px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:13px 19px; text-decoration:none; border-radius:3px; background:var(--green); color:white; font-weight:700; transition:.18s ease; }
.button:hover { background:var(--green-dark); transform:translateY(-1px); }
.button.secondary { background:transparent; border:1px solid var(--ink); color:var(--ink); }
.button.secondary:hover { background:var(--ink); color:white; }
.hero-note { margin-top:26px; font-size:.88rem; color:var(--soft-ink); }
.portrait { min-height:400px; border-radius:2px; overflow:hidden; box-shadow:13px 13px 0 var(--sand); background:var(--green); }
.portrait img { display:block; width:100%; height:100%; min-height:400px; object-fit:cover; object-position:47% 57%; }
.band { background:var(--sand); padding:27px 0; }
.facts { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.fact { display:flex; gap:12px; align-items:flex-start; }
.fact b { display:block; font-size:.96rem; } .fact span { color:var(--soft-ink); font-size:.88rem; }
.dot { width:9px; height:9px; border-radius:50%; background:var(--coral); margin-top:8px; flex:0 0 auto; }
section { padding:94px 0; }
.intro { max-width:690px; } .intro h2 { margin:13px 0 19px; } .intro p { color:var(--soft-ink); margin:0; }
.approach { display:grid; grid-template-columns:.78fr 1.22fr; gap:80px; }
.steps { border-top:1px solid var(--line); }
.step { display:grid; grid-template-columns:54px 1fr; gap:18px; padding:24px 0; border-bottom:1px solid var(--line); }
.number { color:var(--coral); font:400 1.1rem "Libre Baskerville", serif; padding-top:3px; }
.step p { margin:7px 0 0; color:var(--soft-ink); }
.services { background:#f1f5f1; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:37px; }
.service { background:var(--paper); border:1px solid #dce4de; padding:26px; }
.service p { color:var(--soft-ink); font-size:.94rem; margin:10px 0 0; }
.prices { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start; }
.price-list { border-top:2px solid var(--ink); }
.price { display:flex; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--line); font-weight:600; }
.price span:last-child { font:400 1.2rem "Libre Baskerville", Georgia, serif; }
.small { font-size:.88rem; color:var(--soft-ink); }
.testimonials { padding:68px 0 78px; }
.quote-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:36px; }
blockquote { margin:0; padding:25px; border-top:3px solid var(--coral); background:white; min-height:230px; display:flex; flex-direction:column; justify-content:space-between; }
blockquote p { font:italic 1rem/1.7 "Libre Baskerville", Georgia, serif; margin:0; }
blockquote cite { font-style:normal; font-weight:700; font-size:.82rem; margin-top:18px; color:var(--soft-ink); }
.about { display:grid; grid-template-columns:1fr 1fr; gap:64px; border-top:1px solid var(--line); }
.about-copy h2 { margin:13px 0 19px; }
.about-copy p { color:var(--soft-ink); }
.credentials { padding:28px; background:var(--green); color:white; }
.credentials h3 { margin-bottom:17px; }
.credentials ul { padding:0; margin:0; list-style:none; }
.credentials li { border-top:1px solid rgba(255,255,255,.28); padding:13px 0; font-size:.94rem; }
.faq { background:var(--sand); }
.faq-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:70px; }
.faq-list { border-top:1px solid var(--line); }
details { border-bottom:1px solid var(--line); padding:18px 0; }
summary { cursor:pointer; font-weight:700; list-style:none; padding-right:30px; position:relative; }
summary::-webkit-details-marker { display:none; }
summary:after { content:"+"; position:absolute; right:1px; top:-3px; font-size:1.4rem; color:var(--green); font-weight:400; }
details[open] summary:after { content:"−"; }
details p { margin:12px 28px 0 0; color:var(--soft-ink); font-size:.94rem; }
.contact { background:var(--green); color:white; text-align:center; }
.contact .section-label { color:#b8d8cf; } .contact h2 { margin:13px auto 19px; max-width:700px; } .contact p { color:#d2e5df; max-width:560px; margin:0 auto 28px; }
.contact-phone { display:block; width:max-content; margin:18px auto 0; color:white; font-weight:700; text-decoration:none; }
.contact-phone:hover { text-decoration:underline; }
.contact .button { background:var(--coral); } .contact .button:hover { background:#cc614b; }
footer { background:#11201e; color:#d1dbd7; padding:29px 0; font-size:.82rem; }
.footer { display:flex; justify-content:space-between; gap:20px; } footer a { color:white; }
@media (max-width:760px) { .wrap { width:min(100% - 32px, var(--max)); } .site-header { padding:17px 0; } .menu { display:block; } .nav-links { display:none; position:absolute; z-index:3; top:75px; left:16px; right:16px; background:var(--paper); border:1px solid var(--line); padding:16px; flex-direction:column; align-items:flex-start; box-shadow:0 12px 24px #18242116; } .nav-links.open { display:flex; } .hero { padding:57px 0 45px; } .hero-grid,.approach,.prices,.about,.faq-grid { grid-template-columns:1fr; gap:36px; } .portrait,.portrait img { min-height:330px; } .facts,.service-grid,.quote-grid { grid-template-columns:1fr; } .facts { gap:14px; } section { padding:64px 0; } .quote-grid { gap:12px; } blockquote { min-height:0; } .footer { flex-direction:column; } }
