/* Modern Site Sections for Elementor */
:root{--mss-green:#2f8a27;--mss-deep:#123f2d;--mss-ink:#10251c;--mss-muted:#627068;--mss-lime:#86b633;--mss-white:#fff}
.mss-section,.mss-section *{box-sizing:border-box}
.mss-section{position:relative;width:100%;overflow:hidden;isolation:isolate}
.mss-section>.mss-section__bg,.mss-section>.mss-section__overlay{position:absolute;inset:0;pointer-events:none}
.mss-section>.mss-section__bg{z-index:0;background-position:center;background-size:cover;background-repeat:no-repeat}
.mss-section>.mss-section__overlay{z-index:1;display:none}
.mss-section>.mss-section__overlay.is-enabled{display:block}
.mss-section .mss-section__inner{position:relative;z-index:3;width:100%;margin-inline:auto}
.mss-section a,.mss-section a:hover,.mss-section a:focus,.mss-floating-contact a,.mss-floating-contact a:hover,.mss-floating-contact a:focus{color:inherit;text-decoration:none}
.mss-section img{max-width:100%;height:auto}

/* Scroll reveal */
[data-mss-reveal]{--mss-reveal-duration:650ms;--mss-reveal-delay:0ms;transition:opacity var(--mss-reveal-duration) ease,transform var(--mss-reveal-duration) cubic-bezier(.2,.75,.25,1);transition-delay:var(--mss-reveal-delay)}
.mss-js [data-mss-reveal]:not(.is-revealed){opacity:0}
.mss-js [data-mss-reveal="fade-up"]:not(.is-revealed){transform:translateY(28px)}
.mss-js [data-mss-reveal="fade-in"]:not(.is-revealed){transform:none}
.mss-js [data-mss-reveal="slide-left"]:not(.is-revealed){transform:translateX(-34px)}
.mss-js [data-mss-reveal="slide-right"]:not(.is-revealed){transform:translateX(34px)}
.mss-js [data-mss-reveal="scale"]:not(.is-revealed){transform:scale(.97)}
[data-mss-reveal].is-revealed{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){[data-mss-reveal]{transition:none!important;opacity:1!important;transform:none!important}}

/* Hero */
.mss-hero{display:flex;align-items:stretch;background:#eff4ea}
.mss-hero__media{position:absolute;inset:0;z-index:0;background-size:cover;background-repeat:no-repeat;background-position:center center;transform:scale(1.001);transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.mss-hero:hover .mss-hero__media{transform:scale(1.025)}
.mss-hero__wash{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,var(--mss-hero-wash,.84)) 0%,rgba(255,255,255,calc(var(--mss-hero-wash,.84)*.82)) 26%,rgba(255,255,255,.28) 48%,rgba(255,255,255,0) 68%)}
.mss-hero__inner{display:flex;align-items:center;min-height:inherit}
.mss-hero__content{position:relative;width:100%}
.mss-hero__eyebrow{margin:0 0 14px;font-size:13px;line-height:1.4;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.mss-hero__title{margin:0;font-size:clamp(44px,5vw,78px);line-height:1.06;font-weight:750;letter-spacing:-.035em}
.mss-hero__divider{display:flex;align-items:center;gap:10px;margin:22px 0 24px;color:var(--mss-lime)}
.mss-hero__divider span{height:1px;background:currentColor;flex:1}.mss-hero__divider i{font-style:normal;font-size:10px}
.mss-hero__description{max-width:560px;font-size:16px;line-height:1.8}.mss-hero__description p{margin:0 0 12px}.mss-hero__description p:last-child{margin-bottom:0}
.mss-hero__button{display:inline-flex;align-items:center;gap:12px;margin-top:28px;font-weight:700;transition:transform .25s ease,background .25s ease,color .25s ease,box-shadow .25s ease;box-shadow:0 14px 30px rgba(10,54,31,.14)}
.mss-hero__button:hover{transform:translateY(-2px);box-shadow:0 18px 34px rgba(10,54,31,.2)}

/* Greeting */
.mss-greeting{overflow:visible;background:transparent;padding-top:0!important;z-index:5}
.mss-greeting__card{position:relative;overflow:hidden;border:1px solid rgba(32,66,46,.08)}
.mss-greeting__grid{display:grid;grid-template-columns:minmax(180px,.82fr) minmax(280px,1.35fr) minmax(280px,1.05fr);align-items:center}
.mss-greeting__illustration{text-align:center}.mss-greeting__illustration img{display:inline-block;object-fit:contain}
.mss-greeting__label{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-weight:700;letter-spacing:.06em}.mss-greeting__label span{color:#77a62e}
.mss-greeting__title{margin:0;font-size:clamp(26px,3vw,42px);line-height:1.22;font-weight:750}
.mss-greeting__accent{width:72px;height:2px;margin:18px 0 22px}
.mss-greeting__text{font-size:15px;line-height:1.85}.mss-greeting__text p{margin:0 0 12px}.mss-greeting__text p:last-child{margin-bottom:0}
.mss-greeting__visual{position:relative;overflow:hidden;background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:34px}
.mss-greeting__visual:after{content:"";position:absolute;inset:0;z-index:0;background:rgba(4,63,24,.58)}
.mss-greeting__visual-content{position:relative;z-index:1;width:100%}
.mss-greeting__visual-title{margin:0 0 4px;font-size:34px;line-height:1.1}.mss-greeting__visual-subtitle{font-size:16px;letter-spacing:.07em;margin-bottom:22px}
.mss-outline-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-width:170px;padding:13px 20px;border:1px solid rgba(255,255,255,.5);border-radius:999px;color:#fff!important;font-weight:700;transition:background .25s ease,transform .25s ease}.mss-outline-button:hover{background:rgba(255,255,255,.14);transform:translateY(-2px)}

/* Landscape */
.mss-landscape__grid{display:flex;align-items:stretch}.mss-landscape__copy{flex:0 0 38%;min-width:0;padding-top:10px}.mss-landscape__cards{flex:1;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.mss-landscape__label{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-weight:700;letter-spacing:.05em}.mss-landscape__leaf{font-size:22px}
.mss-landscape__title{margin:0;font-size:clamp(27px,3vw,43px);line-height:1.23;font-weight:750}.mss-landscape__accent{width:72px;height:2px;margin:18px 0 24px}
.mss-landscape__text{font-size:15px;line-height:1.9}.mss-landscape__text p{margin:0 0 16px}.mss-landscape__text p:last-child{margin-bottom:0}
.mss-feature-card{position:relative;overflow:hidden;background-size:cover;background-position:center;display:flex;align-items:flex-end;transition:transform .35s ease,box-shadow .35s ease}
.mss-feature-card:hover{transform:translateY(-6px)}.mss-feature-card__shade{position:absolute;inset:0;z-index:0}.mss-feature-card__content{position:relative;z-index:1;width:100%;padding:34px}
.mss-feature-card__icon{display:block;font-size:56px;margin-bottom:20px}.mss-feature-card__title{margin:0 0 6px;font-size:34px;line-height:1.1}.mss-feature-card__subtitle{font-size:16px;letter-spacing:.06em;margin-bottom:24px}
.mss-feature-card__button{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;padding:14px 20px;border:1px solid;border-radius:999px;font-weight:700;transition:background .25s ease,transform .25s ease}.mss-feature-card__button:hover{transform:translateY(-1px)}

/* News */
.mss-news__bar{display:grid;grid-template-columns:auto auto minmax(160px,1fr) auto;align-items:center;gap:24px}
.mss-news__brand{display:flex;align-items:center;gap:11px;font-weight:800;white-space:nowrap}.mss-news__icon{font-size:26px}.mss-news__date{padding-left:24px;border-left:1px solid rgba(16,37,28,.12);font-weight:650;white-space:nowrap}.mss-news__text{min-width:0}.mss-news__more{display:flex;align-items:center;gap:12px;font-weight:750;white-space:nowrap;transition:transform .2s ease}.mss-news__more:hover{transform:translateX(3px)}

/* Recruitment */
.mss-recruitment__card{position:relative}.mss-recruitment__label{font-weight:700;letter-spacing:.06em;margin-bottom:8px}.mss-recruitment__title{margin:0 0 28px;font-size:clamp(27px,3vw,42px);line-height:1.22}.mss-recruitment__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center}.mss-recruitment__illustration{display:block;width:100%;max-height:190px;object-fit:contain;object-position:left center;margin-bottom:22px}
.mss-recruitment__cta{position:relative;overflow:hidden;background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:30px}.mss-recruitment__cta:after{content:"";position:absolute;inset:0;z-index:0}.mss-recruitment__cta-content{position:relative;z-index:1}.mss-recruitment__cta-title{font-size:34px;line-height:1.05;font-weight:800}.mss-recruitment__cta-subtitle{margin-top:5px;font-size:16px;letter-spacing:.05em}.mss-recruitment__cta-button{display:inline-flex;align-items:center;gap:18px;margin-top:22px;padding:11px 18px;border:1px solid;border-radius:999px;font-weight:700;transition:background .25s ease,transform .25s ease}.mss-recruitment__cta-button:hover{background:rgba(255,255,255,.12);transform:translateY(-2px)}
.mss-recruitment__text{font-size:15px;line-height:1.9}.mss-recruitment__text p{margin:0 0 14px}.mss-recruitment__text p:last-child{margin-bottom:0}

/* Blog */
.mss-blog__heading{display:flex;align-items:center;gap:10px;margin-bottom:18px;font-weight:750;letter-spacing:.05em}.mss-blog__heading-icon{font-size:22px}.mss-blog__grid{display:grid}.mss-blog-card{position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:22px;background:#edf1ec;isolation:isolate;transition:transform .3s ease,box-shadow .3s ease}.mss-blog-card__media{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;transition:transform .55s cubic-bezier(.2,.7,.2,1)}.mss-blog-card:after{content:"";position:absolute;inset:0;z-index:-1;transition:background .3s ease}.mss-blog-card:hover{transform:translateY(-5px)}.mss-blog-card:hover .mss-blog-card__media{transform:scale(1.06)}.mss-blog-card__title{font-size:20px;line-height:1.2;font-weight:800;text-shadow:0 2px 12px rgba(0,0,0,.18)}.mss-blog-card__arrow{margin-left:auto;color:#fff;font-size:26px;line-height:1}

/* Map */
.mss-map__frame{position:relative;overflow:hidden;background:#e9efea}.mss-map__frame iframe,.mss-map__image-link,.mss-map__image{display:block;width:100%;height:100%;border:0}.mss-map__image{object-fit:cover;transition:transform .5s ease}.mss-map__image-link:hover .mss-map__image{transform:scale(1.015)}

/* Bottom contact strip */
.mss-contact-strip{overflow:hidden}.mss-contact-strip__inner{display:flex;align-items:center;justify-content:center}.mss-contact-strip__leaf{align-self:stretch;width:190px;max-height:150px;object-fit:cover;object-position:center}.mss-contact-strip__titlebox{min-width:230px}.mss-contact-strip__small{font-size:13px;margin-bottom:3px}.mss-contact-strip__title{font-size:28px;font-weight:500;line-height:1.1}.mss-contact-strip__divider{width:1px;height:62px;background:rgba(255,255,255,.22)}.mss-contact-strip__phone,.mss-contact-strip__email{display:flex;align-items:center;gap:16px;white-space:nowrap;transition:transform .2s ease,color .2s ease}.mss-contact-strip__phone:hover,.mss-contact-strip__email:hover{transform:translateY(-2px)}.mss-contact-strip__phone{font-size:31px;font-weight:600}.mss-contact-strip__email{font-size:20px;font-weight:500}.mss-contact-strip__phone-icon,.mss-contact-strip__email-icon{font-size:36px;display:inline-flex}

/* Floating contact rail */
.mss-floating-contact{position:fixed;z-index:9998;display:flex;flex-direction:column;overflow:hidden;background:#fff;transform:translateY(-50%) translateX(18px);opacity:0;pointer-events:none;transition:opacity .35s ease,transform .45s cubic-bezier(.2,.75,.25,1)}
.mss-floating-contact.is-left{transform:translateY(-50%) translateX(-18px)}
.mss-floating-contact.is-visible{opacity:1;pointer-events:auto;transform:translateY(-50%) translateX(0)}
.mss-floating-contact__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:92px;min-height:88px;padding:12px 10px;border-bottom:1px solid rgba(17,54,37,.10);font-size:12px;font-weight:700;text-align:center;transition:background .25s ease,color .25s ease}.mss-floating-contact__item:last-child{border-bottom:0}.mss-floating-contact__icon{display:inline-flex;font-size:24px;transition:color .25s ease}
.mss-floating-contact.mss-hide-desktop{display:none}

/* Focus */
.mss-section a:focus-visible,.mss-floating-contact a:focus-visible{outline:2px solid #5d922d;outline-offset:3px}

@media(max-width:1024px){
 .mss-greeting__grid{grid-template-columns:minmax(150px,.7fr) minmax(260px,1.3fr)}.mss-greeting__visual{grid-column:1/-1;margin-top:28px}
 .mss-landscape__grid{flex-direction:column}.mss-landscape__copy{flex-basis:100%!important}.mss-landscape__cards{width:100%}
 .mss-news__bar{grid-template-columns:auto 1fr auto}.mss-news__date{grid-column:2}.mss-news__text{grid-column:1/3;padding-top:4px}.mss-news__more{grid-column:3;grid-row:1/3}
 .mss-recruitment__grid{grid-template-columns:1fr;}.mss-recruitment__text{margin-top:30px}
 .mss-contact-strip__inner{flex-wrap:wrap;justify-content:flex-start}.mss-contact-strip__leaf{width:140px}.mss-contact-strip__titlebox{min-width:180px}.mss-contact-strip__phone{font-size:25px}.mss-contact-strip__email{font-size:18px}
 .mss-floating-contact.mss-hide-desktop{display:flex}.mss-floating-contact.mss-hide-tablet{display:none}
}

@media(max-width:767px){
 .mss-hero__wash{background:linear-gradient(180deg,rgba(255,255,255,.88) 0%,rgba(255,255,255,.76) 58%,rgba(255,255,255,.32) 100%)}
 .mss-hero__content{max-width:100%!important}.mss-hero__title{font-size:clamp(38px,11vw,58px)}
 .mss-greeting__grid{grid-template-columns:1fr}.mss-greeting__illustration{order:1}.mss-greeting__content{order:2}.mss-greeting__visual{order:3;grid-column:auto;margin-top:24px}.mss-greeting__visual{padding:26px}
 .mss-landscape__cards{grid-template-columns:1fr}.mss-feature-card__content{padding:28px}.mss-feature-card__title{font-size:30px}
 .mss-news__bar{grid-template-columns:1fr;gap:12px}.mss-news__date,.mss-news__text,.mss-news__more{grid-column:auto;grid-row:auto}.mss-news__date{padding:0;border-left:0}.mss-news__more{justify-content:space-between}
 .mss-recruitment__cta{padding:24px}.mss-recruitment__cta-title{font-size:30px}
 .mss-blog__grid{grid-template-columns:1fr!important}
 .mss-contact-strip__inner{display:grid;grid-template-columns:1fr;gap:18px!important}.mss-contact-strip__leaf{display:none}.mss-contact-strip__divider{display:none}.mss-contact-strip__phone,.mss-contact-strip__email{white-space:normal;font-size:20px}.mss-contact-strip__phone-icon,.mss-contact-strip__email-icon{font-size:28px}
 .mss-floating-contact.mss-hide-tablet{display:flex}.mss-floating-contact.mss-hide-mobile{display:none}
}

/* v1.0.1 refinements ---------------------------------------------------- */
/* Hero slider: keeps the primary design, but supports unlimited extra slides. */
.mss-hero__slides{position:absolute;inset:0;z-index:2}
.mss-hero__slide{position:absolute;inset:0;display:flex;align-items:stretch;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--mss-hero-speed,850ms) ease,visibility var(--mss-hero-speed,850ms) ease}
.mss-hero__slide.is-active{opacity:1;visibility:visible;pointer-events:auto}
.mss-hero__slide .mss-hero__media{transition:transform 6s cubic-bezier(.2,.65,.25,1),opacity .35s ease}
.mss-hero__slide.is-active .mss-hero__media{transform:scale(1.025)}
.mss-hero__divider-image{display:block;margin:22px 0 24px;max-width:100%}
.mss-hero__divider-image img{display:block;width:auto;max-width:100%;height:auto;object-fit:contain;object-position:left center}
.mss-hero__dots{position:absolute;z-index:7;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:999px;background:rgba(255,255,255,.52);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 8px 24px rgba(12,48,31,.08)}
.mss-hero__dot{appearance:none;border:0!important;outline:0!important;width:8px;height:8px;padding:0!important;margin:0!important;border-radius:999px;cursor:pointer;transition:width .25s ease,background .25s ease,transform .25s ease}
.mss-hero__dot.is-active{width:26px}
.mss-hero__dot:focus-visible{outline:2px solid #2f8a27!important;outline-offset:3px!important}

/* More premium depth while retaining Elementor shadow controls as overrides. */
.mss-greeting__card{box-shadow:0 24px 65px rgba(18,52,35,.10),0 5px 18px rgba(18,52,35,.05)}
.mss-feature-card{box-shadow:0 18px 44px rgba(18,52,35,.12)}
.mss-feature-card:hover{box-shadow:0 26px 58px rgba(18,52,35,.17)}
.mss-news__bar{box-shadow:0 12px 34px rgba(18,52,35,.07);border:1px solid rgba(18,52,35,.06)}
.mss-recruitment__card{box-shadow:0 22px 58px rgba(18,52,35,.08);border:1px solid rgba(18,52,35,.06)}
.mss-blog-card{box-shadow:0 15px 38px rgba(18,52,35,.11)}
.mss-blog-card:hover{box-shadow:0 24px 52px rgba(18,52,35,.17)}
.mss-map__frame{box-shadow:0 18px 48px rgba(18,52,35,.10)}
.mss-map__frame.is-static iframe{pointer-events:none}

/* Floating rail redesigned for white backgrounds and modern depth. */
.mss-floating-contact{border:1px solid rgba(23,74,52,.10);box-shadow:0 22px 60px rgba(12,48,31,.16),0 5px 18px rgba(12,48,31,.07);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.mss-floating-contact__item{position:relative;gap:9px;min-height:100px;padding:14px 12px;border-bottom:1px solid rgba(23,74,52,.12);overflow:hidden}
.mss-floating-contact__item:before{content:"";position:absolute;top:12px;bottom:12px;width:3px;border-radius:999px;opacity:0;transform:scaleY(.5);transition:opacity .25s ease,transform .25s ease}
.mss-floating-contact.is-right .mss-floating-contact__item:before{right:0}
.mss-floating-contact.is-left .mss-floating-contact__item:before{left:0}
.mss-floating-contact__item:hover:before{opacity:1;transform:scaleY(1)}
.mss-floating-contact__icon{width:42px;height:42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-size:19px;box-shadow:inset 0 0 0 1px rgba(23,74,52,.06);transition:color .25s ease,background .25s ease,transform .25s ease}
.mss-floating-contact__item:hover .mss-floating-contact__icon{transform:translateY(-2px) scale(1.03)}
.mss-floating-contact__text{display:block;line-height:1.25}

@media(max-width:767px){
 .mss-hero__dots{bottom:14px}
 .mss-hero__divider-image img{max-height:44px}
}

/* v1.0.2 clean section separation + dynamic news + modern cards ---------------- */
.mss-greeting>.mss-section__bg,.mss-landscape>.mss-section__bg,.mss-news>.mss-section__bg,.mss-recruitment>.mss-section__bg,.mss-blog>.mss-section__bg,.mss-map>.mss-section__bg{transition:background-color .3s ease,background .3s ease}
.mss-greeting,.mss-landscape,.mss-news,.mss-recruitment,.mss-blog{border-top:1px solid rgba(16,55,37,.035)}

/* Greeting card: cleaner white surface that reads separately on colored sections. */
.mss-greeting__card{background:rgba(255,255,255,.96);border:1px solid rgba(19,70,46,.08);box-shadow:0 30px 80px rgba(17,56,38,.10),0 8px 24px rgba(17,56,38,.05);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.mss-greeting__visual{box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}

/* Feature cards: premium edge, deeper overlay, gentle sheen. */
.mss-feature-card{border:1px solid rgba(255,255,255,.22);box-shadow:0 20px 46px rgba(14,56,35,.14);transform:translateZ(0)}
.mss-feature-card:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.15),rgba(255,255,255,0) 34%,rgba(255,255,255,0) 70%,rgba(255,255,255,.06));opacity:.55;pointer-events:none;transition:opacity .35s ease}
.mss-feature-card:hover{transform:translateY(-7px);box-shadow:0 30px 70px rgba(14,56,35,.20)}
.mss-feature-card:hover:before{opacity:.85}
.mss-feature-card__button{background:rgba(5,44,23,.08);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.mss-feature-card__button:hover{background:rgba(255,255,255,.12)}

/* Dynamic news bar. */
.mss-news__bar{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;overflow:hidden;border:1px solid rgba(25,74,48,.08);box-shadow:0 14px 38px rgba(22,67,43,.075),0 3px 10px rgba(22,67,43,.035)}
.mss-news__bar:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 99px 99px 0;opacity:.85}
.mss-news__brand{padding-left:6px}
.mss-news__viewport{display:grid;min-width:0}
.mss-news__item{grid-area:1/1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;min-width:0;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity var(--mss-news-speed,420ms) ease,transform var(--mss-news-speed,420ms) cubic-bezier(.2,.75,.25,1),visibility var(--mss-news-speed,420ms) ease}
.mss-news__item.is-active{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.mss-news__date{padding-left:22px;border-left:1px solid rgba(16,37,28,.11);font-weight:650;white-space:nowrap}
.mss-news__text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mss-news__more{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;font-weight:750;transition:transform .2s ease,opacity .2s ease}
.mss-news__more:hover{transform:translateX(3px)}
.mss-news__counter{display:flex;align-items:center;gap:6px;min-width:48px;justify-content:flex-end;font-size:10px;font-weight:800;letter-spacing:.08em;color:rgba(21,64,43,.55)}
.mss-news__counter b{font-size:12px;color:rgba(21,64,43,.88)}
.mss-news__counter i{display:block;width:12px;height:1px;background:currentColor;opacity:.35}
.mss-news__progress{position:absolute;left:0;bottom:0;height:2px;width:0;opacity:.72}
.mss-news__bar.is-running .mss-news__progress{animation:mssNewsProgress var(--mss-news-delay,4800ms) linear infinite}
.mss-news__bar.is-paused .mss-news__progress{animation-play-state:paused}
@keyframes mssNewsProgress{from{width:0}to{width:100%}}

/* Recruitment: floating-card treatment instead of a plain white block. */
.mss-recruitment__card{background:rgba(255,255,255,.96);border:1px solid rgba(23,71,47,.075);box-shadow:0 24px 62px rgba(24,65,43,.085),0 5px 16px rgba(24,65,43,.035)}
.mss-recruitment__cta{border:1px solid rgba(255,255,255,.22);box-shadow:0 18px 42px rgba(17,65,35,.15);transition:transform .35s ease,box-shadow .35s ease}
.mss-recruitment__cta:hover{transform:translateY(-5px);box-shadow:0 28px 58px rgba(17,65,35,.21)}

/* Blog cards: cleaner, richer cards for real WP posts. */
.mss-blog-card{border:1px solid rgba(20,69,45,.08);box-shadow:0 16px 42px rgba(18,61,39,.11);background:#eaf1ea}
.mss-blog-card:before{content:"";position:absolute;left:14px;right:14px;bottom:12px;height:54px;z-index:0;border-radius:15px;background:linear-gradient(90deg,rgba(4,40,20,.60),rgba(4,40,20,.30));backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);opacity:.82;transition:opacity .3s ease,transform .3s ease}
.mss-blog-card__title,.mss-blog-card__arrow{position:relative;z-index:1}
.mss-blog-card__title{padding-left:8px}
.mss-blog-card__arrow{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin-left:auto;border-radius:50%;background:rgba(255,255,255,.16);font-size:22px;transition:transform .3s ease,background .3s ease}
.mss-blog-card:hover{transform:translateY(-7px);box-shadow:0 28px 62px rgba(18,61,39,.18)}
.mss-blog-card:hover:before{opacity:1;transform:translateY(-1px)}
.mss-blog-card:hover .mss-blog-card__arrow{transform:translateX(2px);background:rgba(255,255,255,.24)}

/* Map is visually separated from the card sections while remaining full width. */
.mss-map__frame{border-top:1px solid rgba(16,55,37,.08);border-bottom:1px solid rgba(16,55,37,.08)}

/* Floating rail: compact individual cards on a soft glass plate. */
.mss-floating-contact{overflow:visible!important;border:1px solid rgba(23,74,52,.10);box-shadow:0 20px 58px rgba(13,48,31,.14),0 4px 14px rgba(13,48,31,.06);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.mss-floating-contact__item{position:relative;min-height:84px;padding:11px 9px!important;border:1px solid rgba(24,73,49,.09)!important;background:#fff;box-shadow:0 6px 16px rgba(20,61,40,.045);overflow:hidden;transition:background .25s ease,color .25s ease,transform .25s ease,box-shadow .25s ease!important}
.mss-floating-contact__item:last-child{border-bottom:1px solid rgba(24,73,49,.09)!important}
.mss-floating-contact__item:before{display:none!important}
.mss-floating-contact__item:hover{transform:translateX(-4px);box-shadow:0 12px 26px rgba(20,61,40,.12)}
.mss-floating-contact.is-left .mss-floating-contact__item:hover{transform:translateX(4px)}
.mss-floating-contact__icon{width:38px;height:38px;border-radius:12px;font-size:17px;box-shadow:inset 0 0 0 1px rgba(23,74,52,.055)}
.mss-floating-contact__text{font-size:11px;line-height:1.22;letter-spacing:.01em}

@media(max-width:1024px){
 .mss-news__bar{grid-template-columns:1fr auto;gap:12px 18px}
 .mss-news__brand{grid-column:1/2}.mss-news__counter{grid-column:2/3;grid-row:1}
 .mss-news__viewport{grid-column:1/-1}
 .mss-news__item{grid-template-columns:auto minmax(0,1fr) auto}
}
@media(max-width:767px){
 .mss-news__bar{display:grid;grid-template-columns:1fr auto;gap:12px}
 .mss-news__viewport{grid-column:1/-1}
 .mss-news__item{grid-template-columns:1fr;gap:7px}
 .mss-news__date{padding-left:0;border-left:0;font-size:12px}
 .mss-news__text{white-space:normal;line-height:1.5}
 .mss-news__more{justify-content:space-between;margin-top:3px}
 .mss-blog-card:before{left:10px;right:10px;bottom:10px}
}

/* v1.0.3 precision spacing + hero overlap + compact floating rail ----------- */
/* Pull the entire Elementor Greeting widget into the Hero. Moving the wrapper,
   rather than only the inner section, keeps the overlap reliable even when
   Elementor containers/wrappers calculate their own height. */
.elementor-widget-mss_home_greeting{
  --mss-greeting-overlap:-86px;
  position:relative;
  z-index:8;
  margin-top:var(--mss-greeting-overlap)!important;
}
.elementor-widget-mss_home_greeting .mss-greeting{margin-top:0!important;overflow:visible!important}
.elementor-widget-mss_home_greeting .mss-greeting__card{position:relative;z-index:2}

/* Shared visual rhythm for the normal homepage content sections. Elementor
   controls still override these defaults when the user customizes a section. */
.mss-landscape,.mss-news,.mss-recruitment,.mss-blog{--mss-rhythm-y:56px;--mss-rhythm-x:24px}

/* Compact reference-like floating rail. */
.mss-floating-contact{
  width:auto;
  max-width:88px;
  background:rgba(255,255,255,.94);
  border-radius:16px;
  padding:4px;
  gap:4px;
  box-shadow:0 14px 38px rgba(15,49,33,.13),0 3px 10px rgba(15,49,33,.05);
}
.mss-floating-contact__item{
  min-width:var(--mss-rail-item-width,80px);
  width:var(--mss-rail-item-width,80px);
  min-height:70px!important;
  padding:8px 6px!important;
  gap:5px!important;
  border-radius:12px;
  border:1px solid rgba(22,65,44,.085)!important;
  box-shadow:none!important;
}
.mss-floating-contact__item:hover{transform:translateX(-2px);box-shadow:0 8px 18px rgba(18,58,38,.10)!important}
.mss-floating-contact.is-left .mss-floating-contact__item:hover{transform:translateX(2px)}
.mss-floating-contact__icon{
  width:var(--mss-rail-icon-badge,30px);
  height:var(--mss-rail-icon-badge,30px);
  min-width:var(--mss-rail-icon-badge,30px);
  border-radius:9px!important;
  font-size:var(--mss-rail-icon-size,19px);
  line-height:1;
  box-shadow:inset 0 0 0 1px rgba(22,65,44,.05)!important;
}
.mss-floating-contact__icon svg{display:block;width:var(--mss-rail-icon-size,19px)!important;height:var(--mss-rail-icon-size,19px)!important;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mss-floating-contact__icon i{font-size:var(--mss-rail-icon-size,19px)!important;line-height:1!important}
.mss-floating-contact__text{font-size:10px!important;line-height:1.15!important;font-weight:750;text-align:center;white-space:normal}

@media(max-width:1024px){
  .elementor-widget-mss_home_greeting{--mss-greeting-overlap:-54px}
  .mss-landscape,.mss-news,.mss-recruitment,.mss-blog{--mss-rhythm-y:48px;--mss-rhythm-x:22px}
  .mss-floating-contact{max-width:82px}
  .mss-floating-contact{--mss-rail-item-width:74px;--mss-rail-icon-badge:30px;--mss-rail-icon-size:18px}
  .mss-floating-contact__item{min-height:66px!important}
}
@media(max-width:767px){
  .elementor-widget-mss_home_greeting{--mss-greeting-overlap:-22px}
  .mss-landscape,.mss-news,.mss-recruitment,.mss-blog{--mss-rhythm-y:38px;--mss-rhythm-x:18px}
  .mss-floating-contact{max-width:78px}
  .mss-floating-contact{--mss-rail-item-width:70px;--mss-rail-icon-badge:28px;--mss-rail-icon-size:17px}
  .mss-floating-contact__item{min-height:62px!important;padding:7px 5px!important}
}

/* v1.0.4 final homepage polish: true hero overlap + product-style blog cards */
/* Keep the Greeting section in normal document flow so its own background starts
   below the Hero. Only the white card rises into the Hero, matching the reference. */
.elementor-widget-mss_home_greeting{
  --mss-greeting-overlap:-120px;
  position:relative;
  z-index:8;
  margin-top:0!important;
  overflow:visible!important;
}
.elementor-widget-mss_home_greeting .mss-greeting{
  margin-top:0!important;
  overflow:visible!important;
  position:relative;
}
.elementor-widget-mss_home_greeting .mss-greeting__card{
  position:relative;
  z-index:5;
  margin-top:var(--mss-greeting-overlap)!important;
}

/* Product-style blog cards: image first, then title and short description. */
.mss-blog__grid{align-items:stretch}
.mss-blog-card{
  position:relative;
  display:flex!important;
  flex-direction:column;
  align-items:stretch!important;
  justify-content:flex-start;
  padding:0!important;
  min-height:0!important;
  overflow:hidden;
  text-decoration:none!important;
  color:inherit;
  background:#fff;
  border:1px solid rgba(24,66,45,.10);
  isolation:isolate;
  box-shadow:0 16px 42px rgba(18,61,39,.10);
  transition:transform .32s cubic-bezier(.2,.7,.2,1),box-shadow .32s ease,border-color .32s ease;
}
.mss-blog-card:before,.mss-blog-card:after{display:none!important;content:none!important}
.mss-blog-card__media{
  position:relative!important;
  inset:auto!important;
  z-index:1!important;
  display:block;
  flex:0 0 auto;
  width:100%;
  height:220px;
  background-size:cover;
  background-position:center;
  overflow:hidden;
  transform:none!important;
}
.mss-blog-card__media:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(3,35,19,0) 48%,rgba(3,35,19,.14) 100%);
  z-index:1;
  transition:opacity .3s ease;
}
.mss-blog-card__media:after{
  content:""!important;
  display:block!important;
  position:absolute;
  inset:0;
  z-index:2;
  opacity:0;
  background:rgba(17,85,45,.12);
  transition:opacity .3s ease;
}
.mss-blog-card__image-arrow{
  position:absolute;
  top:14px;
  right:14px;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:rgba(255,255,255,.92);
  color:#17462d;
  box-shadow:0 8px 22px rgba(7,42,23,.14);
  font-size:18px;
  line-height:1;
  transform:translateY(-3px);
  opacity:0;
  transition:opacity .28s ease,transform .28s ease,background .28s ease,color .28s ease;
}
.mss-blog-card__body{
  position:relative;
  z-index:3;
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  padding:22px;
  background:inherit;
}
.mss-blog-card__title{
  display:block;
  padding:0!important;
  margin:0 0 10px;
  color:#143425;
  font-size:20px;
  line-height:1.28;
  font-weight:800;
  text-shadow:none!important;
  transition:color .28s ease;
}
.mss-blog-card__description{
  display:block;
  margin:0;
  color:#66736c;
  font-size:14px;
  line-height:1.72;
}
.mss-blog-card__arrow{display:none!important}
.mss-blog-card:hover{
  transform:translateY(-8px)!important;
  border-color:rgba(47,133,43,.22);
  box-shadow:0 28px 64px rgba(18,61,39,.16)!important;
}
.mss-blog-card:hover .mss-blog-card__media{transform:none!important}
.mss-blog-card:hover .mss-blog-card__media:after{opacity:1}
.mss-blog-card:hover .mss-blog-card__image-arrow{opacity:1;transform:translateY(0)}
.mss-blog-card:hover .mss-blog-card__title{color:#2f852b}

@media(max-width:1024px){
  .elementor-widget-mss_home_greeting{--mss-greeting-overlap:-72px}
}
@media(max-width:767px){
  .elementor-widget-mss_home_greeting{--mss-greeting-overlap:-28px}
  .mss-blog-card__image-arrow{opacity:1;transform:none;width:34px;height:34px}
}

/* === v1.2.0 Kurokawa equipment slider === */
.mss-equipment{position:relative;overflow:hidden}
.mss-equipment__head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:30px}
.mss-equipment__head>div:first-child{max-width:760px}
.mss-equipment__eyebrow{font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;margin-bottom:9px}
.mss-equipment__title{margin:0;font-size:clamp(30px,3vw,46px);line-height:1.15;letter-spacing:-.025em}
.mss-equipment__description{margin:12px 0 0;max-width:720px;font-size:15px;line-height:1.75}
.mss-equipment__ornament{display:flex;align-items:center;gap:8px;width:min(290px,70%);margin-top:13px;font-size:10px}
.mss-equipment__ornament span{height:1px;flex:1;background:currentColor;opacity:.75}.mss-equipment__ornament i{font-size:16px;font-style:normal;line-height:1}.mss-equipment__ornament b{font-size:7px;font-weight:400}
.mss-equipment__arrows{display:flex;gap:10px;flex:0 0 auto}
.mss-equipment__arrow{appearance:none;width:44px;height:44px;border:1px solid;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:26px;line-height:1;cursor:pointer;transition:transform .25s ease,background .25s ease,color .25s ease,box-shadow .25s ease}
.mss-equipment__arrow:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(21,69,46,.14)}
.mss-equipment__viewport{overflow:hidden;padding:3px 2px 18px}
.mss-equipment__track{display:flex;gap:24px;will-change:transform;transition:transform .55s cubic-bezier(.22,.72,.25,1)}
.mss-equipment-card{position:relative;flex:0 0 calc((100% - (var(--mss-equipment-visible,3) - 1)*24px)/var(--mss-equipment-visible,3));min-width:0;overflow:hidden;text-decoration:none!important;color:inherit!important;border:1px solid rgba(25,70,45,.10);box-shadow:0 18px 45px rgba(23,61,43,.08);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.mss-equipment-card:before{content:"";position:absolute;z-index:4;left:0;top:0;bottom:0;width:3px;transform:scaleY(0);transform-origin:bottom;transition:transform .3s ease}
.mss-equipment-card:hover{transform:translateY(-7px);box-shadow:0 26px 60px rgba(23,61,43,.14)}.mss-equipment-card:hover:before{transform:scaleY(1)}
.mss-equipment-card__media{position:relative;background-size:cover;background-position:center;overflow:hidden}
.mss-equipment-card__media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,37,20,.02),rgba(3,37,20,.18));transition:opacity .3s ease}.mss-equipment-card:hover .mss-equipment-card__media:after{opacity:.65}
.mss-equipment-card__index{position:absolute;z-index:2;top:14px;left:14px;display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:30px;padding:0 10px;border-radius:999px;background:rgba(255,255,255,.92);color:#245D31;font-size:12px;font-weight:800;box-shadow:0 8px 20px rgba(0,0,0,.08)}
.mss-equipment-card__category{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}
.mss-equipment-card__name{margin:0 0 10px;font-size:22px;line-height:1.25}.mss-equipment-card__text{font-size:14px;line-height:1.65}
.mss-equipment__dots{display:flex;justify-content:center;gap:7px;margin-top:4px}.mss-equipment__dot{appearance:none;border:0;width:7px;height:7px;border-radius:50%;opacity:.22;cursor:pointer;padding:0;transition:width .25s ease,opacity .25s ease,border-radius .25s ease}.mss-equipment__dot.is-active{width:24px;border-radius:999px;opacity:1}
@media(max-width:767px){.mss-equipment__head{align-items:flex-start}.mss-equipment__arrows{display:none}.mss-equipment__track{gap:16px}.mss-equipment-card{flex-basis:calc((100% - (var(--mss-equipment-visible,1) - 1)*16px)/var(--mss-equipment-visible,1))}.mss-equipment__description{font-size:14px}}

/* v1.3.1 viewport hero + strict no-overlap flow ----------------------------- */
/* The homepage hero is intentionally a complete viewport stage. Elementor's
   previously-saved px values are overridden so upgraded pages immediately use
   the requested 100vh height without requiring a manual reset. */
.elementor-widget-mss_home_hero,
.elementor-widget-mss_home_hero > .elementor-widget-container{
  position:relative;
  z-index:1;
}
.elementor-widget-mss_home_hero .mss-hero{
  max-height:none;
  overflow:hidden;
}
.elementor-widget-mss_home_hero .mss-hero__slides,
.elementor-widget-mss_home_hero .mss-hero__slide{
  height:100%;
  min-height:100%;
}

/* Never allow the Greeting (or its card) to rise over the Hero. Older builds
   stored negative overlap depths in Elementor data, so both legacy wrapper and
   card offsets are neutralized here. A positive responsive gap remains editable. */
.elementor-widget-mss_home_greeting{
  --mss-greeting-overlap:0px!important;
  position:relative!important;
  z-index:1!important;
  margin-top:0!important;
  overflow:visible!important;
}
.elementor-widget-mss_home_greeting .mss-greeting{
  margin-top:0!important;
  overflow:visible!important;
}
.elementor-widget-mss_home_greeting .mss-greeting__card{
  margin-top:max(0px,var(--mss-greeting-gap,36px))!important;
  transform:none!important;
}

@media(max-width:1024px){
  .elementor-widget-mss_home_greeting .mss-greeting__card{margin-top:max(0px,var(--mss-greeting-gap,30px))!important}
}
@media(max-width:767px){
  .elementor-widget-mss_home_greeting .mss-greeting__card{margin-top:max(0px,var(--mss-greeting-gap,22px))!important}
}

/* ========================================================================
   v1.4.0 FULL HOMEPAGE PREMIUM REDESIGN
   - strict 100vh hero
   - no section overlaps
   - stronger image-first hierarchy
   - consistent spacing / alternating section surfaces
   - premium cards, shadows and responsive composition
   ======================================================================== */
:root{
  --mss140-deep:#073824;
  --mss140-deeper:#042a1a;
  --mss140-green:#1f7a3f;
  --mss140-lime:#8fcf3f;
  --mss140-sage:#eef6ed;
  --mss140-soft:#f7faf7;
  --mss140-warm:#faf8f2;
  --mss140-ink:#123326;
  --mss140-muted:#627269;
  --mss140-shadow:0 24px 70px rgba(15,61,38,.10),0 6px 20px rgba(15,61,38,.05);
}

/* Global rhythm */
.mss-greeting,.mss-landscape,.mss-equipment,.mss-news,.mss-recruitment,.mss-blog,.mss-map{position:relative}
.mss-landscape>.mss-section__inner,
.mss-equipment>.mss-section__inner,
.mss-news>.mss-section__inner,
.mss-recruitment>.mss-section__inner,
.mss-blog>.mss-section__inner{max-width:1360px}
.elementor-widget-mss_home_greeting,
.elementor-widget-mss_home_greeting .mss-greeting,
.elementor-widget-mss_home_greeting .mss-greeting__card{
  margin-top:0!important;
  transform:none!important;
  top:auto!important;
}
.elementor-widget-mss_home_greeting{position:relative;z-index:1;overflow:visible}
.elementor-widget-mss_home_greeting .mss-greeting{padding-top:clamp(34px,4vw,64px)}

/* HERO: cinematic but readable, never covered by next section */
.mss-hero{
  max-height:none;
  overflow:hidden;
  background:#082e20;
}
.mss-hero__slides,.mss-hero__slide{position:absolute;inset:0;width:100%;height:100%;min-height:100%}
.mss-hero__media{background-size:cover;filter:saturate(1.08) contrast(1.03);transform:scale(1.01)}
.mss-hero__slide.is-active .mss-hero__media{animation:mss140HeroZoom 8s ease-out both}
@keyframes mss140HeroZoom{from{transform:scale(1.055)}to{transform:scale(1.01)}}
.mss-hero__wash{
  background:
   radial-gradient(circle at 77% 45%,rgba(7,63,35,.03) 0,rgba(3,31,20,.16) 42%,rgba(2,28,17,.42) 100%),
   linear-gradient(90deg,rgba(3,34,21,.88) 0%,rgba(3,35,22,.78) 27%,rgba(3,36,22,.46) 48%,rgba(3,36,22,.10) 72%,rgba(3,36,22,.03) 100%);
}
.mss-hero__inner{height:100%;min-height:100%;align-items:center}
.mss-hero__content{
  max-width:760px;
  color:#fff;
  padding:clamp(32px,5vw,78px) clamp(20px,4vw,52px);
  border-left:1px solid rgba(170,220,108,.24);
  position:relative;
}
.mss-hero__content:before{
  content:"";position:absolute;left:-1px;top:18%;height:64px;width:3px;border-radius:99px;background:linear-gradient(180deg,var(--mss140-lime),rgba(143,207,63,.08));
}
.mss-hero__eyebrow{color:#b6e56c;font-size:12px;font-weight:800;letter-spacing:.15em;text-shadow:0 2px 18px rgba(0,0,0,.30)}
.mss-hero__title{color:#fff;font-size:clamp(46px,5.4vw,88px);line-height:1.00;letter-spacing:-.045em;font-weight:820;text-shadow:0 5px 28px rgba(0,0,0,.25)}
.mss-hero__description{color:#f4f8f5;max-width:620px;font-size:clamp(15px,1.15vw,18px);line-height:1.75;text-shadow:0 2px 14px rgba(0,0,0,.20)}
.mss-hero__divider{color:#a6dc4f;margin:24px 0 26px;max-width:300px}
.mss-hero__divider span{height:1px;opacity:.84}.mss-hero__divider i{font-size:9px}
.mss-hero__button{background:#1a673d;color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:15px 24px;box-shadow:0 18px 38px rgba(0,0,0,.22)}
.mss-hero__button:hover{background:#2c8f47;transform:translateY(-3px);box-shadow:0 22px 46px rgba(0,0,0,.28)}
.mss-hero__dots{bottom:28px;z-index:20;background:rgba(4,39,24,.34);padding:8px 12px;border-radius:999px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.mss-hero__dot{width:7px;height:7px;border:0;border-radius:99px;transition:width .25s ease,opacity .25s ease}.mss-hero__dot.is-active{width:28px}

/* Greeting / company intro: real-image editorial card, fully below hero */
.mss-greeting{background:linear-gradient(180deg,#f7faf7 0%,#ffffff 100%)}
.mss-greeting__card{
  border:1px solid rgba(25,79,50,.08);
  border-radius:28px;
  background:rgba(255,255,255,.98);
  box-shadow:var(--mss140-shadow);
  overflow:hidden;
}
.mss-greeting__grid{grid-template-columns:minmax(260px,.92fr) minmax(320px,1.10fr) minmax(300px,1fr);gap:30px;align-items:stretch}
.mss-greeting__illustration{min-height:390px;overflow:hidden;border-radius:22px;background:#e9f0e9}
.mss-greeting__illustration img{width:100%;height:100%;min-height:390px;display:block;object-fit:cover;transition:transform .6s cubic-bezier(.2,.72,.25,1)}
.mss-greeting__card:hover .mss-greeting__illustration img{transform:scale(1.035)}
.mss-greeting__content{padding:22px 6px;align-self:center}
.mss-greeting__label{color:#5b7164;font-size:11px;letter-spacing:.13em;text-transform:uppercase}
.mss-greeting__title{color:#155b34;font-size:clamp(28px,2.55vw,44px);letter-spacing:-.025em;line-height:1.15}
.mss-greeting__accent{width:62px;height:3px;border-radius:99px;background:#8dba39;margin:17px 0 20px}
.mss-greeting__text{color:#45584d;font-size:14px;line-height:1.8}
.mss-greeting__visual{min-height:390px;border-radius:22px;box-shadow:0 20px 45px rgba(8,52,30,.13);padding:28px;background-position:center;transition:transform .38s ease,box-shadow .38s ease}
.mss-greeting__visual:hover{transform:translateY(-5px);box-shadow:0 28px 58px rgba(8,52,30,.18)}
.mss-greeting__visual:after{background:linear-gradient(180deg,rgba(1,28,14,.04) 35%,rgba(2,52,24,.84) 100%)}
.mss-greeting__visual-title{font-size:30px}.mss-greeting__visual-subtitle{font-size:12px;opacity:.86;text-transform:uppercase}

/* Main service / business block */
.mss-landscape{background:#fff}
.mss-landscape__grid{gap:40px;align-items:center}
.mss-landscape__copy{flex-basis:31%;padding:22px 8px 22px 0}
.mss-landscape__label{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:#60806a}.mss-landscape__leaf{color:#76a936}
.mss-landscape__title{font-size:clamp(30px,3vw,48px);color:#165d35;line-height:1.12;letter-spacing:-.03em}
.mss-landscape__accent{height:3px;width:66px;border-radius:99px;margin:18px 0 23px}
.mss-landscape__text{font-size:14px;line-height:1.85;color:#526158}
.mss-landscape__cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.mss-feature-card{min-height:330px;border-radius:22px;border:1px solid rgba(21,71,45,.08);box-shadow:0 16px 40px rgba(14,58,36,.10);background-position:center}
.mss-feature-card__shade{background:linear-gradient(180deg,rgba(1,36,17,.04) 24%,rgba(3,54,26,.86) 100%)}
.mss-feature-card__content{padding:24px}.mss-feature-card__icon{font-size:34px;margin-bottom:12px}.mss-feature-card__title{font-size:26px}.mss-feature-card__subtitle{font-size:11px;letter-spacing:.11em;margin-bottom:16px}
.mss-feature-card__button{padding:11px 16px;font-size:13px;background:rgba(255,255,255,.08);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.mss-feature-card:hover{transform:translateY(-7px) scale(1.005);box-shadow:0 26px 58px rgba(11,53,31,.18)}

/* Equipment section becomes visual centerpiece */
.mss-equipment{background:linear-gradient(180deg,#eef6ed 0%,#f7faf6 100%)}
.mss-equipment:before{content:"";position:absolute;right:-120px;top:-130px;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle,rgba(128,179,67,.11),rgba(128,179,67,0) 68%);pointer-events:none}
.mss-equipment__head{margin-bottom:34px}.mss-equipment__eyebrow{color:#4f7a5b}.mss-equipment__title{color:#123e2a;font-size:clamp(32px,3.1vw,48px)}.mss-equipment__description{color:#5f7066}
.mss-equipment-card{background:#fff;border-radius:22px;box-shadow:0 16px 42px rgba(17,61,39,.09);border-color:rgba(23,72,48,.08)}
.mss-equipment-card__media{height:260px;background-position:center}.mss-equipment-card__media:after{background:linear-gradient(180deg,rgba(3,32,18,0) 42%,rgba(4,50,24,.35) 100%)}
.mss-equipment-card__index{background:#fff;color:#1b6138}.mss-equipment-card__category{color:#66934a}.mss-equipment-card__name{color:#133d2b;font-size:21px}.mss-equipment-card__text{color:#69776f}
.mss-equipment-card:hover{transform:translateY(-8px);box-shadow:0 30px 65px rgba(17,61,39,.15)}

/* News */
.mss-news{background:#fff}
.mss-news__bar{border-radius:18px;background:#fbfcfa;padding:18px 22px;border:1px solid rgba(20,74,46,.08);box-shadow:0 14px 34px rgba(18,63,39,.06)}
.mss-news__brand{color:#1a6338}.mss-news__date{color:#466153}.mss-news__text{color:#637268}.mss-news__more{color:#1f713d}

/* Recruitment: editorial image + content card */
.mss-recruitment{background:linear-gradient(180deg,#faf8f2 0%,#fff 100%)}
.mss-recruitment__card{border-radius:28px;padding:clamp(28px,4vw,54px);background:#fff;box-shadow:var(--mss140-shadow)}
.mss-recruitment__label{color:#68786d;font-size:11px;letter-spacing:.13em;text-transform:uppercase}.mss-recruitment__title{color:#176237;font-size:clamp(31px,3vw,48px);letter-spacing:-.025em;margin-bottom:34px}
.mss-recruitment__grid{gap:40px;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr)}
.mss-recruitment__illustration{height:150px;max-height:150px;object-fit:cover;border-radius:18px;margin-bottom:18px;width:100%}
.mss-recruitment__cta{min-height:310px;border-radius:22px;padding:28px;background-position:center;box-shadow:0 18px 42px rgba(17,65,35,.14)}
.mss-recruitment__cta:after{background:linear-gradient(180deg,rgba(1,32,16,.05) 20%,rgba(3,60,28,.82) 100%)}
.mss-recruitment__text{color:#56645c;font-size:14px;line-height:1.85}

/* Blog: premium product-card editorial grid */
.mss-blog{background:#f4f8f4}
.mss-blog__heading{color:#185f37;font-size:13px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:24px}
.mss-blog__grid{gap:20px}
.mss-blog-card{border-radius:22px;background:#fff;box-shadow:0 16px 42px rgba(16,58,37,.08);border-color:rgba(20,68,43,.08)}
.mss-blog-card__media{height:240px}.mss-blog-card__body{padding:22px 22px 24px}.mss-blog-card__title{color:#123c2a;font-size:19px}.mss-blog-card__description{color:#69776f}.mss-blog-card__image-arrow{background:#fff;color:#1d713d}

/* Map: contained premium panel rather than raw edge-to-edge iframe */
.mss-map{background:#fff;padding:56px 24px}
.mss-map>.mss-section__inner{max-width:1360px}
.mss-map__frame{height:460px;border:1px solid rgba(15,61,38,.10);border-radius:26px;overflow:hidden;box-shadow:0 20px 52px rgba(15,61,38,.10)}

/* Contact strip */
.mss-contact-strip{background:linear-gradient(110deg,#0d4a2d,#1f6f39 55%,#2c822f);min-height:150px;border-top:1px solid rgba(255,255,255,.08)}
.mss-contact-strip__inner{max-width:1360px;min-height:150px}
.mss-contact-strip__leaf{filter:saturate(1.05);opacity:.72;max-height:140px}
.mss-contact-strip__divider{opacity:.34}.mss-contact-strip__phone,.mss-contact-strip__email{transition:transform .25s ease,opacity .25s ease}.mss-contact-strip__phone:hover,.mss-contact-strip__email:hover{transform:translateY(-2px)}

/* Floating contact rail stays compact and visually subordinate */
.mss-floating-contact{max-width:80px;padding:4px;border-radius:16px;box-shadow:0 14px 40px rgba(10,46,29,.13)}.mss-floating-contact__item{width:72px;min-width:72px;min-height:64px}.mss-floating-contact__text{font-size:9.5px}

@media(max-width:1024px){
  .mss-hero__content{max-width:70%;border-left:0;padding-left:30px}
  .mss-hero__content:before{display:none}
  .mss-greeting__grid{grid-template-columns:1fr 1fr}
  .mss-greeting__illustration{grid-row:1/3;min-height:520px}.mss-greeting__illustration img{min-height:520px}.mss-greeting__content{padding:8px}.mss-greeting__visual{min-height:270px}
  .mss-landscape__grid{display:block}.mss-landscape__copy{padding:0 0 28px}.mss-landscape__cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mss-recruitment__grid{grid-template-columns:1fr}.mss-recruitment__illustration{height:180px}.mss-map{padding:48px 22px}
}
@media(max-width:767px){
  .mss-hero__wash{background:linear-gradient(180deg,rgba(2,28,17,.38) 0%,rgba(2,30,18,.68) 54%,rgba(2,30,18,.88) 100%)}
  .mss-hero__inner{align-items:flex-end;padding-bottom:72px}
  .mss-hero__content{max-width:100%;padding:24px 18px 28px}
  .mss-hero__title{font-size:clamp(40px,12vw,60px)}.mss-hero__description{font-size:14px;line-height:1.65}.mss-hero__dots{bottom:18px}
  .elementor-widget-mss_home_greeting .mss-greeting{padding-top:24px}
  .mss-greeting__card{border-radius:22px}.mss-greeting__grid{grid-template-columns:1fr;gap:20px}.mss-greeting__illustration{grid-row:auto;min-height:250px}.mss-greeting__illustration img{min-height:250px}.mss-greeting__content{padding:4px 2px}.mss-greeting__visual{min-height:300px}
  .mss-landscape__cards{grid-template-columns:1fr}.mss-feature-card{min-height:360px}
  .mss-equipment-card__media{height:230px}
  .mss-news__bar{padding:16px}
  .mss-recruitment__card{border-radius:22px;padding:24px 18px}.mss-recruitment__cta{min-height:280px}.mss-recruitment__illustration{height:135px}
  .mss-blog__grid{grid-template-columns:1fr}.mss-blog-card__media{height:220px}
  .mss-map{padding:38px 18px}.mss-map__frame{height:330px;border-radius:20px}
  .mss-contact-strip{min-height:auto}.mss-contact-strip__inner{min-height:auto}
}

/* v1.4.1 adjustable hero height ------------------------------------------ */
.elementor-widget-mss_home_hero .mss-hero{position:relative;}
.elementor-widget-mss_home_hero .mss-hero__slides,.elementor-widget-mss_home_hero .mss-hero__slide{height:100%;min-height:100%;}
.elementor-widget-mss_home_hero + .elementor-element,.elementor-widget-mss_home_hero ~ .elementor-element{position:relative;}

/* === v1.4.2 marked-layout refinements ===================================== */
/* Greeting: branded illustration must sit cleanly inside its frame, never crop. */
.mss-greeting__illustration{
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  position:relative;
  background:#f3f7ef;
}
.mss-greeting__illustration:before{
  content:"";
  position:absolute;
  width:62%;
  aspect-ratio:1;
  right:-24%;
  bottom:-28%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(119,169,72,.13),rgba(119,169,72,0) 70%);
  pointer-events:none;
}
.mss-greeting__illustration img{
  position:relative;
  z-index:1;
  display:block;
  height:100%;
  width:92%;
  max-width:100%;
  min-height:0;
  object-fit:contain;
  object-position:center;
}
.mss-greeting__card:hover .mss-greeting__illustration img{transform:scale(1.018)}

/* Services: copy first, then a true image-card grid. Repeater remains unlimited. */
.mss-landscape__copy{
  width:100%;
  max-width:900px;
  padding:0;
  margin:0 0 38px;
}
.mss-landscape__label{display:flex;align-items:center;gap:8px}
.mss-landscape__title{max-width:900px;margin-top:10px}
.mss-landscape__text{max-width:900px}
.mss-landscape__cards{
  --mss-service-columns:3;
  display:grid;
  grid-template-columns:repeat(var(--mss-service-columns),minmax(0,1fr));
  gap:24px;
  width:100%;
}
.mss-feature-card{
  min-height:0!important;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(25,70,45,.10);
  box-shadow:0 16px 42px rgba(17,61,39,.08);
  transition:transform .32s ease,box-shadow .32s ease,border-color .32s ease;
}
.mss-feature-card__media{
  position:relative;
  flex:0 0 auto;
  height:260px;
  background-size:cover;
  background-position:center;
  overflow:hidden;
}
.mss-feature-card__media:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(3,36,20,.02),rgba(3,36,20,.13));
  opacity:.78;
  transition:opacity .3s ease;
}
.mss-feature-card__content{
  position:relative!important;
  inset:auto!important;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:20px 22px 22px;
  color:inherit;
  background:#fff;
}
.mss-feature-card__meta{display:flex;align-items:center;gap:10px;margin-bottom:12px;min-width:0}
.mss-feature-card__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:38px;
  height:38px;
  margin:0;
  border-radius:12px;
  color:#2f843c;
  background:#eff7ea;
  font-size:20px;
}
.mss-feature-card__icon svg{width:20px;height:20px;fill:currentColor}
.mss-feature-card__subtitle{
  margin:0;
  color:#66934a;
  font-size:11px;
  line-height:1.35;
  letter-spacing:.09em;
  font-weight:800;
  text-transform:uppercase;
}
.mss-feature-card__title{
  margin:0 0 18px;
  color:#173d2a;
  font-size:24px;
  line-height:1.2;
}
.mss-feature-card__button{
  margin-top:auto;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-width:150px;
  padding:11px 16px;
  border:0!important;
  border-radius:12px;
  color:#195d35;
  background:#f1f7ed;
  text-decoration:none!important;
  transition:background .25s ease,color .25s ease,transform .25s ease;
}
.mss-feature-card__button b{font-size:18px;line-height:1;font-weight:500;transition:transform .25s ease}
.mss-feature-card:hover{transform:translateY(-7px);border-color:rgba(47,132,60,.22);box-shadow:0 28px 60px rgba(17,61,39,.14)}
.mss-feature-card:hover .mss-feature-card__media:after{opacity:.45}
.mss-feature-card__button:hover{color:#fff;background:#195d35;transform:translateY(-1px)}
.mss-feature-card__button:hover b{transform:translateX(3px)}

/* Equipment navigation: true geometric centering (SVG avoids font-baseline drift). */
.mss-equipment__head{align-items:center}
.mss-equipment__arrows{display:flex;align-items:center;justify-content:center;gap:10px;align-self:center}
.mss-equipment__arrow{
  position:relative;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:46px;
  height:46px;
  padding:0!important;
  margin:0;
  line-height:0!important;
  text-indent:0;
}
.mss-equipment__arrow svg{display:block;width:18px;height:18px;overflow:visible}
.mss-equipment__arrow path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Recruitment: image only on the left; all copy/role/button on the right. */
.mss-recruitment__card{overflow:hidden}
.mss-recruitment__grid{
  display:flex;
  align-items:stretch;
  grid-template-columns:none!important;
  gap:42px;
}
.mss-recruitment__media{
  position:relative;
  flex:0 0 48%;
  min-width:0;
  height:520px;
  overflow:hidden;
  border-radius:22px;
  background:#edf3eb;
  box-shadow:0 16px 42px rgba(18,61,39,.09);
}
.mss-recruitment__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.mss-recruitment__card:hover .mss-recruitment__media img{transform:scale(1.025)}
.mss-recruitment__content{
  flex:1 1 0;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:42px;
  border:1px solid rgba(24,91,55,.08);
  border-radius:22px;
  background:#f7faf5;
}
.mss-recruitment__label{margin:0 0 10px;color:#63746a;font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.mss-recruitment__title{margin:0 0 20px;color:#176237;font-size:clamp(30px,3vw,48px);line-height:1.12;letter-spacing:-.03em}
.mss-recruitment__role{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 20px;padding-bottom:18px;border-bottom:1px solid rgba(26,96,57,.12)}
.mss-recruitment__role-title{color:#1c6a39;font-size:16px;font-weight:800}
.mss-recruitment__role-subtitle{color:#6a7a70;font-size:12px;letter-spacing:.05em;text-transform:uppercase}
.mss-recruitment__text{margin:0 0 26px;color:#46574d;font-size:14px;line-height:1.85}
.mss-recruitment__button{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;align-self:flex-start;padding:13px 22px;border-radius:12px;background:#175b38;color:#fff;text-decoration:none!important;box-shadow:0 12px 28px rgba(23,91,56,.15);transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
.mss-recruitment__button b{font-size:18px;font-weight:500;transition:transform .25s ease}
.mss-recruitment__button:hover{background:#2e823e;transform:translateY(-2px);box-shadow:0 18px 34px rgba(23,91,56,.22)}
.mss-recruitment__button:hover b{transform:translateX(3px)}
/* legacy elements are intentionally not part of the v1.4.2 render */
.mss-recruitment__left,.mss-recruitment__cta,.mss-recruitment__illustration{max-width:100%}

@media(max-width:1024px){
  .mss-landscape__cards{--mss-service-columns:2}
  .mss-recruitment__grid{flex-direction:column}
  .mss-recruitment__media{flex-basis:auto;width:100%;height:420px}
  .mss-recruitment__content{width:100%}
}
@media(max-width:767px){
  .mss-greeting__illustration{min-height:300px;height:300px;padding:14px}
  .mss-greeting__illustration img{min-height:0;height:100%;width:100%;object-fit:contain}
  .mss-landscape__copy{margin-bottom:28px}
  .mss-landscape__cards{--mss-service-columns:1;gap:16px}
  .mss-feature-card__media{height:220px}
  .mss-feature-card__title{font-size:21px}
  .mss-equipment__head{display:block}
  .mss-equipment__arrows{display:none}
  .mss-recruitment__grid{gap:18px}
  .mss-recruitment__media{height:300px}
  .mss-recruitment__content{padding:26px 22px}
  .mss-recruitment__title{font-size:clamp(28px,9vw,38px)}
}

/* v1.4.3 — reliable Elementor media rendering + two-image recruitment stack */
.mss-feature-card__media{background:#f3f7f1;isolation:isolate}
.mss-feature-card__media img{position:relative;z-index:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.mss-feature-card__media:after{z-index:1;pointer-events:none}
.mss-feature-card:hover .mss-feature-card__media img{transform:scale(1.035)}

.mss-recruitment__media{display:flex!important;flex-direction:column;align-self:stretch;height:auto!important;min-height:0!important;overflow:visible!important;background:transparent!important}
.mss-recruitment__media-item{position:relative;overflow:hidden;flex:0 0 auto;width:100%;background:#f4f8f1;border:1px solid rgba(24,78,48,.07)}
.mss-recruitment__media-item img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.mss-recruitment__card:hover .mss-recruitment__media-item img{transform:scale(1.022)}

@media (max-width:1024px){
  .mss-recruitment__media{width:100%!important}
}


/* v1.4.4 — Service cards: full-bleed image with premium overlay content */
.mss-landscape .mss-feature-card{
  --mss-card-overlay-top:rgba(3,36,20,.05);
  --mss-card-overlay-bottom:rgba(4,57,30,.92);
  position:relative;
  isolation:isolate;
  min-height:390px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  background:#173d2a;
  border:1px solid rgba(23,79,48,.10);
  box-shadow:0 18px 46px rgba(13,56,34,.12);
}
.mss-landscape .mss-feature-card__media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%!important;
  border-radius:inherit!important;
  background:#eaf2e8;
  overflow:hidden;
  z-index:0;
}
.mss-landscape .mss-feature-card__media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:scale(1.001);
  transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .45s ease;
}
.mss-landscape .mss-feature-card__media:after{display:none!important}
.mss-landscape .mss-feature-card__shade{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,var(--mss-card-overlay-top) 10%,rgba(3,39,21,.22) 48%,var(--mss-card-overlay-bottom) 100%);
  transition:opacity .35s ease,background .35s ease;
}
.mss-landscape .mss-feature-card:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(120deg,rgba(255,255,255,.14),transparent 34%,transparent 76%,rgba(255,255,255,.05));
  opacity:.45;
}
.mss-landscape .mss-feature-card__content{
  position:relative!important;
  inset:auto!important;
  z-index:3;
  width:100%;
  min-height:190px;
  margin-top:auto;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:stretch;
  padding:28px 28px 26px;
  color:#fff;
  background:transparent!important;
}
.mss-landscape .mss-feature-card__meta{margin-bottom:12px}
.mss-landscape .mss-feature-card__icon{
  width:40px;
  height:40px;
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  box-shadow:0 7px 22px rgba(0,0,0,.10);
}
.mss-landscape .mss-feature-card__subtitle{
  color:#d9f59a;
  font-size:11px;
  font-weight:800;
  line-height:1.35;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.mss-landscape .mss-feature-card__title{
  margin:0 0 18px;
  color:#fff;
  font-size:clamp(23px,2vw,31px);
  line-height:1.12;
  letter-spacing:-.025em;
}
.mss-landscape .mss-feature-card.has-text-shadow .mss-feature-card__title,
.mss-landscape .mss-feature-card.has-text-shadow .mss-feature-card__subtitle{
  text-shadow:0 2px 16px rgba(0,0,0,.30);
}
.mss-landscape .mss-feature-card__button{
  width:100%;
  min-height:48px;
  padding:12px 17px;
  color:#fff;
  border:1px solid rgba(255,255,255,.38);
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.mss-landscape .mss-feature-card:hover{
  transform:translateY(-8px);
  border-color:rgba(72,140,76,.28);
  box-shadow:0 30px 68px rgba(12,55,33,.18);
}
.mss-landscape .mss-feature-card:hover .mss-feature-card__media img{
  transform:scale(1.065);
  filter:saturate(1.05) contrast(1.02);
}
.mss-landscape .mss-feature-card:hover .mss-feature-card__shade{opacity:.94}
.mss-landscape .mss-feature-card__button:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.22);
  border-color:rgba(255,255,255,.62);
}
@media (max-width:1024px){
  .mss-landscape .mss-feature-card{min-height:360px}
  .mss-landscape .mss-feature-card__content{padding:24px;min-height:178px}
}
@media (max-width:767px){
  .mss-landscape .mss-feature-card{min-height:330px}
  .mss-landscape .mss-feature-card__content{padding:22px 20px;min-height:165px}
  .mss-landscape .mss-feature-card__title{font-size:25px}
}

/* ========================================================================
   v1.4.5 — reload stability, animated hero rail, counter-moving service rows
   ======================================================================== */

/* Hero rail: keep a subtle full-height track, then run a bright pulse from
   bottom to top every time the active hero image/slide changes. */
.mss-hero__content{
  border-left:1px solid rgba(170,220,108,.24);
}
.mss-hero__content:before{
  content:"";
  position:absolute;
  left:-1px;
  top:0;
  bottom:0;
  width:1px;
  height:auto;
  border-radius:99px;
  background:linear-gradient(180deg,rgba(181,231,112,.08),rgba(181,231,112,.34),rgba(181,231,112,.08));
  opacity:1;
}
.mss-hero__content:after{
  content:"";
  position:absolute;
  z-index:2;
  left:-2px;
  bottom:0;
  width:3px;
  height:78px;
  border-radius:99px;
  opacity:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(213,255,143,0),#d9ff86 38%,#91dd3f 64%,rgba(145,221,63,0));
  box-shadow:0 0 14px rgba(166,230,82,.72),0 0 28px rgba(108,194,48,.32);
}
.mss-hero__slide.is-active.is-line-running .mss-hero__content:after{
  animation:mss145HeroLineRise var(--mss-hero-line-cycle,5200ms) cubic-bezier(.28,.05,.18,1) both;
}
@keyframes mss145HeroLineRise{
  0%{bottom:0;opacity:0;transform:scaleY(.72)}
  8%{opacity:1}
  82%{opacity:1}
  100%{bottom:calc(100% - 78px);opacity:0;transform:scaleY(1)}
}

/* Services: continuous two-row showcase. Top row moves right, lower row left.
   The original grid remains available whenever the widget toggle is disabled. */
.mss-service-slider{
  --mss-service-columns:3;
  --mss-service-gap:24px;
  --mss-service-row-gap:24px;
  --mss-service-card-width:420px;
  --mss-service-duration:32s;
  position:relative;
  display:grid;
  gap:var(--mss-service-row-gap);
  width:100%;
  overflow:hidden;
  padding:4px 0 12px;
}
.mss-service-slider__row{
  position:relative;
  width:100%;
  overflow:hidden;
  padding:8px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 3%,#000 97%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 3%,#000 97%,transparent 100%);
}
.mss-service-slider__track{
  display:flex;
  width:max-content;
  min-width:100%;
  will-change:transform;
  transform:translate3d(0,0,0);
}
.mss-service-slider__group{
  display:flex;
  flex:0 0 auto;
  align-items:stretch;
  gap:var(--mss-service-gap);
  padding-right:var(--mss-service-gap);
}
.mss-service-slider .mss-feature-card{
  flex:0 0 var(--mss-service-card-width);
  width:var(--mss-service-card-width);
  max-width:none;
}
.mss-service-slider.is-running .mss-service-slider__row.is-left .mss-service-slider__track{
  animation:mss145ServicesLeft var(--mss-service-duration) linear infinite;
}
.mss-service-slider.is-running .mss-service-slider__row.is-right .mss-service-slider__track{
  animation:mss145ServicesRight var(--mss-service-duration) linear infinite;
}
.mss-service-slider[data-pause-hover="1"] .mss-service-slider__row:hover .mss-service-slider__track{
  animation-play-state:paused;
}
@keyframes mss145ServicesLeft{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-50%,0,0)}
}
@keyframes mss145ServicesRight{
  from{transform:translate3d(-50%,0,0)}
  to{transform:translate3d(0,0,0)}
}

/* Keep the premium hover treatment without allowing a hovered card to disturb
   the moving-row geometry. */
.mss-service-slider .mss-feature-card:hover{
  transform:translateY(-5px);
}

/* Elementor editor should stay calm/predictable while content is being edited. */
.elementor-editor-active .mss-service-slider__track,
.elementor-editor-preview .mss-service-slider__track{
  animation:none!important;
  transform:none!important;
}

@media(max-width:1024px){
  .mss-service-slider{--mss-service-columns:2;--mss-service-gap:20px;--mss-service-row-gap:20px}
}
@media(max-width:767px){
  .mss-service-slider{--mss-service-columns:1;--mss-service-gap:16px;--mss-service-row-gap:16px}
  .mss-service-slider__row{-webkit-mask-image:none;mask-image:none}
  .mss-service-slider .mss-feature-card{min-height:330px}
}

@media(prefers-reduced-motion:reduce){
  .mss-hero__content:after{display:none!important}
  .mss-service-slider__track{animation:none!important;transform:none!important}
  .mss-service-slider__row{overflow-x:auto;scrollbar-width:none}
  .mss-service-slider__row::-webkit-scrollbar{display:none}
}


/* === v1.4.6 first-paint hero media + premium navigation === */
.mss-hero__media{overflow:hidden;background-color:#0a3323}
.mss-hero__media img{
  position:absolute;inset:0;display:block;width:100%;height:100%;
  object-fit:cover;object-position:var(--mss-hero-position,center center);
  transform:scale(1.01);filter:saturate(1.08) contrast(1.03);
  transition:transform 8s cubic-bezier(.2,.65,.25,1),opacity .35s ease;
}
.mss-hero__slide.is-active .mss-hero__media img{transform:scale(1.035)}
.mss-hero__dots{
  min-height:38px;gap:7px;padding:8px 11px!important;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 14px 34px rgba(3,31,19,.20),inset 0 1px 0 rgba(255,255,255,.14);
}
.mss-hero__dot{
  position:relative;flex:0 0 auto;min-width:8px;min-height:8px;
  opacity:.72;box-shadow:0 0 0 1px rgba(255,255,255,.12);
}
.mss-hero__dot.is-active{opacity:1;box-shadow:0 5px 16px rgba(90,205,65,.24)}
.mss-hero__dot:hover{opacity:1;transform:scale(1.08)}

.mss-equipment__arrows{
  padding:7px;border-radius:18px;border:1px solid rgba(28,91,55,.10);
  box-shadow:0 15px 34px rgba(20,67,43,.11),inset 0 1px 0 rgba(255,255,255,.72);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.mss-equipment__arrow{
  border-radius:13px!important;border-width:1px!important;
  box-shadow:0 6px 16px rgba(18,69,42,.07),inset 0 1px 0 rgba(255,255,255,.75);
}
.mss-equipment__arrow:hover{
  transform:translateY(-2px) scale(1.03);
  box-shadow:0 13px 28px rgba(18,69,42,.20);
}
.mss-equipment__arrow:active{transform:translateY(0) scale(.97)}
.mss-equipment__dots{
  width:max-content;max-width:100%;margin:8px auto 0!important;padding:8px 11px;
  align-items:center;border-radius:999px;border:1px solid rgba(30,91,55,.10);
  box-shadow:0 10px 26px rgba(20,67,43,.08),inset 0 1px 0 rgba(255,255,255,.78);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.mss-equipment__dot{opacity:.34;min-width:8px;min-height:8px;box-shadow:none}
.mss-equipment__dot.is-active{opacity:1;box-shadow:0 5px 14px rgba(45,126,61,.20)}
.mss-equipment__dot:hover{opacity:.78;transform:scale(1.1)}

@media(max-width:767px){
  .mss-hero__dots{min-height:34px;padding:7px 9px!important;bottom:14px}
  .mss-equipment__dots{padding:7px 9px}
}

/* === v1.4.7 hero reliability + no-red navigation hardening === */
.mss-hero__media.has-image{background-color:transparent}
.mss-hero__media.has-image img{opacity:1;visibility:visible}

/* Neutralize theme/browser button focus/active paint so no red/pink outline can
   leak into either slider navigation. A branded green focus ring remains for
   keyboard accessibility. */
.mss-hero__dot,
.mss-equipment__dot,
.mss-equipment__arrow{
  -webkit-appearance:none!important;
  appearance:none!important;
  outline:0!important;
  accent-color:#2f8a27!important;
  -webkit-tap-highlight-color:transparent;
}
.mss-hero__dot,
.mss-equipment__dot{
  border:0!important;
  box-shadow:none;
}
.mss-hero__dot.is-active{
  box-shadow:0 5px 16px rgba(90,205,65,.24)!important;
}
.mss-equipment__dot.is-active{
  box-shadow:0 5px 14px rgba(45,126,61,.20)!important;
}
.mss-hero__dot:focus,
.mss-hero__dot:active,
.mss-equipment__dot:focus,
.mss-equipment__dot:active,
.mss-equipment__arrow:focus,
.mss-equipment__arrow:active{
  outline:0!important;
}
.mss-hero__dot:focus-visible,
.mss-equipment__dot:focus-visible{
  box-shadow:0 0 0 3px rgba(47,138,39,.30)!important;
}
.mss-equipment__arrow:focus-visible{
  outline:0!important;
  box-shadow:0 0 0 3px rgba(47,138,39,.26),0 10px 24px rgba(21,69,46,.14)!important;
}
