:root{--ink:#17201d;--ink-soft:#3f4b47;--cream:#f5f1e8;--paper:#fffdf8;--red:#a6312d;--red-dark:#7e231f;--sage:#d6ded7;--line:#17201d26;--shadow:0 24px 60px #17201d1f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:DM Sans,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.15em}.site-header{z-index:20;color:#fff;justify-content:space-between;align-items:center;max-width:1280px;margin:0 auto;padding:24px 38px;display:flex;position:absolute;top:0;left:0;right:0}.brand{align-items:center;gap:12px;display:inline-flex}.brand strong{letter-spacing:.17em;font-size:16px;display:block}.brand small{opacity:.75;letter-spacing:.1em;text-transform:uppercase;margin-top:4px;font-size:10px;display:block}.brand-mark{border:2px solid;width:38px;height:38px;display:block;position:relative}.brand-mark:before,.brand-mark:after,.brand-mark span:before,.brand-mark span:after{content:"";background:currentColor;position:absolute}.brand-mark:before{width:2px;height:100%;top:0;left:50%;transform:translate(-50%)}.brand-mark:after{width:100%;height:2px;top:50%;left:0;transform:translateY(-50%)}.brand-mark span:before{background:var(--red);width:11px;height:2px;top:11px;right:-5px;transform:rotate(-45deg)}.brand-mark span:after{background:var(--red);width:11px;height:2px;top:17px;right:-5px;transform:rotate(45deg)}.site-header nav{align-items:center;gap:30px;font-size:13px;font-weight:600;display:flex}.site-header nav a{opacity:.8;transition:opacity .2s}.site-header nav a:hover{opacity:1}.site-header .nav-cta{opacity:1;border:1px solid #ffffff73;border-radius:999px;padding:11px 17px}.hero-services{background:var(--paper)}.hero-grid{background:var(--ink);color:#fff;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);min-height:760px;display:grid}.hero-copy{flex-direction:column;justify-content:center;padding:145px max(60px,50vw - 600px) 82px;display:flex}.eyebrow{color:var(--red);letter-spacing:.19em;text-transform:uppercase;margin:0 0 18px;font-size:11px;font-weight:700}.hero-copy .eyebrow{color:#d87970}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.055em;max-width:720px;margin-bottom:28px;font-size:clamp(55px,6vw,92px);line-height:.94}h1 em{color:#d8afa8;font-family:Playfair Display,Georgia,serif;font-weight:600}.hero-lead{color:#ffffffad;max-width:650px;margin-bottom:36px;font-size:18px;line-height:1.65}.hero-actions{flex-wrap:wrap;gap:14px;display:flex}.button{cursor:pointer;border:0;border-radius:2px;justify-content:center;align-items:center;gap:12px;min-height:52px;padding:0 22px;font-size:13px;font-weight:700;transition:transform .2s,background .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--red);color:#fff}.button-primary:hover{background:var(--red-dark)}.button-quiet{color:#fff;border:1px solid #ffffff3d}.trust-line{color:#ffffff94;border-top:1px solid #ffffff21;gap:28px;margin-top:54px;padding-top:25px;font-size:12px;line-height:1.4;display:flex}.trust-line span{max-width:220px}.trust-line b{color:#fff;font-size:17px;display:block}.hero-visual{min-height:650px;position:relative;overflow:hidden}.hero-visual:after{content:"";background:linear-gradient(90deg,#17201d6b,#0000 35%),linear-gradient(#0000 55%,#17201d66);position:absolute;inset:0}.hero-visual img{object-fit:cover;object-position:52% 48%;filter:saturate(.85);width:100%;height:100%}.hero-note{z-index:2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);letter-spacing:.04em;background:#17201dd4;align-items:center;gap:10px;padding:13px 16px;font-size:11px;display:flex;position:absolute;bottom:28px;right:28px}.status-dot{background:#8ab192;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #8ab1922b}.services{max-width:1220px;margin:0 auto;padding:110px 30px 128px}.section-heading h2{letter-spacing:-.045em;margin:0;font-size:clamp(38px,4.4vw,64px);line-height:1.02}.compact-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:46px;display:flex}.compact-heading .eyebrow{margin-bottom:10px}.repair-guide{border:1px solid var(--line);background:var(--paper);grid-template-columns:.72fr 1.08fr .9fr;gap:0;margin-bottom:34px;display:grid;box-shadow:0 18px 50px #17201d14}.repair-guide-intro{background:var(--ink);color:#fff;padding:32px}.repair-guide-intro h3{letter-spacing:-.035em;margin-bottom:13px;font-size:29px;line-height:1.08}.repair-guide-intro>p:not(.eyebrow){color:#ffffff9e;margin:0;font-size:13px;line-height:1.6}.repair-guide-options{border-right:1px solid var(--line);grid-template-columns:1fr 1fr;align-content:start;gap:8px;padding:24px;display:grid}.repair-guide-options button{border:1px solid var(--line);min-height:50px;color:var(--ink-soft);text-align:left;cursor:pointer;background:0 0;padding:10px 12px;font-size:12px;font-weight:600;line-height:1.35}.repair-guide-options button:hover,.repair-guide-options button:focus-visible{border-color:var(--red);outline:none}.repair-guide-options button.active{border-color:var(--red);color:var(--red);background:#a6312d12}.repair-guide-result{flex-direction:column;justify-content:center;padding:30px;display:flex}.repair-guide-result.external{background:#f1eee6}.result-kicker{color:var(--red);letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px;font-size:9px;font-weight:700}.repair-guide-result h4{letter-spacing:-.025em;margin:0 0 11px;font-size:20px;line-height:1.2}.repair-guide-result p{color:var(--ink-soft);margin-bottom:18px;font-size:12px;line-height:1.6}.guide-action{appearance:none;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0}.service-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(12,1fr);display:grid}.service-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);grid-column:span 3;min-height:285px;padding:28px}.service-card h3{letter-spacing:-.025em;margin:52px 0 12px;font-size:22px}.service-card p{color:var(--ink-soft);font-size:14px;line-height:1.65}.service-number{color:var(--red);letter-spacing:.12em;font-size:11px;font-weight:700}.service-featured{background:var(--ink);color:#fff}.service-featured p{color:#ffffff94}.service-featured a{color:#fff;align-items:center;gap:10px;margin-top:12px;font-size:12px;font-weight:700;display:inline-flex}.service-photo{color:#fff;grid-column:span 3;padding:0;position:relative;overflow:hidden}.service-photo:after{content:"";background:linear-gradient(#1118150d 28%,#111815e6);position:absolute;inset:0}.service-photo img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.service-photo div{z-index:2;position:absolute;bottom:14px;left:28px;right:28px}.service-photo h3{margin:12px 0 8px}.service-photo p{color:#ffffffb3}.about-block{background:var(--sage);grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);min-height:490px;margin-top:100px;display:grid}.about-photo{background:#17201d;min-height:490px;margin:0;position:relative;overflow:hidden}.about-photo:before{content:"";z-index:0;filter:blur(18px)saturate(.75);opacity:.48;background:url(/images/jim-duggan-family.webp) 50%/cover;position:absolute;inset:-24px;transform:scale(1.08)}.about-photo:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(#0000 62%,#111714bd);position:absolute;inset:0}.about-photo img{z-index:1;object-fit:contain;object-position:center;width:100%;height:100%;position:absolute;inset:0}.about-photo figcaption{z-index:3;color:#fff;border-left:3px solid #d87970;padding-left:14px;position:absolute;bottom:28px;left:30px}.about-photo figcaption strong,.about-photo figcaption span{display:block}.about-photo figcaption strong{letter-spacing:.02em;font-size:14px}.about-photo figcaption span{color:#ffffffa6;letter-spacing:.13em;text-transform:uppercase;margin-top:4px;font-size:9px;font-weight:700}.about-copy{flex-direction:column;justify-content:center;padding:62px 68px;display:flex}.about-copy h3{letter-spacing:-.05em;margin-bottom:22px;font-size:clamp(42px,5vw,65px);line-height:1}.about-copy>p:not(.eyebrow){max-width:650px;color:var(--ink-soft);margin-bottom:15px;font-size:14px;line-height:1.75}.about-text-card{border-top:1px solid #17201d2e;justify-content:space-between;align-items:center;gap:25px;margin-top:21px;padding-top:24px;display:flex}.about-text-card strong,.about-text-card span{display:block}.about-text-card strong{margin-bottom:5px;font-size:13px}.about-text-card span{color:var(--ink-soft);font-size:11px;line-height:1.45}.about-text-card a{background:var(--red);color:#fff;flex:none;align-items:center;gap:9px;padding:13px 16px;font-size:11px;font-weight:700;display:inline-flex}.work-section{background:var(--cream);padding:120px max(30px,50vw - 590px) 135px}.work-heading{justify-content:space-between;align-items:end;gap:50px;margin-bottom:42px;display:flex}.work-heading>p{max-width:290px;color:var(--ink-soft);margin:0 0 6px;font-size:13px;line-height:1.6}.project-tabs{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin-bottom:32px;display:grid}.project-tabs button{appearance:none;color:#17201d70;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:16px 2px;font-size:13px;font-weight:600}.project-tabs button span{margin-right:12px;font-size:10px}.project-tabs button.active{color:var(--ink);border-color:var(--red)}.project-display{background:var(--paper);min-height:590px;box-shadow:var(--shadow);grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);display:grid}.comparison{background:var(--ink);-webkit-user-select:none;user-select:none;min-height:590px;position:relative;overflow:hidden}.comparison-image{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.comparison-before{position:absolute;inset:0;overflow:hidden}.comparison-line{pointer-events:none;background:#fff;width:2px;position:absolute;top:0;bottom:0}.comparison-handle{background:var(--red);color:#fff;border:2px solid #fff;border-radius:50%;place-items:center;width:46px;height:46px;font-size:18px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 24px #00000038}.comparison-range{z-index:5;opacity:0;cursor:ew-resize;width:100%;height:100%;position:absolute;inset:0}.image-label{z-index:4;color:#fff;letter-spacing:.14em;text-transform:uppercase;background:#17201dc7;padding:7px 10px;font-size:9px;font-weight:700;position:absolute;top:18px}.label-before{left:18px}.label-after{right:18px}.project-copy{flex-direction:column;justify-content:center;padding:52px;display:flex}.project-copy h3{letter-spacing:-.04em;margin-bottom:18px;font-size:35px;line-height:1.08}.project-copy>p:not(.eyebrow){color:var(--ink-soft);font-size:14px;line-height:1.75}.project-copy ul{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:18px 0 30px;padding:22px 0;list-style:none}.project-copy li{color:var(--ink-soft);gap:9px;margin:10px 0;font-size:12px;line-height:1.4;display:flex}.project-copy li span{color:var(--red)}.text-link{color:var(--red);align-items:center;gap:9px;font-size:12px;font-weight:700;display:inline-flex}.gallery-block{margin-top:110px}.gallery-heading{justify-content:space-between;align-items:end;gap:40px;margin-bottom:30px;display:flex}.gallery-heading h3{letter-spacing:-.045em;margin:0;font-size:clamp(34px,4vw,54px)}.gallery-filters{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.gallery-filters button{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:999px;padding:10px 15px;font-size:11px;font-weight:700}.gallery-filters button.active{border-color:var(--ink);background:var(--ink);color:#fff}.photo-gallery{grid-template-columns:repeat(12,1fr);grid-auto-rows:185px;gap:14px;display:grid}.gallery-item{color:#fff;cursor:zoom-in;text-align:left;background:#d7d7d2;border:0;grid-area:span 2/span 3;min-height:0;padding:0;position:relative;overflow:hidden}.gallery-item-0{grid-column:span 6}.gallery-item-2,.gallery-item-3{grid-row:span 1}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform .45s}.gallery-item:after{content:"";background:linear-gradient(#0000 52%,#0c120fc7);position:absolute;inset:0}.gallery-item:hover img{transform:scale(1.035)}.gallery-item>span{z-index:2;font-size:14px;font-weight:700;position:absolute;bottom:16px;left:18px;right:18px}.gallery-item small{color:#ffffffad;letter-spacing:.14em;text-transform:uppercase;margin-bottom:5px;font-size:8px;display:block}.gallery-more{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:10px;margin:30px auto 0;padding:13px 18px;font-size:11px;font-weight:700;display:flex}.gallery-more span{color:var(--red);font-size:16px}.lightbox{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#080c0aeb;place-items:center;padding:35px;display:grid;position:fixed;inset:0}.lightbox figure{text-align:center;max-width:min(1100px,94vw);max-height:88vh;margin:0}.lightbox img{object-fit:contain;max-width:100%;max-height:82vh;margin:0 auto;display:block;box-shadow:0 20px 70px #00000073}.lightbox figcaption{color:#ffffffbf;margin-top:13px;font-size:12px;font-weight:600}.lightbox-close{z-index:2;color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff47;border-radius:50%;width:44px;height:44px;font-size:28px;font-weight:300;line-height:1;position:fixed;top:22px;right:25px}.estimate-section{background:var(--ink);color:#fff;grid-template-columns:minmax(350px,.78fr) minmax(520px,1.22fr);display:grid}.estimate-intro{padding:115px 70px 105px max(45px,50vw - 590px)}.estimate-intro .eyebrow{color:#d87970}.estimate-intro h2{letter-spacing:-.055em;margin-bottom:24px;font-size:clamp(48px,5vw,72px);line-height:.96}.estimate-intro>p:not(.eyebrow){color:#ffffffa1;max-width:475px;font-size:15px;line-height:1.75}.estimate-logo{width:100%;max-width:410px;margin-top:34px}.estimate-logo img{border-radius:13px;width:100%;height:auto;display:block;box-shadow:0 22px 44px #00000047}.contact-card{border-top:1px solid #ffffff24;margin-top:34px;padding-top:25px}.contact-card div{margin:18px 0}.contact-card span{color:#fff6;letter-spacing:.15em;text-transform:uppercase;margin-bottom:5px;font-size:9px;font-weight:700;display:block}.contact-card a{font-size:13px;font-weight:600}.estimate-panel{background:var(--paper);min-height:870px;color:var(--ink);align-items:center;padding:88px max(35px,50vw - 590px) 88px 70px;display:flex}.estimate-panel form,.prepared-message{width:100%;max-width:700px}fieldset{border:0;margin:0 0 30px;padding:0}legend,label{letter-spacing:.03em;font-size:11px;font-weight:700;display:block}legend{margin-bottom:14px}.choice-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.choice-grid label{border:1px solid var(--line);min-height:48px;color:var(--ink-soft);text-align:center;cursor:pointer;justify-content:center;align-items:center;padding:9px;transition:border .2s,color .2s,background .2s;display:flex}.choice-grid label.selected{border-color:var(--red);color:var(--red);background:#a6312d0f}.choice-grid input{opacity:0;width:1px;height:1px;position:absolute}.field-row{grid-template-columns:1fr 1fr;gap:18px;display:grid}input,textarea{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);background:0 0;border-radius:0;outline:none;padding:11px 0 12px;font-size:14px;font-weight:400}input:focus,textarea:focus{border-color:var(--red)}input::placeholder,textarea::placeholder{color:#9a9e9b}label{margin-bottom:26px}.field-hint{color:#858b87;letter-spacing:0;margin-top:7px;font-size:10px;font-weight:400;display:block}textarea{resize:vertical}.upload-box{cursor:pointer;border:1px dashed #17201d4d;align-items:center;gap:14px;min-height:72px;margin:5px 0 20px;padding:12px 16px;display:flex}.upload-box input{opacity:0;width:1px;height:1px;position:absolute}.upload-icon{background:var(--sage);border-radius:50%;place-items:center;width:38px;height:38px;font-size:20px;display:grid}.upload-box b,.upload-box small{display:block}.upload-box b{font-size:12px}.upload-box small{color:#858b87;margin-top:4px;font-size:10px;font-weight:400}.photo-previews{flex-wrap:wrap;gap:8px;margin:-8px 0 18px;display:flex}.photo-previews img{object-fit:cover;border:1px solid var(--line);width:54px;height:54px}.form-submit{width:100%}.form-note{color:#777e7a;text-align:center;margin:12px 0 0;font-size:10px;line-height:1.5}.prepared-message{text-align:center}.prepared-check{background:var(--sage);width:58px;height:58px;color:var(--red);border-radius:50%;place-items:center;margin:0 auto 24px;font-size:22px;display:grid}.prepared-message h3{letter-spacing:-.04em;margin-bottom:15px;font-size:37px}.prepared-message>p:not(.eyebrow){color:var(--ink-soft);font-size:14px;line-height:1.6}.message-preview{border:1px solid var(--line);background:var(--cream);white-space:pre-wrap;text-align:left;margin:24px 0;padding:20px;font-size:12px;line-height:1.65}.copy-button,.start-over{color:var(--red);cursor:pointer;background:0 0;border:0;margin:14px auto 0;font-size:11px;font-weight:700;display:block}.start-over{color:#747b77;margin-top:32px;font-weight:500}footer{color:#fff;background:#111714;grid-template-columns:1fr auto auto;align-items:center;gap:35px;padding:34px max(30px,50vw - 590px);display:grid}.footer-brand .brand-mark{width:31px;height:31px}footer p{color:#ffffff6b;margin:0;font-size:10px}@media (max-width:960px){.site-header{padding:22px 24px}.site-header nav a:not(.nav-cta){display:none}.hero-grid{grid-template-columns:1fr;min-height:auto}.hero-copy{min-height:670px;padding:140px 34px 70px}.hero-visual{min-height:480px}.service-card{grid-column:span 6}.repair-guide{grid-template-columns:.8fr 1.2fr}.repair-guide-result{border-top:1px solid var(--line);grid-column:1/-1;min-height:190px}.about-block{grid-template-columns:minmax(280px,.8fr) minmax(400px,1.2fr)}.about-copy{padding:50px 42px}.project-display{grid-template-columns:1fr}.comparison{min-height:620px}.project-copy{padding:48px}.gallery-item{grid-column:span 6}.gallery-item-0{grid-column:span 12}.estimate-section{grid-template-columns:1fr}.estimate-intro{padding:100px 45px 65px}.estimate-panel{min-height:auto;padding:70px 45px 90px}footer{grid-template-columns:1fr;gap:12px}}@media (max-width:620px){.site-header{padding:18px}.brand strong{font-size:13px}.brand small{font-size:8px}.site-header .nav-cta{padding:9px 12px;font-size:11px}.hero-copy{min-height:650px;padding:128px 22px 55px}h1{font-size:53px}.hero-lead{font-size:16px}.button{width:100%}.trust-line{flex-direction:column;gap:17px}.hero-visual{min-height:420px}.hero-note{bottom:18px;left:18px;right:auto}.services{padding:80px 18px 90px}.compact-heading{display:block}.repair-guide{grid-template-columns:1fr}.repair-guide-intro{padding:27px 23px}.repair-guide-options{border-right:0;grid-template-columns:1fr;padding:16px}.repair-guide-result{grid-column:auto;min-height:0;padding:26px 22px 30px}.service-grid{grid-template-columns:1fr}.service-card,.service-photo{grid-column:auto;min-height:250px}.about-block{grid-template-columns:1fr;margin-top:75px}.about-photo{min-height:440px}.about-copy{padding:45px 24px}.about-text-card{flex-direction:column;align-items:flex-start}.about-text-card a{justify-content:center;width:100%}.work-section{padding:85px 18px 95px}.work-heading{display:block}.work-heading>p{margin-top:18px}.project-tabs button{text-align:center;font-size:10px}.project-tabs button span{margin:0 0 5px;display:block}.comparison{min-height:470px}.project-copy{padding:35px 25px 40px}.project-copy h3{font-size:31px}.gallery-block{margin-top:75px}.gallery-heading{display:block}.gallery-filters{justify-content:flex-start;margin-top:22px}.photo-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:190px;gap:8px}.gallery-item,.gallery-item-0,.gallery-item-2,.gallery-item-3{grid-area:auto}.gallery-item:first-child{grid-column:1/-1;min-height:260px}.gallery-item>span{font-size:11px;bottom:11px;left:12px;right:12px}.lightbox{padding:18px}.estimate-intro{padding:82px 22px 55px}.estimate-panel{padding:55px 18px 80px}.choice-grid{grid-template-columns:1fr 1fr}.field-row{grid-template-columns:1fr;gap:0}footer{padding:32px 20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}}
