:root{--ink:#0d100d;--coal:#151915;--cream:#f4f1e9;--paper:#fbfaf6;--gold:#d2a54b;--muted:#6e7069;--line:#d9d7cf;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:#20221f;font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.7}body.quote-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.wrap{width:min(var(--max),calc(100% - 48px));margin:auto}.eyebrow{color:#b48735;font-size:.76rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase}.topbar{background:#0b0e0b;color:#bfc0ba;border-bottom:1px solid rgba(255,255,255,.13);font-size:.78rem;letter-spacing:.04em}.topbar .wrap{height:36px;display:flex;align-items:center;justify-content:space-between}.nav{background:#101310;color:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(255,255,255,.13)}.navin{height:88px;display:flex;align-items:center;justify-content:space-between}.logo img{width:118px}.navlinks{display:flex;align-items:center;gap:28px;font-size:.88rem}.navlinks a:not(.goldbtn):hover{color:var(--gold)}.goldbtn{display:inline-flex;align-items:center;justify-content:center;gap:16px;background:var(--gold);color:#18140c;padding:16px 22px;font-weight:600;border:0;cursor:pointer;font:inherit;transition:.2s}.goldbtn:hover{background:#e0b65f;transform:translateY(-1px)}.menu{display:none;background:none;border:1px solid #5d5d55;color:#fff;padding:8px 12px;font-size:1.25rem}.crumbs{padding:18px 0;background:#191d19;color:#c6c7c1;font-size:.86rem}.crumbs a{color:#dfba72}.article-hero{position:relative;min-height:590px;display:flex;align-items:flex-end;color:#fff;background:#111 center/cover no-repeat}.article-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,7,5,.88),rgba(5,7,5,.34)),linear-gradient(0deg,rgba(5,7,5,.6),transparent 60%)}.hero-content{position:relative;z-index:1;padding:90px 0;width:min(760px,100%)}.article-hero .eyebrow{color:#e1bd78}.article-hero h1{font-family:"Playfair Display",serif;font-size:clamp(3.3rem,7vw,6.2rem);font-weight:500;line-height:.98;letter-spacing:-.04em;margin:.18em 0}.article-hero p{font-size:1.15rem;color:#e2e2dc;max-width:650px}.hero-actions{display:flex;align-items:center;gap:24px;margin-top:30px}.textlink{border-bottom:1px solid currentColor;padding:10px 0}.trustbar{background:#fff;border-bottom:1px solid var(--line)}.trustgrid{display:grid;grid-template-columns:repeat(4,1fr)}.trustgrid span{padding:22px;text-align:center;border-right:1px solid #e3e1da;font-size:.88rem}.trustgrid span:last-child{border:0}.trustgrid span:before{content:"✓";color:#a97820;margin-right:11px}.section{padding:92px 0}.article-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(290px,.7fr);gap:82px;align-items:start}.article-copy h2,.process h2,.cta h2{font-family:"Playfair Display",serif;font-weight:500;line-height:1.08;color:#171a16}.article-copy h2{font-size:clamp(2.5rem,5vw,4.1rem);margin:.18em 0 .55em}.article-copy p{font-size:1.05rem;color:#5f615a}.include{margin-top:42px}.include h3{font-family:"Playfair Display",serif;font-size:2rem;margin:0 0 18px}.checklist{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;padding:0;list-style:none}.checklist li{border-top:1px solid var(--line);padding:14px 0}.checklist li:before{content:"✓";color:#a57622;margin-right:10px}.sidecard{background:#121612;color:#fff;padding:34px;position:sticky;top:118px}.sidecard .eyebrow{color:#dcb86f}.sidecard h2{font-family:"Playfair Display",serif;font-size:2.25rem;line-height:1.12;margin:.25em 0}.sidecard p{color:#c8cac3}.sidecard .goldbtn{width:100%;margin-top:14px}.sidecard a.phone{display:block;color:#e2bd73;font-family:"Playfair Display",serif;font-size:1.65rem;margin-top:22px}.process{background:var(--cream)}.process h2{font-size:clamp(2.5rem,5vw,4rem);margin:.2em 0 .7em}.steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ccc7ba}.step{padding:32px 28px 10px 0}.step:not(:last-child){border-right:1px solid #ccc7ba;margin-right:28px}.step span{color:#a57622;font-family:"Playfair Display",serif;font-size:1.8rem}.step h3{font-family:"Playfair Display",serif;font-size:1.55rem;margin:.45em 0}.step p{color:#686a62}.cta{background:#cfa24a;color:#17130c}.cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:55px}.cta h2{font-size:clamp(2.4rem,5vw,4.3rem);margin:.1em 0}.cta p{max-width:620px}.cta .goldbtn{background:#111511;color:#fff;white-space:nowrap}.footer{background:#0d100d;color:#cecec7;padding:60px 0 26px}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:60px}.footer h3{color:#fff;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase}.footer-logo{font-family:"Playfair Display",serif;color:#d2a54b;font-size:1.65rem}.copyright{border-top:1px solid rgba(255,255,255,.13);margin-top:42px;padding-top:20px;font-size:.78rem;color:#85877f;display:flex;justify-content:space-between}.call-float{position:fixed;right:22px;bottom:22px;z-index:30;width:64px;height:64px;border:2px solid rgba(255,255,255,.9);border-radius:50%;display:grid;place-items:center;background:#16a34a;color:#fff;box-shadow:0 12px 32px rgba(0,0,0,.32)}.call-float svg{width:29px;height:29px;fill:currentColor}#quote-dialog{width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;margin:auto;border:1px solid rgba(197,154,76,.55);background:#fff;color:var(--ink);box-shadow:0 24px 100px rgba(0,0,0,.42)}#quote-dialog::backdrop{background:rgba(16,21,15,.84);backdrop-filter:blur(5px)}.quote-heading{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;gap:18px;background:#111511;color:#fff;padding:24px 28px;border-top:3px solid var(--gold)}.quote-heading h2{font-family:"Playfair Display",serif;font-size:29px;line-height:1.2;margin:0}.dialog-close{display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid rgba(197,154,76,.55);color:#e0bc7d;background:transparent;cursor:pointer;font-size:1.5rem}#quote-description{padding:20px 28px 0;margin:0}.quote-form-title{text-align:center;text-transform:uppercase;font-size:1rem;margin:0;padding:14px 28px 4px}.quote-form-wrap{overflow:hidden;background:#fff;padding:0 10px}#tis-quote-form{display:block;border:0;width:100%;height:785px;margin-top:-35px;background:#fff}.quote-help{padding:18px 28px 24px;background:#f4f5f1;font-size:.88rem}.quote-help a{text-decoration:underline}.not-found{padding:100px 0;min-height:60vh}
@media(max-width:850px){.wrap{width:min(100% - 28px,var(--max))}.topbar span:first-child{display:none}.topbar .wrap{justify-content:center}.navin{height:72px}.logo img{width:92px}.menu{display:block}.navlinks{display:none;position:absolute;top:72px;left:0;right:0;background:#101310;padding:24px;flex-direction:column;align-items:stretch}.navlinks.open{display:flex}.navlinks a{text-align:center}.article-hero{min-height:540px}.hero-content{padding:70px 0}.article-grid{grid-template-columns:1fr;gap:46px}.sidecard{position:static}.steps{grid-template-columns:1fr}.step:not(:last-child){border-right:0;border-bottom:1px solid #ccc7ba;margin-right:0}.cta .wrap{align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr;gap:24px}.call-float{right:18px;bottom:18px;width:58px;height:58px}}
@media(max-width:560px){.article-hero h1{font-size:3rem}.hero-actions{align-items:stretch;flex-direction:column}.hero-actions .goldbtn{text-align:center}.trustgrid{grid-template-columns:1fr 1fr}.trustgrid span:nth-child(2){border-right:0}.checklist{grid-template-columns:1fr}.section{padding:70px 0}.sidecard{padding:27px}.copyright{flex-direction:column;gap:8px}#quote-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px)}.quote-heading{padding:19px 18px}.quote-heading h2{font-size:24px}#quote-description{padding:17px 20px 0}.quote-form-wrap{padding:0}#tis-quote-form{height:850px}.quote-help{padding:16px 20px}}
.project-gallery{background:#eeebe2}.gallery-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px}.gallery-heading h2{font-family:"Playfair Display",serif;font-size:clamp(2.3rem,5vw,3.8rem);font-weight:500;line-height:1.1;margin:12px 0 18px}.gallery-heading p{max-width:650px;color:#5f615a}.gallery-total{white-space:nowrap;color:#655330;padding-bottom:18px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.gallery-photo{padding:0;border:0;background:var(--paper);text-align:left;color:var(--ink);cursor:zoom-in;font:inherit;overflow:hidden}.gallery-photo img{display:block;width:100%;height:280px;object-fit:cover;transition:transform .25s}.gallery-photo:hover img{transform:scale(1.025)}.gallery-photo>span{display:flex;justify-content:space-between;gap:18px;padding:18px;font-size:.9rem;line-height:1.5}.gallery-photo>span>span{color:#92681c}.gallery-photo:focus-visible,.gallery-more:focus-visible,.photo-dialog button:focus-visible{outline:3px solid #a67520;outline-offset:4px}.gallery-more{display:block;margin:36px auto 0;padding:15px 28px;font:inherit;background:#151915;color:#fff;border:1px solid #151915;cursor:pointer}.gallery-more[hidden]{display:none}.gallery-status{text-align:center;color:#64665d;font-size:.85rem;margin:18px 0 0}.photo-open{overflow:hidden}.photo-dialog{background:#111510;color:#fff;border:1px solid #555b50;border-radius:0;padding:16px;width:min(1100px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto}.photo-dialog::backdrop{background:rgba(0,0,0,.9)}.photo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}.photo-dialog button{min-width:44px;min-height:44px;border:1px solid #69715f;background:#1b2118;color:#fff;font-size:1.5rem;cursor:pointer}.photo-dialog button:disabled{opacity:.35;cursor:default}.photo-full{display:block;width:100%;height:min(70dvh,750px);object-fit:contain;background:#0c0f0a}.photo-bottom{display:flex;align-items:center;gap:20px;justify-content:space-between;margin-top:12px}.photo-caption{text-align:center;margin:0;font-size:.95rem}.photo-count{color:#dfcb9f}
@media(max-width:850px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-photo img{height:260px}.gallery-heading{display:block}.gallery-total{display:block;padding:0}}
@media(max-width:560px){.gallery-grid{grid-template-columns:1fr;gap:20px}.gallery-photo img{height:300px}.photo-dialog{width:calc(100% - 16px);padding:10px}.photo-caption{font-size:.85rem}.photo-bottom{gap:10px}.photo-full{height:65dvh}}
@media(prefers-reduced-motion:reduce){.gallery-photo img{transition:none}}
#service-gallery{scroll-margin-top:95px}.hero-actions{flex-wrap:wrap}
