/* Self-hosted fonts (SIL OFL, see fonts/OFL-*.txt). No third-party font requests. */
@font-face{font-family:'Bevan';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/bevan-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Karla';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/karla-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Karla';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/karla-latin-500-normal.woff2) format('woff2');}

:root{
  --bone:#EEE2D4;
  --ink:#1C1A17;
  --moss:#4E5740;
  --bark:#7A6247;
  --stone:#E5D8C7;
  --sage:#C8CBB6;
  --muted:#4A463E;
  --bark-ink:#6E5840; /* bark darkened for small text: 5.3:1 on bone, 4.8:1 on stone */
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bone);color:var(--ink);font-family:'Karla',system-ui,sans-serif;font-size:17px;line-height:1.7;}
h1,h2,h3{font-family:'Bevan',Georgia,serif;font-weight:400;line-height:1.15;letter-spacing:0.01em;margin:0;}
h1{font-size:clamp(30px,5vw,50px);}
h2{font-size:clamp(24px,3.4vw,32px);}
h3{font-size:20px;}
p{margin:0 0 1em;}
a{color:inherit;}
img{max-width:100%;height:auto;}
.wrap{max-width:1080px;margin:0 auto;padding:0 28px;}
.center{text-align:center;}

/* nav */
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 28px;border-bottom:1px solid rgba(28,26,23,.2);max-width:1080px;margin:0 auto;flex-wrap:wrap;}
.nav .brand{font-family:'Bevan',Georgia,serif;font-size:19px;text-decoration:none;letter-spacing:.02em;}
.nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0;font-size:15px;flex-wrap:wrap;}
.nav ul a{text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent;}
.nav ul a:hover,.nav ul a:focus-visible,.nav ul a[aria-current]{border-bottom-color:var(--bark);}
.nav .cta{background:var(--ink);color:var(--bone);padding:9px 18px;text-decoration:none;font-size:14px;}
.nav .cta:hover{background:var(--moss);}

/* buttons + ornaments */
.btn{display:inline-block;background:var(--ink);color:var(--bone);text-decoration:none;padding:14px 32px;font-size:15px;border:0;cursor:pointer;font-family:inherit;}
.btn:hover{background:var(--moss);}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink);}
.btn.ghost:hover{background:var(--ink);color:var(--bone);}
.rule{display:flex;align-items:center;justify-content:center;gap:12px;margin:18px auto;}
.rule span{width:64px;height:1px;background:var(--bark);}
.rule i{width:5px;height:5px;border-radius:50%;background:var(--bark);}
.rule.left{justify-content:flex-start;}
.water{display:block;width:min(420px,70vw);height:30px;margin:10px auto 0;}
.eyebrow{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--bark-ink);margin-bottom:10px;}

/* hero */
.hero{text-align:center;padding:52px 0 40px;}
.hero img{width:min(440px,80vw);display:block;margin:0 auto;}
.hero h1{margin-top:24px;}
.hero .lede{max-width:52ch;margin:0 auto;color:var(--muted);}
.hero .actions{margin-top:26px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}

/* badges */
.badges{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;padding:36px 0 18px;}
.badges div{text-align:center;padding:18px 12px;border-top:1px solid rgba(28,26,23,.25);}
.badges strong{display:block;font-size:16px;font-weight:500;}
.badges span{font-size:14px;color:var(--muted);}

/* section spacing */
section{padding:56px 0;}
.band{background:var(--moss);color:var(--bone);}
.band h2{color:var(--bone);}
.band p{color:#DDE0D2;}
.band .rule span,.band .rule i{background:var(--sage);}
.band .btn{background:var(--bone);color:var(--ink);}
.band .btn:hover{background:var(--sage);}
.stone{background:var(--stone);}

/* category cards */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;margin-top:32px;}
.card{text-decoration:none;display:block;}
.card figure{margin:0;background:var(--stone);border:1px solid rgba(28,26,23,.28);border-radius:118px 118px 6px 6px;aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;overflow:hidden;transition:transform .2s;}
.card figure img{width:100%;height:100%;object-fit:cover;}
.card:hover figure{transform:translateY(-3px);}
.card h3{font-family:'Karla',sans-serif;font-size:18px;font-weight:500;margin-top:14px;}
.card p{margin:2px 0 0;color:var(--muted);font-size:15px;}

/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:28px;margin-top:32px;}
.step .num{font-family:'Bevan',Georgia,serif;font-size:34px;color:var(--bark);line-height:1;}
.step h3{margin:10px 0 6px;font-family:'Karla',sans-serif;font-weight:500;font-size:18px;}
.step p{color:var(--muted);font-size:15px;margin:0;}

/* two-column */
.split{display:grid;grid-template-columns:260px 1fr;gap:44px;align-items:center;}
.split img{width:100%;display:block;}
.split p{max-width:58ch;}
@media (max-width:720px){.split{grid-template-columns:1fr;text-align:center;}.split img{max-width:240px;margin:0 auto;}.split .rule{justify-content:center;}}

