@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a342834df7752944-s.1ypl14jhz9yyw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.2g9li78_0_it5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.00u3xrku2lqty.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.2vepgg3wcdr2q.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.2ttjmmx-9gnz1.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.3259ncl47-hqj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a342834df7752944-s.1ypl14jhz9yyw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.2g9li78_0_it5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.00u3xrku2lqty.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.2vepgg3wcdr2q.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.2ttjmmx-9gnz1.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.3259ncl47-hqj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a342834df7752944-s.1ypl14jhz9yyw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.2g9li78_0_it5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.00u3xrku2lqty.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.2vepgg3wcdr2q.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.2ttjmmx-9gnz1.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.3259ncl47-hqj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a342834df7752944-s.1ypl14jhz9yyw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.2g9li78_0_it5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.00u3xrku2lqty.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.2vepgg3wcdr2q.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.2ttjmmx-9gnz1.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.3259ncl47-hqj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.bSspnq_className{font-family:Manrope,Manrope Fallback;font-style:normal}.bSspnq_variable{--font-manrope:"Manrope", "Manrope Fallback"}
:root{--color-paper:#faf8f5;--color-paper-2:#f2eee6;--color-paper-3:#d0dbd0;--color-ink:#12261d;--color-ink-2:#505b55;--color-rule:#c6cdc6;--color-accent:#2b4a3b;--color-accent-hover:#193428;--color-accent-ink:#faf8f5;--color-focus:#175a40;--color-clear:#0000;--color-overlay:#071b12eb;--color-image-shadow:#12261d1a;--color-accent-soft:#f8d14f;--color-on-dark-muted:#ccd3cc;--color-on-dark-rule:#495a51;--color-focus-on-dark:#f8d14f;--color-white:#fdfcf9;--color-highlight:#f8d14f;--color-highlight-hover:#fedf80;--color-hero-shade:#051b11f0;--color-hero-shade-mid:#051b11c2;--color-hero-shade-light:#051b111f;--font-display:var(--font-manrope), ui-sans-serif, sans-serif;--font-body:var(--font-manrope), ui-sans-serif, sans-serif;--space-3xs:.25rem;--space-2xs:.5rem;--space-xs:.75rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:4.5rem;--space-3xl:7rem;--page-gutter:clamp(1.25rem, 5vw, 4.5rem);--page-width:82.5rem;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-heading:clamp(2rem, 3.5vw, 3.4rem);--text-display:clamp(2.6rem, 5.5vw, 5.5rem);--text-display-s:clamp(2.25rem, 4.4vw, 4.25rem);--text-hero-premium:clamp(2.25rem, 8.8vw, 5rem);--text-hero-desktop:clamp(3rem, 5.2vw, 5rem);--text-hero-tablet:2.5rem;--text-introduction:clamp(1.75rem, 2.6vw, 2.5rem);--text-review-score:clamp(5rem, 8vw, 8rem);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--rule-hair:1px;--radius-button:4px;--radius-image:6px;--z-nav:20;--z-floating:30;--z-dialog:40}@supports (color:lab(0% 0 0)){:root{--color-paper:lab(97.7005% .135839 1.90169);--color-paper-2:lab(94.2476% .352293 4.58145);--color-paper-3:lab(86.3177% -5.03001 3.89924);--color-ink:lab(13.4274% -10.6758 3.50969);--color-ink-2:lab(37.576% -5.23193 1.73646);--color-rule:lab(81.5989% -3.35348 2.59575);--color-accent:lab(28.6817% -14.9796 4.92979);--color-accent-hover:lab(19.3339% -13.3614 4.38998);--color-accent-ink:lab(97.7005% .135839 1.90169);--color-focus:lab(33.7809% -27.1059 8.845);--color-clear:lab(0% 0 0/0);--color-overlay:lab(7.63164% -9.36288 3.1279/.92);--color-image-shadow:lab(13.4274% -10.6758 3.50969/.1);--color-accent-soft:lab(85.3756% 4.38166 66.7765);--color-on-dark-muted:lab(83.9189% -3.35348 2.59551);--color-on-dark-rule:lab(36.5367% -8.2092 2.71922);--color-focus-on-dark:lab(85.3756% 4.38166 66.7765);--color-white:lab(98.8524% .0796616 1.13986);--color-highlight:lab(85.3756% 4.38166 66.7765);--color-highlight-hover:lab(89.9953% 2.3289 50.3666);--color-hero-shade:lab(7.66963% -10.2055 3.41049/.94);--color-hero-shade-mid:lab(7.66963% -10.2055 3.41049/.76);--color-hero-shade-light:lab(7.66963% -10.2055 3.41049/.12)}}
*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--space-lg);overflow-x:clip}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;margin:0;line-height:1.65;overflow-x:clip}body:has(dialog[open]){overflow-y:hidden}a{color:inherit;text-decoration:none}button,summary,a{-webkit-tap-highlight-color:var(--color-clear)}button{font:inherit;color:inherit;cursor:pointer}button,a.button,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:5px}a:active:not(.button),summary:active{text-underline-offset:2px;text-decoration:underline}a[aria-disabled=true],summary[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}button:disabled{opacity:.45;cursor:not-allowed}img{max-width:100%;display:block}svg{flex-shrink:0}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.035em;overflow-wrap:anywhere;text-wrap:balance;min-width:0;font-style:normal;font-weight:400;line-height:1.13}h1{font-size:var(--text-display)}h2{font-size:var(--text-heading)}h3{font-size:var(--text-2xl)}p{max-width:65ch}button,.button,.site-navigation a,.site-navigation summary,.footer-main nav a,.breadcrumb a{white-space:nowrap}ul{margin:0;padding:0}.container{width:min(100%, calc(var(--page-width) + var(--page-gutter) * 2));padding-inline:var(--page-gutter);margin-inline:auto}.skip-link{top:var(--space-sm);left:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-ink);color:var(--color-paper);z-index:var(--z-dialog);position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:none}.button{justify-content:center;align-items:center;gap:var(--space-xs);min-height:52px;padding:var(--space-xs) var(--space-md);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-button);font-size:var(--text-sm);background:var(--color-clear);transition:transform var(--dur-micro) var(--ease-out);font-weight:600;line-height:1.2;display:inline-flex}.button-primary{color:var(--color-accent-ink);background:var(--color-accent);border-color:var(--color-accent)}.button-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.button-outline{border-color:var(--color-ink-2)}.button-outline:hover{border-color:var(--color-ink)}.button:active,.icon-button:active{transform:translateY(1px)}.icon-button{border:var(--rule-hair) solid var(--color-ink-2);border-radius:var(--radius-button);background:var(--color-clear);width:48px;height:48px;transition:transform var(--dur-micro) var(--ease-out);justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--color-paper-2)}.text-link{align-items:center;gap:var(--space-xs);padding-block:var(--space-xs);font-size:var(--text-sm);text-underline-offset:5px;text-decoration:underline;-webkit-text-decoration-color:var(--color-rule);text-decoration-color:var(--color-rule);display:inline-flex}.text-link:hover{-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}.photo{background:var(--color-paper-3);border-radius:var(--radius-image);width:100%;min-width:0;position:relative;overflow:clip}.photo img{object-fit:cover}.site-header{z-index:var(--z-nav);position:relative}.masthead{padding-block:var(--space-md);justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.masthead-location,.header-phone,.brand-subtitle{display:none}.brand{flex-direction:column;line-height:1;display:flex}.brand>span:first-child{font-family:var(--font-display);font-weight:600;font-size:var(--text-2xl);letter-spacing:-.045em;white-space:nowrap}.brand-dot{color:var(--color-accent)}.menu-toggle{border:0;width:44px;height:44px}.site-navigation{padding-bottom:var(--space-md);display:none}.site-navigation.is-open{align-items:flex-start;gap:var(--space-xs);border-bottom:var(--rule-hair) solid var(--color-rule);flex-direction:column;display:flex}.site-navigation>a,.nav-disclosure>summary{align-items:center;gap:var(--space-2xs);min-height:44px;font-size:var(--text-sm);display:inline-flex}.site-navigation [aria-current=page],.site-navigation>a:hover{color:var(--color-accent)}.nav-disclosure{width:100%;position:relative}.nav-disclosure summary{cursor:pointer;list-style:none}.nav-disclosure summary::-webkit-details-marker{display:none}.nav-disclosure[open] summary svg{transform:rotate(180deg)}.nav-panel{padding:var(--space-sm);background:var(--color-paper-2);gap:var(--space-2xs) var(--space-lg);grid-template-columns:minmax(0,1fr);display:grid}.nav-panel a{font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:var(--space-sm);padding-block:var(--space-2xs);display:flex}.nav-panel a:hover{text-underline-offset:4px;text-decoration:underline}.nav-contact{color:var(--color-accent);font-weight:700}.site-navigation .emergency-link:before{content:"";background:var(--color-accent);border-radius:50%;width:5px;height:5px}.hero{gap:var(--space-xl);padding-top:var(--space-lg);padding-bottom:var(--space-xl);grid-template-columns:minmax(0,1fr);display:grid}.hero-location{font-size:var(--text-sm);color:var(--color-ink-2);margin-bottom:var(--space-md);font-weight:500}.hero h1{max-width:none;font-size:clamp(2rem,4.6vw,4.7rem)}.hero-description{font-size:var(--text-lg);color:var(--color-ink-2);margin-top:var(--space-lg);max-width:45ch}.hero-actions{align-items:center;gap:var(--space-xs);margin-block:var(--space-lg);flex-wrap:wrap;display:flex}.hero-actions .button{flex-grow:1}.trust-line{gap:var(--space-xs);padding-top:var(--space-xs);flex-flow:wrap;list-style:none;display:flex}.trust-line li{align-items:center;gap:var(--space-2xs);font-size:var(--text-xs);color:var(--color-ink-2);display:flex}.trust-line svg{color:var(--color-ink)}.discover-link{gap:var(--space-sm);padding-block:var(--space-sm);font-size:var(--text-sm);margin-top:var(--space-lg);align-items:center;display:none}.discover-link:hover{text-underline-offset:5px;text-decoration:underline}.hero-photo{aspect-ratio:5/4}.hero-photo img{object-position:61% 65%}.hero-figure figcaption{justify-content:space-between;gap:var(--space-xs);padding-top:var(--space-xs);color:var(--color-ink-2);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.intro-band{background:var(--color-paper-2);padding-block:var(--space-lg)}.intro-band>div{gap:var(--space-md);grid-template-columns:minmax(0,1fr);display:grid}.intro-band p:first-child{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:-.025em;line-height:1.2}.intro-band p:nth-child(2){font-size:var(--text-md);color:var(--color-ink-2);max-width:46ch}.intro-band a{gap:var(--space-sm);width:fit-content;font-size:var(--text-sm);padding-block:var(--space-xs);text-underline-offset:5px;align-items:center;text-decoration:underline;display:inline-flex}.section-heading{gap:var(--space-md);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.section-heading p{color:var(--color-ink-2);max-width:45ch}.section-heading h2+p{margin-top:var(--space-md)}.desktop-break{display:none}.service-section{padding-top:var(--space-2xl);padding-bottom:var(--space-xl)}.service-index{grid-template-columns:minmax(0,1fr);display:grid}.service-row{gap:var(--space-xs);padding-block:var(--space-md);border-bottom:var(--rule-hair) solid var(--color-rule);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.service-row-title{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.02em}.service-row-description{font-size:var(--text-sm);color:var(--color-ink-2);grid-area:2/1;max-width:34ch}.service-row svg{color:var(--color-accent);transition:transform var(--dur-short) var(--ease-out);grid-area:1/2}.service-row:hover svg{transform:translate(2px,-2px)}.craft-section{align-items:center;gap:var(--space-xl);padding-block:var(--space-xl);grid-template-columns:minmax(0,1fr);display:grid}.craft-photo{aspect-ratio:6/5}.craft-photo img{object-position:center 60%}.craft-copy p{color:var(--color-ink-2);margin-top:var(--space-md)}.craft-copy .button{margin-top:var(--space-lg)}.craft-signature{gap:var(--space-3xs);margin-top:var(--space-lg);flex-direction:column;display:flex}.craft-signature span:first-child{font-family:var(--font-display);font-size:var(--text-xl)}.craft-signature span:last-child{font-size:var(--text-xs);color:var(--color-ink-2)}.gallery-section{padding-top:var(--space-2xl);padding-bottom:var(--space-2xl)}.gallery-controls{gap:var(--space-xs);display:flex}.gallery-grid{gap:var(--space-lg);grid-template-columns:minmax(0,1fr);display:grid}.gallery-photo{aspect-ratio:4/3;background:var(--color-paper-3);border-radius:var(--radius-image);border:0;width:100%;padding:0;display:block;position:relative;overflow:clip}.gallery-photo img{object-fit:cover;object-position:center 56%}.gallery-enlarge{right:var(--space-sm);bottom:var(--space-sm);width:40px;height:40px;color:var(--color-ink);background:var(--color-paper);place-items:center;display:grid;position:absolute}.gallery-item figcaption{margin-top:var(--space-xs);font-size:var(--text-sm)}.gallery-bottom{justify-content:space-between;gap:var(--space-md);margin-top:var(--space-md);font-size:var(--text-xs);color:var(--color-ink-2);display:flex}.lightbox{width:min(95%,60rem);padding:var(--space-sm);background:var(--color-paper);color:var(--color-ink);border:0;max-height:94dvh}.lightbox::backdrop{background:var(--color-overlay)}.lightbox-toolbar{justify-content:space-between;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);margin-bottom:var(--space-xs);display:flex}.lightbox-photo{background:var(--color-paper-2);width:100%;height:min(64dvh,42rem);position:relative}.lightbox-photo img{object-fit:contain}.lightbox-actions{justify-content:space-between;gap:var(--space-xs);padding-top:var(--space-sm);display:flex}.lightbox-actions .button{padding-inline:var(--space-sm);min-height:44px}.area-section{background:var(--color-paper-2);padding-block:var(--space-xl)}.area-inner{gap:var(--space-xl);grid-template-columns:minmax(0,1fr);display:grid}.area-copy>svg{margin-bottom:var(--space-md);color:var(--color-accent)}.area-copy>p{margin-block:var(--space-md);color:var(--color-ink-2);max-width:45ch}.city-index{gap:0 var(--space-lg);grid-template-columns:minmax(0,1fr);align-content:start;display:grid}.city-index a{justify-content:space-between;align-items:center;gap:var(--space-sm);padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);font-size:var(--text-sm);display:flex}.city-index svg{opacity:.65}.emergency-strip{padding-block:var(--space-2xl);gap:var(--space-lg);grid-template-columns:minmax(0,1fr);align-items:center;display:grid}.emergency-label{font-size:var(--text-sm);color:var(--color-accent);margin-bottom:var(--space-md);display:inline-block}.emergency-strip h2{margin-bottom:var(--space-md)}.emergency-strip p{color:var(--color-ink-2);margin-bottom:var(--space-xs)}.emergency-phone{padding:var(--space-lg);background:var(--color-ink);color:var(--color-paper);gap:var(--space-md);flex-direction:column;display:flex}.emergency-phone>span:first-of-type{font-family:var(--font-display);white-space:nowrap;font-size:clamp(1.65rem,3vw,2.8rem)}.emergency-phone>span:last-of-type{gap:var(--space-sm);font-size:var(--text-sm);align-items:center;display:inline-flex}.emergency-phone:focus-visible{outline-color:var(--color-focus)}.contact-band{border-top:var(--rule-hair) solid var(--color-rule);padding-block:var(--space-xl)}.contact-band-inner{gap:var(--space-lg);grid-template-columns:minmax(0,1fr);align-items:center;display:grid}.contact-band p{margin-top:var(--space-md);color:var(--color-ink-2)}.contact-band-action{gap:var(--space-xs);flex-direction:column;display:flex}.display-phone{align-items:center;gap:var(--space-xs);font-family:var(--font-display);white-space:nowrap;width:fit-content;font-size:clamp(1.6rem,3vw,2.5rem);display:inline-flex}.display-phone:hover{color:var(--color-accent)}.contact-band-action>span{font-size:var(--text-sm);color:var(--color-ink-2)}.site-footer{background:var(--color-paper-2);padding-block:var(--space-lg)}.footer-main{align-items:flex-start;gap:var(--space-lg);flex-direction:column;display:flex}.footer-brand{gap:var(--space-sm);align-items:center;display:flex}.footer-brand img{object-fit:contain;width:60px;height:60px}.footer-wordmark{font-family:var(--font-display);font-size:var(--text-xl)}.footer-brand p{font-size:var(--text-xs);color:var(--color-ink-2)}.footer-contact{gap:var(--space-2xs);flex-direction:column;display:flex}.footer-contact a{align-items:center;gap:var(--space-sm);font-size:var(--text-sm);padding-block:var(--space-3xs);font-weight:600;display:flex}.footer-contact span{font-size:var(--text-xs);color:var(--color-ink-2)}.footer-main nav{gap:var(--space-xs) var(--space-md);flex-wrap:wrap;display:flex}.footer-main nav a{font-size:var(--text-xs);padding-block:var(--space-xs)}.footer-main nav a:hover{text-underline-offset:4px;text-decoration:underline}.footer-bottom{gap:var(--space-2xs);border-top:var(--rule-hair) solid var(--color-rule);padding-top:var(--space-md);margin-top:var(--space-lg);font-size:var(--text-xs);color:var(--color-ink-2);flex-direction:column;display:flex}.breadcrumb{align-items:center;gap:var(--space-xs);font-size:var(--text-xs);color:var(--color-ink-2);padding-top:var(--space-md);flex-wrap:wrap;display:flex}.breadcrumb a{padding-block:var(--space-xs)}.detail-hero{gap:var(--space-xl);padding-block:var(--space-lg) var(--space-xl);grid-template-columns:minmax(0,1fr);align-items:center;display:grid}.detail-hero h1{font-size:var(--text-display-s)}.detail-photo{aspect-ratio:5/4}.detail-content{gap:var(--space-xl);padding-block:var(--space-xl);grid-template-columns:minmax(0,1fr);display:grid}.detail-article h2{font-size:var(--text-2xl);line-height:1.2}.detail-article p{margin-top:var(--space-md);color:var(--color-ink-2)}.detail-article .article-introduction{font-size:var(--text-lg)}.article-section{margin-block:var(--space-xl)}.article-faq{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:var(--rule-hair) solid var(--color-rule)}.article-faq h2{font-size:var(--text-xl);margin-bottom:var(--space-md);color:var(--color-ink)}.faq-list{gap:var(--space-xs);flex-direction:column;display:flex}.faq-item{background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-button);padding:var(--space-sm) var(--space-md);transition:background-color var(--dur-short) var(--ease-out)}.faq-item summary{font-weight:700;font-size:var(--text-md);cursor:pointer;color:var(--color-ink);justify-content:space-between;align-items:center;list-style:none;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";font-size:var(--text-lg);color:var(--color-accent);margin-left:var(--space-xs);font-weight:700}.faq-item[open] summary:after{content:"−"}.faq-item p{margin-top:var(--space-xs);font-size:var(--text-sm);color:var(--color-ink-2);line-height:1.6}.check-list{margin-top:var(--space-md);gap:var(--space-sm);grid-template-columns:minmax(0,1fr);list-style:none;display:grid}.check-list li{align-items:flex-start;gap:var(--space-xs);display:flex}.check-list svg{color:var(--color-accent);margin-top:var(--space-3xs)}.process-list{padding-left:var(--space-md);margin-top:var(--space-md)}.process-list li{padding-left:var(--space-xs);margin-bottom:var(--space-xs)}.process-list li::marker{color:var(--color-accent)}.detail-aside{align-content:start;gap:var(--space-lg);grid-template-columns:minmax(0,1fr);display:grid}.detail-aside>div:first-child{background:var(--color-paper-2);padding:var(--space-lg)}.detail-aside h2{font-size:var(--text-2xl);margin-bottom:var(--space-md)}.detail-aside p{font-size:var(--text-sm);color:var(--color-ink-2)}.aside-phone{align-items:center;gap:var(--space-xs);font-weight:600;font-size:var(--text-lg);margin-top:var(--space-md);white-space:nowrap;min-height:44px;display:flex}.detail-aside .aside-hours{margin-block:var(--space-2xs) var(--space-md)}.aside-emergency{padding-inline:var(--space-lg)}.aside-emergency h3{margin-bottom:var(--space-xs)}.related-section{padding-block:var(--space-xl)}.related-links{margin-top:var(--space-lg);gap:var(--space-xs) var(--space-xl);grid-template-columns:minmax(0,1fr);display:grid}.related-links a{justify-content:space-between;align-items:center;gap:var(--space-sm);padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);display:flex}.local-links{padding-block:var(--space-xl)}.local-links h2{font-size:var(--text-2xl)}.local-links>div{gap:var(--space-2xs) var(--space-lg);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.local-links a{color:var(--color-ink-2);font-size:var(--text-sm);padding-block:var(--space-xs);white-space:nowrap}.local-links a:hover{color:var(--color-accent);text-underline-offset:4px;text-decoration:underline}.city-services-section{padding-block:var(--space-2xl) var(--space-xl);border-top:var(--rule-hair) solid var(--color-rule)}.city-services-grid{gap:var(--space-xs);margin-top:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.city-service-card{padding:var(--space-sm) var(--space-md);background:var(--color-paper-2);border-radius:var(--radius-button);border:var(--rule-hair) solid var(--color-rule);font-weight:600;font-size:var(--text-md);color:var(--color-ink);min-height:52px;transition:background-color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);justify-content:space-between;align-items:center;display:flex}.city-service-card:hover{background:var(--color-white);text-decoration:none;transform:translateY(-2px)}.city-service-card svg{color:var(--color-accent);transition:transform var(--dur-short) var(--ease-out)}.city-service-card:hover svg{transform:translate(2px,-2px)}.neighbor-links-grid{gap:var(--space-xs);margin-top:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.neighbor-links-grid a{background:var(--color-white);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-button);min-height:44px;transition:background-color var(--dur-short) var(--ease-out);padding:var(--space-xs) var(--space-md)!important;font-size:var(--text-sm)!important;color:var(--color-ink)!important;justify-content:space-between!important;align-items:center!important;font-weight:600!important;text-decoration:none!important;display:flex!important}.neighbor-links-grid a:hover{background:var(--color-paper-2);color:var(--color-accent)!important}.neighbor-links-grid a svg{color:var(--color-accent);opacity:.6}.service-area-reassurance{padding-block:var(--space-lg) var(--space-xl)}.reassurance-card{background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-image);padding:var(--space-lg);gap:var(--space-2xs);flex-direction:column;display:flex}.reassurance-card h3{font-size:var(--text-xl);color:var(--color-ink);font-weight:700}.reassurance-card p:not(.roof-section-label){font-size:var(--text-sm);color:var(--color-ink-2);max-width:60ch;line-height:1.6}.reassurance-card .text-link{margin-top:var(--space-xs);align-self:flex-start}.contact-page{gap:var(--space-xl);padding-block:var(--space-lg) var(--space-2xl);grid-template-columns:minmax(0,1fr);display:grid}.contact-page h1{font-size:var(--text-display-s)}.contact-page-phone{align-items:center;gap:var(--space-xs);width:fit-content;font-family:var(--font-display);margin-top:var(--space-xl);padding-bottom:var(--space-xs);border-bottom:var(--rule-hair) solid var(--color-accent);white-space:nowrap;flex-wrap:wrap;font-size:clamp(1.5rem,3vw,2.75rem);display:flex}.contact-page-phone svg:first-child{color:var(--color-accent)}.contact-note{font-size:var(--text-sm);color:var(--color-ink-2);margin-top:var(--space-sm)}.contact-details{margin-top:var(--space-xl)}.contact-details>div{padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule)}.contact-details dt{align-items:center;gap:var(--space-xs);font-size:var(--text-sm);font-weight:600;display:flex}.contact-details dd{margin:var(--space-2xs) 0 0 var(--space-lg);font-size:var(--text-sm);color:var(--color-ink-2)}.contact-page-photo{aspect-ratio:5/4}.emergency-content{padding-block:var(--space-xl)}.emergency-situations{gap:var(--space-lg);margin-top:var(--space-xl);grid-template-columns:minmax(0,1fr);display:grid}.emergency-situations>div{gap:var(--space-xs) var(--space-md);grid-template-columns:auto minmax(0,1fr);align-content:start;display:grid}.emergency-situations svg{color:var(--color-accent);margin-top:var(--space-3xs);grid-area:1/1/3}.emergency-situations h3{font-size:var(--text-xl)}.emergency-situations p{color:var(--color-ink-2);grid-column:2}.emergency-guidance{margin-top:var(--space-2xl);padding:var(--space-lg);background:var(--color-paper-2)}.emergency-guidance h2{font-size:var(--text-2xl)}.emergency-guidance p{margin-top:var(--space-md);color:var(--color-ink-2)}.legal-page{max-width:65rem;padding-block:var(--space-xl) var(--space-2xl)}.legal-page h1{font-size:var(--text-display-s);margin-bottom:var(--space-xl)}.legal-page section{margin-top:var(--space-lg)}.legal-page h2{font-size:var(--text-2xl);margin-bottom:var(--space-sm)}.legal-page p{color:var(--color-ink-2)}.legal-page a{text-underline-offset:4px;text-decoration:underline}.not-found{justify-content:center;gap:var(--space-md);min-height:60dvh;padding-block:var(--space-2xl);flex-direction:column;display:flex}@media (min-width:25rem){.trust-line{gap:var(--space-sm) var(--space-md);flex-flow:wrap}.hero-actions .button{flex-grow:0}.city-index{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:40rem){.brand-subtitle{font-size:var(--text-xs);font-family:var(--font-body);color:var(--color-ink-2);margin-top:var(--space-2xs);line-height:1.4;display:block}.brand>span:first-child{font-size:2.25rem}.header-phone{align-items:center;gap:var(--space-2xs);font-size:var(--text-sm);margin-left:auto;font-weight:600;display:flex}.hero{padding-top:var(--space-xl)}.discover-link{display:inline-flex}.intro-band>div{align-items:center;gap:var(--space-lg);grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.intro-band a{grid-column:2}.service-index{column-gap:var(--space-xl);grid-template-columns:repeat(2,minmax(0,1fr))}.service-row{padding-block:var(--space-lg)}.gallery-grid{gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-item-2{display:none}.gallery-photo{aspect-ratio:4/5}.gallery-photo img{object-position:center 55%}.section-heading{justify-content:space-between;align-items:flex-end;gap:var(--space-xl);flex-direction:row}.section-heading h2{max-width:20ch}.footer-bottom{flex-direction:row;justify-content:space-between}.related-links,.emergency-situations{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-page-phone{gap:var(--space-sm)}}@media (min-width:60rem){.masthead{padding-top:var(--space-lg);padding-bottom:var(--space-md);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid}.masthead-location{font-size:var(--text-xs);gap:var(--space-3xs);color:var(--color-ink-2);flex-direction:column;display:flex}.masthead-location span:first-child{color:var(--color-ink)}.brand{align-items:center}.brand>span:first-child{font-size:2.5rem}.header-phone{justify-self:end;margin-left:0}.menu-toggle{display:none}.site-navigation,.site-navigation.is-open{justify-content:center;align-items:center;gap:var(--space-xl);padding-block:var(--space-xs);border-top:var(--rule-hair) solid var(--color-rule);border-bottom:var(--rule-hair) solid var(--color-rule);flex-direction:row;display:flex;position:relative}.nav-disclosure{width:auto}.nav-panel{top:calc(100% + var(--space-xs));left:calc(-1 * var(--space-sm));padding:var(--space-lg);width:max-content;min-width:25rem;max-width:42rem;box-shadow:0 12px 32px var(--color-image-shadow);background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);position:absolute}.city-menu{grid-template-columns:repeat(2,minmax(0,1fr));left:auto;right:0}.hero{align-items:center;gap:var(--space-2xl);padding-block:var(--space-lg) var(--space-xl);grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}.hero-copy{padding-block:var(--space-lg)}.hero h1{max-width:none}.hero-description{margin-top:var(--space-lg)}.hero-actions{margin-block:var(--space-lg) var(--space-lg)}.trust-line{gap:var(--space-sm)}.trust-line li{font-size:var(--text-xs)}.hero-photo{aspect-ratio:1.05}.discover-link{margin-top:var(--space-lg)}.intro-band>div{gap:var(--space-xl);grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) auto}.intro-band a{grid-column:auto}.service-section{padding-block:clamp(2rem,3.5vw,3rem)}.section-heading{margin-bottom:var(--space-lg)}.service-row-title{font-size:var(--text-2xl)}.desktop-break{display:inline}.craft-section{gap:var(--space-xl);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);padding-block:clamp(2rem,3.5vw,2.75rem)}.craft-photo{aspect-ratio:1.15}.craft-copy{padding-block:var(--space-md)}.gallery-section{padding-block:clamp(2rem,3.5vw,3rem)}.gallery-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr)}.gallery-item-2{display:block}.gallery-item-1{padding-top:var(--space-md)}.gallery-photo{aspect-ratio:1/1.2}.area-section{padding-block:clamp(2rem,3.5vw,2.75rem)}.area-inner{gap:var(--space-xl);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center}.city-index{column-gap:var(--space-xl)}.emergency-strip{gap:var(--space-xl);grid-template-columns:minmax(0,1fr) minmax(0,.75fr);padding-block:clamp(2.25rem,3.5vw,3rem)}.emergency-phone{padding:var(--space-lg)}.contact-band{padding-block:clamp(2rem,3.5vw,2.75rem)}.contact-band-inner{gap:var(--space-2xl);grid-template-columns:minmax(0,1fr) auto}.footer-main{justify-content:space-between;align-items:center;gap:var(--space-md);flex-direction:row}.footer-main nav{flex-direction:column;gap:0}.footer-brand img{width:80px;height:65px}.detail-hero{gap:var(--space-2xl);padding-block:var(--space-xl) var(--space-2xl);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.detail-photo{aspect-ratio:1.2}.detail-content{gap:var(--space-3xl);padding-bottom:var(--space-2xl);grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);align-items:start}.detail-aside{top:var(--space-lg);position:sticky}.detail-article h2{font-size:2rem}.contact-page{gap:var(--space-2xl);padding-block:var(--space-xl) var(--space-3xl);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.contact-page-photo{aspect-ratio:auto;height:100%;min-height:40rem}.contact-page-photo img{object-position:60% center}.emergency-guidance{max-width:58rem;padding:var(--space-xl)}}@media (min-width:90rem){.hero{gap:var(--space-3xl)}.hero-photo{aspect-ratio:1.03}.service-index{column-gap:var(--space-2xl)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}.service-row:hover svg,.button:active,.icon-button:active{transform:none}}.header-phone-copy{gap:var(--space-3xs);flex-direction:column;display:flex}.header-phone-copy>span:last-child{font-size:var(--text-xs);color:var(--color-ink-2);font-weight:400}.home-page .hero{padding-block:var(--space-xs) 0;display:block}.hero-frame{background:var(--color-ink);color:var(--color-paper);grid-template-columns:minmax(0,1fr);display:grid}.home-page .hero-copy{padding:var(--space-lg) var(--space-md) var(--space-xl);min-width:0}.home-page .hero-location{color:var(--color-on-dark-muted);margin-bottom:var(--space-lg);font-size:var(--text-sm)}.home-page .hero h1{font-size:var(--text-hero-premium);letter-spacing:-.045em;text-wrap:initial;line-height:1.04}.home-page .hero h1>span{color:var(--color-accent-soft)}.hero-title-break{display:inline}.home-page .hero-description{color:var(--color-on-dark-muted);font-size:var(--text-md);margin-top:var(--space-md)}.home-page .hero-actions{gap:var(--space-md);margin-block:var(--space-lg) 0;align-items:center}.home-page .hero-actions .button{flex-grow:0}.hero-call{align-items:center;gap:var(--space-2xs);padding-block:var(--space-xs);min-height:44px;font-size:var(--text-sm);white-space:nowrap;display:inline-flex}.hero-call:hover{text-underline-offset:5px;text-decoration:underline}.home-page .hero-copy a:focus-visible{outline-color:var(--color-focus-on-dark)}.home-page .discover-link{color:var(--color-on-dark-muted);margin-top:var(--space-lg);padding-block:var(--space-xs);font-size:var(--text-xs);white-space:nowrap;display:inline-flex}.home-page .hero-figure{flex-direction:column;min-width:0;display:flex;position:relative}.home-page .hero-photo{aspect-ratio:5/4;border-radius:0;flex-grow:1}.home-page .hero-photo img{object-position:62% 67%}.home-page .hero-figure figcaption{background:var(--color-paper-2);color:var(--color-ink);padding:var(--space-sm) var(--space-md);font-size:var(--text-xs);gap:var(--space-2xs)}.hero-assurance{justify-content:space-between;align-items:center;gap:var(--space-lg);padding-block:var(--space-md);display:flex}.hero-assurance .trust-line{gap:var(--space-sm) var(--space-lg);padding:0}.hero-assurance .trust-line li{font-size:var(--text-xs);white-space:nowrap}.hero-assurance .trust-line svg{color:var(--color-accent);width:18px;height:18px}.assurance-note{color:var(--color-ink-2);font-size:var(--text-xs);display:none}.home-page .intro-band{background:var(--color-clear);padding-block:var(--space-xl);border-bottom:var(--rule-hair) solid var(--color-rule)}.home-page .intro-band p:first-child{font-size:var(--text-introduction)}.home-page .intro-band>div{gap:var(--space-lg)}.home-page .intro-band a{white-space:nowrap}.service-portfolio{gap:var(--space-md) var(--space-xl);grid-template-columns:minmax(0,1fr);display:grid}.service-entry{align-items:center;gap:var(--space-sm);grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.service-entry-copy{gap:var(--space-2xs);flex-direction:column;min-width:0;display:flex}.service-entry .service-row-description{max-width:44ch}.service-entry>svg{color:var(--color-accent);transition:transform var(--dur-short) var(--ease-out)}.service-entry:hover>svg{transform:translate(3px,-3px)}.service-featured{margin-bottom:var(--space-md);align-content:start}.service-featured .service-entry-photo{aspect-ratio:8/5;grid-column:1/-1}.service-featured .service-row-title{font-size:var(--text-2xl)}.service-small{padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);grid-template-columns:4.5rem minmax(0,1fr) auto}.service-small .service-entry-photo{aspect-ratio:1}.service-small .service-row-title{font-size:var(--text-lg)}.service-small .service-row-description{font-size:var(--text-xs);line-height:1.6}.service-small>svg{width:18px;height:18px}.home-page .craft-section{padding-block:var(--space-md) var(--space-2xl);align-items:stretch;gap:0}.home-page .craft-photo{aspect-ratio:6/5}.home-page .craft-copy{background:var(--color-paper-2);padding:var(--space-xl) var(--space-md);flex-direction:column;justify-content:center;align-items:flex-start;display:flex}.home-page .craft-signature{padding-top:var(--space-md);border-top:var(--rule-hair) solid var(--color-rule);align-self:stretch}.home-page .gallery-section{padding-block:var(--space-xl) var(--space-2xl)}.home-page .gallery-item-1{padding-top:0}.home-page .area-copy h2{max-width:14ch}.home-page .emergency-strip{padding-block:var(--space-2xl)}.home-page .emergency-phone{background:var(--color-paper-2);color:var(--color-ink);border-top:var(--rule-hair) solid var(--color-rule)}.home-page .emergency-phone:hover{background:var(--color-paper-3)}.home-page .contact-band{background:var(--color-ink);color:var(--color-paper);padding-block:var(--space-xl);border-top:0}.home-page .contact-band p,.home-page .contact-band-action>span{color:var(--color-on-dark-muted)}.home-page .contact-band .display-phone{color:var(--color-accent-soft)}.home-page .contact-band a:focus-visible{outline-color:var(--color-focus-on-dark)}@media (min-width:40rem){.hero-title-break{display:inline}.home-page .hero-copy{padding:var(--space-lg) var(--space-xl) var(--space-xl)}.hero-assurance .trust-line{gap:var(--space-lg)}.service-portfolio{grid-template-columns:repeat(2,minmax(0,1fr))}.service-small{gap:var(--space-xs);grid-template-columns:4rem minmax(0,1fr) auto}.home-page .craft-copy{padding:var(--space-xl)}.home-page .contact-band{padding-block:var(--space-2xl)}}@media (min-width:48rem) and (max-width:59.999rem){.hero-frame{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}.home-page .hero-copy{padding:var(--space-lg) var(--space-md) var(--space-xl)}.home-page .hero h1{font-size:var(--text-hero-tablet)}.home-page .hero-photo{aspect-ratio:auto}.home-page .hero-actions{align-items:flex-start;gap:var(--space-xs);flex-direction:column}}@media (min-width:60rem){.masthead{padding-block:var(--space-md)}.brand>span:first-child{font-size:2.125rem}.brand-subtitle{margin-top:var(--space-3xs)}.header-phone{gap:var(--space-sm)}.site-navigation,.site-navigation.is-open{gap:var(--space-lg);padding-block:var(--space-2xs)}.site-navigation .nav-contact{background:var(--color-accent);color:var(--color-accent-ink);padding-inline:var(--space-md);border-radius:var(--radius-button);min-height:40px}.site-navigation .nav-contact:hover{background:var(--color-accent-hover);color:var(--color-accent-ink)}.home-page .hero{padding-top:var(--space-md)}.hero-frame{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);min-height:36rem}.home-page .hero-copy{padding:var(--space-lg) var(--space-xl) var(--space-xl);flex-direction:column;justify-content:center;display:flex}.home-page .hero h1{font-size:var(--text-hero-desktop)}.home-page .hero-actions{gap:var(--space-sm) var(--space-md)}.home-page .hero-photo{aspect-ratio:auto;min-height:100%}.home-page .hero-figure figcaption{left:var(--space-md);right:var(--space-md);bottom:var(--space-md);padding:var(--space-sm);position:absolute}.hero-assurance{padding-block:var(--space-lg)}.assurance-note{display:inline}.home-page .intro-band{padding-block:var(--space-xl) var(--space-2xl)}.home-page .intro-band>div{align-items:center;gap:var(--space-xs) var(--space-2xl);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.home-page .intro-band a{grid-column:2}.home-page .service-section{padding-block:var(--space-2xl)}.service-portfolio{column-gap:var(--space-2xl)}.service-featured .service-row-title{font-size:var(--text-2xl)}.service-small{gap:var(--space-md);grid-template-columns:5rem minmax(0,1fr) auto}.service-small .service-row-title{font-size:var(--text-xl)}.service-small .service-row-description{font-size:var(--text-sm)}.home-page .craft-section{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.home-page .craft-photo{aspect-ratio:auto;min-height:36rem}.home-page .craft-copy{padding:var(--space-xl)}.home-page .area-section{padding-block:var(--space-2xl)}.home-page .area-inner{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.home-page .emergency-strip{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.home-page .contact-band h2{font-size:var(--text-display-s)}}@media (min-width:80rem){.home-page .hero-copy{padding:var(--space-lg) var(--space-2xl) var(--space-xl)}.hero-frame{min-height:38rem}.service-featured:nth-child(2) .service-entry-photo{aspect-ratio:9/5}.home-page .craft-copy{padding:var(--space-2xl)}}@media (prefers-reduced-motion:reduce){.service-entry:hover>svg{transform:none}}html{scroll-padding-top:9rem}body{background:var(--color-paper);padding-bottom:calc(4.5rem + env(safe-area-inset-bottom))}h1,h2,h3{letter-spacing:-.045em;overflow-wrap:normal;font-weight:700;line-height:1.12}main{min-width:0}::selection{background:var(--color-highlight);color:var(--color-ink)}.button{min-height:52px;padding-inline:var(--space-md);border-radius:var(--radius-button);transition:background var(--dur-short), color var(--dur-short), border-color var(--dur-short), transform var(--dur-short) var(--ease-out);font-weight:700}.button-primary{background:var(--color-highlight);color:var(--color-ink);border-color:var(--color-highlight)}.button-primary:hover{background:var(--color-highlight-hover);border-color:var(--color-highlight-hover);transform:translateY(-2px)}.button svg,.text-link svg{transition:transform var(--dur-short) var(--ease-out)}.button:hover>svg,.text-link:hover>svg{transform:translate(3px,-3px)}.button:active{transform:translateY(1px)}.button-outline:not(.button-primary):hover{background:var(--color-paper-2)}.icon-button{border-color:var(--color-rule);transition:background var(--dur-short), transform var(--dur-short);border-radius:50%}.icon-button:hover{background:var(--color-highlight);transform:translateY(-2px)}.roof-section-label,.roof-eyebrow{align-items:center;gap:var(--space-2xs);font-size:var(--text-xs);letter-spacing:.12em;font-weight:700;line-height:1.5;display:flex}.roof-section-label{color:var(--color-accent);margin-bottom:var(--space-sm)}.roof-header{z-index:var(--z-nav);background:var(--color-white);border-bottom:var(--rule-hair) solid var(--color-rule);position:sticky;top:0}.roof-topbar{background:var(--color-ink);color:var(--color-paper)}.roof-topbar-inner{justify-content:space-between;align-items:center;gap:var(--space-md);min-height:36px;font-size:var(--text-xs);display:flex}.roof-topbar-inner>span,.roof-topbar-inner>a{align-items:center;gap:var(--space-2xs);display:inline-flex}.roof-topbar-inner>a{color:var(--color-highlight);min-height:36px}.roof-header-main{justify-content:space-between;align-items:center;gap:var(--space-sm);padding-block:var(--space-xs);flex-wrap:wrap;display:flex}.roof-brand{align-items:center;gap:var(--space-xs);min-width:0;display:inline-flex}.roof-brand img{object-fit:contain;width:42px;height:42px}.roof-brand>span{gap:var(--space-3xs);flex-direction:column;display:flex}.roof-brand strong{font-size:var(--text-lg);letter-spacing:-.05em;font-weight:700;line-height:1.2}.roof-brand strong>span{color:var(--color-accent)}.roof-brand>span>span{letter-spacing:.09em;color:var(--color-ink-2);font-size:.54rem}.roof-menu-toggle{border-radius:var(--radius-button);width:44px;height:44px}.roof-navigation{display:none}.roof-navigation.is-open{align-items:stretch;gap:var(--space-2xs);width:100%;padding-block:var(--space-sm);max-height:calc(100dvh - 12rem - env(safe-area-inset-bottom));overscroll-behavior:contain;animation:roof-menu-in var(--dur-long) var(--ease-out);flex-direction:column;order:3;display:flex;overflow-y:auto}.roof-navigation>a:not(.button),.roof-navigation summary{align-items:center;gap:var(--space-2xs);min-height:48px;font-size:var(--text-sm);font-weight:600;display:flex}.roof-navigation .nav-disclosure{min-width:0}.roof-navigation .nav-panel a{white-space:normal;min-height:44px}.roof-navigation .nav-panel{width:100%;min-width:0;max-width:none;box-shadow:none;background:var(--color-paper-2);border-radius:var(--radius-image);border:0;position:static}.roof-navigation .roof-nav-quote{margin-top:var(--space-xs);align-self:flex-start}.roof-navigation>a:not(.button):hover,.roof-navigation [aria-current=page]{text-underline-offset:6px;text-decoration:underline}.roof-navigation .roof-emergency-nav{color:var(--color-accent)}.roof-emergency-pill{margin-left:var(--space-3xs);background:var(--color-accent);color:var(--color-white);letter-spacing:.04em;border-radius:999px;align-items:center;padding:2px 7px;font-size:.65rem;font-weight:700;line-height:1.2;display:inline-flex}.service-flyout{gap:var(--space-sm);padding:var(--space-xs);flex-direction:column;display:flex}.service-group{gap:var(--space-3xs);flex-direction:column;display:flex}.service-group-title{text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent);padding-bottom:var(--space-3xs);border-bottom:var(--rule-hair) solid var(--color-rule);margin-bottom:var(--space-3xs);font-size:.65rem;font-weight:700}.service-group-list{flex-direction:column;gap:2px;display:flex}.service-flyout-item{border-radius:var(--radius-button);transition:background var(--dur-short) var(--ease-out);padding:var(--space-2xs) var(--space-xs)!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;min-height:48px!important;text-decoration:none!important;display:flex!important}.service-flyout-item:hover,.service-flyout-item[aria-current=page]{background:var(--color-paper-2);text-decoration:none!important}.service-item-title{width:100%;font-size:var(--text-sm);color:var(--color-ink);justify-content:space-between;align-items:center;font-weight:600;display:flex}.service-item-title svg{color:var(--color-accent);opacity:.5;transition:transform var(--dur-short) var(--ease-out), opacity var(--dur-short) var(--ease-out)}.service-flyout-item:hover .service-item-title svg{opacity:1;transform:translate(2px,-2px)}.service-item-desc{font-size:var(--text-xs);color:var(--color-ink-2);margin-top:1px;line-height:1.35}.roof-mobile-dock{z-index:var(--z-floating);background:var(--color-white);padding:var(--space-2xs) var(--space-xs) calc(var(--space-2xs) + env(safe-area-inset-bottom));gap:var(--space-2xs);border-top:var(--rule-hair) solid var(--color-rule);grid-template-columns:1fr 1fr;display:grid;position:fixed;inset:auto 0 0}.roof-mobile-dock a{justify-content:center;align-items:center;gap:var(--space-2xs);min-height:48px;font-size:var(--text-sm);border-radius:var(--radius-button);font-weight:700;display:flex}.roof-mobile-dock a:first-child{background:var(--color-ink);color:var(--color-white)}.roof-mobile-dock a:last-child{background:var(--color-highlight)}.roof-topbar a:focus-visible,.roof-footer a:focus-visible,.roof-mobile-dock a:first-child:focus-visible{outline-color:var(--color-focus-on-dark)}.roof-scroll-progress{display:none}.roof-hero{background:var(--color-ink);color:var(--color-white);isolation:isolate;position:relative;overflow:clip}.roof-hero .roof-hero-image{z-index:-2;border-radius:0;height:100%;position:absolute;inset:0}.roof-hero-image img{object-position:65% center;animation:roof-photo-in 1.5s var(--ease-out) both}.roof-hero-scrim{z-index:-1;background:linear-gradient(90deg, var(--color-hero-shade) 0%, var(--color-hero-shade-mid) 58%, var(--color-hero-shade-light) 100%);position:absolute;inset:0}.roof-hero-inner{min-height:clamp(520px,75vh,600px);padding-block:var(--space-lg);flex-direction:column;justify-content:center;display:flex}.roof-hero-copy{max-width:41rem}.roof-eyebrow{letter-spacing:.07em;margin-bottom:var(--space-sm);color:var(--color-highlight);animation:roof-fade-up .8s var(--ease-out) both;font-size:.65rem}.roof-hero h1{font-size:var(--text-display);letter-spacing:-.05em;line-height:1.07}.roof-title-line{margin-bottom:-.08em;padding-bottom:.08em;display:block;overflow:clip}.roof-title-line>span{animation:roof-title-in 1s var(--ease-out) both;display:block}.roof-title-line:nth-child(2)>span{animation-delay:.1s}.roof-title-line:nth-child(3)>span{animation-delay:.2s}.roof-title-accent{color:var(--color-highlight)}.roof-hero-description{color:var(--color-on-dark-muted);max-width:41ch;margin-top:var(--space-sm);font-size:var(--text-md);animation:roof-fade-up .8s .26s var(--ease-out) both}.roof-hero-actions{gap:var(--space-xs);margin-top:var(--space-md);animation:roof-fade-up .8s .35s var(--ease-out) both;flex-wrap:wrap;display:flex}.roof-hero-call{border-color:var(--color-on-dark-rule);color:var(--color-white)}.roof-hero-call:hover{background:var(--color-ink);border-color:var(--color-white)}.roof-hero a:focus-visible{outline-color:var(--color-focus-on-dark)}.roof-quote-note{font-size:var(--text-xs);color:var(--color-on-dark-muted);margin-top:var(--space-xs);max-width:44ch}.roof-hero-bottom{margin-top:var(--space-md);justify-content:space-between;align-items:center;gap:var(--space-lg);display:flex}.roof-discover{gap:var(--space-md);font-size:var(--text-xs);align-items:center;min-height:44px;display:inline-flex}.roof-discover svg{transition:transform var(--dur-long) var(--ease-out)}.roof-discover:hover svg{transform:translateY(5px)}.roof-hero-seal{gap:var(--space-sm);padding:var(--space-md);background:var(--color-ink);border:var(--rule-hair) solid var(--color-on-dark-rule);border-radius:var(--radius-button);font-size:var(--text-sm);align-items:center;line-height:1.5;display:none}.roof-hero-seal svg{color:var(--color-highlight)}.roof-assurance{background:var(--color-paper-2);border-bottom:var(--rule-hair) solid var(--color-rule)}.roof-assurance-inner{justify-content:space-between;align-items:center;gap:var(--space-sm);padding-block:var(--space-sm);display:flex}.roof-assurance .trust-line{gap:var(--space-sm) var(--space-md);padding:0}.roof-assurance .trust-line li{color:var(--color-ink);font-weight:600}.roof-assurance .trust-line svg{color:var(--color-accent)}.roof-assurance-inner>span{font-size:var(--text-sm);align-items:center;gap:var(--space-xs);display:none}.roof-assurance-reviews{align-items:center;gap:var(--space-2xs);font-size:var(--text-xs);color:var(--color-ink);padding:6px var(--space-sm);background:var(--color-white);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-button);transition:background var(--dur-short), border-color var(--dur-short), transform var(--dur-short) var(--ease-out);font-weight:600;display:inline-flex}.roof-assurance-reviews:hover{border-color:var(--color-accent);transform:translateY(-1px)}.roof-assurance-reviews svg:first-child{color:var(--color-highlight);fill:currentColor}.roof-assurance-reviews span{color:var(--color-ink-2);font-weight:500}.home-page .service-section{padding-block:clamp(2rem,3.5vw,3rem)}.section-heading>div{min-width:0}.home-page .service-section .section-heading h2{max-width:22ch}.section-heading>p{max-width:38ch;font-size:var(--text-sm);color:var(--color-ink-2)}.roof-service-grid{gap:var(--space-sm);grid-template-columns:minmax(0,1fr);display:grid}.roof-service{border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-image);min-width:0;text-decoration:none;position:relative;overflow:clip}.roof-service-photo{aspect-ratio:16/10;border-radius:0}.roof-service-photo img{transition:transform .7s var(--ease-out)}.roof-service:hover .roof-service-photo img{transform:scale(1.04)}.roof-service-copy{gap:var(--space-3xs);padding:var(--space-sm);flex-direction:column;display:flex}.roof-service-number{letter-spacing:.1em;color:var(--color-accent);font-size:.65rem;font-weight:700}.roof-service .service-row-title{font-family:var(--font-body);font-size:var(--text-lg);color:var(--color-ink);font-weight:700;line-height:1.3}.roof-service .service-row-description{font-size:var(--text-sm);color:var(--color-ink-2);line-height:1.5}.roof-service>svg{right:var(--space-md);bottom:var(--space-md);color:var(--color-accent);transition:transform var(--dur-short) var(--ease-out);position:absolute}.roof-service:hover>svg{transform:translate(3px,-3px)}.roof-service-flagship{background:var(--color-white);transition:transform var(--dur-short) var(--ease-out), box-shadow var(--dur-short)}.roof-service-flagship .service-row-title{font-size:var(--text-xl)}.roof-service-flagship:hover{box-shadow:0 12px 28px var(--color-image-shadow);transform:translateY(-3px)}.roof-service-standard{background:var(--color-paper-2);align-items:center;gap:var(--space-sm);padding:var(--space-2xs) var(--space-sm);transition:background var(--dur-short), transform var(--dur-short) var(--ease-out), border-color var(--dur-short);grid-template-columns:72px minmax(0,1fr) auto;display:grid}.roof-service-standard .roof-service-photo{aspect-ratio:1;border-radius:var(--radius-button)}.roof-service-standard .roof-service-copy{padding:0}.roof-service-standard>svg{margin-right:var(--space-xs);position:static}.roof-service-standard:hover{background:var(--color-white);border-color:var(--color-accent);transform:translateY(-2px)}.home-page .craft-section{gap:var(--space-md);grid-template-columns:minmax(0,1fr);padding-block:clamp(2rem,3.5vw,2.75rem)}.home-page .craft-photo{aspect-ratio:16/10;border:var(--rule-hair) solid var(--color-rule);height:auto;min-height:0}.home-page .craft-photo img{object-position:center 55%}.home-page .craft-copy{background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-image);padding:clamp(1.25rem,2.5vw,1.75rem)}.home-page .craft-copy p{margin-top:var(--space-sm)}.roof-craft-points{gap:var(--space-xs);margin-top:var(--space-md);flex-direction:column;list-style:none;display:flex}.roof-craft-points li{align-items:flex-start;gap:var(--space-xs);font-size:var(--text-sm);line-height:1.6;display:flex}.roof-craft-points svg{color:var(--color-accent);margin-top:3px}.craft-signature{border-top:var(--rule-hair) solid var(--color-rule);padding-top:var(--space-sm);margin-top:var(--space-md)}.craft-signature span:first-child{font-weight:700;font-size:var(--text-lg)}.home-page .gallery-section{border-top:var(--rule-hair) solid var(--color-rule);padding-block:clamp(2rem,3.5vw,3rem)}.gallery-header-row{gap:var(--space-md);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.gallery-header-row h2{letter-spacing:-.04em;font-size:clamp(2rem,3.8vw,3.2rem);line-height:1.1}.gallery-subtext{margin-top:var(--space-sm);color:var(--color-ink-2);max-width:52ch;font-size:var(--text-md);line-height:1.6}.gallery-filters{gap:var(--space-xs);flex-wrap:wrap;align-items:center;display:flex}.gallery-filter-pill{align-items:center;gap:var(--space-2xs);padding:8px var(--space-md);font-size:var(--text-xs);border-radius:var(--radius-button);background:var(--color-paper-2);color:var(--color-ink);border:var(--rule-hair) solid var(--color-rule);cursor:pointer;transition:background-color var(--dur-short), border-color var(--dur-short), transform var(--dur-short) var(--ease-out);font-weight:700;display:inline-flex}.gallery-filter-pill:hover{background:var(--color-white);border-color:var(--color-accent);transform:translateY(-1px)}.gallery-filter-pill.is-active{background:var(--color-ink);color:var(--color-white);border-color:var(--color-ink)}.gallery-filter-count{background:var(--color-paper-3);color:var(--color-ink);border-radius:999px;padding:1px 6px;font-size:.7rem;font-weight:600}.gallery-filter-pill.is-active .gallery-filter-count{background:var(--color-highlight);color:var(--color-ink)}.gallery-mosaic-grid{gap:var(--space-md);grid-template-columns:minmax(0,1fr);display:grid}.gallery-card{min-width:0;margin:0;padding:0}.gallery-card-trigger{background:var(--color-white);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-image);text-align:left;cursor:pointer;width:100%;height:100%;box-shadow:0 4px 16px var(--color-image-shadow);transition:transform var(--dur-short) var(--ease-out), box-shadow var(--dur-short), border-color var(--dur-short);flex-direction:column;margin:0;padding:0;display:flex;overflow:clip}.gallery-card-trigger:hover{box-shadow:0 16px 32px var(--color-image-shadow);border-color:var(--color-accent);transform:translateY(-4px)}.gallery-card-media{aspect-ratio:16/10;background:var(--color-paper-3);width:100%;position:relative;overflow:clip}.gallery-card-img{object-fit:cover;transition:transform .7s var(--ease-out)}.gallery-card-trigger:hover .gallery-card-img{transform:scale(1.05)}.gallery-card-scrim{pointer-events:none;background:linear-gradient(#00000073 0%,#0000 40%,#00000040 100%);position:absolute;inset:0}.gallery-category-badge{top:var(--space-sm);left:var(--space-sm);z-index:2;letter-spacing:.06em;text-transform:uppercase;background:var(--color-overlay);color:var(--color-white);border-radius:var(--radius-button);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid #fff3;padding:3px 8px;font-size:.68rem;font-weight:700;position:absolute}.gallery-zoom-button{top:var(--space-sm);right:var(--space-sm);z-index:2;background:var(--color-overlay);width:32px;height:32px;color:var(--color-white);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform var(--dur-short), background var(--dur-short);border-radius:50%;place-items:center;display:grid;position:absolute}.gallery-card-trigger:hover .gallery-zoom-button{background:var(--color-highlight);color:var(--color-ink);transform:scale(1.1)}.gallery-card-caption{padding:var(--space-sm);gap:var(--space-3xs);background:var(--color-white);flex-direction:column;display:flex}.gallery-card-location{font-size:var(--text-xs);color:var(--color-accent);align-items:center;gap:4px;font-weight:600;display:inline-flex}.gallery-card-title{font-size:var(--text-md);color:var(--color-ink);font-weight:700;line-height:1.35}.gallery-card-desc{font-size:var(--text-xs);color:var(--color-ink-2);margin-top:var(--space-2xs);line-height:1.5}@media (min-width:60rem){.gallery-header-row{flex-direction:row;justify-content:space-between;align-items:flex-end}.gallery-mosaic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-card-flagship{grid-column:span 2}.gallery-card-flagship .gallery-card-media{aspect-ratio:21/11}.gallery-card-flagship .gallery-card-title{font-size:var(--text-lg)}}@media (min-width:40rem) and (max-width:59.999rem){.gallery-mosaic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.gallery-toggle-wrapper{margin-top:var(--space-lg);justify-content:center;display:flex}.gallery-toggle-btn{min-height:48px;padding-inline:var(--space-xl);font-weight:700;font-size:var(--text-sm);border-color:var(--color-rule);background:var(--color-white);color:var(--color-ink);box-shadow:0 2px 8px var(--color-image-shadow)}.gallery-toggle-btn:hover{background:var(--color-paper-2);border-color:var(--color-ink)}.gallery-bottom-bar{justify-content:space-between;align-items:center;gap:var(--space-md);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:var(--rule-hair) solid var(--color-rule);flex-wrap:wrap;display:flex}.gallery-guarantee{align-items:center;gap:var(--space-2xs);font-size:var(--text-xs);color:var(--color-ink-2);font-weight:600;display:inline-flex}.gallery-guarantee svg{color:var(--color-accent)}.gallery-cta{min-height:48px}.gallery-lightbox{border-radius:var(--radius-image);background:var(--color-ink);color:var(--color-paper);border:0;outline:none;width:min(94vw,68rem);max-width:68rem;padding:0;box-shadow:0 24px 64px #0009}.gallery-lightbox::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0e1713d9}.gallery-lightbox-content{flex-direction:column;display:flex}.gallery-lightbox-topbar{padding:var(--space-sm) var(--space-md);border-bottom:var(--rule-hair) solid var(--color-on-dark-rule);justify-content:space-between;align-items:center;display:flex}.gallery-lightbox-meta{align-items:center;gap:var(--space-sm);display:flex}.gallery-lightbox-category{font-size:var(--text-xs);color:var(--color-highlight);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.gallery-lightbox-counter{font-size:var(--text-xs);color:var(--color-on-dark-muted)}.gallery-lightbox-close{color:var(--color-paper);border-color:var(--color-on-dark-rule);background:0 0}.gallery-lightbox-close:hover{background:var(--color-highlight);color:var(--color-ink)}.gallery-lightbox-image-wrapper{aspect-ratio:16/10;background:#000;width:100%;position:relative}.gallery-lightbox-image{object-fit:contain}.gallery-lightbox-caption-bar{padding:var(--space-md) var(--space-lg);justify-content:space-between;align-items:center;gap:var(--space-md);border-top:var(--rule-hair) solid var(--color-on-dark-rule);flex-wrap:wrap;display:flex}.gallery-lightbox-title{font-size:var(--text-lg);color:var(--color-paper);display:block}.gallery-lightbox-desc{font-size:var(--text-sm);color:var(--color-on-dark-muted);max-width:48ch;margin-top:2px}.gallery-lightbox-loc{font-size:var(--text-xs);color:var(--color-highlight);align-items:center;gap:4px;margin-top:4px;display:inline-flex}.gallery-lightbox-nav-buttons{gap:var(--space-xs);display:flex}.gallery-nav-btn{border-color:var(--color-on-dark-rule);color:var(--color-paper);min-height:44px}.gallery-nav-btn:hover{background:var(--color-paper-2);color:var(--color-ink)}@media (prefers-reduced-motion:reduce){.gallery-card-trigger:hover,.gallery-card-trigger:hover .gallery-card-img,.gallery-filter-pill:hover{transform:none}}.roof-process{gap:var(--space-lg);border-top:var(--rule-hair) solid var(--color-rule);padding-block:clamp(2rem,3.5vw,2.75rem);display:grid}.roof-process ol{gap:var(--space-md);margin:0;padding:0;list-style:none;display:grid}.roof-process li{gap:var(--space-md);grid-template-columns:auto minmax(0,1fr);align-items:start;display:grid}.roof-step-number{background:var(--color-paper-2);width:44px;height:44px;color:var(--color-accent);font-size:var(--text-sm);border-radius:50%;place-items:center;font-weight:700;display:grid}.roof-process h3{font-size:var(--text-lg);letter-spacing:-.025em;line-height:1.4}.roof-process li p{font-size:var(--text-sm);color:var(--color-ink-2);margin-top:var(--space-2xs)}.area-section{background:var(--color-ink);color:var(--color-white);padding-block:clamp(2rem,3.5vw,2.75rem)}.area-copy .roof-section-label{color:var(--color-highlight);margin:0 0 var(--space-sm);font-size:var(--text-xs)}.area-copy>p:not(.roof-section-label){color:var(--color-on-dark-muted)}.area-section .text-link{color:var(--color-white)}.area-section a:focus-visible{outline-color:var(--color-focus-on-dark)}.city-index a{border-color:var(--color-on-dark-rule);min-height:42px;padding-block:var(--space-xs);transition:color var(--dur-short)}.city-index a:hover{color:var(--color-highlight)}.city-index svg{color:var(--color-highlight);opacity:1}@media (min-width:48rem){.city-index{column-gap:var(--space-xl);grid-template-columns:repeat(2,minmax(0,1fr))}}.home-page .emergency-strip{gap:var(--space-md);padding-block:clamp(2rem,3.5vw,2.75rem)}.emergency-label{font-weight:700}.emergency-phone{background:var(--color-paper-2);color:var(--color-ink);border-radius:var(--radius-image);border:var(--rule-hair) solid var(--color-rule);padding:var(--space-md);gap:var(--space-sm);transition:background var(--dur-short), transform var(--dur-short), border-color var(--dur-short)}.emergency-phone:hover{background:var(--color-highlight);border-color:var(--color-highlight);transform:translateY(-2px)}.emergency-phone>span:first-of-type{font-weight:700}.contact-band{background:var(--color-paper-2);border:0;padding-block:clamp(2rem,3.5vw,2.75rem)}.home-page .contact-band{border-top:0;padding-block:clamp(2rem,3.5vw,2.75rem)}.contact-band .roof-section-label{color:var(--color-accent);margin:0 0 var(--space-sm);font-size:var(--text-xs)}.contact-band p:not(.roof-section-label){color:var(--color-ink-2)}.contact-band-action{align-items:flex-start}.contact-band-action .button{margin-top:var(--space-sm)}.display-phone{letter-spacing:-.035em;font-size:clamp(1.45rem,2.6vw,2.5rem);font-weight:700}.breadcrumb{padding-top:var(--space-lg)}.detail-hero,.contact-page{padding-top:var(--space-xl)}.detail-hero h1,.contact-page h1{letter-spacing:-.055em}.detail-photo{border-radius:var(--radius-image)}.detail-aside>div:first-child{background:var(--color-ink);color:var(--color-white);border-radius:var(--radius-image)}.detail-aside>div:first-child p{color:var(--color-on-dark-muted)}.detail-aside>div:first-child a:focus-visible{outline-color:var(--color-focus-on-dark)}.detail-aside h2{font-size:var(--text-2xl)}.detail-aside .aside-phone{color:var(--color-white)}.aside-emergency{border-radius:var(--radius-image)}.check-list svg,.emergency-situations svg{color:var(--color-accent)}.detail-article .article-section{padding-block:var(--space-md)}.service-row-title{font-weight:700}.service-row .roof-service-copy{grid-column:1}.service-index .service-row svg{grid-column:2}.contact-page-phone{color:var(--color-ink);font-weight:700}.contact-page-photo{border-radius:var(--radius-image)}.roof-footer{background:var(--color-ink);color:var(--color-white);padding-block:var(--space-xl) var(--space-lg)}.roof-footer-main{gap:var(--space-lg);display:grid}.roof-footer .footer-brand{align-items:flex-start}.roof-footer .footer-brand img{border-radius:var(--radius-image);background:var(--color-white);width:50px;height:50px}.roof-footer .footer-wordmark{font-weight:700;font-size:var(--text-lg);letter-spacing:-.04em}.roof-footer .footer-brand p{margin-top:var(--space-xs);color:var(--color-on-dark-muted);line-height:1.7}.roof-footer-label{letter-spacing:.1em;color:var(--color-highlight);margin-bottom:var(--space-xs);font-size:.65rem;font-weight:700}.roof-footer .footer-contact{gap:var(--space-2xs)}.roof-footer .footer-contact a{font-size:var(--text-lg)}.roof-footer .footer-contact span{color:var(--color-on-dark-muted)}.roof-footer-main nav{flex-direction:column;align-items:flex-start;display:flex}.roof-footer-main nav a{font-size:var(--text-sm);align-items:center;min-height:36px;display:flex}.roof-footer-main nav a:hover{text-underline-offset:5px;color:var(--color-highlight);text-decoration:underline}.roof-footer .footer-bottom{color:var(--color-on-dark-muted);border-color:var(--color-on-dark-rule);margin-top:var(--space-xl)}.roof-footer-sectors{margin-top:var(--space-xl);padding-top:var(--space-md);border-top:var(--rule-hair) solid var(--color-on-dark-rule)}.footer-sectors-list{gap:var(--space-2xs) var(--space-md);margin-top:var(--space-xs);flex-wrap:wrap;display:flex}.footer-sectors-list a{font-size:var(--text-xs);color:var(--color-on-dark-muted);line-height:1.6}.footer-sectors-list a:hover{color:var(--color-highlight);text-underline-offset:4px;text-decoration:underline}@keyframes roof-title-in{0%{transform:translateY(110%)}to{transform:translateY(0)}}@keyframes roof-fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes roof-photo-in{0%{opacity:.5;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes roof-dialog-in{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:none}}@keyframes roof-menu-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes roof-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes roof-gallery-in{0%{opacity:.25}to{opacity:1}}@keyframes roof-parallax{0%{transform:scale(1.1)translateY(-2%)}to{transform:scale(1.1)translateY(2%)}}@supports (animation-timeline:scroll()){.roof-scroll-progress{background:var(--color-highlight);width:100%;height:3px;z-index:var(--z-dialog);transform-origin:0;animation:linear both roof-progress;animation-timeline:scroll(root);display:block;position:fixed;top:0;left:0}}@supports (animation-timeline:view()){.home-page .craft-photo img{animation:linear both roof-parallax;animation-timeline:view();animation-range:entry exit}}@media (max-width:24rem){.roof-topbar-inner{justify-content:center}.roof-topbar-inner>span{display:none}.roof-brand img{width:34px;height:34px}.roof-brand strong{font-size:var(--text-md)}.roof-brand>span>span{font-size:.46rem}.roof-hero-inner{min-height:clamp(480px,85vh,540px)}.roof-hero h1{font-size:2.55rem}.roof-hero-actions{flex-direction:column;align-items:flex-start}}@media (min-width:40rem){.roof-brand img{width:52px;height:52px}.roof-brand strong{font-size:var(--text-xl)}.roof-brand>span>span{font-size:.6rem}.roof-hero-inner{min-height:clamp(540px,75vh,600px);padding-block:var(--space-xl) var(--space-md)}.roof-hero-description{font-size:var(--text-lg)}.roof-eyebrow{font-size:var(--text-xs)}.roof-hero-seal{display:flex}.roof-service-grid,.roof-footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:60rem){.home-page .craft-section{align-items:stretch;gap:var(--space-lg);grid-template-columns:1fr 1fr}.home-page .craft-photo{aspect-ratio:auto;height:100%;min-height:22rem;max-height:27rem}.home-page .craft-copy{padding:var(--space-lg)}.roof-process{align-items:start;gap:var(--space-xl);grid-template-columns:.85fr 1.15fr;padding-block:clamp(2rem,3.5vw,2.75rem)}.area-inner{align-items:start}.home-page .emergency-strip{gap:var(--space-xl);grid-template-columns:1fr .7fr;padding-block:clamp(2.25rem,3.5vw,3rem)}}@media (min-width:70rem){body{padding-bottom:0}.roof-mobile-dock,.roof-menu-toggle{display:none}.roof-header-main{min-height:88px;padding-block:var(--space-xs);flex-wrap:nowrap}.roof-navigation,.roof-navigation.is-open{align-items:center;gap:var(--space-md);flex-direction:row;order:0;width:auto;max-height:none;padding:0;display:flex;overflow:visible}.roof-navigation .nav-disclosure{width:auto}.roof-navigation .roof-nav-quote{margin:0 0 0 var(--space-xs);align-self:center}.roof-navigation .nav-panel{background:var(--color-white);width:max-content;max-width:40rem;top:calc(100% + var(--space-sm));padding:var(--space-lg);border:var(--rule-hair) solid var(--color-rule);min-width:22rem;position:absolute}.roof-navigation .service-flyout{gap:var(--space-lg);width:38rem;min-width:36rem;max-width:42rem;padding:var(--space-lg);border-radius:var(--radius-image);box-shadow:0 16px 36px var(--color-image-shadow);grid-template-columns:1fr 1fr;display:grid}.roof-navigation .service-flyout-item:hover{background:var(--color-paper)}.roof-brand{flex-shrink:0}.roof-brand strong{font-size:var(--text-xl)}.roof-hero-inner{min-height:clamp(560px,72vh,620px)}.roof-hero-scrim{background:linear-gradient(90deg, var(--color-hero-shade) 0%, var(--color-hero-shade-mid) 36%, var(--color-hero-shade-light) 80%)}.roof-hero-bottom{margin-top:var(--space-lg)}.roof-assurance .trust-line{gap:var(--space-xl)}.roof-assurance .trust-line li{font-size:var(--text-sm)}.roof-assurance-inner>span{display:inline-flex}.home-page .service-section{padding-block:clamp(2.5rem,4vw,3.5rem)}.roof-service-grid{gap:var(--space-lg);grid-template-columns:repeat(2,minmax(0,1fr))}.home-page .gallery-section{padding-block:clamp(2.5rem,4vw,3.5rem)}.roof-footer-main{gap:var(--space-xl);grid-template-columns:1.4fr 1.1fr 1fr .8fr}}@media (prefers-reduced-motion:reduce){.roof-scroll-progress{display:none}.roof-title-line>span,.roof-eyebrow,.roof-hero-image img,.roof-hero-description,.roof-hero-actions,.roof-navigation.is-open,.lightbox[open],.lightbox-photo img,.home-page .gallery-photo img,.home-page .craft-photo img{animation:none}.roof-service:hover .roof-service-photo img,.home-page .gallery-photo:hover img,.gallery-photo:hover .gallery-enlarge,.button:hover,.button:hover>svg,.text-link:hover>svg,.roof-service:hover>svg,.roof-discover:hover svg,.emergency-phone:hover,.icon-button:hover{transform:none}}.roof-google-rating{align-items:center;gap:var(--space-sm);padding-block:var(--space-xs);min-height:56px;color:var(--color-ink);width:fit-content;display:inline-flex}.roof-rating-number{font-size:var(--text-2xl);letter-spacing:-.04em;white-space:nowrap;font-weight:700;line-height:1}.roof-rating-number>span{font-size:var(--text-sm);letter-spacing:0;padding-left:var(--space-3xs);font-weight:500}.roof-rating-meta{gap:var(--space-3xs);font-size:var(--text-xs);flex-direction:column;line-height:1.5;display:flex}.roof-rating-stars{color:var(--color-accent);gap:3px;display:inline-flex}.roof-rating-star{width:18px;height:18px;display:inline-block;position:relative}.roof-star-base{opacity:.5}.roof-star-fill{height:18px;position:absolute;top:0;left:0;overflow:clip}.roof-star-fill>svg{fill:currentColor;max-width:none}.roof-google-rating>svg{margin-left:var(--space-2xs);transition:transform var(--dur-short) var(--ease-out)}.roof-google-rating:hover>svg{transform:translate(3px,-3px)}.roof-google-rating-dark{color:var(--color-white);background:var(--color-ink);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-button)}.roof-google-rating-dark .roof-rating-stars{color:var(--color-highlight)}.roof-google-rating-dark .roof-rating-meta>span:last-child{color:var(--color-on-dark-muted)}.roof-hero-copy .roof-google-rating-dark{margin-top:var(--space-sm);background:var(--color-clear);padding:0}.roof-hero-copy .roof-hero-actions{margin-top:var(--space-md)}.roof-hero-caption{font-size:var(--text-xs);color:var(--color-on-dark-muted)}.roof-reviews-section{background:var(--color-paper-2);padding-block:var(--space-2xl);margin-bottom:var(--space-2xl)}.roof-reviews-inner{gap:var(--space-xl);grid-template-columns:minmax(0,1fr);display:grid}.roof-reviews-description{margin-top:var(--space-md);color:var(--color-ink-2);max-width:44ch;font-size:var(--text-md)}.roof-reviews-inner .text-link{margin-top:var(--space-sm);font-weight:600}.roof-reviews-score{align-items:flex-start;gap:var(--space-sm);border-top:var(--rule-hair) solid var(--color-rule);padding-top:var(--space-lg);flex-direction:column;display:flex}.roof-reviews-platform{font-size:var(--text-xs);letter-spacing:.12em;font-weight:700}.roof-reviews-value{font-size:var(--text-review-score);letter-spacing:-.06em;font-weight:700;line-height:1}.roof-reviews-value>span{font-size:var(--text-2xl);letter-spacing:0;margin-left:var(--space-sm);font-weight:500}.roof-reviews-score>p:not(.roof-reviews-value){font-size:var(--text-sm);color:var(--color-ink-2)}.roof-reviews-date{font-size:var(--text-xs);color:var(--color-ink-2)}@media (max-width:39.99rem){.roof-hero-bottom{align-items:flex-start;gap:var(--space-sm);margin-top:var(--space-lg);flex-direction:column}.roof-google-rating-dark{padding:var(--space-xs) var(--space-sm)}.roof-hero-caption{display:none}}@media (min-width:60rem){.roof-reviews-inner{align-items:center;gap:var(--space-2xl);grid-template-columns:1.3fr .7fr}.roof-reviews-score{border-top:0;border-left:var(--rule-hair) solid var(--color-rule);padding:var(--space-md) 0 var(--space-md) var(--space-2xl)}}@media (prefers-reduced-motion:reduce){.roof-google-rating:hover>svg{transform:none}}.roof-testimonials-section{background:var(--color-ink);color:var(--color-paper);margin-bottom:0;padding-block:clamp(2rem,3.5vw,3rem)}.roof-testimonials-heading{gap:var(--space-lg);margin-bottom:var(--space-lg);grid-template-columns:minmax(0,1fr);align-items:center;display:grid}.roof-testimonials-heading h2{letter-spacing:-.04em;font-size:clamp(2rem,3.8vw,3.2rem);line-height:1.1}.roof-testimonials-heading h2>span{color:var(--color-on-dark-muted)}.roof-testimonials-subtext{margin-top:var(--space-sm);color:var(--color-on-dark-muted);font-size:var(--text-md);max-width:52ch;line-height:1.6}.roof-score-block{background:var(--color-hero-shade-mid);border:var(--rule-hair) solid var(--color-on-dark-rule);border-radius:var(--radius-image);padding:var(--space-md);gap:var(--space-xs);flex-direction:column;align-items:flex-start;width:fit-content;display:flex}.roof-score-header{align-items:baseline;gap:var(--space-xs);display:flex}.roof-score-number{letter-spacing:-.05em;color:var(--color-highlight);font-size:clamp(2.8rem,4.5vw,4rem);font-weight:700;line-height:1}.roof-score-meta{gap:var(--space-3xs);flex-direction:column;display:flex}.roof-score-over{font-size:var(--text-lg);color:var(--color-on-dark-muted);font-weight:600}.roof-score-count{font-size:var(--text-sm);color:var(--color-paper)}.roof-score-count strong{color:var(--color-highlight)}.roof-google-view-all{min-height:44px;font-size:var(--text-xs);padding-inline:var(--space-md);margin-top:var(--space-xs)}.roof-testimonials-grid{gap:var(--space-md);grid-template-columns:minmax(0,1fr);display:grid}.roof-testimonial-card{background:var(--color-paper);color:var(--color-ink);border-radius:var(--radius-image);border:var(--rule-hair) solid var(--color-rule);box-shadow:0 10px 24px var(--color-image-shadow);transition:transform var(--dur-short) var(--ease-out), box-shadow var(--dur-short);flex-direction:column;justify-content:space-between;padding:clamp(1.15rem,2vw,1.6rem);display:flex}.roof-testimonial-card:hover{box-shadow:0 16px 36px var(--color-image-shadow);transform:translateY(-4px)}.testimonial-card-top{justify-content:space-between;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs);flex-wrap:wrap;display:flex}.testimonial-stars-row{align-items:center;gap:var(--space-xs);display:flex}.testimonial-badge{background:var(--color-paper-2);color:var(--color-accent);border-radius:var(--radius-button);align-items:center;gap:3px;padding:2px 7px;font-size:.68rem;font-weight:700;display:inline-flex}.roof-testimonial-card .roof-testimonial-category{font-size:var(--text-xs);color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.roof-testimonial-card blockquote{margin:0 0 var(--space-xs)}.roof-testimonial-card blockquote p{letter-spacing:-.03em;color:var(--color-ink);font-size:clamp(1.05rem,1.4vw,1.25rem);font-weight:700;line-height:1.35}.roof-testimonial-card .roof-testimonial-context{font-size:var(--text-sm);color:var(--color-ink-2);margin-bottom:var(--space-sm);line-height:1.6}.roof-testimonial-card figcaption{justify-content:space-between;align-items:center;gap:var(--space-sm);padding-top:var(--space-sm);border-top:var(--rule-hair) solid var(--color-rule);flex-wrap:wrap;margin-top:auto;display:flex}.roof-review-user{align-items:center;gap:var(--space-xs);display:flex}.roof-testimonial-card .roof-review-initials{background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule);width:40px;height:40px;color:var(--color-accent);font-weight:700;font-size:var(--text-sm);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.roof-testimonial-card .roof-review-author{flex-direction:column;line-height:1.25;display:flex}.roof-testimonial-card .roof-review-author strong{font-size:var(--text-sm);color:var(--color-ink)}.roof-testimonial-card .roof-review-author span{font-size:var(--text-xs);color:var(--color-ink-2)}.testimonial-source-link{font-size:var(--text-xs);color:var(--color-accent);padding:var(--space-3xs) var(--space-2xs);border-radius:var(--radius-button);transition:background-color var(--dur-short), color var(--dur-short);align-items:center;gap:4px;font-weight:600;display:inline-flex}.testimonial-source-link:hover{background:var(--color-paper-2);text-underline-offset:3px;text-decoration:underline}.testimonial-source-link svg{transition:transform var(--dur-short) var(--ease-out)}.testimonial-source-link:hover svg{transform:translate(2px,-2px)}.roof-testimonials-bottom{justify-content:space-between;align-items:center;gap:var(--space-md);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:var(--rule-hair) solid var(--color-on-dark-rule);flex-wrap:wrap;display:flex}.roof-proof-note{align-items:center;gap:var(--space-2xs);font-size:var(--text-xs);color:var(--color-on-dark-muted);display:inline-flex}.roof-proof-note svg{color:var(--color-highlight)}.roof-testimonials-bottom .text-link{color:var(--color-highlight);font-weight:700;font-size:var(--text-sm)}@media (min-width:60rem){.roof-testimonials-heading{grid-template-columns:minmax(0,1.4fr) auto}.roof-testimonials-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.roof-testimonial-card:hover,.testimonial-source-link:hover svg{transform:none}}.area-badges{gap:var(--space-xs);margin-block:var(--space-xs) var(--space-md);flex-wrap:wrap;display:flex}.area-badge{align-items:center;gap:var(--space-3xs);font-size:var(--text-xs);background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);color:var(--color-ink);padding:.25rem .65rem;font-weight:600;display:inline-flex}.city-index-grouped{gap:var(--space-lg);flex-direction:column;display:flex}.city-group-title{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-xs);padding-bottom:var(--space-3xs);border-bottom:var(--rule-hair) solid var(--color-rule);font-weight:700}.city-group-grid{gap:var(--space-2xs);grid-template-columns:minmax(0,1fr);display:grid}@media (min-width:36rem){.city-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.city-link-card{justify-content:space-between;align-items:center;gap:var(--space-xs);background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);color:var(--color-ink);transition:all var(--dur-short) var(--ease-out);padding:.55rem .75rem;text-decoration:none;display:flex}.city-link-card:hover{border-color:var(--color-accent);background:var(--color-paper-3);transform:translateY(-1px)}.city-link-card:hover .city-name{color:var(--color-accent)}.city-name-wrap{flex-direction:column;min-width:0;display:flex}.city-name{font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.city-postal{color:var(--color-ink-2);font-size:.75rem}.city-badge-tag{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-sm);background:var(--color-accent-soft,#b3442b14);color:var(--color-accent);white-space:nowrap;padding:.15rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.city-badge-main{background:var(--color-ink);color:var(--color-paper)}.city-badge-sector{background:var(--color-paper-2);color:var(--color-ink-2);border:var(--rule-hair) solid var(--color-rule)}.city-link-card svg{color:var(--color-accent);opacity:.6;transition:transform var(--dur-short) var(--ease-out), opacity var(--dur-short) var(--ease-out);flex-shrink:0}.city-link-card:hover svg{opacity:1;transform:translate(2px,-2px)}.roof-emergency-alert-banner{color:#fff;font-size:var(--text-xs);z-index:100;background:linear-gradient(90deg,#991b1b,#dc2626);padding-block:.55rem;position:relative;box-shadow:0 2px 8px #dc262640}.alert-banner-inner{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.alert-banner-content{align-items:center;gap:var(--space-sm);flex:1;min-width:280px;display:flex}.alert-pulsing-badge{letter-spacing:.05em;white-space:nowrap;background-color:#00000040;border:1px solid #ffffff4d;border-radius:9999px;align-items:center;gap:.35rem;padding:.15rem .5rem;font-size:.7rem;font-weight:800;display:inline-flex}.pulsing-dot{background-color:#ef4444;border-radius:50%;width:6px;height:6px;animation:1.5s infinite pulseDot;box-shadow:0 0 #ef4444b3}@keyframes pulseDot{0%{transform:scale(.95);box-shadow:0 0 #ffffffb3}70%{transform:scale(1);box-shadow:0 0 0 6px #fff0}to{transform:scale(.95);box-shadow:0 0 #fff0}}.alert-banner-actions{align-items:center;gap:var(--space-sm);display:flex}.alert-phone-btn{color:#991b1b;border-radius:var(--radius-button);font-weight:700;font-size:var(--text-xs);transition:transform var(--dur-short) var(--ease-out);background-color:#fff;align-items:center;gap:.35rem;padding:.25rem .75rem;display:inline-flex}.alert-phone-btn:hover{transform:translateY(-1px)}.alert-details-link{color:#fee2e2;font-size:var(--text-xs);text-underline-offset:2px;align-items:center;gap:.25rem;text-decoration:underline;display:inline-flex}.quote-form-container{background:var(--color-paper-2,#fbf9f5);border:var(--rule-hair,1px) solid var(--color-rule,#e5e0d8);border-radius:var(--radius-card,12px);padding:var(--space-xl,2rem);box-shadow:0 4px 20px -2px #0000000d}.quote-form-header{margin-bottom:var(--space-lg,1.5rem)}.quote-form-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent,#c85a2b);margin-bottom:var(--space-xs,.5rem);background:#c85a2b1a;border-radius:9999px;padding:.25rem .65rem;font-size:.75rem;font-weight:700;display:inline-block}.quote-form-title{color:var(--color-ink,#1e293b);margin-bottom:.35rem;font-size:clamp(1.25rem,2vw,1.6rem);font-weight:700;line-height:1.25}.quote-form-subtitle{color:var(--color-ink-2,#64748b);font-size:.875rem;line-height:1.5}.quote-form-grid{gap:var(--space-md,1rem);margin-bottom:var(--space-md,1rem);grid-template-columns:1fr;display:grid}@media (min-width:480px){.quote-form-grid{grid-template-columns:1fr 1fr}}.quote-field{margin-bottom:var(--space-md,1rem);flex-direction:column;gap:.35rem;display:flex}.quote-label{color:var(--color-ink,#1e293b);font-size:.85rem;font-weight:600}.quote-label .required{color:#dc2626}.quote-input,.quote-select,.quote-textarea{width:100%;color:var(--color-ink,#0f172a);border:1px solid var(--color-rule,#cbd5e1);border-radius:var(--radius-button,8px);background:#fff;padding:.75rem .9rem;font-family:inherit;font-size:.95rem;transition:border-color .15s,box-shadow .15s}.quote-input:focus,.quote-select:focus,.quote-textarea:focus{border-color:var(--color-accent,#c85a2b);outline:none;box-shadow:0 0 0 3px #c85a2b26}.quote-textarea{resize:vertical;min-height:80px}.quote-urgent-toggle{border-radius:var(--radius-button,8px);margin-bottom:var(--space-lg,1.25rem);background:#fff1f2;border:1px solid #fecdd3;padding:.75rem 1rem}.quote-urgent-label{color:#9f1239;cursor:pointer;align-items:center;gap:.6rem;font-size:.875rem;display:flex}.quote-urgent-label input[type=checkbox]{accent-color:#e11d48;cursor:pointer;width:18px;height:18px}.quote-submit-btn{background:var(--color-ink,#1e293b);color:#fff;border-radius:var(--radius-button,8px);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.9rem 1.5rem;font-size:1rem;font-weight:700;transition:background-color .2s,transform .1s;display:flex}.quote-submit-btn:hover:not(:disabled){background:var(--color-accent,#c85a2b);transform:translateY(-1px)}.quote-submit-btn.urgent-btn{background:#e11d48}.quote-submit-btn.urgent-btn:hover:not(:disabled){background:#be123c}.quote-submit-btn:disabled{opacity:.7;cursor:not-allowed}.quote-privacy-note{color:var(--color-ink-2,#64748b);text-align:center;margin-top:.75rem;font-size:.75rem}.quote-form-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.quote-form-success-card{border-radius:var(--radius-card,12px);padding:var(--space-xl,2rem);text-align:center;background:#f0fdf4;border:1px solid #bbf7d0;box-shadow:0 4px 20px -2px #10b9811a}.quote-success-icon-wrap{background:#dcfce7;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 1rem;display:flex}.quote-success-title{color:#14532d;margin-bottom:.5rem;font-size:1.35rem;font-weight:700}.quote-success-desc{color:#166534;max-width:500px;margin:0 auto 1.5rem;font-size:.95rem;line-height:1.6}.quote-whatsapp-box{background:#fff;border:1px solid #86efac;border-radius:10px;margin-bottom:1.5rem;padding:1.25rem}.quote-whatsapp-hint{color:#166534;margin-bottom:.75rem;font-size:.85rem}.quote-whatsapp-cta{color:#fff;background:#25d366;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.85rem 1.25rem;font-size:.95rem;font-weight:700;text-decoration:none;transition:background .2s,transform .1s;display:inline-flex}.quote-whatsapp-cta:hover{background:#1eb754;transform:translateY(-1px)}.quote-success-footer{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;font-size:.85rem;display:flex}.quote-reset-btn{color:#166534;cursor:pointer;background:0 0;border:1px solid #86efac;border-radius:6px;padding:.5rem 1rem;font-size:.8rem;font-weight:600}.quote-direct-call{color:#14532d;align-items:center;gap:.35rem;font-weight:700;text-decoration:underline;display:inline-flex}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
