:root{--primary-blue:#00366f;--dark-blue:#001c3f;--primary-green:#2f7d22;--dark-green:#145536;--white:#fff;--background:#f5f7f6;--navy:var(--primary-blue);--navy-deep:var(--dark-blue);--navy-soft:#0b487d;--green:var(--primary-green);--green-dark:var(--dark-green);--green-light:#91cf80;--green-pale:#eaf4e8;--surface:var(--background);--line:#dce5e1;--text:#092f56;--muted:#536777;--shadow:0 14px 42px rgba(0,28,63,.08);--radius:20px;--container:1190px;--font-sans:"Manrope","Segoe UI",Arial,sans-serif;--weight-regular:400;--weight-medium:600;--weight-bold:700;--weight-heavy:800}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--white);color:var(--text);font-family:var(--font-sans);font-size:1rem;font-weight:var(--weight-regular);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--green);outline-offset:4px}
.container{width:min(calc(100% - 40px),var(--container));margin-inline:auto}
.skip-link{position:absolute;z-index:100;left:16px;top:-70px;background:var(--white);color:var(--navy);padding:10px 16px;border-radius:8px}.skip-link:focus{top:12px}
.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.97);box-shadow:0 2px 18px rgba(0,28,63,.08);backdrop-filter:blur(12px)}
.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;line-height:1}
.header-logo{display:block;width:auto;height:60px;max-width:none;object-fit:contain}
.site-header-home .site-nav{order:1}.site-header-home .brand{order:2}
.brand-mark{width:43px;height:43px;display:grid;place-items:center;flex:none;border-radius:12px;background:var(--green-pale);color:var(--green-dark)}.brand-mark svg{width:28px;height:28px}
.brand-name{display:grid;gap:3px;color:var(--navy);letter-spacing:.1em}.brand-name strong{font-size:1.08rem;font-weight:var(--weight-heavy);letter-spacing:.1em}.brand-name span{font-size:.62rem;font-weight:var(--weight-medium);letter-spacing:.16em}
.menu-toggle{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--navy);cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:5px}.menu-toggle span{width:19px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s,opacity .2s}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-7px) rotate(-45deg)}
.site-nav{display:flex;align-items:center;gap:clamp(16px,2.2vw,32px);font-size:.9rem;font-weight:var(--weight-medium);letter-spacing:.005em}.site-nav>a:not(.nav-call){transition:color .2s}.site-nav>a:hover{color:var(--green-dark)}.nav-call{display:inline-flex;align-items:center;gap:18px;padding:11px 17px;border-radius:9px;background:var(--navy);color:var(--white);transition:background .2s,transform .2s}.nav-call:hover{background:var(--green-dark);transform:translateY(-2px)}
.hero{position:relative;overflow:hidden;isolation:isolate;background:var(--navy-deep);color:var(--white)}.hero:before{content:"";position:absolute;z-index:1;inset:0;background:radial-gradient(circle at 75% 45%,rgba(47,125,34,.16),transparent 38%),linear-gradient(135deg,rgba(255,255,255,.025),transparent 45%);pointer-events:none}.hero-background{position:absolute;z-index:0;inset:0;overflow:hidden;background:var(--navy-deep);pointer-events:none}.hero-background-track{display:flex;width:max-content;height:100%;will-change:transform;backface-visibility:hidden;animation:hero-background-scroll 54s linear infinite}.hero-background-sequence{display:flex;flex:none;height:100%}.hero-background-sequence img{display:block;width:clamp(220px,65vw,320px);height:100%;flex:none;object-fit:cover;filter:brightness(.48) saturate(.78)}.hero-background-overlay{position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(0,28,63,.97) 0%,rgba(0,28,63,.9) 45%,rgba(0,28,63,.7) 100%);pointer-events:none}@keyframes hero-background-scroll{to{transform:translate3d(-50%,0,0)}}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr;align-items:center;gap:48px;padding-block:72px 88px}
.eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 18px;color:var(--green-dark);font-size:.72rem;line-height:1.35;font-weight:var(--weight-bold);letter-spacing:.1em;text-transform:uppercase}.eyebrow-light{color:var(--green)}.eyebrow-line{width:22px;height:2px;background:currentColor}
h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-sans)}h1{margin-bottom:20px;font-size:clamp(3.2rem,9vw,6.5rem);font-weight:var(--weight-heavy);line-height:.96;letter-spacing:-.03em}h1 span{display:block;color:var(--green);font-size:clamp(2rem,5vw,4.4rem);line-height:1;letter-spacing:-.03em}
.hero-slogan{margin:0 0 20px;font-size:clamp(1.3rem,2.5vw,1.9rem);font-weight:var(--weight-bold);line-height:1.2;letter-spacing:-.02em}.hero-slogan em{font-style:normal;color:var(--green)}.hero-description{max-width:560px;margin:0 0 32px;color:#d6e2ed;font-size:clamp(1rem,1.35vw,1.125rem);font-weight:var(--weight-regular);line-height:1.68}
.hero-actions{display:flex;flex-wrap:wrap;gap:11px;max-width:650px}.button{min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 19px;border:1px solid transparent;border-radius:11px;font-size:.9rem;font-weight:var(--weight-bold);line-height:1.2;letter-spacing:.01em;text-align:center;white-space:nowrap;transition:transform .2s,background .2s,box-shadow .2s,border-color .2s}.button:hover{transform:translateY(-3px)}.button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.button-primary{background:var(--green);color:var(--navy-deep);box-shadow:0 9px 20px rgba(47,125,34,.15)}.button-primary:hover{background:#419334;box-shadow:0 14px 26px rgba(47,125,34,.22)}.button-outline{border-color:rgba(221,235,230,.4);color:var(--white);background:rgba(255,255,255,.04)}.button-outline:hover{border-color:var(--green);background:rgba(255,255,255,.09)}.button-text-light{border-color:rgba(221,235,230,.24);color:var(--white);background:rgba(255,255,255,.04)}.button-text-light:hover{border-color:var(--green);background:rgba(255,255,255,.09)}
.hero-visual{position:relative;min-height:340px;isolation:isolate;border:1px solid rgba(145,207,128,.17);border-radius:28px;background:linear-gradient(155deg,rgba(47,125,34,.16),rgba(0,54,111,.18) 50%,rgba(0,28,63,.4));overflow:hidden;box-shadow:inset 0 1px rgba(255,255,255,.09),0 34px 80px rgba(0,0,0,.12)}.hero-visual:after{content:"";position:absolute;inset:20px;border:1px solid rgba(145,207,128,.13);border-radius:18px;pointer-events:none}.visual-orbit{position:absolute;width:360px;height:360px;border:1px solid rgba(145,207,128,.12);border-radius:50%;left:50%;top:45%;transform:translate(-50%,-50%)}.orbit-two{width:500px;height:500px}.visual-topline{position:absolute;top:42px;left:46px;color:#c9dbea;font-size:.66rem;font-weight:var(--weight-bold);letter-spacing:.1em}.property-art{position:absolute;width:100%;max-width:560px;left:50%;top:50%;transform:translate(-50%,-47%);filter:drop-shadow(0 18px 22px rgba(0,0,0,.13))}.visual-badge{position:absolute;bottom:29px;left:29px;right:29px;display:flex;align-items:center;gap:12px;width:max-content;max-width:calc(100% - 58px);padding:12px 17px;border:1px solid rgba(234,244,232,.33);border-radius:11px;background:rgba(11,38,49,.82);box-shadow:0 14px 35px rgba(0,28,63,.2);backdrop-filter:blur(10px)}.badge-check{width:32px;height:32px;display:grid;place-items:center;flex:none;border-radius:50%;background:var(--green);color:var(--navy);font-weight:var(--weight-heavy)}.visual-badge strong,.visual-badge small{display:block;line-height:1.35}.visual-badge strong{font-size:.85rem;font-weight:var(--weight-bold)}.visual-badge small{margin-top:3px;color:#c9dbea;font-size:.72rem;font-weight:var(--weight-regular)}
.section{padding-block:78px}.section-heading{display:grid;gap:10px;margin-bottom:32px}.section-heading h2,.about-copy h2,.contact-inner h2{margin:0;font-size:clamp(2.25rem,4.6vw,3.75rem);font-weight:var(--weight-bold);line-height:1.1;letter-spacing:-.02em}.section-heading h2 span,.about-copy h2 span{color:var(--green-dark)}.section-heading>p{max-width:42ch;margin:0;color:var(--muted);font-size:1rem;font-weight:var(--weight-regular);line-height:1.68}
.services-section{background:var(--surface)}.services-grid{display:grid;grid-template-columns:1fr;gap:14px}.service-card{position:relative;display:grid;grid-template-columns:1fr;gap:12px;align-items:center;min-height:150px;padding:25px 28px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);box-shadow:0 3px 12px rgba(0,28,63,.025);transition:transform .25s,box-shadow .25s,border-color .25s}.service-card:hover{transform:translateY(-5px);border-color:#bad8b3;box-shadow:var(--shadow)}.service-title{display:flex;align-items:center;gap:17px;min-width:0}.service-icon{width:53px;height:53px;display:grid;place-items:center;flex:none;border-radius:13px;background:var(--green-pale);color:var(--green-dark)}.service-icon svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.service-card h3{margin:0;color:var(--navy);font-size:clamp(1.3rem,2vw,1.75rem);font-weight:var(--weight-bold);line-height:1.15;letter-spacing:-.015em}.service-card p{max-width:62ch;margin:0;color:var(--muted);font-size:.98rem;font-weight:var(--weight-regular);line-height:1.68}.card-accent{position:absolute;bottom:0;left:28px;width:46px;height:3px;background:var(--green);border-radius:3px 3px 0 0}
.about-section{background:var(--white)}.about-grid{display:grid;gap:42px}.about-copy h2{max-width:520px;margin-bottom:22px}.about-copy>p:not(.eyebrow){max-width:52ch;margin-bottom:22px;color:var(--muted);font-weight:var(--weight-regular);line-height:1.68}.text-link{display:inline-flex;align-items:center;gap:22px;padding-bottom:5px;border-bottom:2px solid var(--green);color:var(--navy);font-weight:var(--weight-bold);letter-spacing:.005em;transition:color .2s}.text-link span{display:inline-block;transition:transform .2s}.text-link:hover{color:var(--green-dark)}.text-link:hover span{transform:translateX(7px)}.benefits-grid{display:grid;gap:10px}.benefit{display:flex;gap:17px;align-items:flex-start;padding:20px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.benefit-icon{width:39px;height:39px;display:grid;place-items:center;flex:none;border-radius:10px;background:var(--green-pale);color:var(--green-dark);font-size:.72rem;font-weight:var(--weight-heavy)}.benefit h3{margin:0 0 5px;font-size:1.06rem;font-weight:var(--weight-bold);line-height:1.2;letter-spacing:-.01em}.benefit p{max-width:42ch;margin:0;color:var(--muted);font-size:.9rem;font-weight:var(--weight-regular);line-height:1.62}
.gallery-section{background:#f3f6f3}.gallery-grid{display:grid;grid-template-columns:1fr;gap:18px}.gallery-item{position:relative;aspect-ratio:4/3;margin:0;overflow:hidden;border-radius:16px;background:#e8efe9;box-shadow:0 10px 28px rgba(0,28,63,.1);isolation:isolate}.gallery-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:1;transition:opacity .3s,transform .3s,filter .3s}.gallery-item.gallery-focus-right img{object-position:65% center}.gallery-item.gallery-focus-lower img{object-position:center 42%}.js-enabled .gallery-item img{opacity:0}.js-enabled .gallery-item.is-loaded img{opacity:1}.gallery-item:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(to top,rgba(0,28,63,.85),rgba(0,28,63,.15) 55%,transparent 78%);opacity:.94;pointer-events:none;transition:opacity .3s}.gallery-item figcaption{position:absolute;z-index:2;right:20px;bottom:18px;left:20px;color:var(--white);font-size:1.05rem;font-weight:var(--weight-bold);line-height:1.3;letter-spacing:-.005em;text-shadow:0 2px 8px rgba(0,0,0,.22)}@media(hover:hover) and (pointer:fine){.gallery-item:hover img{transform:scale(1.02);filter:brightness(1.06)}.gallery-item:hover:after{opacity:1}}
.contact-section{position:relative;overflow:hidden;background:var(--navy);color:var(--white)}.contact-section:before{content:"";position:absolute;width:660px;height:660px;right:-260px;top:-300px;border:1px solid rgba(47,125,34,.2);border-radius:50%;box-shadow:0 0 0 80px rgba(47,125,34,.035),0 0 0 170px rgba(47,125,34,.025)}.contact-inner{position:relative;display:grid;gap:34px;padding-block:80px}.contact-inner h2{margin-bottom:18px}.contact-inner h2 span{color:var(--green)}.contact-inner p:not(.eyebrow){max-width:52ch;margin:0;color:#d6e2ed;font-weight:var(--weight-regular);line-height:1.68}.contact-actions{display:grid;gap:11px}.contact-actions .button{justify-content:flex-start;gap:13px;min-height:64px;padding-inline:19px;font-size:1.05rem}.contact-actions .button svg{width:20px;height:20px;flex:none}.contact-actions .button span{min-width:0;font-weight:var(--weight-bold)}.contact-actions .button[href^="tel:"]{white-space:nowrap}.contact-actions .contact-email{font-size:.88rem;white-space:normal;text-align:left}.contact-actions .contact-email span{overflow-wrap:anywhere}
.site-footer{background:var(--navy-deep);color:#e1eaf2}.footer-main{display:grid;gap:35px;padding-block:54px 45px}.footer-brand .brand-name{color:var(--white)}.footer-brand p{margin:19px 0 0;color:#b2c2d1;font-size:.9rem;line-height:1.6}.footer-contact h2,.footer-links h2{margin:0 0 14px;color:var(--white);font-size:.9rem;font-weight:var(--weight-bold);line-height:1.3;letter-spacing:.01em}.footer-contact address{display:grid;gap:12px;font-style:normal}.footer-contact a,.footer-links a{display:block;width:max-content;max-width:100%;color:#c8d6e2;font-size:.9rem;font-weight:var(--weight-regular);line-height:1.5;overflow-wrap:anywhere;transition:color .2s}.footer-contact a[href^="tel:"]{white-space:nowrap}.footer-contact a:hover,.footer-links a:hover,.footer-bottom a:hover{color:var(--green)}.footer-links{display:grid;align-content:start;gap:9px}.footer-links h2{margin-bottom:5px}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:20px;border-top:1px solid rgba(255,255,255,.12);color:#a8bad0;font-size:.8rem;line-height:1.5}.footer-bottom a{transition:color .2s}
.legal-main{min-height:60vh;padding-block:70px 95px}.legal-main .legal-content{max-width:780px}.legal-main h1{margin-bottom:22px;color:var(--navy);font-size:clamp(2.5rem,5.5vw,4rem);font-weight:var(--weight-heavy);line-height:1;letter-spacing:-.03em}.legal-main h2{margin-top:34px;font-size:1.3rem;font-weight:var(--weight-bold);line-height:1.2;letter-spacing:-.015em}.legal-main p,.legal-main li{max-width:68ch;color:var(--muted);font-weight:var(--weight-regular);line-height:1.7}.legal-note{padding:20px 23px;border-left:4px solid var(--green-dark);border-radius:0 10px 10px 0;background:var(--green-pale)}.legal-main a:not(.button){color:var(--green-dark);font-weight:var(--weight-medium);text-decoration:underline;text-underline-offset:3px}.legal-contact{display:grid;gap:10px;font-style:normal}.legal-contact a{width:max-content;max-width:100%}.legal-contact a[href^="tel:"]{white-space:nowrap}.legal-contact a[href^="mailto:"]{overflow-wrap:anywhere}
.eyebrow-light,.hero h1 span,.hero-slogan em,.contact-inner h2 span{color:var(--green-light)}
.button-primary{color:var(--white)}.badge-check{color:var(--white)}
.hero-actions .button{justify-content:flex-start;min-height:68px;text-align:left}.hero-actions .button svg{width:20px;height:20px}
.legal-main h2{color:var(--navy)}.legal-main ul{padding-left:21px}.legal-main li+li{margin-top:6px}.legal-placeholder{font-weight:var(--weight-bold);color:var(--green-dark)}.legal-detail{margin:0 0 17px}.legal-detail dt{font-weight:var(--weight-bold);line-height:1.4;color:var(--navy)}.legal-detail dd{margin:2px 0 0;color:var(--muted);line-height:1.65}
@media(min-width:560px){.benefits-grid{grid-template-columns:repeat(2,1fr)}.footer-main{grid-template-columns:1.4fr 1fr}.contact-actions{max-width:490px}}
@media(min-width:601px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:800px){.hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:35px;min-height:630px;padding-block:80px 80px}.hero-visual{min-height:470px}.section{padding-block:105px}.section-heading{grid-template-columns:1fr auto;align-items:end;gap:30px;margin-bottom:40px}.service-card{grid-template-columns:minmax(220px,35%) minmax(0,1fr);gap:30px;min-height:142px;padding:27px 34px}.about-grid{grid-template-columns:.9fr 1.1fr;align-items:center;gap:70px}.contact-inner{grid-template-columns:1fr minmax(330px,.75fr);align-items:center;gap:60px;padding-block:95px}.footer-main{grid-template-columns:1.5fr 1fr .6fr}}
@media(min-width:901px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:800px){.hero-background-sequence img{width:clamp(300px,24vw,480px)}}
@media(max-width:980px){.header-inner{flex-wrap:wrap}.site-nav{width:100%;order:3;flex-wrap:wrap;padding-bottom:13px}.js-enabled .menu-toggle{display:flex}.js-enabled .site-nav{position:absolute;top:calc(100% - 1px);left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:10px 20px 20px;background:var(--white);border-top:1px solid var(--line);box-shadow:0 18px 26px rgba(0,28,63,.1)}.js-enabled .site-nav.is-open{display:flex}.js-enabled .site-nav>a{padding:12px 7px}.js-enabled .site-nav .nav-call{justify-content:space-between;padding:14px 16px;margin-top:7px}}
@media(max-width:980px){.site-header-home .menu-toggle{order:1}.site-header-home .brand{order:2}.site-header-home .site-nav{order:3}}
@media(max-width:799px){.hero-visual{max-width:620px}.hero-grid{gap:46px}}
@media(max-width:799px){.hero-background-track{animation-duration:68s}.hero-background-overlay{background:linear-gradient(90deg,rgba(0,28,63,.96),rgba(0,28,63,.82))}}
@media(max-width:559px){.container{width:min(calc(100% - 36px),var(--container))}.header-inner{min-height:68px}.header-logo{height:48px}.brand-mark{width:39px;height:39px}.brand-name strong{font-size:.98rem}.brand-name span{font-size:.55rem}.hero-grid{padding-block:62px 70px}.hero-content h1{font-size:clamp(3rem,13vw,4.5rem)}.hero-content h1 span{font-size:clamp(1.75rem,8vw,2.7rem)}.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .button{width:100%;min-height:66px}.hero-visual{min-height:310px}.visual-topline{top:29px;left:30px;font-size:.56rem}.visual-badge{left:18px;right:18px;bottom:18px;max-width:calc(100% - 36px)}.section{padding-block:72px}.service-card{min-height:0}.contact-inner{padding-block:72px}.footer-main{padding-block:48px 40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.hero-background-track{width:100%;animation:none!important;transform:none!important;will-change:auto}.hero-background-sequence{display:none}.hero-background-sequence:first-child{display:block;width:100%;height:100%}.hero-background-sequence:first-child img{display:none}.hero-background-sequence:first-child img:first-child{display:block;width:100%;height:100%;object-fit:cover}}

.hero :focus-visible,.contact-section :focus-visible,.site-footer :focus-visible{outline-color:var(--green-light)}
.legal-detail dd.legal-placeholder{color:var(--green-dark)}

.error-main{min-height:calc(100vh - 145px);display:grid;place-items:center;padding-block:80px;background:linear-gradient(145deg,var(--surface),var(--white))}.error-content{max-width:680px;text-align:center}.error-code{margin:0 0 12px;color:var(--green-dark);font-size:.78rem;font-weight:var(--weight-bold);letter-spacing:.1em}.error-content h1{margin-bottom:18px;color:var(--navy);font-size:clamp(2.6rem,8vw,5rem)}.error-content>p:not(.error-code){max-width:54ch;margin:0 auto 30px;color:var(--muted)}.error-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:11px}.error-actions .button-outline{border-color:var(--line);background:var(--white);color:var(--navy)}.error-actions .button-outline:hover{border-color:var(--green-dark);background:var(--green-pale)}
@media(max-width:559px){.error-main{padding-block:60px}.error-actions{display:grid}.error-actions .button{width:100%}}