/* prose */
.prose{max-width:66ch;margin-left:auto;margin-right:auto;}
.prose h2{margin-top:36px;}
.prose ul{padding-left:20px;}

/* form */
form.quote{max-width:640px;margin:0 auto;display:grid;gap:18px;}
form.quote label{display:block;font-size:14px;letter-spacing:.04em;margin-bottom:6px;}
form.quote input,form.quote select,form.quote textarea{width:100%;font-family:inherit;font-size:16px;padding:12px 14px;border:1px solid rgba(28,26,23,.35);background:#F6EEE3;color:var(--ink);}
form.quote textarea{min-height:130px;resize:vertical;}
form.quote fieldset{border:1px solid rgba(28,26,23,.25);padding:14px 16px;margin:0;}
form.quote legend{font-size:14px;letter-spacing:.04em;padding:0 6px;}
form.quote .checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;}
form.quote .checks label{display:flex;align-items:center;gap:8px;font-size:16px;letter-spacing:0;margin:0;}
form.quote .checks input{width:auto;}
form.quote .row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:560px){form.quote .row{grid-template-columns:1fr;}}
form.quote .hint{font-size:14px;color:var(--muted);margin-top:6px;}

/* footer */
footer{background:var(--ink);color:#9A9282;padding:44px 0;font-size:15px;}
footer .cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px;}
footer h3{font-size:18px;color:var(--bone);margin-bottom:8px;}
footer a{color:#C9C1B1;text-decoration:none;}
footer a:hover{text-decoration:underline;}
footer ul{list-style:none;margin:0;padding:0;}
footer li{margin-bottom:6px;}
footer .fine{margin-top:32px;padding-top:18px;border-top:1px solid rgba(238,226,212,.15);font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}
@media (max-width:720px){footer .cols{grid-template-columns:1fr;}}

/* Real photos in service-page frames: fill the arch, and stay large on phones */
.split figure img{width:100%;height:100%;object-fit:cover;max-width:none;}
@media (max-width:720px){.split figure{width:100%;max-width:440px;margin:0 auto !important;}}

/* Recent work + originals */
.work .card figure{border-radius:6px;}
.work .card .quote{margin-top:10px;padding-left:12px;border-left:2px solid var(--bark);font-style:italic;color:var(--ink);font-size:15px;}
.work .card .quote cite{display:block;font-style:normal;color:var(--muted);font-size:13px;margin-top:4px;}
.work .more{margin-top:28px;}
@media (max-width:720px){.wrap.split{grid-template-columns:1fr !important;}.split .prose{text-align:left;}}
/* Logo shown in a photo frame until a real photo exists */
.card figure img.logo-fill,.split figure img.logo-fill{object-fit:contain;padding:12%;box-sizing:border-box;}

/* ---------- Accessibility ---------- */
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--bone);padding:10px 16px;z-index:100;text-decoration:none;}
.skip:focus{left:12px;top:12px;}
:focus-visible{outline:3px solid var(--moss);outline-offset:3px;}
.band :focus-visible,footer :focus-visible{outline-color:var(--bone);}
footer .a11y{margin:28px 0 0;font-size:14px;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}.card figure{transition:none;}.card:hover figure{transform:none;}}

/* ---------- Former inline styles (moved here so the CSP can block inline styles) ---------- */
.hero.pb-20{padding-bottom:20px;}
.hero.pb-24{padding-bottom:24px;}
section.pt-20{padding-top:20px;}
section.pt-30{padding-top:30px;}
.mt-30{margin-top:30px;}
.text-left{text-align:left;}
.muted{color:var(--muted);}
.lede-c{max-width:56ch;margin:0 auto 22px;}
.lede-muted{max-width:56ch;margin:0 auto;color:var(--muted);}
h3.faq-q{font-family:'Karla',sans-serif;font-weight:500;font-size:18px;margin-top:22px;}
.eyebrow.on-dark{color:var(--sage);}
.wrap.split.even{grid-template-columns:1fr 1fr;}
.wrap.split.wide{grid-template-columns:1fr 1.2fr;}
@media (max-width:720px){.wrap.split.even,.wrap.split.wide{grid-template-columns:1fr;}}
figure.arch,figure.arch-plain{margin:0;border:1px solid rgba(28,26,23,.28);border-radius:118px 118px 6px 6px;aspect-ratio:4/5;overflow:hidden;}
figure.arch{background:var(--stone);display:flex;align-items:center;justify-content:center;}
@media (max-width:720px){.split figure.arch,.split figure.arch-plain{margin:0 auto;}}
.hero img.badge-md{width:min(320px,70vw);}
.hero img.badge-sm{width:min(280px,60vw);}
.hp{display:none;}

/* ---------- Form additions ---------- */
form.quote .consent label{display:flex;gap:10px;align-items:flex-start;font-size:15px;letter-spacing:0;line-height:1.5;}
form.quote .consent input{width:auto;margin-top:4px;flex:none;}
form.quote .terms{font-size:14px;color:var(--muted);margin:0;}
