@font-face{font-family:Barlow;src:url('../fonts/barlow-regular.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Barlow;src:url('../fonts/barlow-semibold.woff2') format('woff2');font-weight:600;font-display:swap}@font-face{font-family:Barlow;src:url('../fonts/barlow-bold.woff2') format('woff2');font-weight:700;font-display:swap}@font-face{font-family:FrankRuhl;src:url('../fonts/frank-ruhl-libre.woff2') format('woff2');font-weight:700;font-display:swap}
:root{--ink:#1e2426;--ink-2:#30383a;--yellow:#f2b632;--orange:#dd6d2d;--blue:#273d78;--sand:#f1ede4;--paper:#fbfaf7;--white:#fff;--muted:#687174;--line:#d9d8d2;--shadow:0 20px 55px rgba(25,32,34,.15);--radius:1rem;--max:1220px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Barlow,Arial,sans-serif;font-size:1.0625rem;line-height:1.65}body.menu-open{overflow:hidden}img{display:block;max-width:100%;height:auto}a{color:inherit}button,input,textarea{font:inherit}.wrap{width:min(calc(100% - 2rem),var(--max));margin-inline:auto}.skip{position:fixed;z-index:9999;top:.5rem;left:.5rem;padding:.7rem 1rem;background:var(--yellow);transform:translateY(-160%)}.skip:focus{transform:none}.eyebrow{margin:0 0 .65rem;color:var(--orange);font-size:.78rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.eyebrow.light{color:var(--yellow)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:FrankRuhl,Georgia,serif;letter-spacing:-.025em;line-height:1.04}h1{font-size:clamp(3rem,8vw,6.5rem);max-width:12ch}h2{font-size:clamp(2.25rem,5vw,4.25rem);max-width:14ch}h3{font-size:1.35rem;line-height:1.25}.lead{max-width:58ch;font-size:clamp(1.15rem,2vw,1.4rem);line-height:1.55}.muted{color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.2rem;padding:.75rem 1.2rem;border:2px solid transparent;border-radius:.25rem;background:var(--yellow);color:var(--ink);font-weight:700;text-decoration:none;transition:.2s}.button:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(0,0,0,.14)}.button.dark{background:var(--ink);color:#fff}.button.outline{border-color:rgba(255,255,255,.55);background:transparent;color:#fff}.text-link{font-weight:700;color:var(--blue);text-decoration-thickness:2px;text-underline-offset:.3em}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.8rem}
.topbar{background:var(--ink);color:#fff;font-size:.9rem}.topbar .wrap{min-height:2.65rem;display:flex;align-items:center;justify-content:flex-end;gap:1.2rem}.topbar a{text-decoration:none}.site-header{position:relative;z-index:50;background:#fff;border-bottom:1px solid var(--line)}.site-header .wrap{min-height:5.7rem;display:flex;align-items:center;justify-content:space-between;gap:1.6rem}.brand img{width:clamp(175px,18vw,235px);max-height:4.5rem;object-fit:contain}.nav{display:flex;align-items:center;gap:clamp(.75rem,1.75vw,1.45rem)}.nav a{text-decoration:none;font-weight:600;font-size:.97rem}.nav a:not(.button):hover,.nav a[aria-current=page]{color:var(--orange)}.nav .button{min-height:2.8rem;padding:.5rem 1rem}.menu-toggle{display:none;width:3.1rem;height:3.1rem;border:0;border-radius:.25rem;background:var(--ink);color:#fff}.menu-toggle svg{width:1.45rem}
.hero{position:relative;background:var(--ink);color:#fff;overflow:hidden}.hero-grid{min-height:clamp(630px,78vh,820px);display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr)}.hero-copy{z-index:2;display:flex;flex-direction:column;justify-content:center;padding:5.5rem clamp(1rem,4vw,4rem) 5.5rem max(1rem,calc((100vw - var(--max))/2))}.hero-copy h1{margin-bottom:1.5rem}.hero-copy p{max-width:53ch}.hero-media{position:relative}.hero-media picture,.hero-media img{width:100%;height:100%}.hero-media img{object-fit:cover;object-position:center}.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink),transparent 25%)}.hero-badge{position:absolute;right:2rem;bottom:2rem;z-index:2;width:9.5rem;height:9.5rem;padding:1rem;display:grid;place-items:center;text-align:center;border-radius:50%;background:var(--yellow);color:var(--ink);font-weight:700;line-height:1.15;transform:rotate(4deg)}
.trust{position:relative;z-index:3;margin-top:-2.3rem}.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.trust-item{padding:1.5rem;display:flex;gap:1rem;align-items:center}.trust-item+.trust-item{border-left:1px solid var(--line)}.trust-number{font-family:FrankRuhl,Georgia,serif;font-size:2.4rem;color:var(--orange)}.trust-item strong{display:block}.trust-item span:last-child{color:var(--muted);font-size:.92rem}
.section{padding:clamp(4.8rem,9vw,8rem) 0}.section.white{background:#fff}.section.dark{background:var(--ink);color:#fff}.section.sand{background:var(--sand)}.split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2.5rem,7vw,7rem);align-items:center}.split.reverse>div:first-child{order:2}.image-card{position:relative}.image-card img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow)}.image-card:after{content:"";position:absolute;z-index:-1;right:-1rem;bottom:-1rem;width:55%;height:55%;background:var(--yellow);border-radius:var(--radius)}.quote{padding:1.4rem 0 1.4rem 1.5rem;border-left:4px solid var(--yellow);font-size:1.25rem;font-weight:600}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.5rem}.service-card{position:relative;min-height:28rem;overflow:hidden;border-radius:var(--radius);background:var(--ink);color:#fff;text-decoration:none}.service-card picture,.service-card img{width:100%;height:100%}.service-card img{object-fit:cover;transition:.45s}.service-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,25,27,.93),rgba(20,25,27,.02) 72%)}.service-card-copy{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:1.5rem}.service-card-copy p{margin:0;color:#dce1df}.service-card:hover img{transform:scale(1.035)}.service-card.small{min-height:22rem}
.work-preview{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:repeat(2,14rem);gap:1rem;margin-top:2.6rem}.work-preview a{position:relative;overflow:hidden;border-radius:var(--radius)}.work-preview a:first-child{grid-row:1/3}.work-preview img{width:100%;height:100%;object-fit:cover;transition:.35s}.work-preview a:hover img{transform:scale(1.025)}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.5rem;counter-reset:process}.process-step{counter-increment:process;padding:1.5rem;background:#fff;border-radius:var(--radius)}.process-step:before{content:counter(process,decimal-leading-zero);display:block;margin-bottom:2rem;font-family:FrankRuhl,Georgia,serif;font-size:2.3rem;color:var(--orange)}
.cta{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2rem;padding:clamp(2rem,5vw,4rem);border-radius:calc(var(--radius)*1.25);background:var(--blue);color:#fff;box-shadow:var(--shadow)}.cta h2{margin-bottom:.7rem}.cta p{margin:0;max-width:52ch}.cta .actions{margin:0}
.page-hero{background:var(--ink);color:#fff}.page-hero-grid{display:grid;grid-template-columns:1fr 1fr;min-height:31rem}.page-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:4.5rem clamp(2rem,5vw,5rem) 4.5rem max(1rem,calc((100vw - var(--max))/2))}.page-hero-copy h1{font-size:clamp(3rem,7vw,5.7rem);margin-bottom:1.1rem}.page-hero-media{min-height:26rem}.page-hero-media picture,.page-hero-media img{width:100%;height:100%}.page-hero-media img{object-fit:cover;object-position:center}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.2rem}.fact{padding:1.5rem;background:#fff;border-radius:var(--radius)}.fact strong{display:block;margin-bottom:.4rem;font-size:1.25rem}
.service-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:2.4rem}.service-row{display:flex;gap:1.2rem;align-items:flex-start;padding:1.6rem;background:#fff;border-radius:var(--radius);text-decoration:none}.service-row span{display:grid;place-items:center;flex:0 0 2.7rem;height:2.7rem;border-radius:50%;background:var(--yellow);font-weight:700}.service-row p{margin:0;color:var(--muted)}.service-row:hover h3{color:var(--orange)}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.2rem}.benefit{padding:1.5rem;border:1px solid var(--line);border-radius:var(--radius)}.benefit:before{content:'✓';display:grid;place-items:center;width:2.5rem;height:2.5rem;margin-bottom:1rem;border-radius:50%;background:var(--yellow);font-weight:700}
.faq{max-width:850px;margin-top:2rem}.faq details{border-top:1px solid var(--line);padding:1.15rem 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font-weight:700;font-size:1.15rem}.faq details p{margin:.8rem 0 0;color:var(--muted)}
.gallery-toolbar{display:flex;flex-wrap:wrap;gap:.6rem;margin:2rem 0}.filter{padding:.65rem 1rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);cursor:pointer;font-weight:700}.filter[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.gallery-item{position:relative;padding:0;border:0;border-radius:.65rem;overflow:hidden;background:#ddd;cursor:zoom-in}.gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:.35s}.gallery-item:hover img{transform:scale(1.035)}.gallery-item:after{content:'+';position:absolute;right:.7rem;bottom:.7rem;display:grid;place-items:center;width:2.3rem;height:2.3rem;border-radius:50%;background:#fff;color:var(--ink);font-size:1.3rem;font-weight:700}.gallery-item[hidden]{display:none}.lightbox{width:min(1100px,calc(100% - 2rem));max-height:calc(100vh - 2rem);padding:0;border:0;border-radius:var(--radius);background:#111;color:#fff;box-shadow:var(--shadow)}.lightbox::backdrop{background:rgba(10,14,15,.88)}.lightbox img{max-width:100%;max-height:78vh;margin:auto;object-fit:contain}.lightbox-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem}.lightbox-close{width:2.5rem;height:2.5rem;border:0;border-radius:50%;background:#fff;cursor:pointer;font-size:1.4rem}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2.5rem,7vw,7rem);align-items:start}.contact-cards{display:grid;gap:.8rem;margin-top:2rem}.contact-card{display:block;padding:1.2rem 1.3rem;background:#fff;border-radius:var(--radius);text-decoration:none}.contact-card small{display:block;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}.contact-card strong{font-size:1.15rem}.form{padding:clamp(1.3rem,4vw,2.5rem);background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.field{display:grid;gap:.35rem}.field.full{grid-column:1/3}.field label{font-weight:700}.field input,.field textarea{width:100%;padding:.85rem 1rem;border:1px solid #aeb5b4;border-radius:.4rem;color:var(--ink);background:#fff}.field textarea{min-height:10rem;resize:vertical}.field input:focus,.field textarea:focus{outline:3px solid rgba(242,182,50,.45);border-color:var(--ink)}.form .button{margin-top:1.2rem;border:0}.form-status{margin-top:1rem;padding:1rem;background:#e7efe9;color:#173724;border-radius:.4rem}
.site-footer{padding:4rem 0 1.5rem;background:#12191b;color:#fff}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:3rem}.footer-logo{width:225px;max-height:5rem;margin-bottom:1.4rem;object-fit:contain;background:#fff;border-radius:.3rem;padding:.3rem}.site-footer h3{color:var(--yellow)}.site-footer ul{list-style:none;padding:0;margin:0}.site-footer a{text-decoration-color:rgba(255,255,255,.4);text-underline-offset:.25em}.copyright{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.15);color:#c2cbca;font-size:.9rem}
@media(max-width:1000px){.topbar .wrap{justify-content:center}.menu-toggle{display:grid;place-items:center}.nav{position:fixed;inset:8.3rem 0 0;display:none;flex-direction:column;align-items:stretch;padding:1.3rem;background:#fff;overflow:auto}.nav[data-open=true]{display:flex}.nav a{padding:.75rem 1rem;font-size:1.1rem}.nav .button{margin-top:.4rem}.hero-grid,.page-hero-grid{grid-template-columns:1fr}.hero-copy{padding:4.5rem 1rem 3.2rem}.hero-media{min-height:34rem}.hero-media:after{background:linear-gradient(180deg,var(--ink),transparent 23%)}.trust{margin-top:0;background:#fff}.trust-grid{border-radius:0;box-shadow:none}.split{grid-template-columns:1fr}.split.reverse>div:first-child{order:0}.service-grid{grid-template-columns:repeat(2,1fr)}.process-grid{grid-template-columns:repeat(2,1fr)}.page-hero-copy{padding:4rem 1rem}.page-hero-media{min-height:28rem}.cta{grid-template-columns:1fr}.cta .actions{margin-top:1rem}.gallery{grid-template-columns:repeat(3,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/3}}
@media(max-width:650px){body{font-size:1rem}.topbar .wrap{min-height:2.8rem;gap:.75rem;font-size:.82rem}.topbar .address{display:none}.site-header .wrap{min-height:5rem}.brand img{width:175px;max-height:3.75rem}.nav{inset:7.8rem 0 0}.hero-grid{min-height:0}.hero-copy h1{font-size:clamp(3.1rem,16vw,4.6rem)}.hero-copy .lead{font-size:1.08rem}.hero-media{min-height:23rem}.hero-badge{width:6.8rem;height:6.8rem;right:1rem;bottom:1rem;font-size:.85rem}.trust-grid{grid-template-columns:1fr}.trust-item{padding:1rem}.trust-item+.trust-item{border-left:0;border-top:1px solid var(--line)}.section{padding:4.5rem 0}.image-card:after{display:none}.service-grid,.service-list,.facts,.benefits{grid-template-columns:1fr}.service-card{min-height:24rem}.work-preview{grid-template-columns:1fr 1fr;grid-template-rows:22rem 13rem}.work-preview a:first-child{grid-column:1/3;grid-row:auto}.process-grid{grid-template-columns:1fr}.page-hero-grid{min-height:0}.page-hero-copy{padding:3.8rem 1rem}.page-hero-media{min-height:22rem}.cta{padding:2rem 1.2rem}.cta .actions{display:grid}.cta .button{width:100%}.gallery{grid-template-columns:repeat(2,1fr);gap:.5rem}.contact-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.footer-grid{grid-template-columns:1fr;gap:2rem}.footer-grid>div:first-child{grid-column:auto}.copyright{flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
