:root{--green:#2a7d25;--deep:#102e22;--ink:#17251e;--muted:#57655d;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{color:var(--ink);background:#fff;margin:0;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline-offset:7px;outline:3px solid #80b876}.site-header{z-index:20;background:0 0;border-bottom:0;justify-content:space-between;align-items:center;width:100%;height:100px;padding:0 6%;transition:background-color .25s,box-shadow .25s;display:flex;position:fixed;top:0}.site-header.is-scrolled,.site-header.menu-open{background:#000;box-shadow:0 4px 18px #0003}.site-header>.logo{visibility:hidden;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s,visibility .25s;position:relative;left:max(-1cm,8px - 6vw);transform:translateY(-4px)}.site-header.is-scrolled>.logo{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}.logo{flex-direction:column;flex-shrink:0;align-items:center;line-height:.85;display:inline-flex}.logo img{object-fit:contain;width:150px;height:auto;display:block}.site-header nav{align-items:center;gap:36px;font-size:14px;display:flex}.site-header nav a{color:#fff;transition:color .2s}.site-header nav a:hover{color:var(--green)}.nav-cta{color:#fff;border:1px solid var(--green);background:0 0;padding:15px 22px;transition:background .2s,color .2s;position:relative;overflow:hidden}.site-header nav .nav-cta:hover{background:var(--green);color:#fff}.menu{color:#fff;display:none}.menu-icon{flex-direction:column;gap:5px;display:flex}.menu-icon span{background:currentColor;width:22px;height:2px;transition:transform .2s,opacity .2s;display:block}.menu[aria-expanded=true] .menu-icon span:first-child{transform:translateY(7px)rotate(45deg)}.menu[aria-expanded=true] .menu-icon span:nth-child(2){opacity:0}.menu[aria-expanded=true] .menu-icon span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.video-hero{--hero-extension:8cm;height:calc(82svh + var(--hero-extension));min-height:calc(600px + var(--hero-extension));padding-bottom:var(--hero-extension);background:#101713;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.hero-video{object-fit:cover;object-position:50% 38%;opacity:.55;width:100%;height:100%;position:absolute;inset:0}.hero-video-player{opacity:.5;filter:brightness(.85)}.hero-video-player video.hero-video{filter:none}.video-overlay{pointer-events:none;background:#0006;position:absolute;inset:0}.hero-logo{z-index:4;color:#fff;filter:drop-shadow(0 2px 12px #0006);position:relative}.hero-content{z-index:4;text-align:center;flex-direction:column;align-items:center;width:min(90%,1100px);padding-top:60px;padding-bottom:70px;display:flex;position:relative}.hero-title{color:#fff;letter-spacing:-.8px;text-shadow:0 2px 16px #0006;margin:24px 0 0;font-size:clamp(30px,3.3vw + 2px,50px);font-weight:600;line-height:1.15}.hero-brand-cycle{--logo-width:220px;--logo-height:73.33px;--cycle-duration:7s;--logo-cycle-duration:5.4s;width:min(82vw,420px);height:200px;display:block;position:relative;overflow:visible}.hero-brand-cycle .animated-logo{width:var(--logo-width);height:var(--logo-height);z-index:1;opacity:1;animation:boviLogoPulse var(--logo-cycle-duration) ease-in-out infinite;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes boviLogoPulse{0%,62.963%,to{opacity:1;transform:translate(-50%,-50%)scale(1)}81.4815%{opacity:.88;transform:translate(-50%,-50%)scale(1.045)}}.animated-logo .bovi-reveal,.animated-logo .access-reveal{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.animated-logo img{object-fit:contain;width:100%;height:100%;display:block}.animated-logo .bovi-reveal{animation:boviLettersReveal var(--logo-cycle-duration) linear infinite both}.animated-logo .access-reveal{animation:boviAccessReveal var(--logo-cycle-duration) linear infinite both}@keyframes boviLettersReveal{0%{clip-path:inset(0 100% 28% 0)}31.4815%,to{clip-path:inset(0 0 28%)}}@keyframes boviAccessReveal{0%,31.4815%{clip-path:inset(68% 100% 0 0)}62.963%,to{clip-path:inset(68% 0 0)}}.hero-rappel{z-index:2;pointer-events:none;transform-origin:50% -80%;animation:boviRappelPendulum var(--cycle-duration) linear both;position:absolute;inset:0;overflow:visible}.hero-rappel-svg{left:calc(50% + var(--logo-width) * .65);top:calc(50% - var(--logo-height) / 2);aspect-ratio:1;filter:brightness(0)invert();width:100%;height:auto;animation:boviDescentToLogo var(--cycle-duration) linear both;display:block;position:absolute;overflow:visible;transform:translate(-50%,-65.6%)}@keyframes boviDescentToLogo{0%,48.5714%{animation-timing-function:ease;transform:translate(-50%,-173.6%)}76%,to{transform:translate(-50%,-65.6%)}}@keyframes boviRappelPendulum{0%,48.5714%{opacity:0;transform:rotate(0)}52%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(0)}72%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(1.2deg)}81%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(-.8deg)}89%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(.4deg)}95%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(-.15deg)}to{opacity:1;transform:rotate(0)}}.hero-worker-rig{transform-box:view-box;transform-origin:50% 0;animation:5s ease-in-out 7s infinite boviIdleSway}@keyframes boviIdleSway{0%,to{transform:rotate(0)}25%{transform:rotate(.45deg)}75%{transform:rotate(-.45deg)}}.introduction.section{--diagonal-depth:clamp(24px, 3.5vw, 60px);z-index:5;margin-top:calc(-1 * var(--diagonal-depth) - 3cm);min-height:548.976px;padding:calc(70px + var(--diagonal-depth) + 2.5cm) 8% calc(80px + 2.5cm);background:var(--green);color:#fff;text-align:center;clip-path:polygon(0 var(--diagonal-depth), 100% 0, 100% 100%, 0 100%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.introduction.section.has-photo{clip-path:polygon(0 var(--diagonal-depth), 100% 0, 100% 100%, 0 calc(100% - var(--diagonal-depth)))}@media (min-width:801px){.introduction.section{min-height:488.976px;padding-top:calc(30px + var(--diagonal-depth) + 2.5cm);padding-bottom:154.488px}}.introduction-photo{--diagonal-depth:clamp(24px, 3.5vw, 60px);z-index:1;margin-top:calc(-1 * var(--diagonal-depth));aspect-ratio:16/9;width:100%;clip-path:polygon(0 0, 100% 0, 100% calc(100% - var(--diagonal-depth)), 0 100%);margin-bottom:calc(-1 * var(--diagonal-depth));position:relative;overflow:hidden}.introduction-photo img{object-fit:cover;width:100%;height:calc(100% + 80px);margin-top:-40px;display:block}@media (min-width:801px){.introduction-photo{aspect-ratio:auto;height:clamp(300px,39vw,570px)}.introduction-photo img{height:calc(100% + 80px)}}.introduction-logo{width:150px;height:auto;margin:0 auto 26px;display:block}.introduction h2{z-index:2;letter-spacing:-2px;color:#fff;margin:0 0 18px;font-size:clamp(38px,4vw,58px);font-weight:600;line-height:1.15;position:relative}.introduction>p{z-index:2;color:#fff;margin:0 0 30px;font-size:22px;position:relative}.introduction .intro-description{z-index:2;color:#ffffffd1;width:100%;max-width:750px;margin-inline:auto;font-size:18px;line-height:1.7;position:relative}.section{padding:105px 8%}.section-heading{justify-content:space-between;align-items:end;gap:45px;margin-bottom:45px;display:flex}h2{letter-spacing:-2px;margin:0;font-size:clamp(36px,4vw,58px);font-weight:500;line-height:1.1}.eyebrow{letter-spacing:2px;margin-bottom:30px;font-size:12px;font-weight:700}.section-heading .eyebrow,.about .eyebrow{color:var(--green)}.section-heading p{color:var(--muted);margin:0;font-size:16px;line-height:1.8}.services.section{background:#fff;padding-top:105px;position:relative}@media (min-width:801px){.services.section{padding-left:4%;padding-right:4%}}.service-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;display:grid}h3{letter-spacing:-.6px;margin:0 0 18px;font-size:24px;font-weight:400;line-height:1.25}.service-detail{color:var(--muted);font-size:16px;line-height:1.7}.service-detail p{margin:0}.service-detail a{color:var(--green);border-bottom:1px solid #9ab995;font-size:14px}.about{--diagonal-depth:clamp(24px, 3.5vw, 60px);z-index:2;clip-path:polygon(0 var(--diagonal-depth), 100% 0, 100% 100%, 0 calc(100% - var(--diagonal-depth)));margin-bottom:calc(-1 * var(--diagonal-depth));background:#f1f4f0;padding-block:130px;display:block;position:relative}.about-copy{text-align:center;max-width:750px;margin-inline:auto}.about-copy p{color:var(--muted);margin:0 0 20px;font-size:18px;line-height:1.8}.about-copy p:last-child{margin-bottom:0}.about-copy .large{color:var(--ink);letter-spacing:-.5px;margin-bottom:25px;font-size:26px;line-height:1.35}.principles{border-top:1px solid #cbd5c9;flex-direction:column;gap:16px;margin-top:34px;padding-top:26px;font-size:14px;display:flex}.contact{background:#d6e8cf;justify-content:space-between;align-items:end;gap:40px;display:flex}.contact p{color:#42543f;max-width:460px;margin:28px 0;font-size:16px;line-height:1.7}.contact .button,.service-enquiry .button{border:1px solid var(--green);color:#fff;background:#101713;border-radius:4px;justify-content:center;align-items:center;gap:14px;min-height:52px;padding:16px 28px;font-size:16px;font-weight:500;display:inline-flex;position:relative;overflow:hidden}.contact .button:hover,.service-enquiry .button:hover{background:var(--green)}.contact .button:after,.service-enquiry .button:after,.nav-cta:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff29,#0000);width:35%;height:150%;animation:3s ease-in-out infinite quoteButtonShine;position:absolute;top:-25%;left:0}@keyframes quoteButtonShine{0%,65%{transform:translate(-150%)skew(-20deg)}90%,to{transform:translate(400%)skew(-20deg)}}@media (prefers-reduced-motion:reduce){.contact .button:after,.service-enquiry .button:after,.nav-cta:after{animation:none;display:none}}footer{justify-content:space-between;align-items:center;gap:35px;padding:45px 6%;display:flex}footer .logo img{width:130px}footer p{font-size:16px}footer>span,footer>a:last-child{color:var(--muted);font-size:12px}@media (min-width:1600px){.video-hero{min-height:calc(680px + var(--hero-extension))}}@media (max-width:800px){html{scroll-padding-top:84px}.site-header{height:84px;padding:0 6%}.site-header .logo img{width:125px}.menu{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff59;justify-content:center;align-items:center;width:48px;height:48px;padding:0;display:inline-flex}.site-header nav{background:#000;align-items:stretch;gap:0;padding:25px 6%;display:none;position:absolute;top:84px;left:0;right:0;box-shadow:0 12px 20px #0000002e}.site-header nav.open{flex-direction:column;display:flex}.site-header nav a{padding:17px 0}.nav-cta{margin-top:10px;padding:17px}.video-hero{--hero-extension:5cm;height:calc(78svh + var(--hero-extension));min-height:calc(560px + var(--hero-extension));padding-bottom:var(--hero-extension)}.hero-video{object-position:center}.hero-brand-cycle{--logo-width:180px;--logo-height:60px;height:170px}.hero-content{padding-top:70px;padding-bottom:40px}.hero-title{margin-top:20px;font-size:clamp(27px,5.5vw + 2px,38px)}.introduction.section{min-height:481.181px;padding:calc(48px + var(--diagonal-depth) + 2cm) 6% calc(56px + 2cm)}.introduction-logo{width:130px;margin-bottom:22px}.introduction h2{letter-spacing:-1.3px;margin-bottom:15px;font-size:36px}.introduction>p{font-size:19px}.introduction .intro-description{font-size:17px}.section{padding:65px 6%}.services.section{padding-top:70px}.section-heading{margin-bottom:32px;display:block}.section-heading p{margin-top:25px}.eyebrow{margin-bottom:23px}h2{letter-spacing:-1.6px;font-size:40px}.service-grid{grid-template-columns:1fr;gap:28px}h3{letter-spacing:-.4px;font-size:20px}.about{grid-template-columns:1fr;gap:28px;padding-block:90px}.about-copy p{font-size:17px}.contact{text-align:center;display:block}.contact p{margin-inline:auto}footer{flex-wrap:wrap;gap:25px}footer p{font-size:14px}footer>span{order:4;width:100%}}@media (max-width:370px){.introduction h2{font-size:32px}.introduction>p{font-size:18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.menu-icon span,.site-header,.site-header>.logo{transition:none}.hero-brand-cycle .animated-logo,.animated-logo .bovi-reveal,.animated-logo .access-reveal,.hero-rappel,.hero-rappel-svg,.hero-worker-rig{animation:none}.animated-logo .bovi-reveal{opacity:1;clip-path:inset(0 0 28%)}.animated-logo .access-reveal{opacity:1;clip-path:inset(68% 0 0)}.hero-rappel{opacity:0;visibility:hidden;transform:none}}.hero-title,.about-copy .large,.contact h2{white-space:pre-line}.service-image{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;margin-bottom:22px;display:block}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:40px;display:grid}.project-grid figure{margin:0}.project-grid img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.project-grid figcaption{color:var(--muted);margin-top:12px;line-height:1.5}.sanity-studio{z-index:100;isolation:isolate;background:#fff;position:fixed;inset:0}@media (max-width:800px){.project-grid{grid-template-columns:1fr}}.service-card{flex-direction:column;padding:0;display:flex}.service-card .service-image{margin:0}.service-card-copy{flex-direction:column;flex:1;padding:20px 0 0;display:flex}.service-card h3{font-size:22px}.service-read-more{color:var(--green);align-items:center;gap:12px;margin-top:auto;font-weight:600;display:inline-flex}.service-read-more:hover{text-decoration:none}.read-more-arrow{flex-shrink:0}@media (prefers-reduced-motion:no-preference){.read-more-arrow{transition:transform .2s}.service-read-more:hover .read-more-arrow,.service-read-more:focus-visible .read-more-arrow{transform:translate(4px)}}.why-bovi{--diagonal-depth:clamp(24px, 3.5vw, 60px);z-index:2;clip-path:polygon(0 var(--diagonal-depth), 100% 0, 100% 100%, 0 calc(100% - var(--diagonal-depth)));margin-bottom:calc(-1 * var(--diagonal-depth));background:#f6f7f5;position:relative}.why-intro{color:var(--muted);margin:22px 0 40px;line-height:1.7}.why-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;display:grid}.why-grid article{background:#fff;border-radius:14px;padding:32px 26px;transition:transform .2s,box-shadow .2s;box-shadow:0 8px 28px #10171312}.why-grid h3{color:var(--green);margin-bottom:14px;font-size:22px;font-weight:500}@media (hover:hover) and (prefers-reduced-motion:no-preference){.why-grid article:hover{transform:translateY(-4px);box-shadow:0 14px 34px #1017131a}}.why-grid p{color:var(--muted);margin:0;line-height:1.7}.service-page-nav{color:#fff;background:#101713;justify-content:space-between;align-items:center;gap:20px;padding:22px 8%;display:flex}.service-page-nav img{display:block}.service-page{max-width:1200px;margin:auto}.service-page h1{margin:0 0 24px;font-size:clamp(34px,5vw,64px);line-height:1.1}.service-page-summary{max-width:800px;font-size:22px;line-height:1.6}.service-page-image{aspect-ratio:16/9;object-fit:cover;border-radius:8px;width:100%;height:auto;margin:24px 0}.service-page-paragraph{white-space:pre-line;max-width:800px;line-height:1.8}.service-enquiry{background:#f1f4f0;margin:35px 0;padding:35px}.service-enquiry h2{font-size:32px}.service-enquiry p{line-height:1.7}@media (max-width:800px){.why-grid{grid-template-columns:1fr;gap:26px}.service-card h3{font-size:20px}.service-page-summary{font-size:19px}.service-enquiry{padding:24px}}.site-footer{color:#fff;background:#101713;padding:56px 6% 28px;display:block}.footer-main{justify-content:space-between;align-items:flex-start;gap:40px;padding-bottom:36px;display:flex}.footer-brand>a{width:180px;display:block}.footer-brand img{width:180px;height:auto;display:block;position:relative;left:-14px}.footer-brand p{color:#b8c2bb;margin:18px 0 0;font-size:14px}.footer-contact{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.footer-contact h2{letter-spacing:2px;color:#a5ce95;margin:0 0 4px;font-size:12px;font-weight:600;line-height:1.4}.footer-contact a{overflow-wrap:anywhere;font-size:17px}.footer-contact a:hover{color:#a5ce95;text-decoration:underline}.footer-whatsapp{align-items:center;gap:9px;display:inline-flex}.footer-whatsapp svg{color:#fff;background:#25d366;border-radius:50%;flex-shrink:0;width:24px;height:24px;padding:3px}.footer-legal{border-top:1px solid #354039;justify-content:space-between;gap:16px 40px;padding-top:22px;display:flex}.site-footer .footer-legal p{color:#b8c2bb;margin:0;font-size:12px;line-height:1.7}@media (max-width:800px){.site-footer{padding:42px 6% 24px}.footer-main{flex-direction:column;gap:32px;padding-bottom:28px}.footer-legal{flex-direction:column;gap:10px}}.secondary-services{border-top:1px solid #dce3da;margin-top:44px;padding-top:26px}.secondary-services>div{justify-content:flex-start;align-items:center;gap:20px;display:flex}.secondary-services h3{margin:0;font-size:20px}.secondary-services .service-read-more{flex-shrink:0;margin-top:0}@media (max-width:800px){.secondary-services>div{flex-direction:column;align-items:flex-start}}.site-header.header-awaiting-scroll{opacity:0;visibility:hidden;pointer-events:none}.service-layout{--diagonal-depth:clamp(24px, 3.5vw, 60px)}.service-hero{background:var(--green);color:#fff;padding:100px 8% calc(48px + var(--diagonal-depth));clip-path:polygon(0 0, 100% 0, 100% calc(100% - var(--diagonal-depth)), 0 100%);position:relative}.service-hero-photo{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.service-hero-photo img{object-fit:cover;width:100%;height:calc(100% + 80px);margin-top:-40px;display:block}.service-hero:has(.service-hero-photo):after{content:"";background:#00000073;position:absolute;inset:0}.service-hero-copy{z-index:1;text-align:center;max-width:1000px;margin:auto;position:relative}.service-home-link{outline-offset:6px;width:fit-content;margin:0 auto;display:block}.service-hero h1{margin:0 0 24px;font-size:clamp(36px,5vw,64px);line-height:1.1}.service-hero-copy>p:last-child{max-width:750px;margin:auto;font-size:20px;line-height:1.7}.service-intro{text-align:center;z-index:2;clip-path:polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - var(--diagonal-depth)));background:#fff;position:relative}.service-intro h2{font-size:clamp(30px,3vw,44px)}.service-intro .service-page-paragraph{margin:28px auto 0;font-size:18px}.service-feature-photo{margin-top:calc(-1 * var(--diagonal-depth));height:clamp(220px,32vw,460px);clip-path:polygon(0 0, 100% 0, 100% calc(100% - var(--diagonal-depth)), 0 100%)}.service-feature-photo img,.service-top-photo img{object-fit:cover;width:100%;height:calc(100% + 80px);margin-top:-40px;display:block}.service-feature-photo,.service-top-photo{overflow:hidden}.service-hero{z-index:2}.service-top-photo{margin-top:calc(-1 * var(--diagonal-depth));height:clamp(220px,32vw,460px);clip-path:polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - var(--diagonal-depth)))}.service-process{grid-template-columns:1.3fr 1fr;align-items:start;gap:60px;display:grid}.service-process h2{font-size:clamp(30px,3vw,44px)}.service-project-box{border-top:3px solid var(--green);background:#f1f4f0;padding:32px}.service-project-box p{color:var(--muted);line-height:1.8}.service-project-box .service-photo-note{margin:12px 0 20px;font-size:14px}.service-enquiry{padding-block:64px}.service-enquiry .service-project-box{text-align:center;max-width:750px;margin:auto}.service-faq{padding-block:64px 0}.service-faq h2{letter-spacing:normal;max-width:750px;margin:0 auto 18px;font-size:22px;font-weight:500;line-height:1.4}.service-faq-list{max-width:750px;margin:auto}.service-faq details{border-bottom:1px solid #dfe5dc}.service-faq summary{cursor:pointer;padding:16px 0;font-size:16px;font-weight:500;line-height:1.5}.service-faq summary::marker{color:var(--green)}.service-faq summary:focus-visible{outline:2px solid var(--green);outline-offset:4px}.service-faq details p{color:var(--muted);margin:0 0 20px;font-size:16px;line-height:1.8}@media (max-width:800px){.service-faq{padding-top:44px}}.service-enquiry .service-case-link{font-size:14px}.service-back-link{text-align:center;padding:36px 6%}.service-back-link a{color:var(--green)}@media (max-width:800px){.service-enquiry{padding-block:44px}}.service-gallery{background:#f6f7f5}.service-related{flex-wrap:wrap;justify-content:center;gap:20px 36px;padding:0 8% 48px;display:flex}.service-related h2{text-align:center;letter-spacing:normal;flex-basis:100%;margin:0;font-size:18px;font-weight:600;line-height:1.4}.service-related a{color:var(--green);text-underline-offset:4px;line-height:1.6;text-decoration:underline}.service-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:40px;display:grid}.service-gallery-grid figure{margin:0}.gallery-more-mobile{display:none}@media (max-width:800px){.service-gallery-preview>figure:nth-child(n+3){display:none}.gallery-more-mobile{display:inline-block}}.service-gallery-grid img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;display:block}.service-gallery-grid figcaption{color:var(--muted);margin-top:12px;line-height:1.6}.service-contact{text-align:center;background:#d6e8cf}.service-contact p{line-height:1.8}.service-contact>a:last-child{margin-top:28px;display:block}@media (max-width:800px){.service-hero{padding:70px 6% calc(36px + var(--diagonal-depth))}.service-hero-copy>p:last-child{font-size:18px}.service-top-photo,.service-feature-photo{aspect-ratio:16/9;height:auto}.service-process{grid-template-columns:1fr;gap:32px}.service-gallery-grid{grid-template-columns:1fr}.service-project-box{padding:26px}}.service-included-work{text-align:left;max-width:900px;margin:42px auto 0}.service-included-work h3{text-align:center;font-size:24px}.service-included-work ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 32px;padding:0;list-style:none;display:grid}.service-included-work li{padding-left:26px;line-height:1.7;position:relative}.service-included-work li:before{content:"✓";color:var(--green);font-weight:600;position:absolute;left:0}.service-included-work>p{text-align:center;color:var(--muted);margin-top:24px;font-size:14px}@media (max-width:800px){.service-included-work ul{grid-template-columns:1fr}}.nav-services{position:relative}.nav-services-label{align-items:center;gap:4px;display:flex}.nav-services-label button{color:#fff;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:32px;height:36px;padding:0;display:inline-flex}.nav-services-label button[aria-expanded=true] svg{transform:rotate(180deg)}.services-dropdown{background:#101713;border:1px solid #354039;width:340px;max-width:calc(100vw - 32px);margin:0;padding:10px;list-style:none;position:absolute;top:calc(100% + 12px);right:0;box-shadow:0 12px 28px #00000038}.site-header .services-dropdown a{padding:13px 14px;font-size:14px;line-height:1.5;display:block}.site-header .services-dropdown a:hover{color:#a5ce95;background:#1e2b22}@media (max-width:800px){.site-header nav.open{max-height:calc(100dvh - 84px);overflow-y:auto}.nav-services-label{justify-content:space-between}.nav-services-label button{width:44px;height:44px}.services-dropdown{width:100%;max-width:none;box-shadow:none;border:0;border-left:2px solid var(--green);margin:0 0 12px;padding:0 0 0 12px;position:static}}.services-photo{--diagonal-depth:clamp(24px, 3.5vw, 60px);z-index:3;width:100%;height:clamp(220px,32vw,460px);margin-bottom:calc(-1 * var(--diagonal-depth));clip-path:polygon(0 0, 100% var(--diagonal-depth), 100% calc(100% - var(--diagonal-depth)), 0 100%);position:relative;overflow:hidden}.services-photo img{object-fit:cover;width:100%;height:calc(100% + 80px);margin-top:-40px;display:block}@media (min-width:801px){.services-photo,.service-top-photo,.service-feature-photo{height:clamp(300px,39vw,570px)}}.photo-watermark{right:clamp(16px,2vw,32px);bottom:calc(var(--diagonal-depth,0px) + 16px);aspect-ratio:1180/490;opacity:.6;filter:drop-shadow(0 1px 3px #00000073);pointer-events:none;background:url(/Bovi-logo-white.svg) 50%/contain no-repeat;width:clamp(90px,10vw,140px);position:absolute}.service-top-photo,.service-feature-photo,.service-card-photo{position:relative}.service-card-photo,.gallery-thumbnail,.gallery-expanded-photo,.project-photo{--diagonal-depth:0px}.gallery-thumbnail,.gallery-expanded-photo,.project-photo{position:relative}.gallery-expanded-photo{max-width:100%;display:flex}.service-card-photo .photo-watermark,.gallery-thumbnail .photo-watermark,.project-photo .photo-watermark{width:min(30%,140px)}.hero-photo-watermark{bottom:calc(var(--hero-extension,0px) + 48px);z-index:2}@media (max-width:800px){.photo-watermark{width:72px}.service-card-photo .photo-watermark,.gallery-thumbnail .photo-watermark,.project-photo .photo-watermark{width:min(30%,72px)}.service-card-photo .photo-watermark{display:none}}.why-bovi.follows-photo{padding-top:calc(105px + var(--diagonal-depth))}@media (max-width:800px){.why-bovi.follows-photo{padding-top:calc(65px + var(--diagonal-depth))}.secondary-services>div{gap:12px}}.service-page{--diagonal-depth:clamp(24px, 3.5vw, 60px)}.service-standalone-photo{margin-top:30px;margin-bottom:30px}.service-fixed-primary{overflow:hidden}.service-fixed-primary img{object-fit:cover;width:100%;height:calc(100% + 80px);margin-top:-40px;display:block}.service-page>.service-gallery{background:0 0;padding:32px 0}.gallery-thumbnail{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.gallery-lightbox{color:#fff;background:#101713;border:0;border-radius:10px;width:min(1100px,94vw);max-width:94vw;max-height:94dvh;padding:0}.gallery-lightbox::backdrop{background:#000000d9}.gallery-lightbox-content{padding:52px 16px 20px;position:relative}.gallery-close{color:#fff;cursor:pointer;background:0 0;border:0;width:40px;height:40px;font-size:32px;position:absolute;top:6px;right:12px}.gallery-expanded-image{justify-content:center;align-items:center;min-height:160px;display:flex;position:relative}.gallery-expanded-image img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:68dvh;display:block}.gallery-arrow{color:#fff;cursor:pointer;background:#000000a6;border:1px solid #ffffff4d;border-radius:6px;width:44px;height:48px;font-size:34px;position:absolute;top:50%;transform:translateY(-50%)}.gallery-previous{left:8px}.gallery-next{right:8px}.gallery-caption{text-align:center;padding:18px 8px 0}.gallery-caption span{color:#b8c2bb;font-size:13px}.gallery-caption p{white-space:pre-line;max-width:750px;margin:10px auto 0;line-height:1.7}.footer-legal{flex-wrap:wrap}.footer-legal>a{color:#b8c2bb;font-size:12px;line-height:1.7}.footer-legal>a:hover{color:#a5ce95;text-decoration:underline}.about-copy .insurance-note{color:var(--green);font-size:14px;font-weight:500}.privacy-page{max-width:1060px;margin:auto}.privacy-page h1{margin:30px 0 18px;font-size:clamp(38px,5vw,58px);line-height:1.1}.privacy-page h2{letter-spacing:-.5px;margin:38px 0 14px;font-size:26px}.privacy-page p{color:var(--muted);line-height:1.8}.privacy-page a{overflow-wrap:anywhere}.privacy-page p a{color:var(--green);text-decoration:underline}.privacy-updated{font-size:14px}.contact-photo{--diagonal-depth:clamp(24px, 3.5vw, 60px);z-index:1;width:100%;height:clamp(220px,32vw,460px);margin-top:calc(-1 * var(--diagonal-depth));margin-bottom:calc(-1 * var(--diagonal-depth));clip-path:polygon(0 0, 100% 0, 100% calc(100% - var(--diagonal-depth)), 0 100%);position:relative;overflow:hidden}.contact-photo img{object-fit:cover;width:100%;height:calc(100% + 80px);margin-top:-40px;display:block}@media (min-width:801px){.contact-photo{height:clamp(300px,39vw,570px)}}.contact.follows-photo{--diagonal-depth:clamp(24px, 3.5vw, 60px);z-index:2;clip-path:polygon(0 var(--diagonal-depth), 100% 0, 100% 100%, 0 100%);padding-top:calc(105px + var(--diagonal-depth));position:relative}@media (max-width:800px){.contact.follows-photo{padding-top:calc(65px + var(--diagonal-depth))}}.service-card-photo{overflow:hidden}.service-card-photo img{object-fit:cover;width:100%;height:calc(100% + 80px);margin-top:-40px;display:block}.client-reviews{text-align:center;background:#f6f7f5;padding-block:44px}.reviews-heading h2{letter-spacing:-.3px;margin:0 0 10px;font-size:22px}.review-stars{color:var(--green);letter-spacing:2px;font-size:16px}.reviews-carousel{max-width:750px;margin:22px auto 8px;display:grid}.review-slide{opacity:0;visibility:hidden;grid-area:1/1;margin:0;transition:opacity .4s,visibility .4s}.review-slide.is-active{opacity:1;visibility:visible}.review-slide blockquote{margin:14px 0 16px}.review-slide blockquote p{color:var(--ink);margin:0;font-size:15px;line-height:1.7}.review-slide figcaption{flex-wrap:wrap;justify-content:center;gap:6px 12px;font-size:13px;line-height:1.5;display:flex}.review-slide figcaption strong{font-weight:500}.review-slide figcaption span{color:var(--muted)}.reviews-count{color:var(--muted);font-size:12px}.case-studies-page{background:#f1f4f0;padding:145px 6% 70px}.case-studies-page>h1{letter-spacing:-.5px;max-width:1180px;margin:0 auto 28px;font-size:26px}.case-studies-list{width:100%;max-width:1180px;margin-inline:auto}.case-study{background:#fff;border:1px solid #dfe5dc;border-radius:12px;padding:40px;scroll-margin-top:120px}.service-case-link{margin:20px 0 0;font-size:14px}.service-case-link a{color:var(--green);text-underline-offset:4px;line-height:1.7;text-decoration:underline}.case-gallery-all{color:var(--green);font:inherit;text-underline-offset:4px;cursor:pointer;background:0 0;border:0;margin-top:20px;padding:8px 0;font-size:14px;text-decoration:underline}.quote-page{background:#f1f4f0;padding:145px 6% 70px}.quote-page-content{max-width:720px;margin:auto}.quote-page h1{margin:0 0 20px;font-size:clamp(32px,4vw,46px)}.quote-introduction{color:var(--muted);margin:0 0 30px;font-size:17px;line-height:1.8}.quote-form{background:#fff;border:1px solid #dfe5dc;border-radius:12px;padding:32px}.quote-form fieldset{border:0;min-width:0;margin:0;padding:0}.quote-form label{margin:24px 0 8px;font-size:15px;font-weight:500;display:block}.quote-form input,.quote-form textarea,.quote-form select{width:100%;min-width:0;color:var(--ink);font:inherit;background:#fff;border:1px solid #b9c5b4;border-radius:4px;padding:12px;font-size:16px;display:block}.quote-form textarea{resize:vertical}.quote-form input[type=file]{font-size:14px}.quote-help,.quote-required,.quote-privacy{color:var(--muted);font-size:13px;line-height:1.7}.quote-help{margin:8px 0 0}.quote-privacy{margin:26px 0 22px}.quote-privacy a,.quote-notice a,.quote-success a{color:var(--green);text-underline-offset:3px;text-decoration:underline}.quote-notice{background:#f1f4f0;padding:16px;font-size:14px;line-height:1.7}.quote-error{color:#9e2626;line-height:1.7}.quote-form .quote-trap{display:none}.quote-form button:disabled{cursor:default;opacity:.6}.quote-success{background:#fff;border:1px solid #dfe5dc;border-radius:12px;padding:32px}.quote-success h2{font-size:26px}.quote-success p{line-height:1.8}@media (max-width:800px){.quote-page{padding-top:120px}.quote-form,.quote-success{padding:24px 20px}}.case-study+.case-study{margin-top:32px}.case-study h2{margin:0 0 28px;font-size:clamp(25px,3vw,36px);line-height:1.25}.case-study-copy{grid-template-columns:1fr 1fr;gap:40px;display:grid}.case-study-copy h3{color:var(--green);margin:0 0 12px;font-size:18px}.case-study-copy p{color:var(--muted);margin:0 0 16px;font-size:17px;line-height:1.8}.case-study h2{margin-bottom:8px}.case-study-area{color:var(--green);margin:0 0 24px;font-size:15px;font-weight:500}.case-study-introduction,.case-study-copy ul{color:var(--muted);font-size:17px;line-height:1.8}.case-study-introduction{margin:0 0 28px}.case-study-copy ul{margin:0;padding-left:20px}.case-study-copy li+li{margin-top:8px}@media (max-width:800px){.case-studies-page{padding-top:120px}.case-studies-page>h1{margin-bottom:22px;font-size:22px}.case-study{padding:24px 20px}.case-study-copy{grid-template-columns:1fr;gap:20px}.case-study .service-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.case-study .service-gallery-grid figcaption{font-size:12px}.case-study-copy p,.case-study-introduction,.case-study-copy ul{font-size:16px}.case-study+.case-study{margin-top:24px}}.reviews-controls{justify-content:center;align-items:center;display:flex}.review-dot{cursor:pointer;background:0 0;border:0;place-items:center;width:32px;height:32px;padding:0;display:grid}.review-dot span{background:#c7d0c3;border-radius:50%;width:6px;height:6px}.review-dot[aria-pressed=true] span{background:var(--green)}.reviews-pause{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:8px;font-size:12px}@media (max-width:800px){.client-reviews{padding-block:36px}.reviews-heading h2{font-size:20px}.review-slide blockquote p{font-size:14px}}@media (prefers-reduced-motion:reduce){.review-slide{transition:none}}
