/* Self-hosted DM Sans + Libre Caslon Display (SIL Open Font License), same files Google Fonts serves */
/* latin-ext */ @font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/dm-sans-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/dm-sans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/dm-sans-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/dm-sans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/dm-sans-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/dm-sans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url(/assets/fonts/dm-sans-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url(/assets/fonts/dm-sans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'Libre Caslon Display'; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/libre-caslon-display-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Libre Caslon Display'; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/libre-caslon-display-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root{--navy:#16263f;--navy-2:#0e1b2e;--gold:#e2b454;--cream:#f5f1e9;--white:#fff;--ink:#172033;--muted:#626a76;--line:#dcd8cf;--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;background:#fff}a{color:inherit;text-decoration:none}img{max-width:100%}.skip{position:fixed;left:1rem;top:-5rem;background:#fff;padding:.75rem 1rem;z-index:100}.skip:focus{top:1rem}.site-header{height:86px;display:flex;align-items:center;gap:2.2rem;padding:0 clamp(1.25rem,4vw,4.5rem);position:absolute;top:0;left:0;right:0;z-index:10;color:#fff;border-bottom:1px solid rgba(255,255,255,.25)}.brand{display:flex;align-items:center;gap:.72rem;line-height:1}.brand img{width:64px;height:64px;object-fit:contain;display:block}.brand-tagline{font-size:.7rem;line-height:1.25;letter-spacing:.12em;text-transform:uppercase;color:#fff;max-width:110px}.footer-brand img{width:112px;height:112px}.footer-brand .brand-tagline{color:var(--gold)}nav{display:flex;gap:1.55rem;margin-left:auto}nav a{font-size:.87rem;font-weight:600}.phone-link{font-weight:700;color:var(--gold);white-space:nowrap}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--gold);background:var(--gold);color:#101a2c;padding:.95rem 1.35rem;font-weight:700;font-family:var(--sans);font-size:.95rem;cursor:pointer;transition:.2s}.button:hover{background:#f0c36a;border-color:#f0c36a;transform:translateY(-1px)}.button-small{padding:.65rem 1rem;font-size:.85rem}.hero{min-height:790px;position:relative;display:flex;align-items:flex-end;color:#fff;overflow:hidden}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;display:block;transform:scale(1.01)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,19,34,.96) 0%,rgba(8,19,34,.78) 43%,rgba(8,19,34,.28) 75%),linear-gradient(0deg,rgba(8,19,34,.68),transparent 55%)}.hero-content{position:relative;width:min(1240px,100%);margin:0 auto;padding:11rem 2rem 3.2rem}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:.76rem;font-weight:700;color:var(--gold);margin:0 0 1.1rem}.eyebrow.dark{color:#7a520f}.hero h1{font-family:var(--serif);font-size:clamp(3.3rem,7vw,6.8rem);font-weight:400;line-height:.98;letter-spacing:-.035em;margin:0;max-width:850px}.hero h1 em{color:var(--gold);font-style:italic}.hero-copy{font-size:clamp(1rem,1.5vw,1.25rem);max-width:650px;color:#e7e9ee;margin:1.7rem 0 2rem}.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap}.button-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}.button-ghost:hover{color:#111827}.trust-row{display:flex;gap:2.5rem;margin-top:5.3rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.22);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#d7dce4}.trust-row span:before{content:'✓';color:var(--gold);margin-right:.6rem}.section{padding:clamp(4.8rem,8vw,8rem) max(2rem,calc((100vw - 1180px)/2))}.intro{display:grid;grid-template-columns:1.15fr .85fr;gap:7rem;align-items:end;background:var(--cream)}h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.4rem,4.3vw,4.4rem);line-height:1.08;letter-spacing:-.025em;margin:.3rem 0}.intro>p{font-size:1.08rem;color:var(--muted);margin:0 0 .35rem}.services{background:#fff}.section-heading{max-width:780px;margin-bottom:3rem}.section-heading.centered{text-align:center;margin-left:auto;margin-right:auto}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.service-card{min-height:360px;padding:2.1rem;position:relative;overflow:hidden;display:flex;align-items:flex-end}.service-card span{font-size:.75rem;letter-spacing:.12em;font-weight:700;color:var(--gold)}.service-card h3{font-family:var(--serif);font-size:2rem;font-weight:400;margin:.35rem 0}.service-card p{margin:0;max-width:460px;color:#dfe3e8}.card-photo{color:#fff;background-size:cover;background-position:center}.card-photo:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,20,36,.9),rgba(9,20,36,.1) 75%)}.card-photo>div{position:relative}.card-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.exterior-card>img{object-position:center 48%}.interior-card>img{object-position:center center}.cabinet-card>img{object-position:center 52%}.deck-card>img{object-position:center 56%}.commercial-card>img{object-position:center 24%}.text-card{background:var(--navy);color:#fff;align-items:flex-start;flex-direction:column;justify-content:flex-end}.gold-card{background:var(--gold);color:var(--navy)}.gold-card span{color:var(--navy)}.gold-card p{color:#27354b}.process{background:var(--navy);color:#fff;display:grid;grid-template-columns:.88fr 1.12fr;gap:8rem;align-items:start}.process-copy{position:sticky;top:2rem}.process-copy p:not(.eyebrow){color:#cbd2dc;max-width:500px}.text-link{display:inline-block;margin-top:1.5rem;color:var(--gold);font-weight:700}.text-link span{margin-left:.5rem}.process-list{list-style:none;padding:0;margin:0}.process-list li{display:grid;grid-template-columns:60px 1fr;gap:1rem;border-top:1px solid rgba(255,255,255,.18);padding:1.7rem 0}.process-list li:last-child{border-bottom:1px solid rgba(255,255,255,.18)}.process-list>li>span{color:var(--gold);font-size:.8rem}.process-list h3{font-family:var(--serif);font-size:1.65rem;font-weight:400;margin:-.25rem 0 .25rem}.process-list p{color:#bfc7d2;margin:0}.reviews{background:var(--cream)}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.review-grid blockquote{margin:0;background:#fff;padding:2rem;border:1px solid #e9e3d8;min-height:270px;display:flex;flex-direction:column}.review-grid blockquote p{font-family:var(--serif);font-size:1.25rem;line-height:1.5;flex:1}.stars{color:#b57a12;letter-spacing:.18em}.review-grid cite{font-style:normal;font-weight:700}.areas{display:grid;grid-template-columns:1fr 1fr;gap:7rem;align-items:center}.area-list{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}.area-list span{padding:1rem .25rem;border-bottom:1px solid var(--line);font-weight:600}.estimate{background:var(--navy-2);color:#fff;display:grid;grid-template-columns:.75fr 1.25fr;gap:7rem}.estimate-copy>p:not(.eyebrow){color:#bec7d2}.direct-contact{margin-top:3rem;display:grid;gap:1rem}.direct-contact a{color:var(--gold);font-size:1.15rem;font-weight:700}.direct-contact small{display:block;color:#aeb8c5;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;margin-bottom:.2rem}form{background:#fff;color:var(--ink);padding:2.2rem}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label{display:block;font-size:.8rem;font-weight:700;margin-bottom:1rem}input,select,textarea{display:block;width:100%;border:1px solid #cfd3da;background:#fff;padding:.85rem;margin-top:.35rem;font:inherit;color:var(--ink);border-radius:0}input:focus,select:focus,textarea:focus{outline:3px solid rgba(226,180,84,.3);border-color:#b77f1c}form .button{width:100%;border:0}.form-note{font-size:.75rem;color:#68707c;margin:.8rem 0 0;text-align:center}footer{background:#081322;color:#c4ccd7;padding:3.5rem max(2rem,calc((100vw - 1180px)/2));display:grid;grid-template-columns:1.1fr 1.6fr 1fr;gap:3rem;align-items:start}footer>p{margin:0;max-width:480px}footer>div{display:flex;flex-direction:column;gap:.35rem;color:#fff}footer>small{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.14);padding-top:1.3rem}.mobile-cta{display:none}
@media(max-width:1050px){nav{display:none}.site-header{gap:1rem}.phone-link{margin-left:auto}.intro,.process,.areas,.estimate{gap:3rem}.process{grid-template-columns:1fr}.process-copy{position:static}.review-grid{grid-template-columns:1fr 1fr}.review-grid blockquote:last-child{grid-column:1/-1}.estimate{grid-template-columns:1fr 1.2fr}}
@media(max-width:720px){body{padding-bottom:58px}.site-header{height:72px;padding:0 1rem}.site-header .button,.phone-link{display:none}.brand img{width:54px;height:54px}.brand-tagline{font-size:.6rem;max-width:95px}.hero{min-height:760px}.hero-photo{object-position:center 42%}.hero-shade{background:linear-gradient(90deg,rgba(8,19,34,.9),rgba(8,19,34,.4)),linear-gradient(0deg,rgba(8,19,34,.82),transparent 70%)}.hero-content{padding:8rem 1.25rem 2rem}.hero h1{font-size:3.55rem}.hero-copy{font-size:1rem}.hero-actions{display:grid}.trust-row{margin-top:3rem;display:grid;gap:.65rem}.section{padding:4.5rem 1.25rem}.intro,.areas,.estimate{grid-template-columns:1fr;gap:2rem}.service-grid{grid-template-columns:1fr}.service-card{min-height:330px}.process{gap:2.5rem}.review-grid{grid-template-columns:1fr}.review-grid blockquote:last-child{grid-column:auto}.field-row{grid-template-columns:1fr}form{padding:1.3rem}.area-list{grid-template-columns:1fr 1fr}footer{grid-template-columns:1fr;padding:3rem 1.25rem}.mobile-cta{position:fixed;bottom:0;left:0;right:0;height:58px;background:var(--gold);color:#111827;z-index:20;display:grid;place-items:center;font-weight:800}.footer-brand{color:#fff}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
 .booking-card{background:#fff;color:var(--ink);padding:clamp(2rem,4vw,3rem);display:flex;flex-direction:column;justify-content:center;box-shadow:0 18px 48px rgba(8,19,34,.16)}.booking-card h2,.booking-card h3{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,3.2vw,3rem);line-height:1.08;margin:.25rem 0 1rem}.booking-card>p:not(.eyebrow):not(.form-note){color:var(--muted);font-size:1.05rem;margin:0 0 1.5rem}.booking-card .button{width:100%;text-align:center}

/* --- Netlify migration fixes, 2026-10-06 --- */
.card-photo:before{z-index:1}.card-photo>div{z-index:2}.service-card.wide-card{grid-column:1/-1;min-height:320px}
.hero h1 .h1-kicker{display:block;font-size:.42em;line-height:1.15;letter-spacing:-.015em;margin:0 0 .45rem;color:#fff}
.booking-card .eyebrow{color:#7a520f}
.reviews-more{text-align:center;margin:2.5rem 0 0}.reviews-more a{color:#7a520f;font-weight:700}
footer{grid-template-columns:.95fr 1.4fr 1.15fr 1.1fr}
footer>.footer-copy{color:#c4ccd7;gap:0}.footer-copy p{margin:0 0 .9rem;max-width:480px}.footer-copy .footer-areas{font-size:.9rem;color:#aeb8c5;margin:0}
.footer-nap{font-style:normal;display:flex;flex-direction:column;gap:.35rem;color:#fff}.footer-nap strong{font-weight:700}
footer>.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:.35rem 1.2rem;align-content:start}.footer-links a:hover,.footer-nap a:hover{color:var(--gold)}
nav a,.button-small{white-space:nowrap}
@media(max-width:1280px){.site-header{gap:1.3rem}nav{gap:1rem}nav a{font-size:.82rem}}
@media(max-width:1240px) and (min-width:1051px){.site-header{gap:1rem}.site-header .brand-tagline{display:none}nav{gap:.8rem}}
@media(max-width:1050px){footer{grid-template-columns:1fr 1fr}}
@media(max-width:720px){footer{grid-template-columns:1fr}.hero h1{font-size:3.2rem}.hero h1 .h1-kicker{font-size:.5em}}
/* --- City-page links, 2026-10-07 --- */
.area-list a{padding:1rem .25rem;border-bottom:1px solid var(--line);font-weight:700;color:#7a520f;text-decoration:underline;text-underline-offset:3px}
.area-list a:hover{color:var(--ink)}
.footer-copy .footer-areas a{color:#dfe5ec;text-decoration:underline;text-underline-offset:2px}.footer-copy .footer-areas a:hover{color:var(--gold)}

/* --- Home areas SEO links, 2026-10-15 --- */
.areas{row-gap:2rem}.areas-seo{grid-column:1/-1;margin:0;max-width:52rem;color:var(--muted)}.areas-seo a{color:#7a520f;font-weight:700;text-decoration:underline;text-underline-offset:3px}
