.cms-block{margin:32px auto}.cms-block>h2{margin-bottom:24px}.cms-block>section{margin-top:32px}.cms-prose{white-space:pre-line;line-height:1.9}.cms-image{display:block;width:100%;max-height:520px;object-fit:contain;border-radius:14px;background:#153c40}.cms-preview-banner{padding:12px 20px;background:#d5fbad;color:#153c40;text-align:center;font-weight:700}.cms-calculator{padding:24px;background:#f7f8f3;border:1px solid #cedbd1;border-radius:14px;color:#153c40}.cms-calculator h3{margin-bottom:20px}.cms-calc-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:end}.cms-calc-form label{display:block;font-weight:650}.cms-calc-form input{display:block;width:100%;margin-top:8px;padding:11px;border:1px solid #bdcdc3;border-radius:8px;font:inherit;background:white;color:#153c40}.cms-calc-form button{grid-column:1/-1;justify-self:start}.cms-calc-result{margin:20px 0;display:grid;gap:8px}.cms-calc-result>div{display:flex;justify-content:space-between;gap:20px;padding:8px;border-bottom:1px dashed #ccd7ce}.cms-calc-result>div:last-child{font-weight:750;font-size:1.15em}.cms-calc-result .error{color:#a43131}.cms-calculator>p{font-size:14px;line-height:1.7;margin:16px 0}.cms-block .grid3{margin:20px 0}.cms-block .offer .btn{margin-top:16px}body>main:empty{min-height:45vh}@media(max-width:720px){.cms-calc-form{grid-template-columns:1fr}.cms-calculator{padding:18px}.cms-block{margin:24px auto}.cms-block .grid3{grid-template-columns:1fr}}

.cms-catalog{width:min(1120px,calc(100% - 64px));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;padding:45px 0}.cms-catalog>h2,.cms-catalog .cms-wide{grid-column:1/-1}.cms-catalog>section{margin:0}.cms-catalog .grid3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));height:calc(100% - 45px)}.cms-catalog .offer{display:flex;flex-direction:column;gap:12px}.cms-catalog .offer p{flex:1}.cms-catalog .offer .btn{align-self:start;background:#153c40!important;color:#fff!important;border:0}.cms-block>h2{padding-top:10px}@media(max-width:760px){.cms-catalog{width:calc(100% - 32px);grid-template-columns:1fr;padding:24px 0}.cms-catalog .grid3{height:auto;grid-template-columns:1fr}}

/* Trusted advertisement templates retain their visible advertising label. */
.cms-ad{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:18px;width:100%;max-width:1120px;margin:32px auto;padding:28px;border:1px solid #598579;border-radius:16px;background:linear-gradient(115deg,#1a4b4e,#12393e);color:#f3f8f1;box-sizing:border-box;overflow-wrap:anywhere}
main:not(.wrap)>.cms-ad{width:calc(100% - 32px)}
.cms-ad:has(>.cms-ad-image){grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);column-gap:28px}
.cms-ad>*{min-width:0;box-sizing:border-box}
.cms-ad-label{display:inline-flex;align-items:center;justify-content:center;justify-self:start;align-self:start;min-height:26px;padding:3px 10px;border:1px solid #b7d7b6;border-radius:5px;background:#e8f3e4;color:#163f35;font-size:12px;font-weight:750;line-height:1.4;letter-spacing:.1em}
.cms-ad>.cms-ad-label{grid-column:1/-1}
.cms-ad-image{display:block;width:100%;height:auto;max-height:340px;object-fit:contain;border:1px solid #4d716c;border-radius:10px;background:#0e3035}
.cms-ad-copy{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.cms-ad-copy h2,.cms-ad-copy h3{margin:0;color:#fff;font-size:clamp(22px,2.3vw,30px);font-weight:750;line-height:1.45;letter-spacing:0}
.cms-ad-copy p,.cms-ad-copy .cms-prose{margin:0;color:#d9e9db;font-size:16px;line-height:1.85;white-space:pre-line}
.cms-ad-copy .btn{max-width:100%;margin-top:4px;white-space:normal;text-align:center;overflow-wrap:anywhere}
.cms-ad a:focus-visible{outline:3px solid #d9ff9b;outline-offset:5px}
@media(max-width:720px){.cms-ad,.cms-ad:has(>.cms-ad-image){grid-template-columns:minmax(0,1fr);gap:16px;padding:20px;border-radius:12px;margin:24px auto}.cms-ad-image{max-height:280px}.cms-ad-copy{gap:12px}.cms-ad-copy .btn{width:100%}.cms-ad-copy p,.cms-ad-copy .cms-prose{font-size:15px}}

/* Homepage flow has explicit step-number badges; suppress shared service counters. */
.flow-steps > .step::before{content:none;display:none}

/* Keep the staff entry modest but easy to tap on a phone. */
.footer .work-backend-entry{display:inline-flex;align-items:center;min-height:44px;padding:6px 10px;white-space:nowrap;text-underline-offset:4px}
.footer .work-backend-entry:focus-visible{outline:2px solid #89fa32;outline-offset:2px;border-radius:4px}

/* Each slide keeps its layout footprint; inactive slides have an immediate paint barrier.
   This also blocks descendants with their own visibility transitions. */
main:not(.wrap)>.cms-block:not(.cms-catalog){width:min(1120px,calc(100% - 32px))}
.cms-carousel{position:relative;display:block;width:100%;max-width:1120px;margin:28px auto;padding:0;border:0;border-radius:0;box-shadow:none;background:#102e31;color:#fff;overflow:hidden;box-sizing:border-box}
.cms-carousel[hidden],.cms-carousel-controls[hidden],.cms-intro-fallback[hidden],.cms-page-heading[hidden]{display:none!important}
.cms-carousel-slides{display:grid;isolation:isolate}
.cms-carousel-slide{position:relative;grid-area:1/1;display:grid;grid-template-columns:minmax(0,1.16fr) minmax(0,1fr);align-items:stretch;min-width:0;min-height:var(--carousel-height,420px);isolation:isolate;transition:none;opacity:1}
.cms-carousel-slide[hidden]{display:grid!important;visibility:hidden!important;opacity:0!important;pointer-events:none;transition:none!important;animation:none!important}
.cms-carousel-slide[hidden] *{visibility:hidden!important;transition:none!important;animation:none!important}
.cms-carousel-slide:not([hidden]){z-index:1}
.cms-carousel-media{position:absolute;inset:0;z-index:-2;overflow:hidden;background:#102e31}
.cms-carousel-image{display:block;width:100%;height:100%;max-height:none;object-fit:var(--carousel-fit,cover);object-position:center;border:0;border-radius:0}
.cms-carousel-slide::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,0) 28%,rgba(0,0,0,.10) 38%,rgba(0,0,0,.72) 57%,rgba(0,0,0,.72) 100%)}
.cms-carousel-copy{grid-column:2;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px;min-width:0;padding:48px 28px 48px 44px;overflow-wrap:anywhere;box-sizing:border-box}
.cms-carousel-copy h3{margin:0;padding:0;font-size:clamp(26px,2.5vw,34px);font-weight:750;line-height:1.4;color:#fff;letter-spacing:-.02em;text-wrap:balance;text-shadow:none}
.cms-carousel-copy .cms-slogan-line{display:block;text-wrap:pretty}
.cms-carousel-atmosphere{display:none}
.cms-carousel:is([data-image-fit="adaptive"],[data-image-fit="fill"]) .cms-carousel-slide{min-height:var(--carousel-adaptive-height,var(--carousel-height,640px))}
.cms-carousel:is([data-image-fit="adaptive"],[data-image-fit="fill"]) .cms-carousel-media{isolation:isolate}
.cms-carousel:is([data-image-fit="adaptive"],[data-image-fit="fill"]) .cms-carousel-image{object-fit:contain;object-position:center}
.cms-carousel:is([data-image-fit="adaptive"],[data-image-fit="fill"]) .cms-carousel-atmosphere{display:block;position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;filter:blur(24px);transform:scale(1.08);opacity:.5;pointer-events:none}
.cms-carousel[data-image-fit="fill"] .cms-carousel-image{object-fit:cover;object-position:center}
.cms-carousel-copy p{margin:0;color:#f0f2ed;font-size:15px;line-height:1.9;white-space:pre-line;text-shadow:none}
.cms-carousel-copy .btn{white-space:normal;text-align:center;max-width:100%;margin:2px 0 0;min-height:46px;padding:10px 24px;border-radius:6px;font-size:15px;transition:background-color .15s,color .15s,border-color .15s}
.cms-carousel-slide>.cms-ad-label{position:absolute;z-index:2;top:14px;right:16px;min-height:20px;padding:2px 6px;border:1px solid #ffffff40;border-radius:3px;background:#000b;color:#eef2eb;font-size:10px;line-height:1.4;font-weight:500;letter-spacing:.12em}
.cms-carousel-controls{position:absolute;z-index:3;left:22px;bottom:20px;display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:2px;max-width:calc(53.7% - 44px);padding:2px 5px;border:1px solid #ffffff30;border-radius:30px;background:#071e24d9;color:#fff;box-sizing:border-box}
.cms-carousel-controls button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;font:inherit;touch-action:manipulation}
.cms-carousel-controls button:hover{background:#ffffff18}
.cms-carousel-controls button svg{display:block;width:19px;height:19px}
.cms-carousel-toggle{margin-left:2px}
.cms-carousel-toggle .cms-icon-play{display:none}
.cms-carousel-toggle[aria-pressed="true"] .cms-icon-pause{display:none}
.cms-carousel-toggle[aria-pressed="true"] .cms-icon-play{display:block}
.cms-carousel-dots{position:relative;display:flex;min-width:0;overflow-x:auto;scrollbar-width:none}
.cms-carousel-dots::-webkit-scrollbar{display:none}
.cms-carousel-controls .cms-carousel-dot{width:28px;border-radius:5px}
.cms-carousel-dot span{display:block;width:6px;height:6px;border-radius:10px;background:#d8e1d7;opacity:.7;transition:width .2s ease,opacity .2s ease}
.cms-carousel-dot[aria-current="true"] span{width:20px;background:#89fa32;opacity:1}
.cms-carousel-dot[hidden]{display:none!important}
.cms-carousel-status,.cms-page-heading{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.cms-carousel :focus-visible{outline:2px solid #c7ff8f;outline-offset:-3px}
main.wrap.cms-header-layout{width:100%;max-width:none;padding:0;margin-top:0}
main.wrap.cms-header-layout>:not(.cms-carousel):not(.cms-page-heading){width:min(1120px,calc(100% - 64px));margin-left:auto;margin-right:auto}
main.cms-header-layout>.cms-carousel.cms-header-carousel{width:min(1120px,calc(100% - 64px));max-width:1120px;margin:30px auto 0}
main.cms-header-layout>.cms-catalog{padding-top:38px;gap:24px}
main.cms-header-layout>.cms-catalog>h2{margin-bottom:8px}
@media(min-width:721px) and (max-width:1000px){.cms-carousel-copy{padding-left:28px;padding-right:24px;gap:16px}.cms-carousel-copy h3{font-size:27px}}
@media(prefers-reduced-motion:reduce){.cms-carousel-dot span{transition:none}}
@media(max-width:720px){
 .cms-carousel{margin:20px auto}
 .cms-carousel-slide{grid-template-columns:minmax(0,1fr);grid-template-rows:var(--carousel-mobile-height,200px) auto;min-height:0}
 .cms-carousel-image{object-position:20% center}
 .cms-carousel-copy{grid-column:1;grid-row:2;padding:22px 20px 24px;gap:15px;justify-content:flex-start}
 .cms-carousel-copy h3{font-size:26px;text-wrap:pretty}
 .cms-carousel-copy p{font-size:15px;line-height:1.8}
 .cms-carousel-copy .btn{width:auto;margin-top:auto;min-height:44px}
 .cms-carousel-slide::after{background:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,0) calc(var(--carousel-mobile-height,200px) - 110px),rgba(0,0,0,.76) var(--carousel-mobile-height,200px),rgba(0,0,0,.76) 100%)}
 .cms-carousel-slide>.cms-ad-label{top:12px;right:12px}
 .cms-carousel-controls{left:12px;top:12px;bottom:auto;max-width:calc(100% - 78px);padding:1px 4px}
 .cms-carousel-controls .cms-carousel-dot{width:26px}
 .cms-carousel:is([data-image-fit="adaptive"],[data-image-fit="fill"]) .cms-carousel-slide{grid-template-rows:var(--carousel-picture-height,240px) auto;min-height:0}
 .cms-carousel:is([data-image-fit="adaptive"],[data-image-fit="fill"]) .cms-carousel-media{position:relative;inset:auto;grid-column:1;grid-row:1;width:100%;height:100%}
 .cms-carousel:is([data-image-fit="adaptive"],[data-image-fit="fill"]) .cms-carousel-copy{padding-bottom:82px}
 .cms-carousel:is([data-image-fit="adaptive"],[data-image-fit="fill"]) .cms-carousel-slide::after{background:linear-gradient(180deg,transparent 0,transparent calc(var(--carousel-picture-height,240px) - 20px),rgba(0,0,0,.76) var(--carousel-picture-height,240px),rgba(0,0,0,.76) 100%)}
 .cms-carousel:is([data-image-fit="adaptive"],[data-image-fit="fill"]) .cms-carousel-controls{top:auto;bottom:14px;max-width:calc(100% - 24px)}
 main.cms-header-layout>.cms-carousel.cms-header-carousel{width:calc(100% - 36px);margin:18px auto 0}
 main.wrap.cms-header-layout>:not(.cms-carousel):not(.cms-page-heading),main:not(.wrap)>.cms-block:not(.cms-catalog){width:calc(100% - 36px)}
 main.cms-header-layout>.cms-catalog{width:calc(100% - 36px);padding-top:32px;gap:22px}
}

/* Presentation mode is available even for a single scheduled image. */
.cms-carousel-fullscreen{position:absolute;z-index:5;top:10px;right:10px;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid #ffffff40;border-radius:50%;background:#071e24d9;color:#fff;cursor:pointer;touch-action:manipulation}
.cms-carousel-fullscreen:hover{background:#153c40}
.cms-carousel-fullscreen svg{width:20px;height:20px}
.cms-carousel-fullscreen .cms-icon-collapse{display:none}
.cms-carousel-fullscreen[aria-pressed="true"] .cms-icon-expand{display:none}
.cms-carousel-fullscreen[aria-pressed="true"] .cms-icon-collapse{display:block}
.cms-carousel-slide>.cms-ad-label{right:64px;top:20px}
.cms-carousel.is-presenting{position:fixed!important;inset:0!important;z-index:10000!important;width:100vw!important;max-width:none!important;height:100vh!important;height:100dvh!important;margin:0!important;border-radius:0!important;overflow:auto!important;background:#102e31}
.cms-carousel.is-presenting::backdrop{background:#102e31}
.cms-carousel.is-presenting .cms-carousel-slides{height:100%;min-height:100%}
.cms-carousel.is-presenting .cms-carousel-slide{min-height:100%!important;grid-template-columns:minmax(0,1.16fr) minmax(0,1fr);grid-template-rows:1fr}
.cms-carousel.is-presenting .cms-carousel-media{position:absolute!important;inset:0!important;grid-area:auto!important;width:100%;height:100%}
.cms-carousel.is-presenting .cms-carousel-copy{grid-column:2;grid-row:1;padding:70px clamp(24px,4vw,100px) 80px clamp(28px,4vw,100px);gap:clamp(14px,2vw,32px);justify-content:center}
.cms-carousel.is-presenting .cms-carousel-copy h3{font-size:clamp(27px,3vw,64px)}
.cms-carousel.is-presenting .cms-carousel-copy p{font-size:clamp(15px,1.2vw,28px)}
.cms-carousel.is-presenting .cms-carousel-copy .btn{font-size:clamp(15px,1.1vw,24px);margin-top:4px;width:auto}
.cms-carousel.is-presenting .cms-carousel-slide::after{background:linear-gradient(90deg,transparent 28%,#0000001a 38%,#000b 57%,#000b 100%)}
.cms-carousel.is-presenting .cms-carousel-controls{position:absolute;top:auto;left:22px;bottom:20px;max-width:calc(53.7% - 44px)}
@media(orientation:portrait){
 .cms-carousel.is-presenting .cms-carousel-slides{height:auto;min-height:100%}
 .cms-carousel.is-presenting .cms-carousel-slide{grid-template-columns:1fr;grid-template-rows:56.25vw minmax(0,1fr);min-height:100dvh!important}
 .cms-carousel.is-presenting .cms-carousel-media{position:relative!important;inset:auto!important;grid-column:1!important;grid-row:1!important}
 .cms-carousel.is-presenting .cms-carousel-copy{grid-column:1;grid-row:2;justify-content:center;padding:24px 24px 88px}
 .cms-carousel.is-presenting .cms-carousel-copy h3{font-size:clamp(26px,5vw,44px)}
 .cms-carousel.is-presenting .cms-carousel-slide::after{background:linear-gradient(180deg,transparent 0,transparent calc(56.25vw - 20px),#000b 56.25vw,#000b 100%)}
 .cms-carousel.is-presenting .cms-carousel-controls{position:fixed;bottom:14px;left:12px;max-width:calc(100% - 24px)}
}
@media(orientation:landscape) and (max-height:500px){
 .cms-carousel.is-presenting .cms-carousel-copy{padding:56px 22px 24px;gap:10px}
 .cms-carousel.is-presenting .cms-carousel-copy h3{font-size:24px}
 .cms-carousel.is-presenting .cms-carousel-copy p{font-size:13px;line-height:1.5}
 .cms-carousel.is-presenting .cms-carousel-copy .btn{font-size:13px;min-height:40px;padding:6px 12px}
}

/* Stable first layout: the 16:9 artboard is known before JS/image delivery. */
.cms-carousel{container-type:inline-size;--carousel-adaptive-height:56.25cqw;--carousel-picture-height:56.25cqw}
.cms-image{height:auto}
.cms-calculator .cms-calc-feedback{min-height:1.7em;margin:8px 0;font-size:14px}
.cms-calculator .cms-calc-contact[hidden]{display:inline-flex!important;visibility:hidden;pointer-events:none}

img[width="16"][height="9"]{aspect-ratio:16/9}
/* Loading/ready notices share enough space on narrow screens. */
#readiness{min-height:3.4em}
#alliance-form-status{min-height:5.6em}
