:root { --paper:#f4eddd; --ink:#142a32; --muted:#615849; --brass:#76552d; --rule:#b9a585; --cream:#fff7e6; --serif:Georgia,'Times New Roman',serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:2rem; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--serif); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid var(--brass); outline-offset:5px; }
.page { max-width:1400px; margin:auto; padding:0 76px; }
.skip-link { position:fixed; top:-100px; left:1rem; z-index:10; background:var(--ink); color:var(--cream); padding:1rem; }
.skip-link:focus { top:1rem; }
.masthead { display:flex; flex-direction:column; align-items:center; padding:23px 0 18px; border-bottom:4px double var(--brass); }
.wordmark { display:block; width:min(470px,100%); }
.wordmark img { display:block; width:100%; height:auto; }
nav { display:flex; align-items:center; justify-content:center; gap:30px; margin-top:18px; font-size:11px; text-transform:uppercase; letter-spacing:2px; }
nav a { padding:10px 0; }
nav a:hover { color:var(--brass); }
.nav-ornament { color:var(--brass); font-size:10px; }
.hero { min-height:670px; position:relative; padding:61px 0 68px; border-bottom:4px double var(--brass); overflow:hidden; }
.hero-copy { position:relative; z-index:1; max-width:620px; }
.eyebrow { margin:0; font-size:11px; line-height:1.8; font-weight:400; letter-spacing:2px; text-transform:uppercase; color:var(--brass); }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(52px,5.5vw,74px); font-weight:400; letter-spacing:-2.5px; line-height:1.09; margin:24px 0 29px; }
h1 em { font-weight:400; color:var(--brass); }
.intro { max-width:470px; font-size:20px; line-height:1.65; margin-bottom:18px; }
.intro::first-letter { float:left; font-size:58px; line-height:.88; padding:8px 8px 0 0; color:var(--brass); }
.hero-detail { max-width:467px; color:var(--muted); font-size:17px; line-height:1.85; margin-bottom:27px; }
.text-link { display:inline-flex; align-items:center; gap:32px; padding:0 0 9px; border-bottom:1px solid var(--brass); font-size:16px; font-style:italic; }
.text-link span { color:var(--brass); font-size:27px; line-height:1; }
.text-link:hover { color:var(--brass); }
.hero-art { position:absolute; right:-9px; top:36px; width:44%; bottom:40px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.hero-art img { display:block; width:100%; height:auto; max-height:540px; object-fit:contain; mix-blend-mode:multiply; filter:grayscale(1) sepia(.4); opacity:.64; }
.plate-caption { margin-top:18px; color:var(--muted); text-align:center; text-transform:uppercase; font-size:9px; letter-spacing:1.3px; line-height:1.9; }
.work { padding:49px 0 60px; }
.section-heading { display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; margin-bottom:36px; }
h2 { font-size:42px; font-weight:400; letter-spacing:-1.2px; line-height:1.17; margin:0; }
.services { display:grid; grid-template-columns:1fr 1fr; column-gap:66px; }
.service { display:flex; gap:22px; padding:29px 0 34px; border-top:1px solid var(--rule); }
.service-number { min-width:31px; padding-top:3px; color:var(--brass); font-size:25px; font-style:italic; }
h3 { font-size:28px; font-weight:400; line-height:1.2; letter-spacing:-.5px; margin:0 0 17px; }
.service p { color:var(--muted); font-size:17px; line-height:1.85; margin:0; }
.contact { background:#092832; color:var(--cream); display:grid; grid-template-columns:1fr 1.12fr; column-gap:80px; padding:55px 56px 38px; margin:0 -28px; border:1px solid #092832; outline:1px solid var(--brass); outline-offset:7px; }
.contact .eyebrow { color:#dbba7b; margin-bottom:22px; }
.contact h2 { font-size:47px; margin-bottom:24px; }
.contact-copy > p:last-child { max-width:315px; color:#e2d9c4; font-size:17px; line-height:1.85; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.field { display:flex; flex-direction:column; gap:9px; margin-bottom:23px; }
label { font-size:15px; color:var(--cream); }
input,textarea { border:0; border-bottom:1px solid #a3977c; border-radius:0; background:transparent; color:var(--cream); padding:8px 0 10px; font-size:17px; width:100%; min-height:42px; }
textarea { resize:vertical; line-height:1.65; min-height:135px; max-height:450px; }
input:focus-visible,textarea:focus-visible { outline-color:#e1bd7c; }
input:autofill { box-shadow:0 0 0 1000px #092832 inset; -webkit-text-fill-color:var(--cream); }
.privacy { color:#d2c5a9; font-size:13px; line-height:1.7; margin:0 0 22px; }
.send-button { display:block; border:1px solid #e1bd7c; outline:1px solid #ae925f; outline-offset:-5px; background:#f0dfb6; color:var(--ink); padding:15px 29px; cursor:pointer; font-size:15px; font-variant:small-caps; letter-spacing:.7px; min-height:48px; }
.send-button:hover { background:var(--cream); }
.send-button:focus-visible { outline-color:#e1bd7c; outline-offset:5px; }
.send-button:disabled { cursor:wait; opacity:.65; }
.form-status { margin:18px 0 0; min-height:22px; font-size:15px; line-height:1.7; color:var(--cream); }
.form-status[data-state=error] { color:#ffd6b8; }
.honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.footer { display:flex; justify-content:space-between; align-items:flex-start; gap:30px; padding:54px 0 43px; }
.footer-brand { font-size:26px; letter-spacing:-.5px; }
.footer-brand span { display:block; color:var(--muted); font-style:italic; letter-spacing:0; font-size:14px; margin-top:11px; }
.registered { min-width:285px; }
.registered .eyebrow { font-size:10px; margin-bottom:11px; }
address { font-size:13px; line-height:1.8; font-style:normal; color:var(--muted); }
.company-number { font-size:12px; margin:13px 0 0; }
@media (max-width:1050px) { .page { padding:0 42px; } .hero { min-height:640px; } .hero-art { width:42%; right:-15px; opacity:.85; } h1 { font-size:59px; } .hero-copy { max-width:56%; } .intro { font-size:18px; } .hero-detail { font-size:16px; } .contact { column-gap:38px; padding:45px 35px 30px; margin:0; } .contact h2 { font-size:41px; } .services { column-gap:35px; } }
@media (max-width:760px) { .page { padding:0 25px; } .masthead { padding:21px 0 14px; } .wordmark { width:min(370px,100%); } nav { gap:20px; margin-top:11px; font-size:10px; letter-spacing:1.5px; } .hero { padding:39px 0 38px; min-height:0; } .hero-copy { max-width:none; } .hero .eyebrow { font-size:10px; letter-spacing:1.4px; } h1 { font-size:clamp(40px,7.6vw,57px); letter-spacing:-1.5px; line-height:1.11; margin:22px 0 24px; } .hero-art { width:51%; right:-8px; top:49px; height:235px; bottom:auto; opacity:.2; justify-content:flex-start; } .hero-art img { max-height:230px; } .plate-caption { display:none; } .intro { font-size:19px; max-width:490px; } .intro::first-letter { font-size:51px; } .hero-detail { font-size:16px; max-width:490px; } .text-link { font-size:16px; } .work { padding:36px 0 30px; } .section-heading { margin-bottom:24px; gap:9px; } h2 { font-size:33px; } .services { grid-template-columns:1fr; } .service { padding:25px 0 27px; gap:18px; } h3 { font-size:27px; } .service p { font-size:16px; } .contact { grid-template-columns:1fr; padding:36px 27px 23px; margin:0; gap:23px; outline-offset:5px; } .contact h2 { font-size:40px; } .contact-copy > p:last-child { max-width:450px; font-size:16px; } .footer { padding:40px 0 32px; flex-direction:column; gap:30px; } .footer-brand { font-size:25px; } }
@media (max-width:390px) { .page { padding:0 20px; } .form-row { grid-template-columns:1fr; gap:0; } .contact { padding:30px 23px 23px; } h1 { font-size:39px; } nav { gap:16px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
