:root,:root[data-theme]{
  --ink:#14213d; --muted:#4b5468; --paper:#f7f3ea; --card:#fffdf8; --line:#e2dccd; --accent:#14213d; --accent-ink:#f7f3ea; --gold:#b7791f;
  --ginta-accent:#14213d; --ginta-accent-ink:#f7f3ea; --ginta-radius:6px;
  --step-0:clamp(1rem,.96rem + .2vw,1.125rem); --step-1:clamp(1.2rem,1.1rem + .5vw,1.5rem); --step-2:clamp(1.8rem,1.3rem + 1.8vw,2.8rem); --step-3:clamp(2.6rem,1.6rem + 4.2vw,5.4rem);
  --section:clamp(3.5rem,2.5rem + 4vw,6.5rem); --container:72rem; --gutter:clamp(1rem,4vw,3rem);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--step-0)/1.6 Inter,system-ui,sans-serif}
h1,h2,h3{font-family:Fraunces,Georgia,serif;margin:0;line-height:1.05;letter-spacing:-.015em}
h1{font-size:var(--step-3);font-weight:700}
h2{font-size:var(--step-2);font-weight:700}
h3{font-size:var(--step-1);font-weight:600}
a{color:inherit}
img{display:block;max-width:100%}
.th-head{max-width:var(--container);margin:0 auto;padding:1.1rem var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:1rem}
.th-logo{text-decoration:none;font:700 1.4rem/1 Fraunces,serif;display:flex;flex-direction:column}
.th-logo span{font:600 .75rem/1.6 Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.th-nav{display:flex;align-items:center;gap:1.25rem}
.th-nav a:not(.th-btn){text-decoration:none;font-weight:500}
@media (max-width:560px){.th-nav a:not(.th-btn){display:none}}
.th-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.4rem;border-radius:6px;background:var(--accent);color:var(--accent-ink);font-weight:600;text-decoration:none;border:0;font-size:1rem;cursor:pointer}
.th-btn-small{min-height:44px;padding:.55rem 1rem}
.th-link{font-weight:600;text-underline-offset:3px}
.th-hero{max-width:var(--container);margin:0 auto;padding:clamp(1.5rem,4vw,4rem) var(--gutter) var(--section);display:grid;gap:clamp(2rem,4vw,4rem);align-items:center}
@media (min-width:900px){.th-hero{grid-template-columns:1.15fr .85fr}.th-hero .th-photo{margin:0;aspect-ratio:4/5}}
.th-kicker{color:var(--gold);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.85rem;margin:0 0 1rem;color:#8a5a12}
.th-hero h1{max-width:14ch}
.th-lede{font-size:var(--step-1);line-height:1.5;color:var(--muted);max-width:40rem;margin:1.25rem 0 2rem}
.th-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem}
.th-photo{margin:clamp(2rem,5vw,4rem) 0 0;border-radius:8px;overflow:hidden;aspect-ratio:16/8;background:var(--ink)}
.th-photo img{width:100%;height:100%;object-fit:cover}
@media (max-width:640px){.th-photo{aspect-ratio:4/3}}
.th-services{background:var(--ink);color:var(--paper);padding:var(--section) 0}
.th-services h2,.th-grid{max-width:var(--container);margin-left:auto;margin-right:auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.th-grid{display:grid;gap:2rem;margin-top:2.5rem}
@media (min-width:760px){.th-grid{grid-template-columns:repeat(2,1fr)}}
.th-grid article{border-top:1px solid rgba(247,243,234,.25);padding-top:1.25rem}
.th-grid p{color:#d6d2c6;margin:.6rem 0 0}
.th-call{max-width:var(--container);margin:0 auto;padding:var(--section) var(--gutter)}
.th-call-head{max-width:40rem;margin-bottom:2rem}
.th-call-head p{color:var(--muted)}
.th-contact{max-width:46rem;margin:0 auto;padding:0 var(--gutter) var(--section)}
.th-form{display:grid;gap:1rem;margin-top:1.5rem}
@media (min-width:640px){.th-form{grid-template-columns:1fr 1fr}.th-wide{grid-column:1/-1}}
.th-form label span{display:block;font-weight:600;font-size:.95rem;margin-bottom:.35rem}
.th-form input,.th-form textarea{width:100%;font:inherit;padding:.75rem .9rem;border:1px solid #c9c1ad;border-radius:6px;background:var(--card);color:var(--ink)}
.th-form button{justify-self:start}
.th-hidden{display:none}
.th-sent{display:none;background:#e8efe2;border-radius:6px;padding:1rem;margin-top:1rem}
.th-sent:target{display:block}
.th-foot{border-top:1px solid var(--line);padding:2rem 0;font-size:.95rem;color:var(--muted)}
.th-foot p{max-width:var(--container);margin:.25rem auto;padding:0 var(--gutter)}
.th-foot b{color:var(--ink)}
.legal{max-width:65ch;margin:0 auto;padding:2rem var(--gutter) var(--section)}
