:root {
  --ink: #071b2b; --ink-2: #0b2c43; --signal: #ffd51f; --paper: #f5f6f2; --white: #fff;
  --muted: #68727a; --line: #dbe0dc; --background: #f5f6f2; --foreground: #071b2b;
  --card: #fff; --card-foreground: #071b2b; --primary: #071b2b; --primary-foreground: #fff;
  --secondary: #ffd51f; --secondary-foreground: #071b2b; --muted-foreground: #68727a;
  --border: #dbe0dc; --ring: #ffd51f; --radius: .35rem;
}
* { box-sizing: border-box; }
img, svg { display: block; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }
.site-header { height: 88px; display: flex; align-items: center; justify-content: space-between; padding: 0 max(5vw, 24px); background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); position: relative; z-index: 5; }
.brand { display: flex; align-items: center; gap: 11px; letter-spacing: -.02em; }.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; background: var(--ink); color: var(--signal); }.brand span:last-child { display: flex; flex-direction: column; line-height: .95; }.brand strong { font-size: 18px; }.brand small { font-size: 14px; letter-spacing: .24em; color: #48606f; margin-top: 5px; }
.header-local { font-size: 13px; font-weight: 700; display: flex; align-items: center; gap: 9px; color: #39505f; }.status-dot { width: 9px; height: 9px; background: #1cb66a; border-radius: 50%; box-shadow: 0 0 0 5px #1cb66a18; animation: status-breathe 2.8s ease-in-out infinite; }
@keyframes status-breathe { 0%,100% { transform:scale(1); box-shadow:0 0 0 5px #1cb66a18; } 50% { transform:scale(1.08); box-shadow:0 0 0 8px #1cb66a0c; } }
.call-button { display: inline-flex; align-items: center; font-weight: 900; }.call-button--header { background: var(--signal); min-width: 224px; padding: 11px 18px; gap: 11px; box-shadow: 4px 4px 0 var(--ink); }.call-button span { display: flex; flex-direction: column; }.call-button small { font-size: 10px; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; margin-bottom: 2px; }
.hero { min-height: calc(100vh - 88px); display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr); align-items: center; gap: clamp(48px, 7vw, 110px); padding: 64px max(5vw, 24px) 80px; position: relative; overflow: hidden; }.hero::before { content: ''; position: absolute; width: 430px; height: 430px; border: 1px solid #d6dad5; border-radius: 50%; left: -250px; bottom: -190px; box-shadow: 0 0 0 70px #ffffff4d, 0 0 0 140px #ffffff38; }
.hero-copy { max-width: 720px; position: relative; z-index: 1; }.eyebrow { display: inline-flex; gap: 8px; align-items: center; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .12em; background: var(--white); border: 1px solid var(--line); padding: 9px 12px; }
h1 { font-size: clamp(48px, 6.2vw, 88px); line-height: .94; letter-spacing: -.065em; margin: 26px 0 24px; max-width: 900px; }h1 em { display:inline-block;margin-top:10px;font-size:.62em;line-height:1.05;letter-spacing:-.045em;font-style:normal;color:#31546a; }.hero-lead { max-width: 680px; font-size: clamp(17px, 1.6vw, 21px); line-height: 1.55; color: #53626c; margin: 0 0 10px; }.hero-lead strong{color:var(--ink);font-weight:850}.hero-secondary{max-width:680px;margin:0 0 28px;color:#53626c;font-size:15px;line-height:1.55}.hero-secondary strong{color:#31546a;font-weight:850}
.call-button--hero { background: var(--ink); color: white; padding: 12px 24px 12px 12px; gap: 14px; font-size: 24px; box-shadow: 6px 6px 0 var(--signal); transition: transform .2s, box-shadow .2s; }.call-button--hero:hover { transform: translate(3px,3px); box-shadow: 3px 3px 0 var(--signal); }.call-button--hero small { color: #c5d0d6; }.phone-disc { width: 50px; height: 50px; display: grid !important; place-items: center; background: var(--signal); color: var(--ink); border-radius: 50%; }
.hero-trust { display: flex; align-items: center; gap: 13px; margin-top: 32px; }.score strong { font-size: 34px; letter-spacing: -.05em; }.score span { color: var(--muted); font-weight: 700; }.stars { display: flex; gap: 2px; color: #eebd00; }.stars svg { width: 15px; fill: currentColor; }.hero-trust p { font-size: 12px; font-weight: 700; color: #53626c; margin: 2px 0 0; display: flex; align-items: center; gap: 7px; line-height: 1.45; }.trust-divider { height: 37px; width: 1px; background: var(--line); margin: 0 4px; }
.hero-panel { background: var(--ink); color: white; box-shadow: 18px 18px 0 #cbd1cc; position: relative; }.panel-topline { min-height: 53px; padding: 0 20px; display: flex; align-items: center; gap: 9px; border-bottom: 1px solid #ffffff20; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }.panel-topline strong { margin-left: auto; background: #1cb66a; padding: 5px 8px; color: white; font-size: 9px; }
.door-visual { height: 265px; position: relative; overflow: hidden; background:var(--ink-2); }.door-visual img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
.quick-prices { background: white; color: var(--ink); padding: 9px 20px; }.quick-prices div { display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid var(--line); font-size:14px; }.quick-prices div:last-child{border:0}.quick-prices strong{font-size:18px}.quick-prices span{color:#53626c}.price-note { margin:0; background:var(--signal); color:var(--ink); padding:11px 18px; font-size:10px; font-weight:800; text-align:center; }.mobile-call { display:none; }
.section { padding: 82px max(5vw, 24px); }.kicker { color:#476171; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.15em; margin:0 0 12px; }.section h2,.process-band h2,.local-cta h2 { font-size:clamp(38px,4.3vw,64px); line-height:1; letter-spacing:-.05em; margin:0; }.section-intro { display:grid; grid-template-columns:.7fr 1fr .8fr; align-items:end; gap:32px; margin-bottom:38px; }.section-intro .kicker{align-self:start}.section-intro p:last-child,.section-heading>p { color:#62717a; line-height:1.6; max-width:520px; margin:0; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-left:1px solid var(--line); border-top:1px solid var(--line); }.service-card { min-height:285px; padding:32px; background:#fff; border-right:1px solid var(--line); border-bottom:1px solid var(--line); position:relative; display:flex; flex-direction:column; }.service-card>svg{color:#31546a;width:30px;height:30px}.service-card>span{position:absolute;right:25px;top:25px;color:#a8b1b5;font-size:11px;font-weight:800}.service-card h3{font-size:23px;margin:38px 0 12px;letter-spacing:-.03em}.service-card p{color:#68777f;line-height:1.55;font-size:14px;margin:0}.service-card strong{margin-top:auto;color:#173d54;font-size:13px}.service-card--featured{background:var(--signal)}.service-card--featured p,.service-card--featured>svg{color:var(--ink)}.service-card--call{background:var(--ink);color:#fff}.service-card--call>svg{color:var(--signal)}.service-card--call p{color:#b7c3ca}.service-card--call a{margin-top:auto;color:var(--signal);font-size:17px;font-weight:900}
.artisan-photo-section{min-height:410px;position:relative;overflow:hidden;background:#18242c;display:flex;align-items:flex-end}.artisan-photo-section>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;display:block}.artisan-photo-section::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,21,32,.94) 0%,rgba(6,21,32,.72) 32%,rgba(6,21,32,.12) 68%,rgba(6,21,32,.04) 100%)}.artisan-photo-caption{position:relative;z-index:1;color:white;width:min(560px,86%);margin:0 0 40px max(5vw,24px);padding-left:28px;border-left:4px solid var(--signal)}.artisan-photo-caption h2{font-size:clamp(40px,5vw,68px);line-height:1;letter-spacing:-.05em;margin:0 0 18px}.artisan-photo-caption>p:last-child{color:#c4d0d6;line-height:1.6;font-size:15px;max-width:500px}
.process-band { background:var(--ink); color:white; padding:68px max(5vw,24px); display:grid; grid-template-columns:1fr 1.15fr; gap:50px; position:relative; }.kicker--yellow{color:var(--signal)}.process-band ol{list-style:none;margin:0;padding:0;display:grid;gap:0}.process-band li{display:flex;gap:18px;padding:18px 0;border-bottom:1px solid #ffffff20}.process-band li>span{display:grid;place-items:center;width:38px;height:38px;flex:none;border:1px solid #ffffff40;color:var(--signal);font-weight:900}.process-band li strong{font-size:17px}.process-band li p{color:#aebcc5;margin:7px 0 0;font-size:14px}.call-button--light{grid-column:1;align-self:end;justify-self:start;background:var(--signal);color:var(--ink);padding:13px 20px;gap:12px;font-size:19px;box-shadow:5px 5px 0 white}.call-button--light small{color:#41505a}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:34px}.price-table{background:#fff;border:1px solid var(--line)}.price-table>div{display:flex;justify-content:space-between;align-items:center;padding:22px 28px;border-bottom:1px solid var(--line)}.price-table>div:last-child{border:0}.price-table span{display:flex;align-items:center;gap:16px;color:#40535f;font-weight:700}.price-table svg{color:#173d54}.price-table strong{font-size:21px}.price-table strong small{display:block;font-size:10px;line-height:1.1;text-align:right;text-transform:uppercase;letter-spacing:.06em;color:#78858c;font-weight:800}.price-reassurance{display:flex;gap:35px;justify-content:center;flex-wrap:wrap;padding:20px;background:#e9ece8;color:#40535f;font-size:12px;font-weight:800}.price-reassurance svg{width:16px;color:#0c9c59;vertical-align:middle;margin-right:-25px}
.price-surcharge{margin:12px 0 0;text-align:center;color:#68777f;font-size:12px;font-weight:700}
.reviews{background:#fff;display:grid;grid-template-columns:.7fr 1.3fr;gap:70px}.big-rating strong{font-size:90px;letter-spacing:-.08em}.big-rating span{font-size:20px;color:#7d898f;font-weight:800}.stars--large svg{width:22px;height:22px}.review-summary h2{font-size:45px;margin-top:24px}.review-list{border-top:1px solid var(--line)}.review-list blockquote{margin:0;padding:30px 0;border-bottom:1px solid var(--line)}.review-list blockquote>p{font-size:17px;line-height:1.6;color:#415561;margin:16px 0 20px}.review-list footer{display:flex;justify-content:space-between;align-items:center}.review-list footer span{display:flex;align-items:center;gap:6px;color:#718087;font-size:12px}.review-list footer svg{width:14px}
.expertise{background:#eef0ec}.expertise-title{display:grid;grid-template-columns:.55fr 1fr .8fr;gap:40px;align-items:end;margin-bottom:65px}.expertise-title>p:last-child{color:#607079;line-height:1.7;margin:0}.expertise-content{margin-left:calc(55% / 3);border-top:1px solid #ccd2cd}.expertise-content article{display:grid;grid-template-columns:65px 1fr;gap:25px;padding:38px 0;border-bottom:1px solid #ccd2cd}.expertise-content article>span{display:grid;place-items:center;width:42px;height:42px;border:1px solid #aeb8b2;font-size:11px;font-weight:900}.expertise-content h3{font-size:24px;letter-spacing:-.03em;margin:5px 0 14px}.expertise-content p{color:#566871;line-height:1.75;margin:0;font-size:15px;max-width:850px}
.local-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(55px,8vw,120px);align-items:center;background:#fff}.local-map-card{height:500px;background:var(--ink-2);color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;box-shadow:14px 14px 0 var(--signal)}.local-map-card svg{color:var(--signal);margin-bottom:22px}.local-map-card strong{font-size:42px;letter-spacing:.14em}.local-map-card small{color:#adc0ca;letter-spacing:.1em;margin-top:8px}.map-lines span{position:absolute;border:1px solid #ffffff18;border-radius:50%;width:380px;height:380px;left:50%;top:50%;transform:translate(-50%,-50%)}.map-lines span:nth-child(2){width:270px;height:270px}.map-lines span:nth-child(3){width:160px;height:160px}.local-copy h2{margin-bottom:28px}.local-copy>p{color:#586a73;line-height:1.75;font-size:15px}.local-copy>p strong{color:var(--ink);font-weight:850}.local-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}.local-tags span{border:1px solid var(--line);padding:9px 12px;font-size:11px;font-weight:800;color:#405966;background:#f7f8f5}
.glass-section{background:var(--ink);color:white;display:grid;grid-template-columns:1fr 1.1fr;gap:70px;align-items:start}.glass-copy{border-left:1px solid #ffffff25;padding-left:45px}.glass-copy p{color:#b1c0c8;line-height:1.75;margin:0 0 20px}.glass-section>a{grid-column:2;display:inline-flex;align-items:center;gap:10px;color:var(--ink);background:var(--signal);padding:14px 18px;font-weight:900;justify-self:start}.glass-section>a svg{width:18px}
.faq{display:grid;grid-template-columns:.75fr 1.25fr;gap:80px;background:#f7f8f5}.faq-intro{position:sticky;top:35px;align-self:start}.faq-intro>p:last-child{color:#62727b;line-height:1.65;max-width:400px}.faq-list{border-top:1px solid #cfd5d0}.faq-list details{border-bottom:1px solid #cfd5d0;padding:0}.faq-list summary{list-style:none;cursor:pointer;padding:26px 0;font-size:18px;font-weight:800;display:flex;justify-content:space-between;gap:25px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:24px;font-weight:400;transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{margin:0 50px 26px 0;color:#5c6d75;line-height:1.7;font-size:14px}
.local-cta{padding:85px max(5vw,24px);background:var(--ink-2);color:white;display:flex;align-items:center;justify-content:space-between;gap:60px}.local-cta>div>p:last-child{color:#b9c5cc;font-size:16px}.call-button--final{background:var(--signal);color:var(--ink);padding:14px 25px 14px 14px;gap:14px;font-size:25px;box-shadow:6px 6px 0 white;white-space:nowrap}.call-button--final .phone-disc{background:var(--ink);color:var(--signal)}.footer{padding:45px max(5vw,24px);background:#061520;color:white;display:grid;grid-template-columns:1fr 1.2fr auto;align-items:center;gap:30px}.brand--footer small{color:#92a5b1}.footer p{color:#9aabb4;font-size:13px}.footer>a:not(.brand){color:var(--signal);font-weight:900;font-size:18px}.footer>small{grid-column:1/-1;color:#667b87;border-top:1px solid #ffffff14;padding-top:20px}
@media (max-width: 900px) { .header-local { display:none; }.hero { grid-template-columns: 1fr; padding-top: 46px; padding-bottom: 130px; gap: 48px; }.hero-copy { max-width: 700px; }.hero-panel { max-width: 560px; }.section-intro,.expertise-title{grid-template-columns:1fr}.service-grid{grid-template-columns:repeat(2,1fr)}.artisan-photo-section{min-height:440px}.artisan-photo-section::after{background:linear-gradient(0deg,rgba(6,21,32,.96) 0%,rgba(6,21,32,.55) 48%,rgba(6,21,32,.08) 85%)}.artisan-photo-caption{margin-bottom:38px}.process-band{grid-template-columns:1fr}.call-button--light{grid-column:auto}.reviews,.local-section,.glass-section,.faq{grid-template-columns:1fr}.expertise-content{margin-left:0}.glass-section>a{grid-column:1}.glass-copy{border-left:0;border-top:1px solid #ffffff25;padding:30px 0 0}.faq-intro{position:static}.local-cta{align-items:flex-start;flex-direction:column}.footer{grid-template-columns:1fr 1fr}.footer p{display:none} }
@media (max-width: 600px) { .site-header { height:72px; padding:0 18px; }.call-button--header{display:none}.brand-mark{width:38px;height:38px}.brand strong{font-size:16px}.brand small{font-size:11px}.hero { min-height:auto; padding:38px 18px 120px; gap:42px; }h1 { font-size:50px; margin-top:20px; }.hero-lead{font-size:17px}.call-button--hero{font-size:21px;width:100%;padding-right:14px}.hero-trust{flex-wrap:wrap}.trust-divider{display:none}.hero-panel{box-shadow:9px 9px 0 #cbd1cc}.door-visual{height:220px}.section{padding:75px 18px}.service-grid{grid-template-columns:1fr}.service-card{min-height:255px}.process-band{padding:70px 18px}.section-heading{align-items:flex-start;flex-direction:column}.price-table>div{align-items:flex-start;gap:15px;flex-direction:column;padding:22px}.price-reassurance{align-items:flex-start;flex-direction:column}.reviews{gap:40px}.big-rating strong{font-size:75px}.expertise-content article{grid-template-columns:1fr;gap:10px}.local-map-card{height:340px}.local-map-card strong{font-size:30px}.glass-section{gap:35px}.faq{gap:45px}.faq-list summary{font-size:16px}.local-cta{padding:70px 18px}.call-button--final{font-size:20px;width:100%;padding-right:12px}.footer{padding:45px 18px 110px;grid-template-columns:1fr}.footer>a:not(.brand){justify-self:start}.mobile-call { position:fixed; z-index:20; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:0 10px; bottom:12px; left:12px; right:12px; background:var(--signal); color:var(--ink); padding:12px 16px; box-shadow:0 7px 25px #0005; border:2px solid var(--ink); }.mobile-call svg { grid-row:1/3 }.mobile-call span{font-size:10px;text-transform:uppercase;font-weight:900;letter-spacing:.05em}.mobile-call strong{font-size:20px} }
@media (max-width: 600px) { .artisan-photo-section{min-height:390px}.artisan-photo-caption{margin-bottom:30px;padding-left:20px}.artisan-photo-caption h2{font-size:40px} }
@media (prefers-reduced-motion: reduce) { .status-dot { animation:none; } }
