@font-face{font-family:Cleanvia;src:local('Avenir Next');font-display:swap}
:root{--ink:#103d4b;--navy:#143c56;--muted:#627476;--teal:#267b7b;--mint:#d5eddd;--paper:#fafbf8;--line:#dce5df;--white:#fff;--radius:8px;--max:1280px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Cleanvia,'Avenir Next',Avenir,'Segoe UI',sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a,button{touch-action:manipulation}img{display:block;max-width:100%}svg{flex-shrink:0}.icon{width:23px;height:23px;vertical-align:middle}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500;line-height:1.12;letter-spacing:-.045em}h1{font-size:clamp(48px,5.3vw,78px)}h2{font-size:clamp(32px,3.1vw,45px)}h3{font-size:23px;letter-spacing:-.025em}p{color:var(--muted)}h1 span,h2 span{color:var(--teal)}::selection{background:var(--mint);color:var(--ink)}:focus-visible{outline:3px solid #287d7d;outline-offset:5px}button:focus-visible{outline-offset:3px}[hidden]{display:none!important}.wrap{width:calc(100% - 112px);max-width:var(--max);margin-inline:auto}.section{padding-block:100px}.compact{padding-top:25px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.17em;color:var(--ink);display:flex;align-items:center;gap:10px;margin-bottom:24px}.eyebrow>span{width:6px;height:6px;background:var(--teal);border-radius:50%;flex-shrink:0}.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:13px 24px;background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:5px;font-size:13px;font-weight:600;letter-spacing:.01em;transition:background .2s,transform .2s;white-space:nowrap}.button .icon{width:19px;height:19px}.button:hover{background:#226275;transform:translateY(-2px)}.button.small{min-height:44px;padding:10px 19px;gap:18px;font-size:12px}.button.light{background:var(--mint);border-color:var(--mint);color:var(--ink)}.button.light:hover{background:#e9f6ee}.button.outline{background:transparent;color:var(--ink);border-color:#98b8ac}.button.outline:hover{background:#d7e9dd}.underlink{display:inline-flex;align-items:center;gap:17px;font-size:13px;font-weight:600;padding:8px 0;border-bottom:1px solid #a5b7b2}.underlink .icon{width:17px;height:17px}.underlink:hover{color:var(--teal);border-color:var(--teal)}.topbar{height:32px;background:var(--ink);color:#e3eeea;font-size:10px;letter-spacing:.04em}.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:100%}.topbar a{display:flex;align-items:center;gap:8px}.topbar .icon{width:12px;height:12px}.header{position:sticky;top:0;z-index:20;background:rgba(250,251,248,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.header-inner{height:90px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:9px;flex-shrink:0}.brand-mark{width:44px;height:47px;background-image:url('/assets/presentation-1.jpg');background-size:583px 328px;background-position:-32px -25px;mix-blend-mode:multiply}.brand-name{font-size:23px;letter-spacing:.035em;font-weight:800;line-height:1.2;color:var(--navy)}.brand-name>span{display:block;font-size:7px;font-weight:600;letter-spacing:.19em;margin-top:3px}.header nav{display:flex;align-items:center;gap:28px}.header nav>a:not(.button){font-size:12px;white-space:nowrap}.header nav>a:hover,.header nav>a[aria-current]{color:var(--teal)}.header nav .button:hover{color:white}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.02fr 1fr;gap:40px;padding-top:44px;padding-bottom:58px;align-items:center}.hero-copy{padding:20px 0 30px}.hero .eyebrow{font-size:9px;margin-bottom:28px}.hero h1{line-height:1.06;letter-spacing:-.057em}.hero-description{font-size:20px;line-height:1.55;margin-top:28px;color:var(--ink)}.hero-detail{font-size:13px;margin-top:15px;line-height:1.8}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:30px}.hero-proof{display:flex;flex-wrap:wrap;gap:24px;font-size:10px;margin-top:38px;color:var(--muted)}.hero-proof span{display:flex;align-items:center;gap:6px}.hero-proof .icon{width:14px;height:14px;color:var(--teal)}.hero-visual{position:relative;height:560px}.photo{overflow:hidden;border-radius:7px;background:#e4eceb;position:relative}.photo img{height:100%;width:100%;object-fit:cover;object-position:right center}.hero-photo{height:100%;border-radius:7px 7px 84px 7px}.hero-photo img{object-position:100% center}.image-label{position:absolute;top:22px;left:22px;background:rgba(250,251,248,.94);padding:10px 13px;display:flex;gap:9px;align-items:center;font-size:8px;font-weight:700;letter-spacing:.14em;border-radius:4px}.status-dot{width:6px;height:6px;border-radius:50%;background:#559575}.floating-note{position:absolute;bottom:48px;left:-28px;background:var(--paper);box-shadow:0 12px 40px #123b4a15;display:flex;align-items:center;gap:16px;padding:19px 23px;border:1px solid #e6eae1;border-radius:6px}.floating-note>.icon{width:35px;height:35px;color:var(--teal);padding:6px;background:#e6f0e6;border-radius:50%}.floating-note strong{display:block;font-size:12px;font-weight:600}.floating-note span{font-size:10px;color:var(--muted)}.image-index{position:absolute;bottom:-25px;right:8px;font-size:8px;letter-spacing:.16em;color:var(--muted)}.sector-band{border-block:1px solid var(--line);background:#f0f4ee}.sector-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:24px}.sector-band span{font-size:9px;font-weight:600;letter-spacing:.13em;color:var(--muted)}.sector-band p{display:flex;align-items:center;gap:30px;font-size:16px;letter-spacing:-.02em;color:var(--ink)}.sector-band i{font-style:normal;color:#88a69a}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:38px}.section-heading .eyebrow{margin-bottom:18px}.section-heading>p,.section-heading>div>p:not(.eyebrow){font-size:13px;line-height:1.8}.section-heading .underlink{margin-top:17px}.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.service-card{display:flex;flex-direction:column;justify-content:space-between;gap:30px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:28px 23px 21px;min-height:295px;transition:background .2s,border-color .2s,transform .2s}.service-card:hover{background:#edf5ef;border-color:#9bbdb0;transform:translateY(-4px)}.card-top{display:flex;justify-content:space-between;align-items:flex-start}.card-top>.icon{width:32px;height:32px;color:var(--teal)}.card-top>span{font-size:10px;color:#859891}.service-card h3{font-size:22px;margin-bottom:12px}.service-card p{font-size:12px;line-height:1.8}.card-link{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:16px;font-size:10px;font-weight:600}.card-link .icon{width:17px;height:17px}.service-bottom{display:flex;justify-content:space-between;gap:22px;font-size:10px;margin-top:26px;color:var(--muted)}.service-bottom span{display:flex;align-items:center;gap:10px}.service-bottom .icon{width:17px;height:17px}.service-bottom a{display:flex;align-items:center;gap:10px;color:var(--ink);white-space:nowrap}.care-section{background:#edf3ed;padding-block:78px}.care-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.care-visual{height:540px;position:relative;padding-left:20px}.care-photo{height:100%;border-radius:70px 6px 6px 6px}.care-photo img{object-position:100% center}.vertical-caption{position:absolute;left:-7px;bottom:0;writing-mode:vertical-rl;transform:rotate(180deg);font-size:8px;letter-spacing:.18em}.care-copy h2{font-size:46px;margin-bottom:23px}.care-copy>p:not(.eyebrow){font-size:13px;line-height:1.9}.care-points{margin:26px 0}.care-points>div{display:flex;gap:16px;margin:20px 0}.care-points .icon{color:var(--teal);width:23px;height:23px;margin-top:4px}.care-points span{font-size:12px;color:var(--muted)}.care-points strong{display:block;font-size:13px;color:var(--ink);font-weight:600;margin-bottom:2px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:50px}.step-number{display:block;font-size:13px;color:var(--teal);padding-bottom:25px;border-bottom:1px solid #bdcdc3;position:relative;margin-bottom:27px}.step-number:after{content:'';position:absolute;bottom:-4px;left:0;background:var(--teal);width:7px;height:7px;border-radius:50%}.steps h3{font-size:21px;margin-bottom:14px}.steps p{font-size:12px;line-height:1.9;max-width:240px}.jobs-banner{display:flex;align-items:center;gap:25px;padding:37px;background:var(--mint);border-radius:7px}.jobs-symbol>.icon{width:55px;height:55px;stroke-width:1}.jobs-banner .eyebrow{font-size:8px;margin-bottom:9px}.jobs-banner h2{font-size:27px;margin-bottom:9px}.jobs-banner p:not(.eyebrow){font-size:12px}.jobs-banner>.button{margin-left:auto;font-size:12px}.faq-preview{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.faq-preview .underlink{margin-top:25px}.faq-item{border-bottom:1px solid var(--line)}.faq-item:first-child{border-top:1px solid var(--line)}.faq-item summary{list-style:none;cursor:pointer;padding:23px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:14px;font-weight:500}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary>.icon{width:19px;height:19px;transition:transform .2s;color:var(--teal)}.faq-item[open] summary>.icon{transform:rotate(45deg)}.faq-item p{padding:0 35px 24px 0;font-size:13px;line-height:1.9;max-width:750px}.cta{background:var(--ink);color:#f5f8f0;display:flex;justify-content:space-between;align-items:center;padding:55px;gap:35px;border-radius:7px;margin-bottom:80px;position:relative;overflow:hidden}.cta:before{content:'';position:absolute;right:12%;width:300px;height:300px;border:1px solid #6b928355;border-radius:50%;pointer-events:none}.cta .eyebrow{color:#bed5c9;font-size:8px;margin-bottom:15px}.cta .eyebrow span{background:#b8d9c5}.cta h2{font-size:36px;line-height:1.2}.cta .button{position:relative;font-size:12px}.footer{background:#f0f3ed;border-top:1px solid var(--line);padding:56px 0 25px}.footer-top{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:50px;padding-bottom:50px}.footer .brand{margin-bottom:17px}.footer-top p{font-size:13px;line-height:1.85}.footer-top h2{font-size:11px;font-weight:700;letter-spacing:.04em;margin-bottom:21px}.footer-top>div>a:not(.brand){display:block;font-size:12px;margin-bottom:10px;color:var(--muted)}.footer-top .address{font-size:11px;max-width:290px;margin-top:15px}.footer-bottom{padding-top:24px;border-top:1px solid #d5dfd4;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:9px;color:var(--muted)}.footer-bottom>div{display:flex;gap:21px;flex-wrap:wrap}.text-button{border:0;padding:0;background:transparent;color:inherit;font-size:inherit}.footer a:hover,.text-button:hover{text-decoration:underline}.page-intro{padding-block:72px 45px}.page-intro h1{max-width:1000px}.page-intro>p:not(.eyebrow){font-size:17px;max-width:660px;margin-top:24px;line-height:1.8}.page-intro>.button{margin-top:30px}.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px}.filter-button{border:1px solid var(--line);background:transparent;border-radius:100px;padding:11px 19px;font-size:12px;color:var(--ink)}.filter-button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.all-services{row-gap:20px}.breadcrumb{display:inline-block;font-size:12px;color:var(--muted);margin-bottom:26px}.service-detail{display:grid;grid-template-columns:.5fr 1fr;gap:70px}.detail-icon{background:var(--mint);min-height:300px;border-radius:8px;display:grid;place-items:center}.detail-icon>.icon{width:120px;height:120px;stroke-width:.8}.service-detail p{margin-top:25px;font-size:14px}.check-list{padding:0;list-style:none}.check-list li{display:flex;align-items:center;gap:12px;margin:15px 0;font-size:14px}.check-list .icon{width:18px;color:var(--teal)}.note{font-size:12px!important;color:var(--muted);padding:17px 20px;background:#edf3ed;border-left:2px solid #86ada0}.related-services{grid-template-columns:repeat(3,1fr)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.team-photo{height:540px}.about-grid h2{margin-bottom:25px}.about-grid p:not(.eyebrow){font-size:14px;margin-bottom:20px}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.values-grid article{padding:30px 0;border-top:1px solid var(--line)}.values-grid .icon{width:33px;height:33px;color:var(--teal);margin-bottom:20px}.values-grid h3{margin-bottom:17px}.values-grid p{font-size:14px}.media-caption{font-size:10px;margin-top:30px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-block:70px 90px;align-items:start}.contact-copy h1{font-size:clamp(42px,4.3vw,62px)}.contact-copy>p:not(.eyebrow){font-size:14px;max-width:420px;margin-top:26px}.contact-methods{margin-top:35px}.contact-methods>a,.contact-methods>div{display:flex;align-items:flex-start;gap:17px;padding:22px 0;border-bottom:1px solid var(--line)}.contact-methods .icon{width:21px;height:21px;margin-top:5px;color:var(--teal)}.contact-methods span{display:block}.contact-methods>a>.icon:last-child{margin-left:auto;width:17px}.contact-methods small{font-size:10px;display:block;color:var(--muted);margin-bottom:5px}.contact-methods strong{font-size:14px;font-weight:500;line-height:1.8;display:block}.contact-methods span>span{font-size:11px;color:var(--muted)}.contact-copy .contact-footnote{font-size:11px!important;margin-bottom:20px}.email-link{overflow-wrap:anywhere}.request-form{background:#fff;border:1px solid var(--line);border-radius:8px;padding:32px;box-shadow:0 8px 35px #143c5605}.form-heading{display:flex;gap:16px;align-items:center;margin-bottom:28px}.form-step{width:42px;height:42px;border-radius:50%;background:#edf5ee;display:grid;place-items:center;flex-shrink:0}.form-step .icon{width:20px;height:20px}.form-heading h2{font-size:23px;letter-spacing:-.035em}.form-heading p{font-size:10px;margin-top:5px}.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:19px 15px}.field{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:500;min-width:0}.field>span>span{color:var(--teal)}.field input,.field select,.field textarea,.faq-search input{border:1px solid #d0ddd5;background:#fcfdfa;color:var(--ink);border-radius:4px;padding:11px 12px;width:100%;font-size:13px;min-height:45px}.field select{padding-right:24px}.field textarea{resize:vertical;min-height:115px}.field input::placeholder,.field textarea::placeholder{color:#7c8783;font-size:12px}.field-hint{font-size:9px;color:var(--muted);font-weight:400;line-height:1.7}.full{grid-column:1/-1}.consent{display:flex;align-items:flex-start;gap:10px;font-size:10px;color:var(--muted);margin:23px 0 17px;line-height:1.8}.consent input{margin:3px 0 0;min-width:17px;height:17px;accent-color:var(--ink)}.consent a{text-decoration:underline;color:var(--ink)}.full-button{width:100%;justify-content:space-between}.form-security{display:flex;justify-content:center;align-items:center;gap:6px;font-size:9px;margin-top:13px}.form-security .icon{width:12px;height:12px}.form-status:empty{display:none}.form-status{padding:13px;background:#fdf0e8;color:#773c27;font-size:12px;margin-bottom:15px;border-radius:4px}.form-status.success{background:#e6f3e6;color:#1f563c}.honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.careers-layout{display:grid;grid-template-columns:.8fr 1fr;gap:85px;align-items:start}.interest-note{background:#eaf2e9;padding:32px;border-radius:7px;margin-bottom:32px}.interest-note>.icon{width:40px;height:40px;stroke-width:1;margin-bottom:25px}.interest-note h2{font-size:30px;margin-bottom:20px}.interest-note p{font-size:14px;margin-bottom:18px}.pill{display:inline-block;font-size:10px;border:1px solid #acbfae;padding:6px 12px;border-radius:50px}.career-steps{font-size:13px;color:var(--muted);padding-left:21px;line-height:2.4;margin-block:20px}.faq-page{max-width:900px;padding-bottom:90px}.faq-search{display:flex;align-items:center;gap:14px;border:1px solid var(--line);padding:8px 17px;border-radius:5px;margin-bottom:30px;background:#fff}.faq-search input{border:0;background:transparent;font-size:15px}.faq-search .icon{color:var(--teal)}.faq-page .faq-item summary{font-size:17px;padding-block:26px}.faq-page .faq-item p{font-size:14px}.legal-intro h1{font-size:60px}.legal-date{display:block;font-size:11px;color:var(--muted);margin-top:20px}.legal-layout{display:grid;grid-template-columns:240px 1fr;gap:70px;padding-block:20px 100px}.legal-layout aside{position:sticky;top:125px;align-self:start}.legal-layout aside>p{font-size:9px;letter-spacing:.13em;margin-bottom:15px}.legal-layout aside>a{font-size:12px;display:block;padding-block:7px;color:var(--muted)}.legal-content{max-width:750px}.legal-notice{padding:17px 20px;border:1px solid #d7dac6;background:#f4f3e8;border-radius:5px;color:#696544;font-size:12px;margin-bottom:32px}.legal-content section{margin-bottom:36px;scroll-margin-top:130px}.legal-content h2{font-size:25px;letter-spacing:-.03em;margin-bottom:18px}.legal-content p{font-size:14px;line-height:1.95;margin-bottom:15px}.legal-content a{text-decoration:underline}.error-page{text-align:center;padding-block:65px 100px}.error-page .eyebrow{justify-content:center}.error-number{font-size:145px;line-height:1;color:#a9cabb;display:flex;justify-content:center;align-items:center;gap:10px;letter-spacing:-.1em}.error-number>.icon{width:110px;height:110px;stroke-width:.7}.error-page h1{font-size:49px;margin-top:30px}.error-page>p:not(.eyebrow){margin-top:22px;font-size:14px}.error-page .hero-actions{justify-content:center}.cookie-dialog{border:1px solid var(--line);border-radius:12px;padding:27px;max-width:440px;width:calc(100% - 32px);color:var(--ink);box-shadow:0 20px 90px #123b4a35}.cookie-dialog::backdrop{background:#123b4a50;backdrop-filter:blur(3px)}.cookie-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.cookie-header>.icon{color:var(--teal)}.icon-button{border:0;background:transparent;padding:7px;color:var(--ink);line-height:1}.cookie-dialog h2{font-size:29px;margin-bottom:18px}.cookie-dialog p{font-size:13px;margin-bottom:14px}.cookie-dialog a{text-decoration:underline}.cookie-choice{display:flex;justify-content:space-between;font-size:11px;background:#edf4ec;padding:13px;border-radius:4px;margin:20px 0}.cookie-choice strong{color:#31634c;font-weight:500}.cookie-dialog>.button{width:100%;justify-content:space-between}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link:focus{position:fixed;top:10px;left:10px;z-index:100;padding:15px;background:var(--ink);color:white}
.hero-photo img{transform:scale(1.3);transform-origin:right center}.care-photo img{transform:scale(1.5);transform-origin:right center}.team-photo img{transform:scale(1.35);transform-origin:right center}
@media(min-width:1450px){.hero{gap:65px}.hero-visual{height:620px}.hero h1{font-size:82px}}
@media(max-width:1150px){.wrap{width:calc(100% - 64px)}.header nav{gap:18px}.header nav>a:not(.button){font-size:11px}.brand-name{font-size:20px}.hero{gap:25px}.hero-visual{height:520px}.hero h1{font-size:62px}.hero-actions{gap:17px}.hero-actions .button{padding-inline:19px;font-size:12px}.hero-actions .underlink{font-size:11px}.sector-band p{gap:19px;font-size:14px}.care-grid{gap:55px}.care-copy h2{font-size:41px}.care-visual{height:530px}.service-card{padding:23px 18px}.service-card h3{font-size:21px}.jobs-banner{padding:28px;gap:20px}.jobs-banner h2{font-size:24px}.jobs-symbol{display:none}.contact-layout,.careers-layout{gap:40px}.request-form{padding:25px}.contact-methods strong{font-size:12px}.cta{padding:40px}.cta h2{font-size:31px}.footer-top{gap:30px}}
@media(max-width:900px){.header-inner{height:78px}.menu-toggle{display:flex;border:1px solid var(--line);background:transparent;border-radius:4px;width:42px;height:42px;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--ink)}.menu-toggle span{width:19px;height:1.5px;background:currentColor;transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.75px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}.header nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:25px 32px;box-shadow:0 12px 20px #143c5610;flex-direction:column;align-items:stretch;gap:0}.header nav.is-open{display:flex}.header nav>a:not(.button){font-size:15px;padding:13px 0}.header nav .button{margin-top:14px}.hero h1{font-size:53px}.hero-visual{height:500px}.hero-description{font-size:18px}.hero .eyebrow{font-size:8px;letter-spacing:.1em}.hero-proof{gap:10px;font-size:9px}.floating-note{left:-16px;padding:15px}.floating-note strong{font-size:10px}.floating-note span{font-size:9px}.sector-band .wrap{align-items:flex-start;flex-direction:column;gap:12px}.sector-band p{width:100%;justify-content:space-between;gap:12px}.services-grid{grid-template-columns:repeat(2,1fr)}.section{padding-block:70px}.compact{padding-top:20px}.section-heading{gap:20px}.section-heading>div:last-child{max-width:48%}.service-card{min-height:275px;padding:25px}.service-bottom{flex-direction:column;gap:14px}.care-grid{gap:35px}.care-copy h2{font-size:35px}.care-visual{height:540px;padding-left:10px}.care-points>div{gap:12px}.steps{gap:20px}.steps h3{font-size:19px}.jobs-banner{flex-wrap:wrap}.jobs-banner>.button{margin-left:0}.faq-preview{gap:35px}.cta{gap:30px;padding:33px}.cta h2{font-size:27px}.cta .button{font-size:10px;padding-inline:16px;gap:15px}.contact-layout{gap:30px;grid-template-columns:.9fr 1.1fr}.contact-copy h1{font-size:42px}.form-fields{grid-template-columns:1fr}.careers-layout{gap:30px}.about-grid{gap:35px}.legal-layout{grid-template-columns:190px 1fr;gap:35px}.footer-bottom{align-items:flex-start;flex-direction:column}.footer-top{grid-template-columns:1fr 1fr}.footer-top>div:first-child{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}.footer-top>div:first-child p{font-size:12px}.footer .brand{margin:0}}
@media(max-width:640px){.wrap{width:calc(100% - 40px)}.topbar{height:28px;font-size:8px}.header-inner{height:72px}.header nav{top:72px;padding-inline:20px}.brand-name{font-size:22px}.brand-mark{width:39px;height:44px;background-size:533px 300px;background-position:-29px -23px}.hero{grid-template-columns:1fr;padding-top:34px;gap:30px;padding-bottom:48px}.hero-copy{padding:0}.hero .eyebrow{font-size:8px;letter-spacing:.12em;margin-bottom:23px}.hero h1{font-size:clamp(47px,11.7vw,72px)}.hero-description{margin-top:23px;font-size:18px}.hero-detail{font-size:12px;margin-top:12px}.hero-actions{margin-top:25px;gap:20px}.hero-actions .button{font-size:12px;gap:20px;padding-inline:18px}.hero-actions .underlink{font-size:11px}.hero-proof{font-size:9px;margin-top:25px;gap:22px}.hero-visual{height:390px;margin-left:8px}.hero-photo{border-bottom-right-radius:65px}.hero-photo img{object-position:right center}.floating-note{bottom:30px;left:-8px;padding:15px 18px}.floating-note strong{font-size:12px}.floating-note span{font-size:10px}.image-label{top:16px;left:16px;font-size:7px}.image-index{font-size:7px;bottom:-22px}.sector-band .wrap{padding-block:20px;gap:12px}.sector-band span{font-size:8px}.sector-band p{font-size:11px;gap:7px;flex-wrap:wrap;justify-content:flex-start;column-gap:10px}.section{padding-block:56px}.compact{padding-top:10px}.section-heading{display:block;margin-bottom:28px}.section-heading>div:last-child{max-width:none}.section-heading>p,.section-heading>div>p:not(.eyebrow){margin-top:20px;font-size:12px}.section-heading h2{font-size:33px}.eyebrow{font-size:8px;letter-spacing:.13em;margin-bottom:19px}.services-grid{gap:12px}.service-card{padding:20px 17px 17px;min-height:278px;gap:23px}.service-card h3{font-size:20px}.service-card p{font-size:11px;line-height:1.75}.card-top>.icon{width:27px;height:27px}.card-top>span{font-size:8px}.card-link{font-size:9px;padding-top:13px;gap:8px}.card-link .icon{width:15px;height:15px}.service-bottom{font-size:10px;line-height:1.8}.service-bottom>span{align-items:flex-start}.service-bottom>span .icon{margin-top:3px}.care-section{padding-block:50px}.care-grid{grid-template-columns:1fr;gap:35px}.care-visual{height:430px;padding-left:16px;margin-right:6px}.care-photo{border-top-left-radius:60px}.care-copy h2{font-size:39px;margin-bottom:20px}.care-copy>p:not(.eyebrow){font-size:13px}.care-points strong{font-size:13px}.care-points span{font-size:12px}.steps{grid-template-columns:1fr 1fr;gap:30px 24px;margin-top:32px}.step-number{padding-bottom:17px;margin-bottom:22px}.steps h3{font-size:21px}.steps p{font-size:12px}.jobs-banner{padding:26px;gap:20px}.jobs-banner h2{font-size:27px;line-height:1.2}.jobs-banner .eyebrow{font-size:7px;line-height:1.8}.jobs-banner p:not(.eyebrow){font-size:12px}.jobs-banner .button{min-height:45px;font-size:11px}.faq-preview{grid-template-columns:1fr;gap:28px}.faq-preview h2{font-size:36px}.faq-preview .underlink{margin-top:17px}.faq-item summary{font-size:13px;padding-block:20px}.faq-item p{font-size:12px}.cta{display:block;padding:29px;margin-bottom:50px}.cta h2{font-size:30px}.cta .eyebrow{font-size:7px}.cta .button{margin-top:28px;font-size:11px;gap:24px}.cta:before{right:-100px;top:-90px}.footer{padding-top:40px}.footer-top{gap:30px 20px;padding-bottom:35px;grid-template-columns:.8fr 1.2fr}.footer-top>div:first-child{display:block}.footer-top>div:first-child p{margin-top:16px;font-size:12px}.footer-top h2{font-size:10px;margin-bottom:17px}.footer-top>div>a:not(.brand){font-size:11px}.footer-top .address{font-size:10px}.footer-bottom{font-size:8px;gap:15px}.footer-bottom>div{gap:18px}.page-intro{padding-block:42px 30px}.page-intro h1{font-size:44px}.page-intro>p:not(.eyebrow){font-size:14px;margin-top:21px}.filter-bar{gap:8px;margin-bottom:24px}.filter-button{font-size:10px;padding:9px 13px}.service-detail{grid-template-columns:1fr;gap:30px}.detail-icon{min-height:190px}.detail-icon>.icon{width:85px;height:85px}.service-detail h2{font-size:31px}.service-detail p{font-size:13px}.check-list li{font-size:13px}.related-services .service-card:last-child{grid-column:1/-1}.about-grid{grid-template-columns:1fr;gap:30px}.team-photo{height:430px}.about-grid h2{font-size:33px}.values-grid{grid-template-columns:1fr;gap:0}.values-grid article{padding-block:25px}.values-grid p{font-size:13px}.contact-layout{grid-template-columns:1fr;gap:34px;padding-block:40px 55px}.contact-copy h1{font-size:47px}.contact-copy>p:not(.eyebrow){font-size:13px}.contact-methods{margin-top:22px}.contact-methods>a,.contact-methods>div{padding-block:17px}.contact-methods strong{font-size:13px}.request-form{padding:23px 20px}.form-heading h2{font-size:22px}.form-fields{grid-template-columns:1fr 1fr;gap:17px 12px}.field{font-size:10px}.field input,.field select,.field textarea{font-size:16px;padding-inline:9px}.field textarea::placeholder{font-size:13px}.consent{font-size:11px}.form-security{font-size:9px}.careers-layout{grid-template-columns:1fr;gap:28px}.interest-note{padding:26px}.interest-note h2{font-size:28px}.interest-note p{font-size:13px}.career-steps{font-size:12px}.faq-page .faq-item summary{font-size:14px}.faq-page .faq-item p{font-size:13px}.faq-search input{font-size:16px}.legal-intro h1{font-size:43px}.legal-layout{grid-template-columns:1fr;gap:25px;padding-block:10px 60px}.legal-layout aside{position:static;border-block:1px solid var(--line);padding:18px 0}.legal-layout aside>a{display:inline-block;margin-right:15px;font-size:11px}.legal-content h2{font-size:24px}.legal-content p{font-size:13px}.error-page{padding-block:40px 65px}.error-page h1{font-size:39px}.error-page>p:not(.eyebrow){font-size:13px}.error-number{font-size:110px}.error-number>.icon{width:80px;height:80px}.error-page .hero-actions{flex-direction:column}.desktop{display:none}}
@media(max-width:640px){.hero-photo img{transform:scale(1.08)}.care-photo img{transform:scale(1.12)}.team-photo img{transform:scale(1.1)}}
@media(max-width:370px){.wrap{width:calc(100% - 32px)}.hero h1{font-size:44px}.hero-actions{gap:12px}.hero-actions .button{font-size:11px;padding-inline:14px}.hero-actions .underlink{font-size:10px}.hero-visual{height:345px}.service-card{padding:18px 13px}.service-card h3{font-size:18px}.form-fields{grid-template-columns:1fr}.contact-copy h1{font-size:41px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.topbar,.header,.footer,.cookie-dialog,.button,.filter-bar,.request-form,.cta{display:none}.wrap{width:100%;max-width:none}body{background:white}.section{padding-block:25px}.page-intro{padding-block:20px}.legal-layout{display:block}.legal-layout aside{display:none}h1{font-size:35px}h2{font-size:25px}}

/* CLEANVIA's theme and interaction layer. Structural layout lives in style.css. */
:root {
  color-scheme: light;
  --ink: oklch(32% .055 225);
  --navy: oklch(34% .065 235);
  --muted: oklch(47% .025 215);
  --teal: oklch(44% .075 192);
  --paper: oklch(98% .008 150);
  --white: oklch(99.4% .004 150);
  --line: oklch(87% .017 165);
  --mint: oklch(91% .045 155);
  --surface: oklch(96% .016 155);
  --surface-hover: oklch(93% .026 155);
  --field: oklch(98% .007 155);
  --brand-deep: oklch(31% .053 223);
  --on-brand: oklch(97% .012 155);
  --accent-soft: oklch(89% .061 162);
  --button-bg: oklch(32% .055 225);
  --button-text: oklch(98% .006 155);
  --button-hover: oklch(40% .065 215);
  --warning-bg: oklch(96% .025 95);
  --warning-text: oklch(43% .044 86);
  --error-bg: oklch(96% .023 42);
  --error-text: oklch(43% .08 35);
  --success-bg: oklch(94% .035 153);
  --success-text: oklch(36% .06 156);
  --shadow: 0 20px 55px oklch(25% .04 220 / .07);
  --ease: cubic-bezier(.16, 1, .3, 1);
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --ink: oklch(93% .014 160);
  --navy: oklch(95% .014 165);
  --muted: oklch(75% .026 180);
  --teal: oklch(80% .085 169);
  --paper: oklch(20% .025 224);
  --white: oklch(24% .028 220);
  --line: oklch(36% .031 210);
  --mint: oklch(30% .045 185);
  --surface: oklch(23% .031 222);
  --surface-hover: oklch(29% .038 211);
  --field: oklch(21% .026 220);
  --brand-deep: oklch(17% .027 224);
  --button-bg: oklch(85% .075 160);
  --button-text: oklch(23% .04 214);
  --button-hover: oklch(92% .05 157);
  --warning-bg: oklch(29% .028 95);
  --warning-text: oklch(86% .052 92);
  --error-bg: oklch(29% .042 34);
  --error-text: oklch(88% .06 42);
  --success-bg: oklch(28% .042 160);
  --success-text: oklch(86% .055 158);
  --shadow: 0 20px 55px oklch(10% .02 220 / .25);
}
body { font-size:17px; background:var(--paper); color:var(--ink); }
p { color:var(--muted); }
h1,h2,h3 { font-weight:500; }
h1 { font-size:clamp(48px,6vw,88px); letter-spacing:-.055em; }
h2 { font-size:clamp(36px,3.7vw,54px); }
h3 { font-size:26px; }
.wrap { width:calc(100% - 96px); max-width:1320px; }
.section { padding-block:clamp(72px,8vw,120px); }
.compact { padding-top:30px; }
.eyebrow,.hero .eyebrow { font-size:12px; letter-spacing:.12em; margin-bottom:25px; }
.eyebrow>span { width:7px; height:7px; }
.topbar { height:38px; background:var(--brand-deep); color:var(--on-brand); font-size:12px; }
.topbar .icon { width:15px; height:15px; }
.header { background:var(--paper); backdrop-filter:none; transition:box-shadow .35s var(--ease); }
.header.is-scrolled { box-shadow:0 6px 30px oklch(15% .03 220 / .06); }
.header-inner { height:98px; gap:24px; }
.header nav { margin-left:auto; gap:25px; }
.header nav>a:not(.button) { font-size:14px; padding-block:14px; position:relative; }
.header nav>a:not(.button)::after { content:''; position:absolute; left:0; bottom:6px; height:2px; width:100%; background:var(--teal); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
.header nav>a:not(.button):hover::after,.header nav>a[aria-current]::after { transform:scaleX(1); }
.header nav .button:hover { color:var(--button-text); }
.brand-name { font-size:25px; }
.brand-name>span { font-size:8px; }
.header-controls { display:flex; gap:10px; align-items:center; }
.theme-toggle { width:48px; height:48px; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--ink); display:grid; place-items:center; flex-shrink:0; transition:background .3s,transform .4s var(--ease); }
.theme-toggle:hover { background:var(--surface-hover); transform:rotate(-12deg); }
.theme-toggle:active { transform:scale(.94); }
.theme-toggle .icon { width:22px; height:22px; }
.theme-sun { display:none; }
[data-theme="dark"] .theme-sun { display:block; }
[data-theme="dark"] .theme-moon { display:none; }
[data-theme="dark"] .brand-mark { mix-blend-mode:normal; border-radius:50%; box-shadow:0 0 0 3px var(--line); }

/* Larger actions with a tactile, directional response. */
.button,.button.small,.hero-actions .button,.cta .button,.jobs-banner>.button {
  min-height:60px; padding:10px 15px 10px 24px; gap:26px; font-size:16px; font-weight:600;
  border-radius:9px; background:var(--button-bg); color:var(--button-text); border-color:var(--button-bg);
  transition:background .3s,box-shadow .4s var(--ease),transform .4s var(--ease); line-height:1.4;
}
.button .icon { width:36px; height:36px; padding:9px; border-radius:50%; background:color-mix(in oklch,currentColor 12%,transparent); transition:transform .4s var(--ease),background .3s; }
.button:hover { background:var(--button-hover); box-shadow:0 8px 20px oklch(25% .04 210 / .13); transform:translateY(-3px); }
.button:hover .icon,.button:focus-visible .icon { transform:rotate(-35deg); background:color-mix(in oklch,currentColor 20%,transparent); }
.button:active { transform:translateY(0) scale(.98); box-shadow:none; }
.button:disabled { transform:none; box-shadow:none; }
.button.small { min-height:52px; font-size:14px; padding:8px 10px 8px 20px; gap:16px; }
.button.small .icon { width:30px; height:30px; padding:7px; }
.button.outline { background:transparent; color:var(--ink); border-color:var(--line); }
.button.outline:hover { background:var(--surface-hover); }
.button.light { background:var(--accent-soft); border-color:var(--accent-soft); color:var(--brand-deep); }
.button.light:hover { background:var(--on-brand); }
.underlink,.hero-actions .underlink { min-height:48px; font-size:15px; border-color:var(--line); gap:20px; }
.underlink .icon { width:20px; height:20px; transition:transform .35s var(--ease); }
.underlink:hover .icon { transform:translate(4px,-2px); }
:focus-visible { outline:3px solid var(--teal); outline-offset:5px; }
.hero { padding-top:58px; padding-bottom:75px; gap:46px; grid-template-columns:1.05fr 1fr; }
.hero h1 { font-size:clamp(56px,5.7vw,86px); line-height:1.04; }
.hero-description { font-size:24px; margin-top:30px; }
.hero-detail { font-size:17px; margin-top:16px; }
.hero-actions { gap:22px; margin-top:32px; }
.hero-proof { font-size:13px; gap:23px; margin-top:32px; }
.hero-proof .icon { width:17px; height:17px; }
.hero-visual { height:620px; }
.hero-photo { border-radius:12px 12px 110px 12px; }
.image-label { font-size:10px; padding:12px 16px; color:oklch(32% .055 225); background:oklch(98% .008 150 / .95); }
.floating-note { background:var(--white); border-color:var(--line); padding:22px 26px; border-radius:10px; box-shadow:var(--shadow); }
.floating-note strong { font-size:16px; }
.floating-note span { font-size:13px; }
.floating-note>.icon { width:44px; height:44px; padding:9px; background:var(--surface); }
.image-index { font-size:10px; bottom:-30px; }
.sector-band { background:var(--surface); }
.sector-band .wrap { padding-block:30px; }
.sector-band span { font-size:11px; }
.sector-band p { font-size:19px; gap:27px; }
.sector-band i { color:var(--teal); }
.section-heading { margin-bottom:45px; gap:45px; }
.section-heading>p,.section-heading>div>p:not(.eyebrow) { font-size:17px; }
.section-heading h2 { font-size:clamp(36px,3.7vw,54px); }
.section-heading>div:last-child { max-width:none; }
.service-card { background:var(--white); border-color:var(--line); border-radius:12px; min-height:350px; padding:30px 25px 25px; gap:35px; transition:background .35s,border-color .35s,box-shadow .4s var(--ease),transform .4s var(--ease); }
.service-card:hover { background:var(--surface-hover); border-color:var(--teal); box-shadow:var(--shadow); transform:translateY(-5px); }
.service-card h3 { font-size:27px; line-height:1.16; }
.service-card p { font-size:16px; line-height:1.7; max-width:50ch; }
.card-top>.icon { width:37px; height:37px; }
.card-top>span { font-size:13px; color:var(--muted); }
.card-link { font-size:14px; padding-top:20px; }
.card-link>.icon { width:30px; height:30px; border:1px solid var(--line); border-radius:50%; padding:6px; transition:transform .4s var(--ease),background .3s; }
.service-card:hover .card-link>.icon { background:var(--mint); transform:rotate(45deg); }
.service-bottom { font-size:14px; margin-top:30px; }
.service-bottom .icon { width:21px; height:21px; }
.service-bottom a { min-height:44px; }
.care-section { background:var(--surface); padding-block:95px; }
.care-grid { gap:85px; }
.care-copy h2 { font-size:clamp(40px,3.7vw,54px); }
.care-copy>p:not(.eyebrow) { font-size:17px; }
.care-visual { height:660px; }
.vertical-caption { font-size:10px; }
.care-points>div { margin:25px 0; gap:20px; }
.care-points strong { font-size:17px; margin-bottom:5px; }
.care-points span { font-size:16px; line-height:1.7; }
.care-points .icon { width:27px; height:27px; }
.steps { margin-top:58px; gap:35px; }
.step-number { font-size:22px; padding-bottom:25px; color:var(--teal); border-color:var(--line); }
.steps h3 { font-size:26px; }
.steps p { font-size:16px; line-height:1.8; max-width:28ch; }
.jobs-banner { padding:42px; border-radius:12px; background:var(--mint); gap:30px; }
.jobs-banner .eyebrow { font-size:11px; }
.jobs-banner h2 { font-size:33px; }
.jobs-banner p:not(.eyebrow) { font-size:16px; }
.faq-preview { gap:70px; }
.faq-item summary,.faq-page .faq-item summary { font-size:18px; padding:27px 0; }
.faq-item p,.faq-page .faq-item p { font-size:16px; line-height:1.85; }
.faq-item summary>.icon { width:25px; height:25px; }
.cta { background:var(--brand-deep); color:var(--on-brand); padding:60px; border-radius:14px; gap:45px; }
.cta .eyebrow { font-size:11px; color:var(--accent-soft); }
.cta h2 { font-size:clamp(34px,3vw,46px); }
.footer { background:var(--surface); padding-top:65px; }
.footer-top { gap:55px; }
.footer-top h2 { font-size:15px; }
.footer-top p { font-size:17px; }
.footer-top>div>a:not(.brand) { font-size:15px; min-height:34px; }
.footer-top .address { font-size:14px; max-width:38ch; }
.footer-bottom { font-size:12px; border-color:var(--line); }
.footer-bottom>div { gap:20px; }
.footer-bottom a,.footer-bottom button { display:inline-flex; align-items:center; min-height:44px; }

/* The catalog has one photographic anchor and generous, readable service entries. */
.page-intro { padding-block:85px 55px; }
.page-intro>p:not(.eyebrow) { font-size:20px; max-width:65ch; }
.filter-bar { gap:12px; margin-bottom:36px; }
.filter-button { min-height:52px; padding:12px 23px; font-size:15px; background:var(--white); transition:background .3s,color .3s,transform .3s var(--ease),box-shadow .3s; }
.filter-button:hover { background:var(--surface-hover); transform:translateY(-2px); }
.filter-button[aria-pressed=true] { background:var(--button-bg); color:var(--button-text); border-color:var(--button-bg); box-shadow:0 4px 15px oklch(20% .04 220 / .09); }
.all-services { grid-template-columns:repeat(2,minmax(0,1fr)); gap:23px; }
.all-services .service-card { padding:34px; min-height:305px; }
.all-services .service-card h3 { font-size:31px; }
.service-featured { grid-column:1/-1; position:relative; overflow:hidden; isolation:isolate; }
.all-services .service-featured { min-height:395px; background:var(--brand-deep); color:var(--on-brand); padding:40px; }
.service-featured>div:not(.service-card-photo),.service-featured>.card-link { position:relative; width:47%; }
.service-featured .card-top>.icon { color:var(--accent-soft); }
.service-featured .card-top>span { color:var(--accent-soft); }
.service-featured p { color:oklch(85% .03 170); font-size:18px; }
.service-featured .card-link { border-color:oklch(50% .04 205); }
.service-featured .card-link>.icon { border-color:oklch(55% .04 205); }
.service-featured:hover .card-link>.icon { background:oklch(39% .052 207); }
.service-card-photo { position:absolute; right:0; top:0; width:46%; height:100%; overflow:hidden; z-index:-1; border-radius:110px 0 0 0; background:var(--surface); }
.service-card-photo img { width:100%; height:100%; object-fit:cover; object-position:right center; transform:scale(1.6); transform-origin:right center; transition:transform .8s var(--ease); }
.service-featured:hover .service-card-photo img { transform:scale(1.65); }
.service-featured-label { position:absolute; top:22px; right:22px; color:oklch(32% .055 225); background:oklch(98% .008 150); border-radius:50px; padding:9px 15px; font-size:11px; letter-spacing:.1em; }
.all-services .service-card:last-child { grid-column:1/-1; display:grid; grid-template-columns:58px 1fr 200px; align-items:center; gap:25px; min-height:175px; background:var(--surface); }
.all-services .service-card:last-child .card-top>span { display:none; }
.all-services .service-card:last-child .card-link { border-top:0; padding-top:0; }
.breadcrumb { font-size:15px; min-height:44px; }
.service-detail p,.about-grid p:not(.eyebrow),.values-grid p { font-size:17px; }
.check-list li { font-size:17px; margin-block:20px; }
.note { border:1px solid var(--line); border-radius:8px; background:var(--surface); font-size:14px!important; }
.media-caption { font-size:12px; }
.team-photo { height:620px; }
.detail-icon { background:var(--mint); }
.contact-layout { padding-block:80px 110px; gap:70px; }
.contact-copy h1 { font-size:clamp(47px,4.7vw,68px); }
.contact-copy>p:not(.eyebrow) { font-size:18px; max-width:48ch; }
.contact-methods strong { font-size:17px; }
.contact-methods small { font-size:13px; }
.contact-methods span>span { font-size:14px; }
.contact-copy .contact-footnote { font-size:14px!important; }
.request-form { background:var(--white); border-color:var(--line); border-radius:14px; box-shadow:var(--shadow); padding:34px; }
.form-heading { gap:17px; }
.form-heading h2 { font-size:28px; }
.form-heading p { font-size:13px; }
.form-step { width:49px; height:49px; background:var(--surface); }
.field { font-size:14px; gap:9px; }
.field input,.field select,.field textarea { font-size:16px; min-height:54px; background:var(--field); border-color:var(--line); border-radius:7px; padding:12px; transition:border-color .25s,box-shadow .25s; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--teal); box-shadow:0 0 0 3px color-mix(in oklch,var(--teal) 12%,transparent); }
.field input::placeholder,.field textarea::placeholder { font-size:15px; color:var(--muted); }
.field-hint { font-size:12px; }
.form-fields { gap:22px 17px; }
.consent { font-size:13px; line-height:1.8; gap:12px; }
.consent input { min-width:20px; height:20px; }
.form-security { font-size:12px; gap:8px; }
.form-security .icon { width:15px; height:15px; }
.form-status { font-size:15px; background:var(--error-bg); color:var(--error-text); border:1px solid color-mix(in oklch,var(--error-text) 25%,transparent); }
.form-status.success { background:var(--success-bg); color:var(--success-text); }
.interest-note { background:var(--surface); padding:35px; }
.interest-note h2 { font-size:35px; }
.interest-note p { font-size:17px; }
.pill { font-size:13px; border-color:var(--line); }
.career-steps { font-size:16px; line-height:1.8; }
.career-steps li { margin-bottom:14px; padding-left:5px; }
.faq-search { background:var(--white); border-color:var(--line); padding:12px 19px; border-radius:10px; }
.faq-search input { font-size:18px; background:transparent; }
.legal-intro h1 { font-size:clamp(46px,5vw,72px); }
.legal-date { font-size:14px; }
.legal-layout aside>p { font-size:12px; }
.legal-layout aside>a { font-size:14px; min-height:42px; }
.legal-content h2 { font-size:30px; }
.legal-content p { font-size:17px; }
.legal-notice { background:var(--warning-bg); color:var(--warning-text); border-color:color-mix(in oklch,var(--warning-text) 25%,transparent); font-size:14px; }
.error-page h1 { font-size:clamp(42px,4vw,62px); }
.error-page>p:not(.eyebrow) { font-size:17px; }
.error-number { color:var(--teal); }

/* A first-visit notice, not a blocking dialog. The page remains usable. */
.cookie-banner { position:fixed; z-index:35; left:24px; right:24px; bottom:24px; max-width:1000px; margin-inline:auto; display:flex; align-items:center; gap:23px; padding:25px 28px; background:var(--white); border:1px solid var(--line); border-radius:16px; box-shadow:0 12px 65px oklch(16% .04 220 / .2); }
.cookie-banner-icon { color:var(--teal); align-self:flex-start; margin-top:4px; }
.cookie-banner-icon .icon { width:30px; height:30px; }
.cookie-banner-copy { flex:1; }
.cookie-banner-copy h2 { font-size:23px; letter-spacing:-.025em; line-height:1.25; margin-bottom:9px; }
.cookie-banner-copy p { font-size:14px; line-height:1.65; max-width:65ch; }
.cookie-banner-copy a { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.cookie-banner-actions { display:flex; flex-direction:column; gap:9px; }
.cookie-banner-actions .button { min-height:46px; font-size:14px; padding:8px 15px; gap:14px; }
.cookie-banner-actions .button>.icon { width:26px; height:26px; padding:5px; }
body.has-cookie-banner { padding-bottom:var(--cookie-space,200px); }
.cookie-dialog { background:var(--white); color:var(--ink); border-color:var(--line); padding:32px; max-width:480px; }
.cookie-dialog::backdrop { background:oklch(15% .04 220 / .6); backdrop-filter:blur(4px); }
.cookie-dialog h2 { font-size:32px; }
.cookie-dialog p { font-size:16px; }
.cookie-choice { background:var(--surface); font-size:14px; padding:16px; gap:16px; }
.cookie-choice strong { color:var(--teal); }
.icon-button { color:var(--ink); min-width:44px; min-height:44px; }

/* Content stays visible by default; JS progressively animates on intersection. */
@media(prefers-reduced-motion:no-preference) {
  .cookie-banner:not([hidden]) { animation:notice-in .65s var(--ease) both; }
  .cookie-dialog[open] { animation:notice-in .35s var(--ease) both; }
  details[open] p { animation:answer-in .3s var(--ease); }
  @keyframes notice-in { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
  @keyframes answer-in { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:translateY(0); } }
}
@media(min-width:1450px) { .hero h1 { font-size:88px; } .hero-visual { height:650px; } }
@media(max-width:1200px) {
  .wrap { width:calc(100% - 64px); }
  .header-inner { gap:17px; }
  .header nav { gap:17px; }
  .header nav>a:not(.button) { font-size:13px; }
  .brand-name { font-size:22px; }
  .button.small { font-size:13px; padding-left:15px; gap:10px; }
  .hero { gap:30px; }
  .hero h1 { font-size:64px; }
  .hero-visual { height:610px; }
  .hero-description { font-size:22px; }
  .hero-detail { font-size:16px; }
  .hero-proof { font-size:12px; gap:18px; }
  .hero-actions .button { font-size:15px; gap:18px; }
  .hero-actions .underlink { font-size:14px; }
  .sector-band p { font-size:17px; gap:20px; }
  .home-services { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .care-grid { gap:50px; }
  .care-visual { height:700px; }
  .jobs-banner { flex-wrap:wrap; }
  .jobs-banner>.button { margin-left:0; }
  .jobs-symbol { display:none; }
  .cta { padding:45px; }
  .cta .button { font-size:14px; gap:16px; }
  .contact-layout { gap:40px; }
  .request-form { padding:27px; }
  .footer-top { gap:35px; }
}
@media(max-width:1050px) {
  .header-inner { height:84px; }
  .header-controls { margin-left:auto; }
  .menu-toggle { display:flex; border:1px solid var(--line); border-radius:50%; width:48px; height:48px; background:var(--surface); color:var(--ink); flex-direction:column; align-items:center; justify-content:center; gap:6px; }
  .menu-toggle span { width:19px; height:1.5px; background:currentColor; transition:transform .2s; }
  .menu-toggle[aria-expanded=true] span:first-child { transform:translateY(3.75px) rotate(45deg); }
  .menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-3.75px) rotate(-45deg); }
  .header nav { display:none; position:absolute; top:84px; left:0; right:0; padding:25px 32px; background:var(--paper); border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:2px; box-shadow:var(--shadow); max-height:calc(100dvh - 84px); overflow-y:auto; }
  .header nav.is-open { display:flex; }
  .header nav>a:not(.button) { font-size:17px; padding-block:14px; }
  .header nav>a:not(.button)::after { display:none; }
  .header nav .button { margin-top:14px; font-size:16px; }
  .contact-methods strong { font-size:15px; }
}
@media(max-width:900px) {
  .hero h1 { font-size:54px; }
  .hero .eyebrow { font-size:10px; }
  .hero-visual { height:650px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:12px; }
  .hero-proof { flex-direction:column; gap:10px; }
  .floating-note { padding:17px; left:-15px; gap:12px; }
  .floating-note strong { font-size:14px; }
  .floating-note span { font-size:12px; }
  .sector-band p { font-size:17px; }
  .section-heading { flex-direction:column; align-items:flex-start; gap:20px; }
  .section-heading>p,.section-heading>div>p:not(.eyebrow) { font-size:16px; }
  .care-grid { grid-template-columns:1fr; gap:45px; }
  .care-visual { max-width:570px; width:100%; height:560px; }
  .care-copy { max-width:65ch; }
  .care-photo img { transform:scale(1.5); }
  .steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
  .faq-preview { grid-template-columns:1fr; gap:35px; }
  .cta { flex-direction:column; align-items:flex-start; gap:28px; }
  .contact-layout,.careers-layout { grid-template-columns:1fr; gap:45px; }
  .contact-copy { max-width:640px; }
  .contact-copy h1 { font-size:60px; }
  .form-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .all-services .service-card { padding:28px; }
  .all-services .service-card h3 { font-size:28px; }
  .all-services .service-featured { padding:32px; }
  .service-featured p { font-size:16px; }
  .service-card-photo { width:43%; }
  .service-featured>div:not(.service-card-photo),.service-featured>.card-link { width:52%; }
  .footer-top>div:first-child p { font-size:16px; }
  .cookie-banner { padding:22px; gap:17px; }
  .cookie-banner-icon { display:none; }
  .cookie-banner-copy h2 { font-size:22px; }
}
@media(max-width:640px) {
  .wrap { width:calc(100% - 40px); }
  .topbar { height:32px; font-size:10px; }
  .topbar .icon { width:13px; height:13px; }
  .header-inner { height:80px; gap:12px; }
  .header nav { top:80px; padding:20px; max-height:calc(100dvh - 80px); }
  .header-controls { gap:8px; }
  .theme-toggle,.menu-toggle { width:44px; height:44px; }
  .brand { gap:7px; }
  .brand-name { font-size:21px; }
  .brand-name>span { font-size:7px; }
  .brand-mark { width:37px; }
  .eyebrow,.hero .eyebrow { font-size:10px; letter-spacing:.1em; line-height:1.8; margin-bottom:22px; }
  .section { padding-block:65px; }
  .compact { padding-top:18px; }
  .hero { grid-template-columns:1fr; padding-top:38px; padding-bottom:57px; gap:35px; }
  .hero h1 { font-size:clamp(49px,12.5vw,74px); }
  .hero-description { font-size:22px; }
  .hero-detail { font-size:16px; }
  .hero-actions { flex-direction:row; align-items:center; gap:16px; }
  .hero-actions .button,.button { font-size:15px; gap:22px; min-height:58px; padding:10px 13px 10px 20px; }
  .hero-actions .underlink,.underlink { font-size:15px; }
  .hero-proof { flex-direction:row; font-size:12px; gap:18px; margin-top:24px; }
  .hero-visual { height:420px; margin-left:0; }
  .hero-photo { border-bottom-right-radius:80px; }
  .floating-note { left:-5px; bottom:28px; padding:18px; gap:14px; }
  .floating-note strong { font-size:15px; }
  .floating-note span { font-size:12px; }
  .image-label { font-size:9px; padding:10px 13px; }
  .image-index { font-size:9px; bottom:-25px; }
  .sector-band .wrap { padding-block:24px; gap:14px; }
  .sector-band span { font-size:10px; }
  .sector-band p { font-size:14px; gap:10px; line-height:1.7; }
  .section-heading { margin-bottom:30px; }
  .section-heading h2 { font-size:36px; }
  .section-heading>p,.section-heading>div>p:not(.eyebrow) { font-size:16px; margin-top:18px; }
  .home-services,.all-services,.related-services { grid-template-columns:1fr; gap:16px; }
  .service-card,.all-services .service-card { min-height:280px; padding:27px; gap:25px; }
  .service-card h3,.all-services .service-card h3 { font-size:29px; }
  .service-card p { font-size:16px; }
  .card-top>.icon { width:33px; height:33px; }
  .card-top>span { font-size:13px; }
  .card-link { font-size:14px; padding-top:18px; }
  .service-bottom { font-size:14px; gap:12px; }
  .care-section { padding-block:55px; }
  .care-visual { height:470px; padding-left:12px; margin-right:0; }
  .care-photo img { transform:scale(1.1); }
  .care-copy h2 { font-size:42px; }
  .care-copy>p:not(.eyebrow) { font-size:17px; }
  .care-points strong { font-size:17px; }
  .care-points span { font-size:16px; }
  .vertical-caption { font-size:9px; }
  .steps { gap:35px 23px; margin-top:35px; }
  .steps h3 { font-size:24px; }
  .steps p { font-size:15px; }
  .step-number { font-size:20px; margin-bottom:22px; }
  .jobs-banner { padding:28px; gap:24px; }
  .jobs-banner .eyebrow { font-size:10px; line-height:1.7; }
  .jobs-banner h2 { font-size:31px; }
  .jobs-banner p:not(.eyebrow) { font-size:16px; }
  .jobs-banner>.button { min-height:56px; font-size:15px; }
  .faq-preview h2 { font-size:39px; }
  .faq-item summary,.faq-page .faq-item summary { font-size:17px; padding-block:24px; }
  .faq-item p,.faq-page .faq-item p { font-size:16px; padding-right:12px; }
  .cta { padding:30px; gap:25px; margin-bottom:55px; }
  .cta h2 { font-size:33px; }
  .cta .eyebrow { font-size:10px; }
  .cta .button { min-height:58px; font-size:14px; margin-top:0; gap:16px; }
  .footer { padding-top:45px; }
  .footer-top { grid-template-columns:1fr; gap:30px; padding-bottom:30px; }
  .footer-top>div:first-child p { font-size:16px; }
  .footer-top h2 { font-size:15px; margin-bottom:16px; }
  .footer-top>div>a:not(.brand) { font-size:16px; min-height:36px; }
  .footer-top .address { font-size:14px; max-width:40ch; }
  .footer-bottom { font-size:12px; gap:15px; padding-top:20px; }
  .footer-bottom>div { gap:16px; }
  .page-intro { padding-block:46px 34px; }
  .page-intro h1 { font-size:clamp(44px,11.5vw,66px); }
  .page-intro>p:not(.eyebrow) { font-size:18px; margin-top:23px; }
  .filter-bar { gap:9px; margin-bottom:26px; }
  .filter-button { font-size:14px; padding:10px 17px; min-height:48px; }
  .all-services .service-featured { padding:28px; padding-top:258px; min-height:550px; }
  .service-card-photo { top:0; width:100%; height:225px; border-radius:0; }
  .service-card-photo img { object-fit:cover; transform:scale(2.4); }
  .service-featured:hover .service-card-photo img { transform:scale(2.45); }
  .service-featured>div:not(.service-card-photo),.service-featured>.card-link { width:100%; }
  .service-featured-label { font-size:10px; top:16px; right:16px; }
  .all-services .service-card:last-child { display:flex; align-items:stretch; min-height:280px; }
  .all-services .service-card:last-child .card-top>span { display:block; }
  .all-services .service-card:last-child .card-link { border-top:1px solid var(--line); padding-top:18px; }
  .service-detail h2,.about-grid h2 { font-size:35px; }
  .service-detail p,.about-grid p:not(.eyebrow),.values-grid p { font-size:17px; }
  .check-list li { font-size:16px; }
  .team-photo { height:450px; }
  .contact-layout { padding-block:45px 65px; }
  .contact-copy h1 { font-size:clamp(45px,11vw,62px); }
  .contact-copy>p:not(.eyebrow) { font-size:17px; }
  .contact-methods strong { font-size:16px; }
  .contact-methods small { font-size:13px; }
  .contact-methods span>span { font-size:14px; }
  .request-form { padding:26px 21px; }
  .form-fields { grid-template-columns:1fr; gap:20px; }
  .form-heading h2 { font-size:26px; }
  .form-heading p { font-size:12px; }
  .field { font-size:14px; }
  .field input,.field select,.field textarea { font-size:16px; padding:13px; min-height:54px; }
  .field textarea::placeholder { font-size:15px; }
  .consent { font-size:13px; }
  .form-security { font-size:12px; text-align:center; }
  .interest-note { padding:27px; }
  .interest-note h2 { font-size:32px; }
  .interest-note p { font-size:17px; }
  .career-steps { font-size:16px; }
  .faq-search input { font-size:17px; }
  .legal-intro h1 { font-size:44px; }
  .legal-content h2 { font-size:29px; }
  .legal-content p { font-size:16px; }
  .legal-layout aside>a { font-size:14px; }
  .error-page h1 { font-size:42px; }
  .error-page>p:not(.eyebrow) { font-size:16px; }
  .cookie-banner { left:12px; right:12px; bottom:12px; padding:21px; flex-direction:column; align-items:stretch; gap:17px; border-radius:13px; max-height:calc(100dvh - 24px); overflow:auto; }
  .cookie-banner-copy h2 { font-size:21px; margin-bottom:8px; }
  .cookie-banner-copy p { font-size:13px; line-height:1.6; }
  .cookie-banner-actions { flex-direction:row; gap:9px; flex-wrap:wrap; }
  .cookie-banner-actions .button { flex:1; font-size:13px; gap:8px; min-height:48px; padding:9px 11px; }
  .cookie-banner-actions .button>.icon { width:22px; height:22px; padding:4px; }
  .cookie-dialog { padding:26px; }
  .cookie-dialog h2 { font-size:30px; }
  .cookie-dialog p { font-size:16px; }
  .cookie-choice { font-size:13px; }
}
@media(max-width:370px) {
  .wrap { width:calc(100% - 32px); }
  .brand-name { font-size:18px; }
  .brand-name>span { font-size:6px; }
  .brand { gap:5px; }
  .header-controls { gap:5px; }
  .hero h1 { font-size:45px; }
  .hero-actions .button { font-size:15px; }
  .hero-proof { gap:12px; font-size:11px; }
  .hero-visual { height:365px; }
  .floating-note { padding:15px; gap:10px; }
  .floating-note strong { font-size:14px; }
  .floating-note span { font-size:11px; }
  .contact-copy h1 { font-size:43px; }
  .cta { padding:26px; }
  .cta .button { white-space:normal; width:100%; font-size:14px; padding-left:15px; gap:12px; }
  .cookie-banner { padding:18px; }
  .cookie-banner-actions .button { font-size:12px; gap:5px; padding:9px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; }
  html { scroll-behavior:auto; }
}
@media print { .cookie-banner,.theme-toggle { display:none!important; } body.has-cookie-banner { padding-bottom:0; } }

/* Crawlable navigation with a readable hierarchy on narrow screens. */
.seo-breadcrumb { padding-top: 1.5rem; }
.seo-breadcrumb ol { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0; font-size: .875rem; }
.seo-breadcrumb li { display: inline; overflow-wrap: anywhere; }
.seo-breadcrumb li + li::before { content: '/'; margin-right: .5rem; opacity: .5; }
.seo-breadcrumb a { text-underline-offset: .2em; }

/* Photographic service collection: preserve the scene instead of magnifying crops. */
.photo img { object-position:center; transform:none; }
.photo:hover img { transform:none; }
.all-services .visual-service-card:last-child,
.visual-service-card { display:flex; flex-direction:column; grid-column:auto; align-items:stretch; text-align:left; gap:22px; padding:24px; overflow:hidden; }
.all-services .visual-service-card:last-child .card-top>span { display:block; }
.all-services .visual-service-card:last-child .card-link { border-top:1px solid var(--line); padding-top:18px; }
.service-image { aspect-ratio:16/9; overflow:hidden; border-radius:16px; background:var(--surface); flex:none; }
.service-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.visual-service-card:hover .service-image img { transform:scale(1.025); }
.visual-service-card .card-link { margin-top:auto; }
.service-detail-photo { width:100%; aspect-ratio:4/3; border-radius:24px; }
.service-detail-photo img { width:100%; height:100%; object-fit:cover; }
.career-photo { aspect-ratio:16/9; border-radius:24px; margin-bottom:24px; }
.career-photo img { width:100%; height:100%; object-fit:cover; }
@media(max-width:640px) {
 .all-services .visual-service-card:last-child,.all-services .visual-service-card,.visual-service-card { padding:20px; gap:18px; }
 .service-detail-photo { aspect-ratio:16/9; }
}
@media(prefers-reduced-motion:reduce) {
 .service-image img { transition:none; }
 .visual-service-card:hover .service-image img { transform:none; }
}
