:root{--navy:#071126;--ink:#141e30;--paper:#faf8f3;--white:#fffdf8;--gold:#e5cc98;--bronze:#78551e;--muted:#525b65;--line:#ded7c8;--serif:Georgia,'Times New Roman',serif}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,sans-serif}
a{color:inherit}
a:focus-visible{outline:2px solid #946b2f;outline-offset:5px}
img{display:block;max-width:100%}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font:400 1em/1.05 var(--serif);text-wrap:balance}
h1{font-size:clamp(2.75rem,5.3vw,5.3rem);letter-spacing:-.055em}
h2{font-size:clamp(2.3rem,4.2vw,4rem);letter-spacing:-.045em}
h3{font-size:clamp(1.65rem,2.7vw,2.3rem);letter-spacing:-.035em}
.wrap{width:min(1180px,calc(100% - 64px));margin-inline:auto}
.skip{position:absolute;top:-100px;left:12px;background:var(--white);padding:10px;z-index:1}
.skip:focus{top:12px}
.header,.contact,.footer{background:var(--navy);color:var(--white)}
.footer .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px}
.header{background:#050e28}
.bar{display:flex;flex-direction:column;align-items:center}
.brand{display:block;width:clamp(190px,38vw,270px);aspect-ratio:1.56;overflow:hidden}
.brand img{width:100%;height:100%;object-fit:cover;object-position:center 49%;mask-image:linear-gradient(to right,transparent,#000 11%,#000 89%,transparent)}
.bar nav{width:100%;justify-content:center;padding:12px 0 16px;border-top:1px solid #ffffff24}
nav{display:flex;gap:clamp(15px,4vw,45px);align-items:center;font-size:.89rem}
nav a{text-decoration:none}
nav a:hover,.footer a:hover{color:var(--gold)}
.hero{padding-block:clamp(35px,7vw,86px)}
.hero-copy{max-width:850px}
.kicker{font-size:.75rem;font-weight:750;letter-spacing:.145em;text-transform:uppercase;color:var(--bronze);margin-bottom:15px}
.intro{color:var(--muted);max-width:45ch;margin-top:24px}
.actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 23px;margin-top:28px}
.button{background:var(--navy);color:var(--white);padding:12px 18px;text-decoration:none;font-weight:650;font-size:.9rem}
.button:hover{background:#1d2b46}
.text-link{font-size:.9rem;text-underline-offset:4px;padding-block:10px}
.values{border-block:1px solid var(--line)}
.values-inner{display:grid;grid-template-columns:1.5fr repeat(3,1fr);align-items:center;min-height:82px;gap:16px}
.values p{font:italic 1.5rem var(--serif)}
.values span{font-size:.73rem;text-transform:uppercase;letter-spacing:.11em;text-align:center;color:var(--bronze);font-weight:700}
.section{padding-block:clamp(48px,7vw,90px)}
.section-head{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;align-items:end;margin-bottom:34px}
.section-head>p,.area p:not(.kicker){color:var(--muted)}
.service-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 44px}
.service-group{border-top:1px solid #bba780;padding-block:20px 30px}
.group-title{display:flex;align-items:baseline;gap:12px}
.group-title span{font-size:.73rem;color:var(--bronze);letter-spacing:.1em}
.service-group ul{list-style:none;margin:14px 0 0;padding:0}
.service-group li{padding:8px 0;border-bottom:1px solid var(--line)}
.area{background:#f0eade}
.area-layout,.contact-layout{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:35px 55px}
.area p:not(.kicker),.contact p:not(.kicker){margin-top:16px}
.towns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;list-style:none;margin:0;padding:0;font-size:.88rem}
.towns .more-towns{grid-column:1/-1;color:var(--bronze);font-weight:700}
.towns li{border-bottom:1px solid #d6cdbb;padding-bottom:6px;overflow-wrap:anywhere}
.contact .kicker,.contact-links a span{color:var(--gold)}
.contact p:not(.kicker){color:#d6dbe4}
.contact-links a{display:grid;grid-template-columns:5.3rem 1fr;align-items:baseline;gap:5px;padding:12px 0;border-top:1px solid #444c5c;text-decoration:none}
.contact-links a span{font-size:.78rem}
.contact-links strong{font-weight:550;overflow-wrap:anywhere}
.contact-links a:hover strong{text-decoration:underline;text-underline-offset:4px}
.contact-links .hours{font-size:.82rem}
.footer{border-top:1px solid #444c5c;font-size:.8rem}
.footer .wrap{min-height:66px}
.footer a{text-underline-offset:4px}
@media(max-width:800px){
  .wrap{width:calc(100% - 44px)}
  .section-head,.area-layout,.contact-layout{grid-template-columns:1fr}
  .service-groups{column-gap:24px}
}
@media(max-width:550px){
  .wrap{width:calc(100% - 36px)}
  nav{gap:10px;font-size:.76rem}
  .values-inner{grid-template-columns:repeat(3,1fr);gap:12px 5px;padding-block:16px}
  .values p{grid-column:1/-1;text-align:center}
  .values span{font-size:.61rem}
  .service-groups{grid-template-columns:1fr}
  .contact-links a{grid-template-columns:3.6rem 1fr}
}

.quote-form{display:grid;gap:14px;margin-bottom:24px}
.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.quote-form label{display:block;font-size:.9rem}
.quote-form small{color:#d6dbe4}
.quote-form input:not([type=hidden]),.quote-form textarea{display:block;width:100%;margin-top:4px;padding:10px 12px;border:1px solid #9b9fa8;border-radius:3px;background:var(--white);color:var(--ink);font:inherit}
.quote-form textarea{resize:vertical}
.quote-form button{justify-self:start;border:0;border-radius:3px;background:var(--gold);color:var(--navy);padding:11px 18px;font:inherit;font-weight:700;cursor:pointer}
.quote-form button:hover{background:#f1ddb4}
.quote-form :focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.message-page{padding-block:55px}
.message-page p,.message-page article{margin-block:18px}
.message-page article{border-top:1px solid var(--line);padding-top:15px;overflow-wrap:anywhere}
.message-page .request-text{white-space:pre-wrap}
