.container{width:min(1240px,calc(100% - 48px));margin-inline:auto}
.hero:before{background:linear-gradient(90deg,rgba(6,24,14,.96) 0%,rgba(8,30,17,.84) 44%,rgba(8,26,15,.14) 74%),url('assets/images/remi-hero-v2.png') center/cover no-repeat}

/* Hero motion: restrained on desktop, cinematic on mobile */
@media(min-width:681px) and (prefers-reduced-motion:no-preference){
  .hero:before{animation:hero-desktop-image 1.5s cubic-bezier(.2,.8,.2,1) both}
  .hero-copy .eyebrow{animation:hero-desktop-in .65s .08s ease-out both}
  .hero-copy h1{animation:hero-desktop-in .78s .18s ease-out both}
  .hero-copy>p:not(.eyebrow){animation:hero-desktop-in .78s .3s ease-out both}
  .hero-actions{animation:hero-desktop-in .75s .4s ease-out both}
  .hero-badge{animation:hero-badge-gentle .9s .48s cubic-bezier(.16,1,.3,1) both}
  @keyframes hero-desktop-image{0%{opacity:.72;transform:scale(1.065)}100%{opacity:1;transform:scale(1.02)}}
  @keyframes hero-desktop-in{0%{opacity:0;transform:translateY(18px)}100%{opacity:1;transform:none}}
  @keyframes hero-badge-gentle{0%{opacity:0;transform:translateY(18px) scale(.92)}100%{opacity:1;transform:none}}
}

@media(max-width:680px) and (prefers-reduced-motion:no-preference){
  .hero{isolation:isolate}
  .hero:before{transform-origin:66% 50%;animation:hero-mobile-scene 1.65s cubic-bezier(.16,1,.3,1) both}
  .hero:after{content:"";position:absolute;z-index:0;inset:-30% -65%;background:linear-gradient(112deg,transparent 39%,rgba(164,213,73,.12) 45%,rgba(255,255,255,.3) 49%,transparent 56%);transform:translateX(-58%) rotate(4deg);animation:hero-mobile-flash 1.45s .22s cubic-bezier(.2,.8,.2,1) both;pointer-events:none}
  .hero-grid{z-index:1}
  .hero-copy{perspective:900px}
  .hero-copy .eyebrow{transform-origin:left center;animation:hero-mobile-eyebrow .72s .16s cubic-bezier(.16,1,.3,1) both}
  .hero-copy h1{transform-origin:0 100%;animation:hero-mobile-title 1.02s .27s cubic-bezier(.16,1,.3,1) both}
  .hero-copy h1 em{animation:hero-mobile-accent .82s .63s cubic-bezier(.17,.89,.32,1.35) both}
  .hero-copy>p:not(.eyebrow){animation:hero-mobile-copy .8s .72s cubic-bezier(.16,1,.3,1) both}
  .hero-actions .button{animation:hero-mobile-button .74s .9s cubic-bezier(.17,.89,.32,1.28) both}
  .hero-actions .button:nth-child(2){animation-delay:1.03s}
  @keyframes hero-mobile-scene{0%{opacity:.35;transform:scale(1.24) translate3d(7%,0,0)}55%{opacity:1}100%{opacity:1;transform:scale(1.02) translate3d(0,0,0)}}
  @keyframes hero-mobile-flash{0%{opacity:0;transform:translateX(-58%) rotate(4deg)}25%{opacity:1}100%{opacity:0;transform:translateX(58%) rotate(4deg)}}
  @keyframes hero-mobile-eyebrow{0%{opacity:0;letter-spacing:.42em;transform:translateX(-28px)}100%{opacity:1;letter-spacing:.15em;transform:none}}
  @keyframes hero-mobile-title{0%{opacity:0;transform:translate3d(0,62px,-100px) rotateX(17deg) scale(.9)}62%{opacity:1;transform:translate3d(0,-5px,0) rotateX(-2deg) scale(1.015)}100%{opacity:1;transform:none}}
  @keyframes hero-mobile-accent{0%{opacity:0;transform:translateX(-22px) skewX(-8deg);text-shadow:0 0 0 rgba(164,213,73,0)}65%{opacity:1;transform:translateX(4px) skewX(2deg);text-shadow:0 9px 28px rgba(164,213,73,.32)}100%{opacity:1;transform:none;text-shadow:none}}
  @keyframes hero-mobile-copy{0%{opacity:0;transform:translateY(24px)}100%{opacity:1;transform:none}}
  @keyframes hero-mobile-button{0%{opacity:0;transform:translateY(34px) scale(.82)}68%{opacity:1;transform:translateY(-4px) scale(1.035)}100%{opacity:1;transform:none}}
}
.trust-grid img{width:72px;height:72px;flex:0 0 72px;object-fit:contain}

