
@font-face{font-family:PVDisplay;src:url('/assets/fonts/display.woff2') format('woff2');font-display:swap;font-weight:100 900}
.pv-hero,.pv-services,.pv-about{--pv-red:#d73043;--pv-dark:#222c31;--pv-ice:#e5eeed;font-family:Arial,Helvetica,sans-serif}
.pv-hero h1,.pv-services h2,.pv-services h3,.pv-about h2{font-family:PVDisplay,Arial,sans-serif;letter-spacing:-.035em;font-weight:700;text-wrap:balance}
.pv-hero{background:var(--pv-dark);color:#fff;padding:70px 6% 0;position:relative;isolation:isolate;overflow:hidden}
.pv-hero::before{content:'';position:absolute;inset:0;z-index:-1;background-image:radial-gradient(#fff1 .8px,transparent .8px);background-size:7px 7px;mask-image:linear-gradient(90deg,transparent 35%,#000)}
.pv-hero::after{content:'';position:absolute;width:50%;height:90%;right:-23%;top:8%;border:55px solid #d7304330;transform:skew(-15deg);z-index:-1}
.pv-hero-grid{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:5%;max-width:1380px;margin:auto}
.pv-hero h1{font-size:clamp(3.8rem,6.5vw,6rem);line-height:1.03;margin:0 0 26px;max-width:690px}
.pv-hero h1 span{color:#fa7b87;display:block}
.pv-hero .pv-intro{font-size:1.06rem;line-height:1.85;max-width:460px;color:#d2dfe3;margin-bottom:30px}
.pv-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.pv-actions>a:last-child{color:inherit;font-size:.9rem;text-decoration:underline;text-underline-offset:7px}
.pv-photo{position:relative;margin:18px 0 24px;padding:22px 0 25px 24px}
.pv-photo::before{content:'';position:absolute;inset:0 30px 0 0;border:2px solid #d73043;transform:skew(-6deg);pointer-events:none}
.pv-photo img{position:relative;width:100%;height:430px;object-fit:cover;object-position:50% 55%;border-radius:2px;box-shadow:0 22px 40px #0a121b55}
.pv-photo figcaption{position:absolute;bottom:3px;right:0;background:#c92539;color:#fff;padding:17px 25px;font-size:.77rem;letter-spacing:.04em;font-weight:700}
.pv-proof{max-width:1380px;margin:65px auto 0;display:flex;justify-content:space-between;align-items:center;padding:24px 0;border-top:1px solid #627076;font-size:.82rem;color:#dce7e9;gap:20px}
.pv-proof span{display:flex;align-items:center;gap:12px}.pv-proof i{display:inline-block;width:8px;height:8px;background:#f36a79;transform:skew(-15deg)}
.pv-services{background:var(--pv-ice);padding:85px 6% 90px;position:relative;isolation:isolate}
.pv-services::after{content:'';position:absolute;right:0;top:0;width:120px;height:100%;background:radial-gradient(#728e892a 1px,transparent 1px) 0 0/8px 8px;z-index:-1}
.pv-section-top{max-width:1380px;margin:0 auto 42px;display:flex;justify-content:space-between;align-items:end;gap:40px}
.pv-section-top h2{font-size:clamp(2.6rem,4.4vw,4.4rem);max-width:620px;margin:0;line-height:1.08}.pv-section-top>p{max-width:350px;color:#3e5355;font-size:1rem;margin:0;line-height:1.8}
.pv-service-layout{display:grid;grid-template-columns:.9fr 1.3fr;gap:6%;max-width:1380px;margin:auto;align-items:stretch}
.pv-service-image{margin:0;position:relative;min-height:430px;background:#d4e0df}.pv-service-image img{height:100%;width:100%;object-fit:cover;position:absolute;inset:0}.pv-service-image figcaption{position:absolute;bottom:0;left:0;right:0;background:#223337ed;color:white;padding:22px 25px;font-size:.88rem;line-height:1.6}
.pv-service-list{border-top:1px solid #92a8a5}.pv-service-row{display:grid;grid-template-columns:1fr 40px;gap:15px;padding:26px 0;border-bottom:1px solid #aabdb9;color:#243b3f;transition:background .2s ease}.pv-service-row h3{font-size:1.55rem;line-height:1.2;margin:0 0 9px}.pv-service-row p{font-size:.88rem;line-height:1.6;margin:0;color:#40595b;max-width:400px}.pv-service-row svg{width:27px;height:27px;align-self:center;stroke:#b31e32;stroke-width:1.6;fill:none}.pv-service-row:hover{background:#ffffff6b;color:#a4192c}
.pv-about{background:#ae1d31;color:#fff;padding:85px 6%;position:relative;isolation:isolate;overflow:hidden}
.pv-about::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(#600d213b 1px,transparent 1px) 0 0/6px 6px}
.pv-about::after{content:'';position:absolute;right:-80px;top:-100px;width:430px;height:660px;border:2px solid #ef8c9859;transform:skew(-18deg);z-index:-1}
.pv-about-inner{max-width:1380px;margin:auto;display:grid;grid-template-columns:1.08fr 1fr;gap:9%;align-items:center}.pv-about h2{font-size:clamp(3rem,4.4vw,4.5rem);line-height:1.1;margin:0 0 30px;max-width:590px}.pv-about h2 em{font-style:normal;color:#ffd4d8}.pv-about p{color:#ffe1e5;font-size:1.03rem;line-height:1.85}.pv-about-detail{border-top:1px solid #e9909b;display:flex;gap:18px;padding:22px 0 0;margin-top:26px;color:#ffe1e5;font-size:.88rem;line-height:1.6}.pv-about-detail svg{min-width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.5}
.pv-hero ::selection,.pv-services ::selection,.pv-about ::selection{background:#ffc5ce;color:#222c31}
@media(prefers-reduced-motion:no-preference){.pv-photo{animation:pv-enter .7s cubic-bezier(.16,1,.3,1)}@keyframes pv-enter{from{transform:translateY(18px);clip-path:inset(0 0 8% 0)}to{transform:translateY(0);clip-path:inset(0)}}}
@media(max-width:1000px){.pv-hero h1{font-size:4.3rem}.pv-photo img{height:360px}.pv-proof{margin-top:40px}.pv-service-layout{grid-template-columns:.85fr 1fr;gap:5%}.pv-about-inner{gap:6%}}
@media(max-width:700px){.pv-hero{padding:48px 6% 0}.pv-hero-grid{grid-template-columns:1fr;gap:26px}.pv-hero h1{font-size:clamp(3rem,12vw,4.2rem);max-width:540px}.pv-hero .pv-intro{font-size:1rem}.pv-photo{padding:16px 0 20px 16px;margin:0}.pv-photo img{height:320px}.pv-photo figcaption{font-size:.68rem;padding:14px 18px}.pv-proof{flex-wrap:wrap;justify-content:flex-start;margin-top:30px;gap:18px 22px;font-size:.73rem}.pv-services{padding:55px 6%}.pv-section-top{display:block;margin-bottom:30px}.pv-section-top h2{font-size:2.8rem}.pv-section-top>p{margin-top:20px}.pv-service-layout{display:flex;flex-direction:column;gap:28px}.pv-service-image{min-height:300px}.pv-service-row{padding:22px 0}.pv-service-row h3{font-size:1.35rem}.pv-about{padding:55px 6%}.pv-about-inner{grid-template-columns:1fr;gap:8px}.pv-about h2{font-size:2.9rem}.pv-about::after{opacity:.45}.pv-services::after{width:55px}}

body:has(.pv-hero) .topbar{display:none}body:has(.pv-hero) .site-header{background:#101517;color:#fff;border:0;padding:24px 6%}body:has(.pv-hero) .brand{background:transparent;padding:0}body:has(.pv-hero) .brand img{width:170px;height:77px}body:has(.pv-hero) .dropdown{background:#1f282c;color:#fff}body:has(.pv-hero) .menu-toggle{background:transparent;color:#fff;border-color:#69777d}
.pv-hero{background:#101517;padding-top:48px}.pv-hero::after{border-color:#849b9b14}.pv-hero h1 span{color:#fff}.pv-hero h1{font-size:clamp(3.3rem,5.6vw,5.4rem)}.pv-photo::before{border-color:#63787d}.pv-photo img{object-fit:contain;box-shadow:none;height:460px}.pv-photo figcaption{background:#29383d}.pv-about{background:#f4f2ed;color:#202b30}.pv-about::before{background:radial-gradient(#667a7820 .8px,transparent .8px) 0 0/5px 5px}.pv-about::after{border-color:#657f7b2b}.pv-about h2 em{color:#bf2538}.pv-about p,.pv-about-detail{color:#405256}.pv-about-detail{border-color:#afbfba}
@media(max-width:700px){body:has(.pv-hero) .site-header{padding:18px 6%}body:has(.pv-hero) .brand img{width:140px;height:64px}.pv-hero{padding-top:25px}.pv-hero h1{font-size:3.2rem}.pv-photo img{height:340px}.pv-photo{padding:8px 0 20px 12px}}

/* Match the navigation content edges to the 1380px section containers. */
body:has(.pv-hero) .site-header {
  padding-inline: max(6%, calc((100% - 1380px) / 2));
}

.pv-hero-label{font-size:.9rem;font-weight:700;margin:0 0 24px;color:#fff}
.pv-hero-label::after{content:"";display:block;width:128px;height:4px;background:#d73043;margin-top:25px;border-radius:2px}
.pv-hero h1{font-size:clamp(2.6rem,4.2vw,4rem);line-height:1.12;max-width:640px}
.pv-hero h1 em{font-style:italic}
.pv-hero .pv-intro{max-width:550px}
@media(max-width:700px){.pv-hero h1{font-size:clamp(2.25rem,8.5vw,3.25rem)}.pv-hero-label{font-size:.85rem}}
@font-face{font-family:Urbanist;src:url('/assets/fonts/urbanist-variable.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:Urbanist;src:url('/assets/fonts/urbanist-italic-variable.ttf') format('truetype');font-weight:100 900;font-style:italic;font-display:swap}
.pv-hero h1{font-family:Urbanist,sans-serif;font-weight:700;font-size:60px;line-height:63px;letter-spacing:normal}
@media(max-width:1000px){.pv-hero h1{font-size:48px;line-height:1.05}}
@media(max-width:700px){.pv-hero h1{font-size:clamp(36px,9vw,48px);line-height:1.05}}

.pv-residential{padding:85px 6% 95px;background:#fff;color:#202b30;overflow:hidden}
.pv-residential-inner{max-width:1380px;margin:auto;display:grid;grid-template-columns:1.35fr 1fr;gap:7%;align-items:center}
.pv-residential-copy{max-width:740px}.pv-residential-copy .pv-residential-label{font-family:Urbanist,Arial,sans-serif;font-size:.86rem;letter-spacing:.065em;color:#54636a;margin:0 0 22px}
.pv-residential h2{font-family:Urbanist,Arial,sans-serif;font-weight:700;font-size:clamp(2rem,3vw,2.8rem);line-height:1.15;letter-spacing:-.015em;margin:0 0 23px;padding-bottom:25px;border-bottom:2px solid #d73043;text-wrap:balance}
.pv-residential-copy>p:not(.pv-residential-label){font-family:Urbanist,Arial,sans-serif;font-size:1.08rem;line-height:1.75;margin:0 0 24px;color:#2f4148}
.pv-residential-photo{position:relative;isolation:isolate;margin:0 15px 0 0;padding:19px 0 19px 18px}
.pv-residential-photo::before{content:"";position:absolute;inset:0 10px 0 0;transform:skew(-5deg);border:2px solid #78908f;z-index:-1}
.pv-residential-photo::after{content:"";position:absolute;right:-28px;bottom:-23px;width:42%;height:42%;background:radial-gradient(#718b8950 1px,transparent 1px) 0 0/7px 7px;z-index:-2}
.pv-residential-photo img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px;box-shadow:0 20px 36px #263e4224}
@media(max-width:900px){.pv-residential-inner{gap:5%;grid-template-columns:1.2fr 1fr}.pv-residential-copy>p:not(.pv-residential-label){font-size:1rem}}
@media(max-width:700px){.pv-residential{padding:52px 6% 65px}.pv-residential-inner{grid-template-columns:1fr;gap:35px}.pv-residential h2{font-size:2.2rem}.pv-residential-photo{max-width:480px;margin:0 15px 0 0}.pv-residential-copy .pv-residential-label{font-size:.75rem}}
/* One heading family throughout the homepage, including the hero. */
.pv-hero h1,.pv-residential h2,.pv-services h2,.pv-services h3,.pv-about h2{font-family:Manrope,Arial,sans-serif;font-weight:700}
.pv-hero,.pv-services,.pv-about,.pv-residential,.pv-residential-copy .pv-residential-label,.pv-residential-copy>p:not(.pv-residential-label){font-family:Manrope,Arial,sans-serif}

/* Service collection: original client icons with a charcoal, perforated-metal surface. */
.pv-service-showcase{background:#101719;color:#fff;padding:85px 6% 95px;position:relative;isolation:isolate;overflow:hidden;font-family:Manrope,Arial,sans-serif}
.pv-service-showcase::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(#78908f28 .8px,transparent .8px) 0 0/7px 7px;mask-image:linear-gradient(110deg,transparent 25%,#000)}
.pv-service-showcase::after{content:"";position:absolute;right:-240px;top:140px;width:560px;height:700px;border:2px solid #75898730;transform:skew(-12deg);z-index:-1}
.pv-showcase-inner{max-width:1380px;margin:auto}.pv-showcase-heading{display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:44px}
.pv-showcase-heading h2{font-family:Manrope,Arial,sans-serif;font-size:clamp(2.2rem,3.6vw,3.5rem);font-weight:700;line-height:1.15;letter-spacing:-.025em;margin:0;color:#fff}
.pv-showcase-heading h2 span{color:#ed5262}.pv-showcase-heading>p{max-width:400px;color:#c4d3d6;line-height:1.85;font-size:1rem;margin:0 0 4px}
.pv-tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.pv-service-tile{background:#f4f6f3;color:#202d32;padding:30px 32px 25px;border-radius:16px;position:relative;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,background-color .2s ease}
.pv-service-tile:nth-child(2),.pv-service-tile:nth-child(4){background:#e1ebea}.pv-service-tile:last-child{background:#f1e9e3}
.pv-service-tile::after{content:"";position:absolute;bottom:0;left:32px;right:32px;height:3px;background:#cf2c40;transform:scaleX(.18);transform-origin:left;transition:transform .25s ease}
.pv-tile-top{display:flex;justify-content:space-between;align-items:start;margin-bottom:25px}.pv-icon-pad{display:flex;width:80px;height:76px;align-items:center;justify-content:center;background:#fff;border-radius:12px}
.pv-icon-pad img{width:56px;height:56px;object-fit:contain}.pv-tile-top>svg{width:24px;height:24px;stroke:#526b70;stroke-width:1.5;fill:none;transition:transform .2s ease;margin-top:4px}
.pv-service-tile h3{font-family:Manrope,Arial,sans-serif;font-weight:700;font-size:1.25rem;line-height:1.3;letter-spacing:-.015em;margin:0 0 16px;max-width:300px}
.pv-service-tile p{font-size:.94rem;line-height:1.8;color:#40565c;margin:0 0 25px;flex:1}.pv-tile-link{font-size:.78rem;font-weight:800;color:#ac2033;padding-top:17px;border-top:1px solid #aebdbb80}
.pv-service-tile:hover{transform:translateY(-4px);background:#fff;color:#202d32}.pv-service-tile:hover::after{transform:scaleX(1)}.pv-service-tile:hover .pv-tile-top>svg{transform:translate(3px,-3px)}.pv-service-tile:focus-visible{outline:3px solid #f36d7d;outline-offset:5px}
@media(max-width:1000px){.pv-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pv-showcase-heading{gap:30px}.pv-showcase-heading>p{max-width:320px}}
@media(max-width:700px){.pv-service-showcase{padding:55px 6% 65px}.pv-showcase-heading{display:block;margin-bottom:30px}.pv-showcase-heading h2{font-size:2.2rem}.pv-showcase-heading>p{margin-top:22px;max-width:none}.pv-tile-grid{grid-template-columns:1fr;gap:16px}.pv-service-tile{padding:26px}.pv-tile-top{margin-bottom:20px}.pv-service-tile h3{max-width:none}.pv-service-tile::after{left:26px;right:26px}}
@media(prefers-reduced-motion:reduce){.pv-service-tile,.pv-service-tile::after,.pv-tile-top>svg{transition:none}.pv-service-tile:hover,.pv-service-tile:hover .pv-tile-top>svg{transform:none}}

.pv-commercial{padding:90px 6%;background:#e5eeed;color:#223338;font-family:Manrope,Arial,sans-serif;overflow:hidden}
.pv-commercial-inner{max-width:1380px;margin:auto;display:grid;grid-template-columns:1fr 1.3fr;gap:8%;align-items:center}
.pv-commercial-label{font-size:.85rem;letter-spacing:.06em;color:#52696c;margin:0 0 22px}
.pv-commercial h2{font-family:Manrope,Arial,sans-serif;font-weight:700;font-size:clamp(2rem,3vw,2.8rem);line-height:1.15;letter-spacing:-.015em;margin:0 0 24px;padding-bottom:25px;border-bottom:2px solid #d73043;text-wrap:balance}
.pv-commercial-copy>p:not(.pv-commercial-label){font-size:1.03rem;line-height:1.85;color:#354d53;margin:0 0 24px}.pv-commercial-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.pv-commercial-photo{margin:0;position:relative;isolation:isolate;padding:20px 15px 22px 0}.pv-commercial-photo::before{content:"";position:absolute;inset:0 0 0 20px;border:2px solid #809c98;transform:skew(-5deg);z-index:-1}.pv-commercial-photo img{width:100%;height:520px;object-fit:cover;border-radius:14px;box-shadow:0 20px 35px #20383723}.pv-commercial-photo figcaption{position:absolute;left:20px;right:0;bottom:0;background:#25373c;color:#fff;padding:19px;font-size:.65rem;letter-spacing:.04em;text-align:center}
.pv-faq{padding:85px 6%;background:#fff;color:#233238;font-family:Manrope,Arial,sans-serif}.pv-faq-inner{max-width:1380px;margin:auto;display:grid;grid-template-columns:.85fr 1.3fr;gap:8%}.pv-faq-intro h2{font-family:Manrope,Arial,sans-serif;font-size:clamp(2.2rem,3.2vw,3.2rem);line-height:1.15;letter-spacing:-.025em;margin:0 0 25px}.pv-faq-intro p{max-width:360px;line-height:1.8;color:#4d6269;margin-bottom:25px}
.pv-faq-list{border-top:1px solid #bac8c8}.pv-faq-list details{border-bottom:1px solid #bac8c8;padding:0 4px}.pv-faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:24px 0;list-style:none;cursor:pointer;font-size:1rem;font-weight:700;line-height:1.5}.pv-faq-list summary::-webkit-details-marker{display:none}.pv-faq-list summary span{position:relative;flex:0 0 22px;height:22px}.pv-faq-list summary span::before,.pv-faq-list summary span::after{content:"";position:absolute;left:3px;top:10px;width:16px;height:2px;background:#c62c40}.pv-faq-list summary span::after{transform:rotate(90deg)}.pv-faq-list details[open] summary span::after{transform:rotate(0)}.pv-faq-list details[open] summary{color:#aa2032}.pv-faq-answer{padding:0 36px 24px 0}.pv-faq-answer p{margin:0;font-size:.96rem;line-height:1.85;color:#425b61}.pv-faq-list summary:hover{color:#aa2032}.pv-faq-list summary:focus-visible{outline:3px solid #3282bd;outline-offset:3px}
@media(max-width:900px){.pv-commercial-inner{gap:5%}.pv-commercial-photo img{height:460px}.pv-faq-inner{gap:5%}}
@media(max-width:700px){.pv-commercial,.pv-faq{padding:55px 6%}.pv-commercial-inner{display:flex;flex-direction:column;gap:35px}.pv-commercial-photo{width:100%;max-width:500px}.pv-commercial-photo img{height:340px}.pv-commercial h2{font-size:2.2rem}.pv-commercial-copy>p:not(.pv-commercial-label){font-size:1rem}.pv-faq-inner{grid-template-columns:1fr;gap:32px}.pv-faq-intro h2{font-size:2.4rem}.pv-faq-list summary{font-size:.95rem;padding:22px 0}.pv-faq-answer{padding-right:10px}}
