:root{--muted:#53665c;--line:#d4ddd5;--white:#fffef9}
html{scroll-behavior:smooth;scroll-padding-top:1rem}
body{overflow-wrap:anywhere}
header{background:var(--white);border-bottom:1px solid var(--line)}
header .wrap{min-height:76px;flex-wrap:wrap}
.brand{display:inline-flex;align-items:center;gap:.6rem}
header nav{display:flex;gap:.85rem;flex-wrap:wrap;font-size:.9rem}
header nav a{text-decoration:none}
.hero h1{font-size:clamp(2.9rem,6.5vw,5.4rem)}
h2{font-size:clamp(2rem,4vw,3.3rem)}
p{max-width:65ch}
.section{padding-block:clamp(2rem,5vw,4rem)}
.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1.25rem}
.card,.contact-panel{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:1.3rem;min-width:0}
.contact-panel{display:flex;flex-direction:column;gap:.5rem}
.contact-panel h2{font:650 1.15rem/1.35 system-ui,sans-serif;letter-spacing:0}
.contact-panel h2 a{text-decoration:none}
.contact-panel p{margin:.25rem 0;color:var(--muted);font-size:.9rem}
.cms-image{display:block;width:100%;height:auto;border-radius:10px}
.contact-panel .cms-image{aspect-ratio:4/3;object-fit:contain;background:#edf1eb}
#cases .contact-panel .cms-image{object-fit:cover}
figure{margin:0}
figcaption{font-size:.85rem;color:var(--muted);margin:.5rem 0}
.cms-prose{max-width:72ch;overflow-wrap:anywhere}
.cms-prose p{white-space:normal}
.contact-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:2.5rem}
.button,.btn,button{font:650 .95rem/1.3 system-ui,sans-serif;cursor:pointer}
.button,.btn{border:1px solid transparent;background:var(--accent);color:var(--ink);padding:.85rem 1.1rem;border-radius:999px;display:inline-block;text-decoration:none}
.outline{background:transparent;border-color:var(--ink);margin-right:.5rem}
.footer-contact{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding-bottom:2rem}
.form{max-width:780px;display:grid;gap:1rem;margin:1.5rem 0 2rem}
.form label{display:grid;gap:.4rem;font-size:.92rem;font-weight:650;text-transform:none}
.form input,.form textarea,.form select{font:400 1rem/1.5 system-ui,sans-serif;color:var(--ink);background:white;border:1px solid #7a8d81;border-radius:8px;width:100%;padding:.7rem;min-width:0}
.form textarea{min-height:120px}
.form input[type=checkbox]{width:auto;justify-self:start}
.form .btn{justify-self:start}
.cms-filters{display:flex;flex-wrap:wrap;align-items:end;gap:1rem;max-width:none}
.cms-filters label{flex:1 1 10rem}
.admin-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.8rem;max-width:780px}
.admin-gallery img{width:100%;height:120px;object-fit:contain}
.admin-gallery button,.editor-tools button{background:white;border:1px solid #7a8d81;border-radius:6px;padding:.5rem;margin:.2rem}
.editor-tools{display:flex;flex-wrap:wrap}
output{white-space:pre-wrap}
details{padding:1rem;border:1px solid var(--line);border-radius:10px;margin-block:1rem}
summary{cursor:pointer;font-weight:650}
.notice,.site-banner{padding:1rem;background:#e4eee3;border-radius:8px}
:focus-visible{outline:3px solid #9b4b00;outline-offset:4px}
@media(max-width:640px){.contact-layout{grid-template-columns:1fr;gap:1.5rem}.hero .wrap{padding-block:3rem}.hero .illustration{max-width:180px}.footer-contact .button{width:100%;text-align:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.hero-contact{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.5rem}
.hero-contact .outline{color:var(--paper);border-color:var(--paper);margin-right:0}
