:root{--green:#287d2e;--lime:#35a13c;--ink:#243128;--muted:#59685c;--line:#d9e6da;--paper:#f3f9f3}
*{box-sizing:border-box}body{font-family:'Segoe UI',Arial,sans-serif;color:var(--ink);margin:0;line-height:1.55}a{color:inherit}button,input,textarea{font:inherit}
h1,h2,h3{font-family:Bahnschrift,'Arial Narrow','Segoe UI',sans-serif;font-stretch:semi-condensed;letter-spacing:-.7px;font-weight:500;line-height:1.15}
.phone,.btn,.strip b,.fact b,.doc-row{font-family:'Segoe UI',Arial,sans-serif;font-stretch:normal}.wrap{max-width:1240px}.top{display:none}.header{position:sticky;top:0;z-index:10}.header .wrap{min-height:94px}.nav{font-size:14px;gap:21px}.header .phone{font-size:15px}.mobile-call{display:none}.skip{position:fixed;top:-100px;left:15px;background:white;padding:14px;z-index:50}.skip:focus{top:10px}
.hero-grid{padding-top:44px;padding-bottom:38px;grid-template-columns:1.4fr 1fr;gap:60px;align-items:center}h1{font-size:52px;line-height:1.08;margin:17px 0 20px}h1 em{color:#287d2e}.lead{font-size:18px}.actions{margin-top:25px}.btn{background:#287d2e;border-color:#287d2e;color:white;min-height:48px;font-size:16px;padding:12px 20px;text-decoration:none;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-weight:600}.btn:hover{background:#205d25;border-color:#205d25}.btn.secondary{background:transparent;color:#287d2e;border-color:#a9bfa9}.btn.secondary:hover{background:#e6f3e7}.eyebrow{font-size:12px;letter-spacing:1.5px;color:#287d2e}
.dossier{background:#fff;color:var(--ink);box-shadow:none;border:1px solid var(--line);border-top:4px solid #35a13c;border-radius:6px;padding:25px 28px}.dossier .eyebrow{color:#287d2e}.dossier h2{font-size:25px;margin:12px 0 18px}.result-list{list-style:none;padding:0;margin:0;display:grid;gap:16px}.result-list li{padding-left:16px;border-left:2px solid #b8dfbb}.result-list b{display:block;font-size:16px}.result-list span{display:block;font-size:14px;color:var(--muted);margin-top:3px}.strip{padding:18px 0}.strip b{font-size:15px}.strip span{font-size:14px}section{padding:60px 0}h2{font-size:34px}.section-head{margin-bottom:26px}.section-head p{font-size:16px}
.catalog{gap:18px;border:0;align-items:start}.service,.service.featured{border:1px solid var(--line);background:#fff;border-radius:7px;padding:23px}.service-group>summary{list-style:none;position:relative;cursor:pointer}.service-group>summary::-webkit-details-marker{display:none}.service h3{font-size:23px;margin:10px 0 14px}.service p{font-size:15px;line-height:1.5;margin:0 0 18px;color:var(--muted)}.group-toggle{display:none}.service-links{display:grid}.service-link{display:grid;grid-template-columns:1fr auto;column-gap:10px;padding:12px 0;border-top:1px solid #e5ede5;text-decoration:none;font-size:15px;line-height:1.4;min-height:46px}.service-link b{font-size:14px;white-space:nowrap;font-weight:600;color:#287d2e}.service-link small{grid-column:1/-1;font-size:13px;color:var(--muted);margin-top:4px}.service-link:hover>span{text-decoration:underline;color:#287d2e}.task-section{border:0;background:#205d25}.task-grid{gap:65px}.tasks summary{font-size:19px;min-height:28px}.task-action{display:inline-block;margin-top:16px;color:white;text-underline-offset:4px;padding:6px 0}.about{background:var(--paper)}.about p,.step p{font-size:16px}.steps{gap:30px}.faq-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:70px}.faq-layout>div>p{color:var(--muted)}.faq-list details{padding:18px 0;border-bottom:1px solid var(--line)}.faq-list summary{font-size:18px;cursor:pointer}.faq-list p{font-size:16px;color:var(--muted)}.contact{border-top:0}.form{border:1px solid var(--line);border-radius:7px}.form label{font-size:14px}.form input,.form textarea{font-size:16px;min-height:48px}.form .fine{font-size:14px}.contact-grid{gap:65px}.form [role=status]:not(:empty){padding:14px;background:#e2eee3;border-left:3px solid #287d2e}
.service-preview{background:#f3f9f3}.service-sheet{max-width:820px;margin:50px auto;padding:40px;background:white;border:1px solid var(--line);border-radius:8px}.service-sheet h1{font-size:38px}.service-sheet .eyebrow{margin-top:35px}.service-terms{font-size:20px;margin:24px 0 32px}.preview-note{font-size:14px;color:var(--muted);margin:30px 0}.service-sheet a:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #287d2e;outline-offset:4px}
@media(max-width:1000px){.header .phone{display:none}.hero-grid{gap:30px}h1{font-size:46px}.catalog{grid-template-columns:1fr 1fr}.service-link{grid-template-columns:1fr}.service-link b{margin-top:4px}}
@media(max-width:620px){.header .wrap{min-height:83px;gap:8px}.header .brand{width:150px;height:63px}.header .brand img{width:286.7px;left:-72px;top:-9.7px}.mobile-call{display:block;margin-left:auto;font-size:14px;color:#287d2e;font-weight:600;padding:12px 0}.menu{padding:10px;font-size:14px;min-height:44px}.nav{order:4;width:100%}.hero-grid{display:block;padding:29px 0 23px}h1{font-size:36px;letter-spacing:-.6px;margin:14px 0 16px}.lead{font-size:16px;margin:0}.actions{margin-top:21px;gap:10px}.actions .btn{padding:12px 10px;font-size:14px}.hero .fine{font-size:13px;margin:13px 0 0}.dossier{display:none}.strip{grid-template-columns:1fr;gap:8px;padding:14px 0}.strip b{font-size:14px}.strip span{font-size:13px}.strip>div:nth-child(2){display:none}section{padding:38px 0}h2{font-size:28px}.section-head p{font-size:15px;margin-top:12px}.catalog{grid-template-columns:1fr;gap:10px}.service{padding:18px}.service h3{font-size:21px;margin:6px 30px 0 0}.group-toggle{display:block;position:absolute;right:0;top:18px;color:#287d2e;font-size:23px}.service-group[open] .group-toggle{transform:rotate(45deg)}.service-group>p{margin-top:15px}.service .num{font-size:11px;letter-spacing:.5px}.service-link{grid-template-columns:1fr auto;font-size:15px}.service-link b{margin:0;font-size:13px}.task-grid,.about-grid,.contact-grid,.faq-layout{grid-template-columns:1fr;gap:24px}.tasks summary{font-size:17px}.steps{grid-template-columns:1fr;gap:8px;margin-top:24px}.step{display:grid;grid-template-columns:30px 1fr;gap:0 12px;padding:18px 0}.step h3{margin:0;font-size:19px}.step p{grid-column:2;margin:8px 0 0;font-size:15px}.fact b{font-size:18px}.faq-list summary{font-size:17px}.form{padding:20px}.service-sheet{margin:20px;padding:24px}.service-sheet h1{font-size:30px}.service-terms{font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Shared outline icons and progressive desktop catalog */
.strip .benefit{display:flex;align-items:flex-start;gap:13px}.benefit-icon{width:27px;height:27px;flex:0 0 27px;color:#35a13c;margin-top:3px}.strip .benefit b,.strip .benefit span{display:block}.direction-icon{width:29px;height:29px;color:#35a13c;display:block;margin-bottom:17px}.extra-services{display:contents}.more-services{display:none;background:none;border:0;border-top:1px solid var(--line);color:#287d2e;padding:12px 0;text-align:left;min-height:44px;font-weight:600;cursor:pointer}.more-services span{float:right;font-size:20px}
@media(min-width:621px){.service{min-height:465px}.service-group>summary{min-height:121px}.service-group>p{min-height:46px}.extra-services{display:none}.show-all .extra-services{display:contents}.more-services{display:block}.service-link{min-height:62px}}
@media(min-width:621px) and (max-width:1000px){.service{min-height:540px}}
@media(max-width:620px){.strip .benefit:nth-child(2){display:none}.strip .benefit b,.strip .benefit span{display:block}.direction-icon{width:25px;height:25px;position:absolute;left:0;top:4px;margin:0}.service-group>summary{padding-left:39px}.group-toggle{top:12px}.service-group>summary .num{font-size:10px}.extra-services{display:contents}.more-services{display:none}}
@media(min-width:621px){.service{min-height:550px}}
.service-links .more-services{color:#287d2e;font-weight:600;border-top:1px solid var(--line);min-height:44px}@media(min-width:621px){.service{min-height:565px}}@media(max-width:620px){.service-links .more-services{display:none}}
/* Contained section backgrounds, aligned with the catalog edges. */
.task-section,.about{background:transparent;padding:0 38px}
.task-section>.wrap,.about>.wrap{max-width:1164px;padding:48px 40px;border-radius:12px}
.task-section>.wrap{background:#205d25}
.about>.wrap{background:var(--paper)}
@media(max-width:900px){.task-section,.about{padding:0 25px}.task-section>.wrap,.about>.wrap{padding:36px 28px}}
@media(max-width:620px){.task-section,.about{padding:0 20px}.task-section>.wrap,.about>.wrap{padding:28px 20px;border-radius:10px}}
/* Desktop-only decorative generated landscape. Mobile retains a solid background. */
@media(min-width:621px){.hero{background-color:#f3f9f3;background-image:linear-gradient(90deg,rgba(243,249,243,.97) 0%,rgba(243,249,243,.86) 40%,rgba(243,249,243,.38) 100%),url('/hero-industry.webp');background-size:cover;background-position:center bottom}.hero .strip{background:rgba(243,249,243,.8)}}
/* Balanced inset benefits panel, with landscape visible below. */
@media(min-width:621px){.hero .strip{padding:20px 24px;gap:24px;border:1px solid rgba(217,230,218,.7);border-radius:12px;margin-bottom:24px;grid-template-columns:repeat(3,minmax(0,1fr))}.hero .strip .benefit{min-width:0}.hero .strip .benefit>div{min-width:0}}
/* Distribute actual content widths, rather than equal empty grid columns. */
@media(min-width:901px){.hero .strip{grid-template-columns:repeat(3,max-content);justify-content:space-between}}
@media(min-width:621px) and (max-width:900px){.hero .strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.hero .strip .benefit:last-child{justify-self:end}}
/* Equal outer and inner horizontal spaces between intrinsic-width benefits. */
@media(min-width:901px){.hero .strip{padding-left:0;padding-right:0;column-gap:0;justify-content:space-evenly}}
@media(min-width:621px){.hero .strip{display:flex;padding-left:0;padding-right:0;gap:0;justify-content:space-evenly}.hero .strip .benefit{flex:0 1 auto;max-width:calc((100% - 80px)/3)}}

/* Company film: native keyboard-accessible player, no autoplay or preload. */
.about-grid{align-items:start;column-gap:40px;row-gap:32px}.company-film{margin:0;min-width:0;align-self:center}.film-frame{overflow:hidden;border-radius:9px;background:#172c25;aspect-ratio:16/9}.company-film video{display:block;width:100%;height:100%;object-fit:contain}.company-film figcaption{display:flex;justify-content:space-between;gap:12px;font-size:14px;margin-top:12px;color:#243128}.company-film figcaption span{white-space:nowrap;color:#59685c}.company-facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.company-facts .fact{margin:0;padding-top:20px}.company-facts .fact b{font-size:18px}.company-facts .fact p{font-size:15px}
@media(max-width:900px){.about-grid{grid-template-columns:1fr}.company-film{width:100%}.company-facts{gap:18px}}
@media(max-width:620px){.company-facts{grid-template-columns:1fr;gap:10px}.company-film figcaption{display:block}.company-film figcaption span{display:block;margin-top:4px}}

/* Signed customer letters, accessible without scripted dialogs. */
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.review-card{padding:28px;display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:10px;background:white}.review-letter{color:#287d2e;font-size:26px;line-height:1;margin-bottom:18px}.review-card h3{font-size:23px;margin:0 0 12px}.review-services{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 20px}.review-card blockquote{margin:0 0 26px;font-size:16px;line-height:1.65;color:var(--ink)}.review-link{margin-top:auto;padding:14px 0 0;min-height:44px;border-top:1px solid var(--line);font-weight:600;color:#287d2e;display:flex;align-items:center;justify-content:space-between;gap:12px}.review-link span{font-size:12px;font-weight:400}.review-link:hover{text-decoration:underline}.reviews-more{margin-top:24px;display:flex;flex-direction:column}.reviews-more>summary{display:table;list-style:none;margin:0 auto;padding:12px 22px;border:1px solid #a9bfa9;border-radius:5px;color:#287d2e;cursor:pointer;font-weight:600;min-height:48px}.reviews-more>summary::-webkit-details-marker{display:none}.reviews-more .less-label{display:none}.reviews-more[open] .less-label{display:inline}.reviews-more[open] .more-label{display:none}.reviews-more .reviews-grid{margin-top:24px}.reviews+.faq-section{padding-top:12px}
@media(max-width:900px){.review-card{padding:22px}.review-card h3{font-size:21px}}
@media(max-width:700px){.reviews-grid{grid-template-columns:1fr}.review-card{padding:24px}.review-card blockquote{margin-bottom:20px}.reviews-more>summary{width:100%;text-align:center}}

/* Native scroll-snap carousel: touch, keyboard and explicit controls. */
.review-carousel{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:16px;align-items:center}.review-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px;scroll-padding:4px}.review-track::-webkit-scrollbar{display:none}.review-track .review-card{flex:0 0 calc((100% - 40px)/3);scroll-snap-align:start;box-sizing:border-box}.review-arrow{width:44px;height:44px;border:1px solid #a9bfa9;border-radius:50%;background:white;color:#287d2e;font-size:23px;cursor:pointer}.review-arrow:hover:not(:disabled){background:#f3f9f3}.review-arrow:disabled{opacity:.35;cursor:default}.review-position{grid-column:2;text-align:center;font-size:14px;color:var(--muted)}.review-track:focus-visible{outline:3px solid #287d2e;outline-offset:3px;border-radius:10px}
@media(max-width:1000px) and (min-width:701px){.review-track .review-card{flex-basis:calc((100% - 20px)/2)}}
@media(max-width:700px){.review-carousel{grid-template-columns:44px 1fr 44px;gap:14px}.review-track{grid-column:1/-1;grid-row:1}.review-track .review-card{flex-basis:100%}.review-prev{grid-row:2;grid-column:1}.review-next{grid-row:2;grid-column:3}.review-position{grid-row:2;grid-column:2}}

body.letter-open{overflow:hidden}.letter-dialog{padding:0;width:calc(100% - 40px);max-width:960px;max-height:90dvh;border:0;border-radius:12px;color:var(--ink);background:white;overflow:hidden}.letter-dialog[open]{display:flex;flex-direction:column}.letter-dialog::backdrop{background:rgba(16,35,23,.75)}.letter-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line);flex-shrink:0;background:white}.letter-toolbar h2{font-size:21px;margin:0}.letter-close{flex-shrink:0;min-height:44px;padding:8px 14px;border:1px solid #a9bfa9;border-radius:6px;background:white;color:#287d2e;font-weight:600;cursor:pointer}.letter-close span{font-size:22px;margin-left:8px}.letter-body{overflow:auto;padding:16px;background:#edf2ed}.letter-image{display:block;width:100%;height:auto}.letter-error a{color:#287d2e;text-decoration:underline}.letter-image[hidden],.letter-error[hidden]{display:none}@media(max-width:620px){.letter-dialog{width:calc(100% - 16px);max-height:94dvh}.letter-toolbar{padding:10px 12px;gap:10px}.letter-toolbar h2{font-size:18px}.letter-body{padding:6px}.letter-close{padding:8px 10px}}
/* FAQ shares the contained company-section surface. */
.faq-section,.reviews+.faq-section{padding:0 38px 60px;background:transparent}
.faq-section>.wrap{max-width:1164px;padding:48px 40px;border-radius:12px;background:#f3f9f3}
@media(max-width:900px){.faq-section,.reviews+.faq-section{padding-left:25px;padding-right:25px}.faq-section>.wrap{padding:36px 28px}}
@media(max-width:620px){.faq-section,.reviews+.faq-section{padding:0 20px 38px}.faq-section>.wrap{padding:28px 20px;border-radius:10px}}

/* Compact service catalog: static desktop headings, mobile disclosures. */
.service-heading{position:relative;list-style:none}
.service-heading::-webkit-details-marker{display:none}
.service-link{position:relative;grid-template-columns:minmax(0,1fr);padding:10px 25px 10px 0;row-gap:3px}
.service-link>b{margin:0;white-space:normal}
.service-link>small{margin:0}
.service-arrow{position:absolute;right:0;top:13px;width:18px;height:18px;color:#287d2e}
.service-link:hover .service-arrow{transform:translateX(2px)}
@media(min-width:621px){
 .catalog{align-items:stretch}
 .catalog .service{min-height:0;padding:20px}
 .service-group>.service-heading{min-height:105px;cursor:default}
 .service-group>p{min-height:45px;margin-bottom:12px}
 .service-heading .direction-icon{margin-bottom:10px}
 .service-heading h3{margin:8px 0 10px}
 .service-link{min-height:0}
}
@media(max-width:620px){
 .service-group>.service-heading{padding-left:39px;cursor:pointer}
 .service-heading .num{font-size:10px}
 .service-link{grid-template-columns:minmax(0,1fr);min-height:48px}
}

/* Visible task CTA on the dark section surface. */
.task-section .task-action{display:inline-flex;align-items:center;justify-content:center;min-height:48px;max-width:100%;padding:12px 20px;margin-top:12px;border:1px solid #f3f9f3;border-radius:5px;background:#f3f9f3;color:#205d25;font-size:16px;font-weight:600;line-height:1.4;text-align:center;text-decoration:none}
.task-section .task-action:hover{background:#dceedd;border-color:#dceedd}
.task-section .task-action:active{background:#cce3ce;border-color:#cce3ce}
.task-section .task-action:focus-visible{outline:3px solid #fff;outline-offset:4px}
@media(max-width:620px){.task-section .task-action{width:100%}}
/* Connected process stages; decorative lines preserve the reading order. */
#process .steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}
#process .step{position:relative;border:0;padding:0;min-width:0}
#process .step:not(:last-child)::after{content:"";position:absolute;top:25px;left:52px;width:calc(100% + 30px - 52px);height:2px;background:#d9e6da;pointer-events:none}
#process .step .number{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:#edf6ee;border:1px solid #cce3ce;color:#287d2e;font:600 16px/1 'Segoe UI',Arial,sans-serif}
#process .step:last-child .number{background:#cce8cf;border-color:#a3d3a8;color:#205d25}
#process .step h3{margin:20px 0 10px}
#process .step p{margin:0}
@media(max-width:900px){
 #process .steps{grid-template-columns:1fr;gap:0}
 #process .step{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:18px;row-gap:8px;padding:0 0 28px}
 #process .step .number{grid-column:1;grid-row:1/3}
 #process .step h3{grid-column:2;margin:0;padding-top:4px}
 #process .step p{grid-column:2;margin:0}
 #process .step:not(:last-child)::after{left:25px;top:52px;width:2px;height:calc(100% - 52px)}
 #process .step:last-child{padding-bottom:0}
}
/* Symmetric carousel arrows, centered independently of font metrics. */
.review-arrow{display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1}
.review-arrow svg{display:block;width:22px;height:22px;flex-shrink:0;pointer-events:none}

/* Letter preview buttons within testimonial cards. */
.review-card .review-link{width:100%;min-height:48px;justify-content:center;gap:10px;padding:12px 16px;border:1px solid #d2e6d4;border-radius:6px;background:#edf6ee;color:#205d25;line-height:1.4;text-align:center;text-decoration:none}
.review-card .review-link:hover{background:#dceedd;border-color:#b8d8bc;text-decoration:none}
.review-card .review-link:active{background:#cce3ce}
.review-card .review-link:focus-visible{outline:3px solid #287d2e;outline-offset:4px}
.review-open-icon{display:block;width:20px;height:20px;flex:0 0 20px}
/* Customer letter viewer: fixed controls and a scrollable paper surface. */
.letter-dialog{width:calc(100% - 40px);max-width:1000px;height:90dvh;box-shadow:0 24px 80px #10231740}
.letter-toolbar{background:#edf6ee;padding:18px 24px;align-items:center}
.letter-toolbar .eyebrow{margin-bottom:5px;font-size:11px}
.letter-toolbar h2{line-height:1.25;overflow-wrap:anywhere}
.letter-controls{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;flex-shrink:0;border-bottom:1px solid #d9e6da;background:#fff}
.letter-controls button,.letter-footer button{min-height:44px;min-width:44px;padding:8px 14px;border:1px solid #c5dbc8;border-radius:6px;background:#edf6ee;color:#205d25;font-weight:600;cursor:pointer}
.letter-controls button:hover:not(:disabled),.letter-footer button:hover:not([aria-disabled="true"]),.letter-close:hover{background:#dceedd}
.letter-controls button:disabled,.letter-footer button[aria-disabled="true"]{opacity:.4;cursor:default}
.letter-minus,.letter-plus{font-size:22px;line-height:1}
.letter-scale{min-width:48px;text-align:center;font-size:14px;color:#59685c;font-variant-numeric:tabular-nums}
.letter-body{flex:1;min-height:0;overflow:auto;padding:24px;background:#edf1ed;overscroll-behavior:contain}
.letter-sheet{width:100%;margin-inline:auto;background:white;box-shadow:0 3px 16px #24312826}
.letter-image{width:100%;max-width:none;height:auto}
.letter-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px;border-top:1px solid #d9e6da;flex-shrink:0;background:white}
.letter-position{font-size:14px;white-space:nowrap;color:#59685c}
.letter-dialog button:focus-visible,.letter-body:focus-visible{outline:3px solid #287d2e;outline-offset:-3px}
@media(max-width:620px){
 .letter-dialog{width:calc(100% - 16px);height:94dvh}
 .letter-toolbar{padding:12px;gap:10px}
 .letter-toolbar h2{font-size:17px}
 .letter-toolbar .eyebrow{font-size:10px;letter-spacing:1px}
 .letter-controls{padding:8px;gap:6px}
 .letter-body{padding:12px}
 .letter-footer{padding:10px 12px;gap:8px}
 .letter-footer button{padding:8px 10px;font-size:14px}
}
@media(max-width:380px){.letter-footer button span{display:none}}

/* Center the close label and icon without baseline-dependent offsets. */
.letter-close{display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.25;align-self:center}
.letter-close span{display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:0;font-size:0;position:relative;flex:0 0 20px}
.letter-close span::before,.letter-close span::after{content:"";position:absolute;left:2px;top:9px;width:16px;height:2px;border-radius:1px;background:currentColor;transform:rotate(45deg)}
.letter-close span::after{transform:rotate(-45deg)}
.contact-address .contact-label{font-size:14px;font-weight:600;color:#59685c;margin:20px 0 6px}.contact-address .contact-label:first-child{margin-top:0}

.contact-address .contact-route{display:inline-flex;align-items:center;min-height:44px;font-size:15px;font-weight:600;color:#287d2e;text-decoration:underline;text-underline-offset:4px;padding:8px 0}

/* Unified contact typography and spacing. */
#contacts .contact-address{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin-top:26px}
#contacts .contact-item{padding:16px 0;border-bottom:1px solid #d9e6da;min-width:0}
#contacts .contact-item:first-child{padding-top:0}
#contacts .contact-item:last-child{border-bottom:0;padding-bottom:0}
#contacts .contact-item p,#contacts .contact-item a{font-family:'Segoe UI',Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.5;margin:0;color:#243128;overflow-wrap:anywhere}
#contacts .contact-item .contact-label{font-size:14px;font-weight:600;color:#59685c;margin:0 0 6px}
#contacts .contact-item a{display:table;min-height:36px;padding:6px 0}
#contacts .contact-item a:hover{color:#287d2e;text-decoration:underline;text-underline-offset:4px}
#contacts .contact-location .contact-route{display:inline-flex;align-items:center;justify-content:center;min-height:48px;max-width:100%;margin-top:14px;padding:12px 20px;background:#edf6ee;border:1px solid #d2e6d4;border-radius:6px;color:#205d25;font-size:16px;font-weight:600;text-decoration:none;text-align:center}
#contacts .contact-location .contact-route:hover{background:#dceedd;border-color:#b8d8bc;text-decoration:none}
#contacts .contact-location .contact-route:active{background:#cce3ce}
@media(max-width:620px){#contacts .contact-item a{min-height:44px}#contacts .contact-location .contact-route{width:100%;min-height:48px}}
/* Compact contact grid within the contact column. */
#contacts .contact-address{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;margin-top:24px}
#contacts .contact-item{padding:14px 0}
#contacts .contact-item:nth-child(-n+2){padding-top:0}
#contacts .contact-location{grid-column:1/-1}
@media(max-width:1100px) and (min-width:901px){#contacts .contact-address{grid-template-columns:1fr}#contacts .contact-item:nth-child(2){padding-top:14px}}
@media(max-width:620px){
 #contacts .contact-address{grid-template-columns:1fr;margin-top:20px}
 #contacts .contact-item{padding:10px 0}
 #contacts .contact-item:nth-child(2){padding-top:10px}
 #contacts .contact-item .contact-label{margin-bottom:3px}
 #contacts .contact-location .contact-route{margin-top:10px}
}
/* Optional office map: no third-party frame until requested. */
.office-map{grid-column:1/-1;height:330px;border:1px solid #d9e6da;border-radius:12px;overflow:hidden;background:#f3f9f3}
.office-map-preview{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
.office-map-preview[hidden],.office-map-frame[hidden]{display:none}
.office-map-icon{width:34px;height:34px;color:#287d2e;margin-bottom:12px;flex-shrink:0}
.office-map-preview h3{font-size:24px;margin:0 0 8px}
.office-map-preview p{font-size:15px;color:#59685c;margin:0 0 20px}
.office-map-frame,.office-map-frame iframe{width:100%;height:100%}
.office-map-frame iframe{display:block;border:0}
.office-map-caption{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:-48px;font-size:14px;color:#59685c}
.office-map-caption a{color:#287d2e;text-decoration:underline;text-underline-offset:4px;min-height:24px}
@media(max-width:900px){.office-map-caption{margin-top:-18px}}
@media(max-width:620px){.office-map{height:260px;border-radius:10px}.office-map-preview{padding:20px 16px}.office-map-preview h3{font-size:21px}.office-map-preview p{font-size:14px;margin-bottom:16px}.office-map-load{font-size:14px;padding:12px}.office-map-caption{margin-top:-12px;font-size:13px}.office-map-caption a{display:inline-flex;align-items:center;min-height:44px}}
/* Compact footer with navigation and company details. */
.site-footer{background:#fff;color:#59685c;border-top:1px solid #d9e6da;padding:32px 0}
.site-footer .footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px;padding-left:38px;padding-right:38px;align-items:start}
.site-footer .brand.compact{width:120px;height:85px;margin-bottom:14px}
.site-footer .brand.compact img{width:292.38px;left:-85.02px;top:-90px}
.site-footer p{font-size:14px;line-height:1.6;margin:0 0 8px}
.site-footer .footer-copyright{margin-top:12px;font-size:13px}
.site-footer .footer-nav{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.site-footer .footer-nav a{display:inline-flex;align-items:center;min-height:32px;padding:4px 0;font-size:14px;color:#287d2e;text-decoration:none}
.site-footer .footer-nav a:hover{text-decoration:underline;text-underline-offset:4px}
.site-footer .footer-owner{color:#243128;font-weight:600}
.site-footer .footer-details{padding-top:10px;overflow-wrap:anywhere}
@media(max-width:620px){.site-footer{padding:28px 0}.site-footer .footer-grid{grid-template-columns:1fr;gap:24px}.site-footer .brand.compact{width:110px;height:78px}.site-footer .brand.compact img{width:268.015px;left:-77.935px;top:-82.5px}.site-footer .footer-details{padding-top:0}}
@media(max-width:620px){.site-footer .footer-grid{grid-template-columns:1fr;gap:24px;padding-left:20px;padding-right:20px}}

/* Equal visible gaps around footer content, rather than empty grid columns. */
@media(min-width:901px){
 .site-footer .footer-grid{display:flex;justify-content:space-evenly;align-items:flex-start;gap:0;padding-left:0;padding-right:0}
 .site-footer .footer-company,.site-footer .footer-nav,.site-footer .footer-details{flex:0 1 auto;min-width:0;max-width:32%}
 .site-footer .footer-details{padding-top:0}
 .site-footer .footer-nav a{padding-top:0;padding-bottom:0;min-height:32px}
}
@media(min-width:621px) and (max-width:900px){
 .site-footer .footer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-left:24px;padding-right:24px}
 .site-footer .footer-details{padding-top:0}
}
/* Align footer content to the same container edges as the main sections. */
@media(min-width:901px){
 .site-footer .footer-grid{justify-content:space-between;padding-left:38px;padding-right:38px;gap:24px}
}
@media(min-width:621px) and (max-width:900px){
 .site-footer .footer-grid{padding-left:25px;padding-right:25px}
}
/* Contact form and legal documents */
.form .form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form .form-consent{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;font-weight:400}
.form .form-consent input{width:18px;height:18px;flex:0 0 18px;margin:2px 0 0;accent-color:#287d2e}
.form a,.footer-legal a,.legal-page a{color:#287d2e;text-decoration:underline;text-underline-offset:3px}
.form .form-privacy{font-size:13px;line-height:1.5;margin:0;color:#526257}
.form-status{font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.form-status:empty{display:none}.form button:disabled{opacity:.7;cursor:default}
.footer-legal{display:flex;flex-wrap:wrap;gap:12px 28px;padding-top:12px;padding-bottom:28px;font-size:13px}
.legal-page{max-width:900px;margin:auto;padding:40px 24px 64px;line-height:1.7;color:#243128;font-family:"Segoe UI",sans-serif}
.legal-page h1{font-size:clamp(28px,5vw,42px);line-height:1.15}.legal-page h2{font-size:23px;margin-top:32px}
.legal-page p,.legal-page li{max-width:75ch}.legal-page .legal-meta{color:#526257;font-size:14px}

.membership-card{grid-column:1/-1;display:grid;grid-template-columns:200px 1fr;align-items:center;gap:30px;padding:26px;background:#fff;border:1px solid #d9e6da;border-radius:14px}.membership-card h3{font-size:23px;line-height:1.25;margin:7px 0 12px}.membership-card .eyebrow{margin:0}.membership-preview img{display:block;width:100%;height:auto;border-radius:5px}.membership-card .btn{margin-top:4px}body.tpp-open{overflow:hidden}#tpp-dialog{padding:0;max-width:1100px;width:calc(100% - 32px);max-height:92dvh;border-radius:14px;overflow:hidden}#tpp-dialog[open]{display:flex;flex-direction:column}.tpp-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;background:#edf6ee}.tpp-toolbar h2{font-size:23px;margin:0}.tpp-toolbar .eyebrow{margin:0 0 6px}.tpp-toolbar button{flex-shrink:0;min-height:44px}.tpp-body{padding:20px;overflow:auto;min-height:0}.tpp-body img{display:block;width:100%;height:auto}.tpp-body p{margin-bottom:0}@media(max-width:620px){.membership-card{grid-template-columns:1fr;padding:20px;gap:18px}.membership-preview{max-width:220px}.membership-card h3{font-size:21px}.tpp-toolbar{padding:12px;gap:10px}.tpp-toolbar h2{font-size:18px}.tpp-toolbar .eyebrow{font-size:10px}.tpp-toolbar button{padding:8px 12px}.tpp-body{padding:10px}}

/* Footer social links: append more anchors to extend the list. */
.site-footer .footer-socials{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.site-footer .footer-socials a{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:7px 10px;border:1px solid #cdded0;border-radius:10px;background:#fff;color:#287d30;font-size:12px;font-weight:600;line-height:1.2;transition:background .15s,border-color .15s}
.site-footer .footer-socials svg{width:24px;height:24px;flex:none}
.site-footer .footer-socials a:hover{background:#eaf5eb;border-color:#35a13c}
.site-footer .footer-socials a:focus-visible{outline:3px solid #35a13c;outline-offset:3px}

/* Compact monochrome social icons. */
.site-footer .footer-socials{gap:10px}
.site-footer .footer-socials a{width:44px;height:44px;min-height:44px;flex:0 0 44px;padding:10px;border:0;border-radius:50%;background:#eaf5eb;color:#287d30}
.site-footer .footer-socials a:hover{background:#d5ead8;color:#205f27}
.site-footer .footer-socials svg{width:24px;height:24px}

/* Brand-color comparison */
.site-footer .footer-socials a{background:#f1f3f5}
.site-footer .footer-socials a:hover{background:#e4e8ed}

/* Contact route and the approved brand-color social links. */
#contacts .contact-location-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;margin-top:14px}
#contacts .contact-location-actions .contact-route{margin-top:0;width:auto}
#contacts .contact-socials{display:flex;align-items:center;gap:10px;flex:none}
#contacts .contact-socials a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;flex:0 0 44px;padding:10px;border:0;border-radius:50%;background:#f1f3f5;text-decoration:none}
#contacts .contact-socials a:hover{background:#e4e8ed}
#contacts .contact-socials a:focus-visible{outline:3px solid #35a13c;outline-offset:3px}
#contacts .contact-socials svg{display:block;width:24px;height:24px;flex:none}

#contacts .contact-social-item{grid-column:1/-1}
#contacts .contact-social-item .contact-socials{margin-top:10px}
/* Match the homepage form to the adjacent contact column. */
@media(min-width:901px){
 #contacts .contact-grid{align-items:stretch}
 #contacts #contact-form{align-self:stretch;display:flex;flex-direction:column;height:auto}
 #contacts #contact-form>label:has(textarea){display:flex;flex-direction:column;flex:1}
 #contacts #contact-form textarea{flex:1;min-height:120px}
}