/* Cinematic entrance for the three company strengths */
.trust-grid>div{position:relative;isolation:isolate;overflow:hidden;perspective:900px;transition:transform .35s cubic-bezier(.2,.8,.2,1),background-color .35s ease,box-shadow .35s ease}
.trust-grid>div:before{content:"";position:absolute;z-index:-1;inset:-80% -35%;background:linear-gradient(115deg,transparent 36%,rgba(164,213,73,.08) 44%,rgba(164,213,73,.42) 50%,rgba(255,255,255,.8) 53%,transparent 62%);opacity:0;transform:translateX(-75%) rotate(7deg);pointer-events:none}
.trust-grid>div:hover{z-index:2;background:#f9fcf7;transform:translateY(-7px) scale(1.015);box-shadow:0 20px 42px rgba(18,59,36,.13)}
.trust-grid img{transition:filter .35s ease}
.trust-grid>div:hover img{filter:drop-shadow(0 11px 10px rgba(18,59,36,.24)) saturate(1.12)}
.trust-grid.motion-ready>div{opacity:0;transform:translate3d(0,42px,-80px) rotateX(-16deg) scale(.9);transform-origin:50% 100%}
.trust-grid.motion-ready.is-revealed>div{animation:trust-card-reveal .9s cubic-bezier(.16,1,.3,1) both}
.trust-grid.motion-ready.is-revealed>div:nth-child(2){animation-delay:.16s}
.trust-grid.motion-ready.is-revealed>div:nth-child(3){animation-delay:.32s}
.trust-grid.motion-ready.is-revealed>div:before{animation:trust-light-sweep 1.15s .28s cubic-bezier(.2,.8,.2,1) both}
.trust-grid.motion-ready.is-revealed>div:nth-child(2):before{animation-delay:.44s}
.trust-grid.motion-ready.is-revealed>div:nth-child(3):before{animation-delay:.6s}
.trust-grid.motion-ready.is-revealed img{animation:trust-icon-pop 1.05s .13s cubic-bezier(.17,.89,.32,1.42) both}
.trust-grid.motion-ready.is-revealed>div:nth-child(2) img{animation-delay:.29s}
.trust-grid.motion-ready.is-revealed>div:nth-child(3) img{animation-delay:.45s}
.trust-grid.motion-ready.is-revealed span{animation:trust-copy-slide .72s .3s cubic-bezier(.16,1,.3,1) both}
.trust-grid.motion-ready.is-revealed>div:nth-child(2) span{animation-delay:.46s}
.trust-grid.motion-ready.is-revealed>div:nth-child(3) span{animation-delay:.62s}
@keyframes trust-card-reveal{0%{opacity:0;transform:translate3d(0,42px,-80px) rotateX(-16deg) scale(.9)}62%{opacity:1;transform:translate3d(0,-7px,0) rotateX(3deg) scale(1.02)}100%{opacity:1;transform:none}}
@keyframes trust-icon-pop{0%{opacity:0;transform:rotateY(-100deg) rotateZ(-18deg) scale(.25);filter:blur(7px) drop-shadow(0 0 0 rgba(111,174,53,0))}58%{opacity:1;transform:rotateY(12deg) rotateZ(7deg) scale(1.18);filter:blur(0) drop-shadow(0 13px 13px rgba(18,59,36,.28))}78%{transform:rotateY(-5deg) rotateZ(-3deg) scale(.96)}100%{opacity:1;transform:none;filter:drop-shadow(0 5px 5px rgba(18,59,36,.16))}}
@keyframes trust-copy-slide{0%{opacity:0;transform:translateX(28px)}100%{opacity:1;transform:none}}
@keyframes trust-light-sweep{0%{opacity:0;transform:translateX(-75%) rotate(7deg)}22%{opacity:1}100%{opacity:0;transform:translateX(75%) rotate(7deg)}}
@media(prefers-reduced-motion:reduce){.trust-grid.motion-ready>div{opacity:1;transform:none}.trust-grid.motion-ready.is-revealed>div,.trust-grid.motion-ready.is-revealed img,.trust-grid.motion-ready.is-revealed span,.trust-grid.motion-ready.is-revealed>div:before{animation:none}}
.map-consent{min-height:504px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px;background:linear-gradient(145deg,#eef5e9,#dbe9d5);color:#123b24}
.map-consent>img{width:62px;height:62px;color:#6fae35;margin-bottom:12px}
.map-consent h3{font-size:1.4rem;margin:0 0 5px}
.map-consent p{max-width:380px;color:#52645a;font-size:.84rem}
.map-load{border:0;background:#6fae35;color:#fff;padding:13px 22px;border-radius:3px;font-weight:900;text-transform:uppercase;font-size:.72rem;letter-spacing:.05em;cursor:pointer;margin:8px 0}
.map-load:hover{background:#5d982a}
.map-consent>a{color:#123b24;text-decoration:underline;font-size:.75rem;font-weight:800}
@media(max-width:680px){.map-consent{min-height:344px;padding:24px}}

.projects-intro{padding-bottom:66px;background:#fff}
.service-gallery-section{padding:78px 0 88px;background:#fff}
.service-gallery-section.alt{background:#f1f5ef}
.gallery-title{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.65fr);gap:60px;align-items:end;margin-bottom:32px}
.gallery-title>div{position:relative;padding-left:76px}
.gallery-number{position:absolute;left:0;top:-9px;color:#c9d8c7;font-size:3rem;font-weight:900;line-height:1}
.gallery-title .kicker{margin-bottom:8px}
.gallery-title h2{font-size:clamp(2rem,3.5vw,3.25rem);line-height:1.05;letter-spacing:-.04em;margin:0;max-width:780px}
.gallery-title>p{color:#667168;margin:0 0 4px;font-size:.94rem}
.service-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:235px;gap:12px}
.service-photo{border:0;padding:0;position:relative;overflow:hidden;background:#dce5db;cursor:zoom-in}
.service-photo:nth-child(1){grid-column:span 2;grid-row:span 2}
.service-photo:nth-child(6n+4){grid-column:span 2}
.service-photo img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease,filter .45s ease}
.service-photo:after{content:"Vergrößern";position:absolute;right:12px;bottom:12px;padding:7px 10px;background:rgba(8,35,19,.82);color:#fff;text-transform:uppercase;font-size:.62rem;font-weight:900;letter-spacing:.07em;opacity:0;transform:translateY(7px);transition:.25s}
.service-photo:hover img{transform:scale(1.045);filter:saturate(1.08)}
.service-photo:hover:after{opacity:1;transform:none}
.service-photo.gallery-hidden{display:none}
.gallery-more{display:block;margin:28px auto 0;border:1px solid #123b24;background:transparent;color:#123b24;padding:13px 22px;text-transform:uppercase;font-size:.72rem;font-weight:900;letter-spacing:.06em;cursor:pointer}
.gallery-more:hover{background:#123b24;color:#fff}
.gallery-more[hidden]{display:none}
.gallery-modal figure{margin:0;max-width:90vw;max-height:88vh;display:flex;flex-direction:column;align-items:center}
.gallery-modal figure img{max-width:90vw;max-height:80vh;object-fit:contain}
.gallery-modal figcaption{color:#fff;margin-top:12px;font-size:.82rem;text-align:center}
.modal-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:0;border-radius:50%;background:#fff;color:#123b24;font-size:2.25rem;line-height:1;cursor:pointer}
.modal-prev{left:24px}.modal-next{right:24px}
@media(max-width:980px){.gallery-title{grid-template-columns:1fr;gap:16px}.service-photo-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:250px}}
@media(max-width:680px){.projects-intro{padding-bottom:40px}.service-gallery-section{padding:58px 0 65px}.gallery-title>div{padding-left:56px}.gallery-number{font-size:2.2rem}.gallery-title h2{font-size:2.25rem}.service-photo-grid{grid-template-columns:1fr;grid-auto-rows:280px}.service-photo:nth-child(1),.service-photo:nth-child(6n+4){grid-column:span 1;grid-row:span 1}.modal-nav{width:42px;height:42px}.modal-prev{left:8px}.modal-next{right:8px}.gallery-modal{padding:50px 12px}}

/* Horizontal infinite service carousels */
.service-photo-grid.carousel-viewport{--per-view:3;display:block;position:relative;overflow:hidden;height:auto;aspect-ratio:16/6.6;touch-action:pan-y;cursor:grab;background:#dce5db}
.service-photo-grid.carousel-viewport:active{cursor:grabbing}
.service-carousel-track{height:100%;display:flex;will-change:transform}
.service-carousel-track .service-photo,.service-carousel-track .service-photo:nth-child(1),.service-carousel-track .service-photo:nth-child(6n+4){display:block;flex:0 0 calc(100% / var(--per-view));width:calc(100% / var(--per-view));height:100%;grid-column:auto;grid-row:auto;border-left:5px solid transparent;border-right:5px solid transparent}
.service-carousel-track .service-photo:after{content:"Zum Vergrößern anklicken";opacity:1;transform:none}
.carousel-controls{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;align-items:center;gap:18px;margin-top:22px}
.carousel-button{width:46px;height:46px;border:1px solid #123b24;border-radius:50%;background:#fff;color:#123b24;font-size:2rem;line-height:1;cursor:pointer;transition:.2s}
.carousel-button:hover{background:#123b24;color:#fff}
.carousel-dots{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap}
.carousel-dot{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#b7c5b7;cursor:pointer;transition:width .25s ease,background .25s ease}
.carousel-dot.active{width:26px;border-radius:8px;background:#6fae35}
.service-gallery-section .gallery-more{display:none!important}
@media(max-width:980px){.service-photo-grid.carousel-viewport{--per-view:2;aspect-ratio:16/7.5}}
@media(max-width:680px){.service-photo-grid.carousel-viewport{--per-view:1.18;aspect-ratio:4/3}.service-carousel-track .service-photo,.service-carousel-track .service-photo:nth-child(1),.service-carousel-track .service-photo:nth-child(6n+4){border-left:5px solid transparent;border-right:5px solid transparent}.carousel-controls{grid-template-columns:40px minmax(0,1fr) 40px;gap:9px;margin-top:16px}.carousel-button{width:40px;height:40px}.carousel-dots{gap:5px}.carousel-dot{width:7px;height:7px}.carousel-dot.active{width:20px}.service-carousel-track .service-photo:after{font-size:.56rem}}

/* Customer reviews and regional service area */
.reviews{background:#f7faf5;overflow:hidden}
.reviews-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:42px}
.reviews-heading h2,.service-area h2{font-size:clamp(2.35rem,4.5vw,4.3rem);line-height:1.03;letter-spacing:-.045em;margin:0}
.reviews-heading h2 span,.service-area h2 span{color:#6fae35}
.google-rating{display:flex;align-items:center;gap:12px;padding:13px 17px;background:#fff;border:1px solid #dce5db;box-shadow:0 10px 35px rgba(18,59,36,.06)}
.google-g{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#edf6e8;color:#4285f4;font-weight:900;font-size:1.15rem}
.google-rating strong,.google-rating span{display:block}.google-rating strong{font-size:.78rem}.google-rating div span{color:#f2b632;letter-spacing:.08em;font-size:.8rem}
.review-carousel{position:relative;padding:0 26px}
.review-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:4px 0 18px}
.review-track::-webkit-scrollbar{display:none}
.review-card{flex:0 0 calc((100% - 48px)/4);min-width:255px;scroll-snap-align:start;background:#fff;border:1px solid #dce5db;border-radius:10px;padding:25px 23px;box-shadow:0 12px 32px rgba(18,59,36,.055)}
.review-author{display:grid;grid-template-columns:40px 1fr auto;gap:11px;align-items:center}
.review-author>span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#6fae35;color:#fff;font-weight:900}
.review-author strong,.review-author small{display:block;line-height:1.25}.review-author strong{font-size:.83rem}.review-author small{font-size:.66rem;color:#7b867e}.review-author>b{color:#4285f4;font-size:1rem}
.google-g,.review-author>b{background-image:url('assets/icons/45-google.png');background-repeat:no-repeat;background-position:center;background-size:contain;color:transparent;font-size:0}
.google-g{background-color:transparent;border-radius:0}
.review-author>b{display:block;width:22px;height:22px}
.review-stars{color:#f2b632;letter-spacing:.08em;margin:17px 0 11px;font-size:.82rem}
.review-card p{margin:0;color:#667168;font-size:.84rem;line-height:1.65}
.review-arrow{position:absolute;z-index:2;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:1px solid #d3dfd1;background:#fff;color:#123b24;font-size:1.8rem;line-height:1;cursor:pointer;box-shadow:0 7px 22px rgba(18,59,36,.1)}
.review-arrow:hover{background:#123b24;color:#fff}.review-prev{left:0}.review-next{right:0}
.reviews-action{text-align:center;margin-top:20px}
.service-area{background:#edf5e9}
.area-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:90px;align-items:center}
.service-area h2{margin-bottom:24px}.service-area .area-grid>div:first-child>p:last-child{max-width:520px;color:#667168;margin:0}
.area-list{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px}
.area-list span{position:relative;background:#fff;border:1px solid #dce5db;border-radius:4px;padding:14px 18px 14px 46px;color:#34453a;font-weight:800;font-size:.83rem;box-shadow:0 7px 20px rgba(18,59,36,.045)}
.area-list span:before{content:"✓";position:absolute;left:17px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#6fae35;color:#fff;font-size:.66rem;font-weight:900}
@media(max-width:980px){.review-card{flex-basis:calc((100% - 16px)/2)}.area-grid{grid-template-columns:1fr;gap:48px}}
@media(max-width:680px){.reviews-heading{display:block;margin-bottom:28px}.google-rating{width:max-content;margin-top:24px}.review-carousel{padding:0 18px}.review-card{flex-basis:88%;min-width:0}.review-arrow{width:36px;height:36px}.reviews-action{margin-top:12px}.area-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.area-list span{min-height:54px;display:flex;align-items:center;padding:10px 9px 10px 38px;font-size:.76rem;line-height:1.25}.area-list span:before{left:11px}.area-grid{gap:34px}.service-area h2{font-size:2.55rem}}
@media(max-width:680px){.steps article:last-child{border-bottom:1px solid rgba(255,255,255,.18)}}

/* Before-and-after project videos */
.transformation-videos{position:relative;background:#0a2415;color:#fff;overflow:hidden}
.transformation-videos:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 88% 4%,rgba(164,213,73,.13),transparent 34%),linear-gradient(125deg,transparent 52%,rgba(255,255,255,.025) 52%);pointer-events:none}
.transformation-videos .shell{position:relative}
.video-section-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.65fr);gap:70px;align-items:end;margin-bottom:48px}
.video-section-head h2{font-size:clamp(2.35rem,4.5vw,4.3rem);line-height:1.03;letter-spacing:-.045em;margin:0}
.video-section-head h2 span{color:#8fc64f}
.video-section-head>p{max-width:520px;margin:0 0 5px;color:#b9c9bd;font-size:.94rem}
.video-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,420px));justify-content:center;gap:28px}
.video-card{background:#fff;color:#172019;border:1px solid rgba(255,255,255,.13);box-shadow:0 22px 60px rgba(0,0,0,.24);transition:transform .35s ease,box-shadow .35s ease}
.video-card:hover{transform:translateY(-7px);box-shadow:0 30px 70px rgba(0,0,0,.32)}
.video-frame{position:relative;width:100%;aspect-ratio:9/16;background:#06150c;overflow:hidden}
.video-frame video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;background:#06150c}
.video-label{position:absolute;z-index:2;left:16px;top:16px;padding:8px 11px;background:rgba(7,26,15,.88);color:#fff;font-size:.65rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;pointer-events:none;backdrop-filter:blur(6px)}
.video-card-copy{padding:24px 26px 27px}
.video-card-copy>span{color:#6fae35;font-size:.67rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.video-card-copy h3{margin:7px 0 8px;font-size:1.2rem;text-transform:uppercase}
.video-card-copy p{margin:0;color:#667168;font-size:.86rem}
@media(max-width:780px){.video-section-head{grid-template-columns:1fr;gap:17px;margin-bottom:32px}.video-grid{grid-template-columns:minmax(0,420px)}.video-section-head>p{max-width:600px}}
@media(max-width:680px){.transformation-videos{padding:68px 0}.video-section-head h2{font-size:2.55rem}.video-grid{gap:18px}.video-card-copy{padding:20px 19px 22px}.video-label{left:11px;top:11px}.video-card:hover{transform:none}}

/* Refined company footer */
.site-footer{position:relative;background:#07160d;color:#d7e1d9;padding:72px 0 22px;overflow:hidden}
.site-footer:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 12% 8%,rgba(111,174,53,.11),transparent 32%);pointer-events:none}
.site-footer .footer-grid,.site-footer .footer-bottom{position:relative}
.site-footer .footer-grid{grid-template-columns:1.45fr .75fr 1fr 1.2fr;gap:64px;align-items:start}
.site-footer .footer-logo{display:inline-flex;width:235px;height:82px;padding:9px 14px;background:#fff;border:2px solid #6fae35;border-radius:7px;margin-bottom:19px}
.site-footer .footer-brand img{width:100%;height:100%;object-fit:contain;filter:none}
.site-footer .footer-brand>p{max-width:300px;color:#aebbb1;font-size:.85rem;line-height:1.65;margin:0 0 21px}
.site-footer .footer-cta{display:inline-flex;width:max-content;border:1px solid #6fae35;border-radius:3px;padding:10px 14px;color:#bfe092;font-size:.69rem;text-transform:uppercase;letter-spacing:.06em;font-weight:900}
.site-footer .footer-cta:hover{background:#6fae35;color:#fff}
.site-footer h3{margin:5px 0 21px;color:#8fc64f;font-size:.69rem;letter-spacing:.14em}
.site-footer .footer-column>a{position:relative;width:max-content;color:#bec9c0;font-size:.78rem;margin:0 0 10px;transition:.2s}
.site-footer .footer-column:not(.footer-contact)>a:after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1px;background:#8fc64f;transition:.2s}
.site-footer .footer-column:not(.footer-contact)>a:hover{color:#fff;transform:translateX(3px)}
.site-footer .footer-column:not(.footer-contact)>a:hover:after{right:0}
.site-footer .footer-contact>a{display:flex;align-items:flex-start;gap:12px;width:auto;margin-bottom:15px;line-height:1.45}
.site-footer .footer-contact img{width:19px;height:19px;object-fit:contain;margin-top:1px;filter:brightness(0) saturate(100%) invert(69%) sepia(42%) saturate(664%) hue-rotate(43deg) brightness(89%)}
.site-footer .footer-contact span{color:#bec9c0;font-size:.78rem}
.site-footer .footer-contact a:hover span{color:#fff}
.site-footer .footer-bottom{display:grid;grid-template-columns:minmax(0,1.4fr) auto minmax(0,1fr);align-items:center;gap:28px;border-top:1px solid rgba(255,255,255,.12);margin-top:54px;padding-top:19px;color:#829087;font-size:.66rem;letter-spacing:.01em}
.site-footer .footer-bottom a{display:inline;margin:0;color:#9eaaa1;font-size:.66rem}.site-footer .footer-bottom a:hover{color:#fff}
.site-footer .footer-legal{display:flex;align-items:center;justify-content:center;gap:22px;white-space:nowrap}
.site-footer .site-credit{display:block!important;margin:0!important;text-align:right;white-space:nowrap}.site-footer .site-credit a{color:#8fc64f;font-weight:800}
@media(max-width:980px){.site-footer .footer-grid{grid-template-columns:1.25fr 1fr;gap:46px 70px}}
@media(max-width:680px){
  .site-footer{padding:48px 0 20px}
  .site-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 22px}
  .site-footer .footer-brand,.site-footer .footer-contact{grid-column:1/-1}
  .site-footer .footer-brand{display:flex;flex-direction:column;align-items:center;text-align:center;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.1)}
  .site-footer .footer-logo{width:210px;height:76px;margin-bottom:17px}
  .site-footer .footer-brand>p{max-width:310px;margin-bottom:19px}
  .site-footer .footer-cta{justify-content:center;width:100%;max-width:310px;padding:13px 15px}
  .site-footer h3{margin:0 0 16px;font-size:.66rem}
  .site-footer .footer-column>a{width:auto;margin-bottom:12px;font-size:.76rem}
  .site-footer .footer-contact{padding:24px 20px 10px;border:1px solid rgba(143,198,79,.22);background:rgba(255,255,255,.025);border-radius:8px}
  .site-footer .footer-contact h3{text-align:center;margin-bottom:19px}
  .site-footer .footer-contact>a{align-items:center;padding:3px 0;margin-bottom:15px}
  .site-footer .footer-contact img{width:21px;height:21px;margin:0}
  .site-footer .footer-bottom{display:flex;flex-direction:column;align-items:center;text-align:center;gap:11px;margin-top:34px;padding-top:20px;line-height:1.5}
  .site-footer .footer-bottom .footer-legal{display:flex;gap:19px;margin:0}
  .site-footer .site-credit{margin:3px 0 0;padding-top:12px;width:100%;border-top:1px solid rgba(255,255,255,.07)}
}

/* Privacy and external-content consent */
.consent-backdrop{position:fixed;z-index:10000;inset:0;display:grid;place-items:center;padding:20px;background:rgba(3,15,8,.78);backdrop-filter:blur(7px)}
.consent-backdrop[hidden]{display:none}
.consent-dialog{width:min(100%,570px);padding:38px;background:#fff;color:#172019;border-top:5px solid #77b83c;box-shadow:0 30px 90px rgba(0,0,0,.36)}
.consent-mark{display:grid;place-items:center;width:46px;height:46px;margin-bottom:22px;border-radius:50%;background:#eaf4df;color:#5c9f25;font-size:1.25rem;font-weight:900}
.consent-dialog h2{margin:7px 0 14px;font-size:clamp(1.75rem,4vw,2.65rem);line-height:1.08;letter-spacing:-.035em}
.consent-dialog>p:not(.kicker){margin:0;color:#5f6d63;font-size:.9rem;line-height:1.7}
.consent-links{display:flex;gap:20px;margin-top:19px}.consent-links a{color:#477d20;font-size:.75rem;font-weight:800;text-decoration:underline}
.consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:27px}.consent-actions button,.map-consent-button{min-height:48px;border:0;padding:12px 17px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}
.consent-essential{background:#edf1ed;color:#26342a}.consent-accept{background:#64a82f;color:#fff}
.consent-essential:hover{background:#dfe6df}.consent-accept:hover{background:#4e9221}
.consent-lock{overflow:hidden}
.map-card{position:relative}.map-consent-placeholder{position:absolute;z-index:2;inset:0 0 42px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:25px;text-align:center;background:#e8eee8;color:#17331f}
.map-consent-placeholder strong{font-size:1.15rem}.map-consent-placeholder span{max-width:280px;color:#607066;font-size:.8rem}.map-consent-button{min-height:42px;margin-top:7px;background:#174728;color:#fff;font-size:.7rem}
.map-card.external-content-active .map-consent-placeholder{display:none}
@media(max-width:560px){.consent-dialog{padding:29px 22px}.consent-actions{grid-template-columns:1fr}.consent-accept{grid-row:1}.consent-links{gap:16px;flex-wrap:wrap}}

/* Rich service-card motion: mobile only */
@media(max-width:680px) and (prefers-reduced-motion:no-preference){
  .service-grid{perspective:950px;gap:20px}
  .service-grid article{--entry-x:-42px;--entry-r:-9deg;transform-style:preserve-3d;transform-origin:50% 100%;isolation:isolate;transition:transform .85s cubic-bezier(.16,1,.3,1),opacity .58s ease,clip-path .85s cubic-bezier(.16,1,.3,1),box-shadow .35s ease}
  .service-grid article:nth-child(even){--entry-x:42px;--entry-r:9deg}
  .service-grid.mobile-motion-ready article{opacity:0;clip-path:polygon(10% 12%,90% 0,100% 88%,4% 100%);transform:translate3d(var(--entry-x),55px,-80px) rotateY(var(--entry-r)) rotateX(7deg) scale(.9)}
  .service-grid.mobile-motion-ready article.is-visible{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transform:translate3d(0,0,0) rotateY(0) rotateX(0) scale(1)}
  .service-grid article:before{content:"";position:absolute;z-index:-1;inset:-45%;background:conic-gradient(from 210deg,transparent 0 34%,rgba(164,213,73,.3) 42%,rgba(255,255,255,.9) 48%,transparent 56% 100%);transform:translateX(-70%) rotate(8deg);opacity:0;pointer-events:none}
  .service-grid article.is-visible:before{animation:service-sweep 1.25s .22s cubic-bezier(.2,.8,.2,1) both}
  .service-grid article.is-visible .service-icon{animation:service-icon-arrive .95s .2s cubic-bezier(.17,.89,.32,1.35) both}
  .service-grid article.service-tapped{transform:translate3d(0,-8px,0) rotateX(3deg) scale(.985)!important;box-shadow:0 24px 48px rgba(18,59,36,.2)}
  .service-grid article.service-tapped .service-icon{animation:service-icon-tap .65s cubic-bezier(.2,.8,.2,1)}
  .service-grid article.service-tapped:after{width:100%}
  @keyframes service-sweep{0%{opacity:0;transform:translateX(-72%) rotate(8deg)}18%{opacity:1}100%{opacity:0;transform:translateX(72%) rotate(8deg)}}
  @keyframes service-icon-arrive{0%{opacity:0;transform:translateY(24px) rotate(-28deg) scale(.55)}65%{opacity:1;transform:translateY(-5px) rotate(8deg) scale(1.12)}100%{opacity:1;transform:none}}
  @keyframes service-icon-tap{0%,100%{transform:none}35%{transform:rotate(-14deg) scale(.88)}70%{transform:rotate(12deg) scale(1.15)}}
}
