/*
Theme Name: Комфорт — сайт управляющей компании
Version: 1.1.151
Text Domain: komcit
Requires PHP: 8.3
*/
@font-face {
    font-family:Inter;
    src:url('assets/fonts/InterVariable.woff2') format('woff2');
    font-style:normal;
    font-weight:100 900;
    font-display:swap}
:root {
    --paper:#161616;
    --black:#000;
    --ink:#fff;
    --muted:#8a8a8a;
    --line:#454545;
    --gutter:2.083333vw;
    --space:7.8125vw;
    --body:clamp(12px,.833333vw,18px)}
* {
    box-sizing:border-box}
html {
    scroll-behavior:smooth;
    scroll-padding-top:30px}
body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font:400 var(--body)/1.1 Inter,Arial,sans-serif;
    letter-spacing:-.03em}
a {
    color:inherit;
    text-decoration:none}
button,input,textarea {
    font:inherit}
button,a,summary {
    -webkit-tap-highlight-color:transparent}
button,summary {
    cursor:pointer}
button {
    color:inherit}
img {
    display:block;
    max-width:100%;
    height:auto}
h1,h2,h3,h4,p,figure,dl,dd {
    margin:0}
h1,h2,h3,h4 {
    font-weight:600}
p+p {
    margin-top:1em}
a:focus-visible,button:focus-visible,summary:focus-visible {
    outline:2px solid #b9d8df;
    outline-offset:6px}
a:hover {
    text-decoration:underline;
    text-underline-offset:4px}
.button,.text-link,.menu-toggle,.news-dialog button {font-size:14px}
.button {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    background:#fff;
    color:#000;
    min-height:40px;
    padding:.7em 2.2em;
    text-align:center;
    border:1px solid transparent;
    transition:background .2s,color .2s}
.button:hover {
    background:#c9c9c9;
    color:#353535;
    text-decoration:none}
.text-link {
    text-decoration:underline;
    text-underline-offset:3px}
.muted {
    color:var(--muted)}
.section-label {
    font-size:16px;
    font-weight:400;
    letter-spacing:-.03em}
.section-space {
    margin-top:var(--space);
    padding-inline:var(--gutter)}
.editorial-grid {
    display:grid;
    grid-template-columns:40.43478% 59.56522%}
.editorial-copy {
    grid-column:2}
.statement {
    font-size:clamp(32px,3.125vw,68px);
    line-height:.9;
    letter-spacing:-.03em}
.narrow {
    width:32.119%;
    margin-top:1.5625vw;
    line-height:1.1}
.skip-link {
    position:fixed;
    top:10px;
    left:10px;
    z-index:100;
    background:#fff;
    color:#000;
    padding:15px;
    transform:translateY(-200%)}
.skip-link:focus {
    transform:none}
.site-header {
    position:absolute;
    z-index:10;
    inset:1.5625vw var(--gutter) auto;
    display:flex;
    align-items:start;
    justify-content:space-between}
.brand-image {
    width:1.770833vw;
    min-width:25px}
.site-header nav {
    display:flex;
    gap:1.041667vw;
    align-items:center;
    font-size:16px;
    letter-spacing:-.05em}
.site-header nav a+a:before {
    content:'/';
    display:inline-block;
    margin-right:1.041667vw;
    pointer-events:none}
.over-photo nav {
    color:#000}
.menu-toggle {
    display:none}
.home-hero {
    position:relative;
    height:56.25vw;
    overflow:hidden;
    border-bottom:1px solid var(--line)}
.hero-photo {
    position:absolute;
    inset:0;
    overflow:hidden}
.hero-photo img {
    position:absolute;
    width:158.99%;
    height:211.99%;
    max-width:none;
    left:-29.5%;
    top:-95%}
.hero-grid {
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,transparent calc(14.3229% - .5px),#ffffff4d 14.3229%,transparent calc(14.3229% + .5px)),linear-gradient(90deg,transparent calc(21.9271% - .5px),#ffffff4d 21.9271%,transparent calc(21.9271% + .5px)),linear-gradient(90deg,transparent calc(68.4375% - .5px),#ffffff4d 68.4375%,transparent calc(68.4375% + .5px)),linear-gradient(90deg,transparent calc(92.0833% - .5px),#ffffff4d 92.0833%,transparent calc(92.0833% + .5px)),linear-gradient(0deg,transparent calc(8.8889% - .5px),#ffffff4d 8.8889%,transparent calc(8.8889% + .5px)),linear-gradient(0deg,transparent calc(21.8519% - .5px),#ffffff4d 21.8519%,transparent calc(21.8519% + .5px)),linear-gradient(0deg,transparent calc(29.2593% - .5px),#ffffff4d 29.2593%,transparent calc(29.2593% + .5px)),linear-gradient(0deg,transparent calc(86.1111% - .5px),#ffffff4d 86.1111%,transparent calc(86.1111% + .5px));
    z-index:2}
.hero-mask {
    background:var(--paper);
    position:absolute;
    z-index:1}
.mask-left {
    left:0;
    top:0;
    width:21.9271%;
    height:70.7407%}
.mask-top {
    left:0;
    top:0;
    width:32.1354%;
    height:13.8889%}
.mask-bottom-left {
    left:0;
    bottom:0;
    width:21.9271%;
    height:21.7593%}
.mask-bottom-right {
    right:0;
    bottom:0;
    width:31.5104%;
    height:8.8889%}
.mask-step {
    left:21.9271%;
    top:70.8333%;
    width:18.8542%;
    height:7.3148%}
.home-hero h1 {
    position:absolute;
    z-index:3;
    left:21.4583%;
    top:52.5926%;
    font-size:8.854167vw;
    line-height:1;
    letter-spacing:-5px;
    text-transform:uppercase;
    font-weight:600;
    white-space:nowrap}
.hero-tagline {
    position:absolute;
    z-index:3;
    left:68.4896%;
    top:70.8333%;
    font-size:1.041667vw;
    letter-spacing:-.03em}
.hero-button {
    position:absolute;
    left:40.8333%;
    top:78.2407%;
    width:18.3333%;
    min-height:0;
    height:2.604167vw;
    padding:0;
    z-index:3}
.advantages {
    position:relative;
    overflow:hidden;
    margin-top:var(--space);
    padding-top:3.229167vw;
    background:#000;
    height:50.833333vw}
.advantages>.section-label {
    position:relative;
    z-index:2;
    margin-left:var(--gutter)}
.advantages-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    position:absolute;
    inset:3.229167vw 0 0}
.advantage {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center}
.advantage-circle {
    position:absolute;
    width:36.666667vw;
    max-width:none;
    height:auto;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%)}
.advantage-copy {
    position:relative;
    width:52%;
    text-align:center}
.advantage-copy>.muted {
    font-size:.9375vw;
    font-weight:800;
    color:#555}
.advantage h3 {
    font-size:2.34375vw;
    font-weight:800;
    line-height:1.1;
    margin:.52vw 0;
    letter-spacing:-.03em}
.advantage p {
    line-height:1.1}
.advantages-shape {
    position:absolute;
    left:17.59%;
    top:0;
    width:65.4415%;
    height:100%;
    pointer-events:none}
.advantages-shape img {
    width:65.4415vw;
    max-width:none;
    height:100%}
.about .quote {
    position:relative}
.quote:before {
    content:'“';
    position:absolute;
    right:calc(100% + 1.041667vw);
    top:0;
    font-size:6.770833vw;
    line-height:.9}
.about .narrow {
    width:32.12%;
    margin-top:1.5625vw}
.about-photo {
    position:relative;
    margin-top:1.5625vw;
    height:38.125vw;
    overflow:hidden}
.about-photo>img {
    width:100%;
    height:100%;
    object-fit:cover;
    filter:brightness(.6)}
.company-stats {
    position:absolute;
    left:40.43478%;
    top:0;
    width:19.130435%;
    background:#000;
    padding:1.041667vw 1.614583vw}
.company-stats>div {
    display:flex;
    align-items:end;
    gap:.7vw}
.company-stats>div+div {
    margin-top:1.354167vw}
.company-stats dt {
    font-size:6.666667vw;
    line-height:.9;
    letter-spacing:-.1em;
    font-weight:600}
.company-stats dd {
    flex:1;
    font-size:16px;
    margin-bottom:.45vw;
    line-height:1.1}
.home-services {
    grid-template-columns:19.375vw minmax(0,1fr)}
.home-services>.section-label {
    grid-column:1}
.home-service-list {
    grid-column:2;
    container-type:inline-size;
    width:calc(100% + var(--gutter))}
.home-service {
    border-top:1px solid var(--line);
    position:relative}
.home-service summary {
    display:grid;
    grid-template-columns:18.854167vw 1fr 2.291667vw;
    gap:0;
    align-items:start;
    padding:1.041667vw var(--gutter) 1.041667vw .520833vw;
    min-height:3.802083vw;
    list-style:none;
    color:rgba(255,255,255,.5)}
summary::-webkit-details-marker {
    display:none}
.home-service h3 {
    font-size:1.5625vw;
    line-height:1.1;
    max-width:none;
    letter-spacing:-.03em}
.service-number {
    font-size:1.145833vw;
    line-height:1.25;
    font-weight:500;
    color:rgba(255,255,255,.3);
    transform:translateY(.260417vw)}
.service-arrow {
    position:absolute;
    z-index:2;
    right:var(--gutter);
    top:.833333vw;
    width:2.291667vw;
    max-width:none;
    height:auto;
    transform:rotate(-137.433deg);
    cursor:pointer;
    transition:filter .2s ease}
.home-service summary:hover .service-arrow,
.home-service summary:focus-visible .service-arrow {
    filter:brightness(0) invert(1)}
.home-service[open] {
    background:rgba(0,0,0,.3);
    border-top:0;
    height:var(--service-open-height,auto)}
.home-service[open]+.home-service {
    border-top:0}
.home-service:last-of-type:not([open]) {
    border-bottom:1px solid var(--line)}
.home-service[open] h3 {
    max-width:12.8125vw}
.home-service[open] .service-number {
    color:#fff;
    transform:none}
.home-service[open] .service-arrow {
    content:url('assets/images/service-arrow-active.svg');
    top:1.041667vw;
    transform:rotate(180deg);
    filter:none}
.home-service[open] summary {
    color:#fff}
.home-service-list:not(:has(.home-service[open])) .home-service summary {
    color:#fff}
.home-service-list:not(:has(.home-service[open])) .service-arrow {
    content:url('assets/images/service-arrow-active.svg')}
.home-service-body {
    margin-left:19.375vw;
    padding:0 0 1.041667vw;
    min-height:8.28125vw;
    position:static}
.home-service:not(:first-of-type) .home-service-body {
    min-height:0}
.home-service-body p {
    width:18.333333vw;
    line-height:1.1}
.home-service-body .text-link {
    display:inline-block;
    margin-top:.8vw}
.home-service-body .service-more {
    display:inline-block;
    margin-top:20px;
    padding:0;
    color:#fff;
    text-decoration-color:currentColor;
    transition:color .2s ease,text-decoration-color .2s ease}
.home-service-body .service-more:hover {
    color:#c9c9c9;
    text-decoration-color:currentColor}
.service-photo {
    position:absolute;
    top:50%;
    left:calc(38.75vw + 40px);
    width:20.833333vw;
    height:16.510417vw;
    object-fit:cover;
    transform:translateY(-50%)}
.services-button {
    margin-top:1.5625vw;
    margin-left:19.375vw;
    width:12.447917vw;
    min-height:0;
    height:2.083333vw;
    padding:0}
.objects {
    --active-house-top:4.84375vw;
    --active-house-height:18.697917vw;
    background:#000;
    position:relative;
    height:44.010417vw;
    margin-top:var(--space);
    overflow:hidden}
.objects>.section-label {
    position:absolute;
    left:var(--gutter);
    top:1.041667vw;
    z-index:2}
.object-count {
    width:max-content;
    position:absolute;
    left:-.625vw;
    top:0;
    color:#1d1d1d;
    font-weight:600}
.object-count span:first-child {
    display:block;
    font-size:44.270833vw;
    line-height:.8;
    letter-spacing:-.16em}
.object-count span:last-child {
    display:block;
    font-size:9.375vw;
    line-height:1.1;
    letter-spacing:-.1em;
    text-transform:uppercase;
    text-align:right;
    transform:translateX(-.17em);
    margin-top:-.8vw}
.object-gallery {
    position:absolute;
    left:40.8333%;
    top:0;
    width:18.3333%;
    height:100%}
.object-active {
    position:absolute;
    top:var(--active-house-top);
    width:100%}
.object-active img {
    width:100%;
    height:var(--active-house-height);
    object-fit:fill;
    object-position:bottom}
.objects .object-gallery :is(figcaption,p) {
    font-size:16px;
    margin-top:10px}
.object-next {
    position:absolute;
    top:calc(26.25vw - 16px);
    left:18.4659%;
    width:58.5227%;
    color:#707070}
.object-next img {
    width:100%;
    height:10.9375vw;
    object-fit:cover;
    object-position:bottom;
    filter:brightness(.6)}
.object-peek {
    position:absolute;
    left:18.4659%;
    width:58.5227%;
    color:#707070}
.object-peek img {
    width:100%;
    object-fit:cover;
    filter:brightness(.6)}
.peek-top {
    top:12px}
.peek-top img {
    height:2.604167vw;
    object-position:bottom}
.peek-bottom {
    top:calc(39.427083vw - 20px)}
.peek-bottom img {
    height:4.583333vw;
    object-position:top}
.object-description {
    position:absolute;
    left:60.2083%;
    transform:translateY(-50%);
    width:14.53125%;
    font-size:.9375vw}
@media(min-width:601px) {
    /* The SVGs are bottom-aligned. These are their painted heights in the 480-unit viewBox. */
    .objects {
        --house-painted-height:480;
        --object-center:calc(var(--active-house-top) + var(--active-house-height) * .7 - clamp(12px, 1.5vw, 24px));
    }
    .objects:has(.object-active img[src*="house-dots-1.svg"]) {--house-painted-height:265}
    .objects:has(.object-active img[src*="house-dots-2.svg"]) {--house-painted-height:288}
    .objects:has(.object-active img[src*="house-dots-3.svg"]) {--house-painted-height:322}
    .objects:has(.object-active img[src*="house-dots-4.svg"]) {--house-painted-height:277}
    .objects .object-active {
        top:calc(var(--object-center) - var(--active-house-height) * (1 - var(--house-painted-height) / 960));
    }
    .objects .object-description {
        top:var(--object-center);
    }
}
.object-description p {
    width:12.395833vw;
    max-width:100%;
    text-align:left}
.object-description .button {
    margin-top:1.041667vw;
    width:12.395833vw;
    min-height:0;
    height:2.083333vw;
    padding:0}
.object-controls {
    position:absolute;
    right:var(--gutter);
    top:4.84375vw;
    display:grid;
    gap:.833333vw}
.object-controls button {
    border:0;
    background:none;
    padding:0}
.object-controls img {
    content:url('assets/images/object-control-active.svg');
    width:2.239583vw;
    max-width:none;
    height:auto}
.object-controls button:first-child {
    transform:rotate(90deg)}
.object-controls button:last-child {
    transform:rotate(-90deg)}
.section-heading {
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    margin-bottom:1.5625vw}
.news-grid {
    display:grid;
    grid-template-columns:1.3458fr 1fr 1fr;
    gap:1.041667vw}
.news-card {
    background:#000;
    min-width:0;
    display:flex;
    flex-direction:column}
.news-card:first-child {
    grid-row:span 2}
.news-image {
    display:block;
    height:12.96875vw;
    overflow:hidden}
.news-image img {
    width:100%;
    height:100%;
    object-fit:cover;
    filter:brightness(.8)}
.news-card:first-child .news-image {
    height:33.125vw}
.news-card:first-child .news-image img {
    filter:brightness(.7)}
.news-card:nth-child(4) .news-image img {
    object-position:center 67%}
.news-copy {
    padding:.520833vw;
    position:relative;
    flex:1;
    min-height:6.145833vw}
.news-copy time {
    font-size:.729167vw;
    color:#777}
.news-copy h3 {
    font-size:1.5625vw;
    line-height:1;
    letter-spacing:-.03em;
    max-width:84%;
    margin-top:.520833vw;
    padding-bottom:.8em;
    font-weight:500}
.news-copy>.text-link {
    position:absolute;
    bottom:1.041667vw;
    right:1.041667vw}
.news-dialog {
    color:#fff;
    background:var(--paper);
    border:1px solid var(--line);
    width:min(620px,90vw);
    max-height:85dvh;
    overflow-y:auto;
    padding:30px;
    line-height:1.5}
.news-dialog::backdrop {
    background:#000b}
.news-dialog form {
    text-align:right}
.news-dialog button {
    border:0;
    background:none;
    color:#fff;
    padding:0 0 20px}
.news-dialog h2 {
    font-size:28px;
    line-height:1.1;
    margin:15px 0}
.news-dialog-content a {text-decoration:underline}
.news-dialog-content .wp-block-gallery.has-nested-images {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:20px;
}
.news-dialog-content .wp-block-gallery.has-nested-images > figure.wp-block-image {
    width:100% !important;
    margin:0;
}
.news-dialog-content .wp-block-gallery > figure:first-child,
.news-dialog-content .wp-block-gallery > figure:last-child:nth-child(even) {
    grid-column:1/-1;
}
.news-dialog-content .wp-block-gallery > figure.wp-block-image img {
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
}
.news-dialog-content .wp-block-gallery > figure:first-child img,
.news-dialog-content .wp-block-gallery > figure:last-child:nth-child(even) img {
    aspect-ratio:16/9;
}
.vacancies>.section-label {
    margin-bottom:1.5625vw}
.job-group {
    display:grid;
    grid-template-columns:40.43478% 59.56522%;
    border-top:1px solid var(--line)}
.job-group:last-child {
    border-bottom:1px solid var(--line)}
.job-group>h3 {
    font-size:1.5625vw;
    line-height:1;
    max-width:17vw;
    padding-top:1.041667vw;
    font-weight:400}
.job-list {
    grid-column:2}
.job {
    border-bottom:1px solid var(--line);
    position:relative}
.job:last-child {
    border:0}
.job summary {
    list-style:none;
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:15px;
    min-height:3.854167vw;
    padding:1.041667vw 0;
    color:#fff}
.job h4 {
    font-size:1.5625vw;
    line-height:1.1;
    letter-spacing:-.03em}
.job[open] {
    border-bottom:0;
    min-height:9.947917vw;
    isolation:isolate;
    background:#000}
.job[open]::before {
    content:"";
    position:absolute;
    inset:0 0 0 -19.375vw;
    z-index:-1;
    background:#000;
    pointer-events:none}
.job[open] summary {
    color:#fff}
.vacancies:has(.job[open]) .job:not([open]) summary {
    color:rgba(255,255,255,.5)}
.job-body {
    padding-bottom:0;
    min-height:0}
.job-body>p {
    width:32.75%}
.job-body>a {
    display:inline-block;
    font-size:.729167vw;
    margin-top:.6vw;
    text-decoration:underline}
.job-photo {
    position:absolute;
    right:calc(100% + 1.041667vw);
    top:0;
    width:18.333333vw;
    max-width:none;
    height:9.947917vw;
    object-fit:cover;
    object-position:right center}
.site-footer {
    padding:0 var(--gutter) 2.083333vw;
    margin-top:var(--space)}
.contact-banner {
    position:relative;
    padding-top:1vw;
    height:19.53125vw}
.contact-values {
    display:flex;
    justify-content:space-between;
    text-transform:uppercase;
    font-size:.833333vw;
    position:relative;
    z-index:1}
.contact-word {
    font-size:16.145833vw;
    line-height:1;
    text-transform:uppercase;
    letter-spacing:-.01em;
    font-weight:600;
    text-align:center;
    white-space:nowrap;
    position:absolute;
    top:.520833vw;
    left:-.5vw;
    right:-.5vw}
.contact-action {
    position:absolute;
    left:34.18%;
    top:5.104167vw;
    background:var(--paper);
    width:33.0435%;
    height:5.78125vw;
    display:grid;
    place-items:center}
.contact-action .button {
    min-height:0;
    height:2.34375vw;
    text-transform:uppercase;
    font-weight:600;
    padding:0 1.510417vw}
.footer-columns {
    display:grid;
    font-size:16px;
    grid-template-columns:1fr 2fr 1fr;
    gap:2vw;
    align-items:start;
    margin-top:1.71875vw}
.footer-columns nav {
    display:grid;
    gap:.260417vw;
    margin-top:.520833vw}
.footer-phone {
    font-size:6.25vw;
    line-height:.9167;
    letter-spacing:-.01em;
    font-weight:600;
    text-align:center;
    margin-top:-1.458333vw}
.footer-phone span {
    display:block}
.footer-address {
    text-align:right}
.footer-address p+p {
    margin-top:.520833vw}
.footer-address p:nth-child(3) {
    margin-top:.833333vw}
.footer-columns .muted {
    font-weight:600}
.footer-bottom {
    display:flex;
    justify-content:space-between;
    margin-top:2.083333vw;
    color:#757575;
    font-size:.625vw}
.footer-bottom a {
    text-decoration:underline;
    text-transform:uppercase}
.content {
    max-width:1000px;
    margin:0 auto;
    padding:150px 24px 60px;
    line-height:1.65;
    min-height:60vh}
.content h1 {
    font-size:clamp(36px,5vw,72px);
    line-height:1;
    letter-spacing:-.05em;
    margin-bottom:35px}
.content h2 {
    margin:2em 0 .6em}
.content p {
    margin-bottom:1em}
.content article+article {
    margin-top:60px}
.content a {
    text-decoration:underline}
.content .notice {
    border:1px solid var(--line);
    padding:24px}
.about>.editorial-grid {
    min-height:24.479167vw}
.services-hero {
    position:relative;
    height:56.614583vw;
    overflow:hidden}
.services-hero-image {
    width:100%;
    height:100%;
    object-fit:cover}
.services-title {
    position:absolute;
    left:21.4583%;
    top:30.6348%;
    font-size:6.25vw;
    line-height:1;
    letter-spacing:-.04em}
.services-title span {
    display:block}
.services-title span:nth-child(2),.services-title span:nth-child(4),.services-title span:nth-child(5) {
    margin-left:19.375vw}
.services-intro {
    position:absolute;
    left:57.4479%;
    top:auto;
    bottom:calc(69.3652% - 17.864583vw);
    width:14.1146%}
.services-caption {
    position:absolute;
    left:28.4896%;
    top:auto;
    bottom:calc(69.3652% - 29.583333vw);
    width:11.3021%}
.all-services>.editorial-grid {
    align-items:baseline;
    margin-bottom:2.083333vw}
.all-services>.editorial-grid>h3 {
    font-size:1.979167vw;
    font-weight:600}
.catalog-service {
    border-top:1px solid var(--line)}
.catalog-service:last-child {
    border-bottom:1px solid var(--line)}
.catalog-service summary {
    display:grid;
    grid-template-columns:40.43478% 1fr 25px;
    align-items:center;
    list-style:none;
    min-height:4.166667vw;
    padding:1.25vw 0;
    color:var(--muted)}
.catalog-service summary>span {
    font-size:1.145833vw}
.catalog-service h3 {
    font-size:1.5625vw;
    line-height:1.1;
    color:white}
.catalog-plus {
    width:25px;
    max-width:none}
.catalog-minus {
    display:none;
    width:25px;
    max-width:none}
.catalog-service[open] .catalog-plus {
    display:none}
.catalog-service[open] .catalog-minus {
    display:block}
.catalog-body {
    margin-left:40.43478%;
    width:19.130435%;
    padding-bottom:1.822917vw}
.catalog-body p {
    line-height:1.1}
.catalog-body .button {
    margin-top:1.5625vw;
    min-height:0;
    height:2.083333vw;
    width:12.395833vw;
    padding:0}
.catalog-photo {
    width:100%;
    height:33.072917vw;
    object-fit:cover}
.pricing-statement {
    font-size:1.979167vw;
    line-height:1.05;
    letter-spacing:-.03em;
    width:66.33%;
    font-weight:500}
.pricing .narrow {
    font-size:16px;
    line-height:1.1}
.price-grid {
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:1.041667vw;
    margin-top:1.5625vw}
.price-card>img,.price-spacer {
    width:100%;
    height:18.28125vw;
    object-fit:cover;
    border:1px solid #262626}
.price-number {
    font-size:3.75vw;
    line-height:1;
    letter-spacing:-.07em;
    margin-top:.520833vw}
.price-number small {
    font-size:.833333vw;
    letter-spacing:-.03em;
    margin-left:.3em}
.price-caption {
    font-size:.833333vw;
    max-width:12vw;
    margin-top:.520833vw}
.price-note {
    font-size:.625vw;
    margin-top:1.5vw}
.maintenance-head {
    height:16.302083vw;
    padding:10.052083vw var(--gutter) 0;
    position:relative}
.maintenance-head h1 {
    font-size:6.25vw;
    line-height:1;
    letter-spacing:-.07em;
    white-space:nowrap;
    margin-left:-.2vw}
.maintenance-values {
    display:flex;
    justify-content:space-between;
    font-size:1.041667vw;
    margin:0 0 .5vw 8.4vw}
.maintenance-values span:nth-child(2) {
    margin-right:41vw}
.maintenance-photo {
    height:40.3125vw;
    overflow:hidden;
    position:relative}
.maintenance-photo img {
    position:absolute;
    width:100%;
    height:351.7%;
    max-width:none;
    top:-107.75%;
    left:0}
.maintenance-statement {
    font-size:1.979167vw;
    line-height:.9;
    letter-spacing:-.03em;
    max-width:42.708333vw}
.maintenance-copy {
    position:relative;
    width:36.86%;
    margin-top:1.041667vw;
    line-height:1.2}
.maintenance-inset {
    position:absolute;
    width:9.895833vw;
    height:10.572917vw;
    right:calc(100% + 1.041667vw);
    top:0;
    overflow:hidden}
.maintenance-inset img {
    width:100%;
    height:100%;
    object-fit:cover}
.maintenance-inset .inset-overlay {
    position:absolute;
    inset:0}
.maintenance-schedule {
    padding:0}
.maintenance-schedule>.section-label {
    margin:0 var(--gutter) 1.5625vw}
.schedule-grid {
    position:relative;
    display:grid;
    grid-template-columns:25.78125% 24.21875% 24.21875% 25.78125%;
    grid-template-rows:repeat(3,16.041667vw)}
.schedule-background {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:fill;
    object-position:bottom;
    filter:brightness(.4);
    z-index:-1}
.schedule-item {
    padding:2.083333vw;
    border-right:1px solid #ffffff30;
    border-bottom:1px solid #ffffff30;
    position:relative}
.schedule-item summary {
    list-style:none;
    height:100%;
    display:flex;
    flex-direction:column;
    justify-content:space-between}
.schedule-item summary>span {
    font-size:1.145833vw}
.schedule-item h3 {
    font-size:1.979167vw;
    line-height:1;
    max-width:20vw;
    font-weight:500}
.schedule-item[open] {
    background:#000}
.schedule-item[open] summary {
    height:65%}
.schedule-item>p {
    font-size:.833333vw;
    margin-top:.833333vw;
    max-width:15vw}
.schedule-1 {
    grid-column:1;
    grid-row:1}
.schedule-2 {
    grid-column:3;
    grid-row:1}
.schedule-3 {
    grid-column:4;
    grid-row:1}
.schedule-4 {
    grid-column:1;
    grid-row:3}
.schedule-5 {
    grid-column:2;
    grid-row:3}
.schedule-6 {
    grid-column:4;
    grid-row:3}
@media(max-width:900px) and (min-width:601px) {
    .catalog-body {
    width:35%}
.catalog-body .button {
    height:32px;
    width:170px}
.catalog-service h3 {
    font-size:18px}
.maintenance-copy {
    width:65%}
.schedule-item>p {
    font-size:10px;
    max-width:100%}
.schedule-grid {
    grid-template-rows:repeat(3,20vw)}
}
@media(max-width:600px) {
    .about>.editorial-grid {
    min-height:0}
.services-hero {
    height:680px}
.services-hero-image {
    object-position:center}
.services-title {
    left:6%;
    top:30%;
    font-size:11vw;
    line-height:.95;
    letter-spacing:-.05em}
.services-title span:nth-child(2),.services-title span:nth-child(4),.services-title span:nth-child(5) {
    margin-left:19vw}
.services-intro {
    left:48%;
    top:66%;
    width:46%}
.services-caption {
    left:8%;
    top:82%;
    width:50%}
.all-services>.editorial-grid {
    margin-bottom:24px}
.all-services>.editorial-grid>h3 {
    font-size:30px;
    margin-top:24px}
.catalog-service summary {
    grid-template-columns:32px 1fr 20px;
    min-height:70px;
    padding:20px 0}
.catalog-service summary>span {
    font-size:13px}
.catalog-service h3 {
    font-size:20px}
.catalog-plus,.catalog-minus {
    width:20px;
    max-width:20px}
.catalog-body {
    margin-left:32px;
    width:calc(100% - 32px);
    padding-bottom:24px}
.catalog-body p {
    line-height:1.3}
.catalog-body .button {
    width:200px;
    height:44px;
    margin-top:24px}
.catalog-photo {
    height:240px}
.pricing-statement {
    font-size:28px;
    width:100%;
    line-height:1.05}
.price-grid {
    grid-template-columns:1fr 1fr;
    gap:24px 16px;
    margin-top:32px}
.price-grid-gap {
    display:none}
.price-card>img,.price-card>.price-spacer {
    height:210px}
.price-number {
    font-size:42px;
    margin-top:10px}
.price-number small {
    font-size:12px}
.price-caption {
    font-size:12px;
    max-width:100%;
    line-height:1.2;
    margin-top:10px}
.price-note {
    font-size:11px;
    line-height:1.4;
    margin-top:24px}
.maintenance-head {
    height:280px;
    padding:160px 16px 0}
.maintenance-head h1 {
    font-size:11vw;
    white-space:normal;
    line-height:.9}
.maintenance-values {
    font-size:12px;
    margin:0 0 18px}
.maintenance-values span:nth-child(2) {
    margin:0}
.maintenance-photo {
    height:300px}
.maintenance-photo img {
    height:230%;
    width:auto;
    max-width:none;
    top:-55%;
    left:-8%}
.maintenance-description .editorial-copy {
    margin-top:32px}
.maintenance-statement {
    font-size:28px;
    max-width:100%;
    line-height:1}
.maintenance-copy {
    width:100%;
    margin-top:24px;
    line-height:1.4}
.maintenance-inset {
    position:relative;
    top:auto;
    right:auto;
    width:120px;
    height:130px;
    float:left;
    margin:0 16px 16px 0}
.maintenance-copy:after {
    content:'';
    display:block;
    clear:both}
.maintenance-schedule>.section-label {
    margin-bottom:24px}
.schedule-grid {
    grid-template-columns:1fr 1fr;
    grid-template-rows:repeat(3,minmax(260px,auto));
    isolation:isolate}
.schedule-background {
    object-fit:cover}
.schedule-item {
    grid-column:auto;
    grid-row:auto;
    padding:20px}
.schedule-item summary>span {
    font-size:14px}
.schedule-item h3 {
    font-size:24px;
    max-width:100%}
.schedule-item>p {
    font-size:12px;
    max-width:100%;
    margin-top:14px}
.schedule-item[open] summary {
    height:auto;
    min-height:100px}
}
@media(min-width:1921px) {
    body {
    --body:18px}
}
@media(max-width:900px) and (min-width:601px) {
    .narrow,.about .narrow {
    width:52%}
.company-stats {
    width:25%}
.home-service h3,.job h4,.job-group>h3 {
    font-size:18px}
.home-service-body p {
    width:45%;
    font-size:12px}
.service-photo {
    left:65%;
    top:50%;
    width:34%;
    height:auto;
    aspect-ratio:400 / 317}
.home-service-body {
    min-height:0}
.job-body>p {
    width:60%;
    font-size:12px}
.job[open]::before {
    left:-25.041667vw}
.job-photo {
    width:24vw;
    height:20vw}
.job[open] {
    min-height:20vw}
.news-copy time {
    font-size:10px}
.news-copy h3 {
    font-size:18px}
.news-copy {
    min-height:100px}
.object-description {
    font-size:12px;
    width:25%}
.objects {--active-house-top:70px;--active-house-height:210px}
.object-description p {
    width:100%}
.object-description .button {
    width:100%;
    height:32px}
.footer-bottom {
    font-size:10px}
.hero-button {
    height:32px}
.hero-tagline {
    font-size:12px}
.advantage p {
    font-size:10px}
}
@media(max-width:600px) {
 :root {
    --gutter:16px;
    --space:72px;
    --body:14px}
html {
    scroll-padding-top:20px}
.site-header {
    inset:20px 16px auto;
    align-items:center}
.brand-image {
    width:28px}
.menu-toggle {
    display:flex;
    gap:24px;
    align-items:center;
    border:0;
    background:var(--paper);
    padding:8px 12px;
    color:white;
    min-height:40px;
    z-index:12}
.menu-toggle span {
    font-size:24px}
.site-header nav {
    display:none;
    position:absolute;
    right:0;
    top:50px;
    width:min(300px,100%);
    padding:24px;
    background:var(--paper);
    color:white;
    box-shadow:0 8px 30px #0008}
.site-header nav.is-open {
    display:grid;
    gap:24px}
.site-header nav a+a:before {
    display:none}
.home-hero {
    height:720px;
    max-height:95svh;
    min-height:560px}
.hero-photo {
    left:18%;
    top:0}
.hero-photo img {
    width:auto;
    height:150%;
    left:-70%;
    top:-28%}
.hero-grid {
    background:linear-gradient(90deg,transparent 18%,#ffffff4d 18%,transparent calc(18% + 1px)),linear-gradient(0deg,transparent 25%,#ffffff4d 25%,transparent calc(25% + 1px))}
.mask-left {
    width:18%;
    height:75%}
.mask-top {
    width:40%;
    height:110px}
.mask-step {
    display:none}
.mask-bottom-left {
    width:18%;
    height:25%}
.mask-bottom-right {
    width:50%;
    height:10%}
.home-hero h1 {
    font-size:10.9vw;
    letter-spacing:-.08em;
    left:4%;
    top:52%}
.hero-tagline {
    left:27%;
    top:64%;
    font-size:13px}
.hero-button {
    left:27%;
    top:75%;
    width:60%;
    height:46px}
.advantages {
    height:auto;
    padding:24px 0 48px}
.advantages>.section-label {
    margin-left:16px}
.advantages-grid {
    position:relative;
    inset:auto;
    display:block;
    margin-top:24px}
.advantage {
    min-height:330px}
.advantage-circle {
    width:345px}
.advantage-copy {
    width:min(240px,70%)}
.advantage-copy>.muted {
    font-size:14px}
.advantage h3 {
    font-size:32px;
    margin:10px 0}
.advantage p {
    font-size:13px}
.advantages-shape {
    display:none}
.editorial-grid {
    display:block}
.editorial-copy {
    margin-top:32px}
.statement {
    font-size:34px;
    line-height:.95}
.quote:before {
    display:none}
.about .narrow,.narrow {
    width:100%;
    max-width:360px;
    margin-top:24px;
    line-height:1.3}
.about-photo {
    height:470px;
    margin-top:32px}
.about-photo>img {
    object-position:center}
.company-stats {
    left:auto;
    right:0;
    width:180px;
    padding:18px}
.company-stats>div {
    gap:14px}
.company-stats>div+div {
    margin-top:20px}
.company-stats dt {
    font-size:64px}
.company-stats dd {
    margin-bottom:4px}
.home-service-list {
    margin-top:28px;
    width:100%}
.home-service summary {
    grid-template-columns:36px 1fr 24px;
    padding:20px 0;
    min-height:64px}
.home-service h3 {
    font-size:22px;
    max-width:220px}
.home-service[open] h3 {
    max-width:220px}
.service-number {
    font-size:14px}
.service-arrow {
    width:24px;
    right:0;
    top:20px}
.home-service[open] .service-arrow {
    top:20px}
.home-service-body {
    margin-left:36px;
    min-height:0;
    padding:0 0 20px}
.home-service-body p {
    width:100%;
    font-size:14px;
    line-height:1.3}
.service-photo {
    position:static;
    transform:none;
    width:100%;
    height:auto;
    margin-top:20px}
.home-service-body .text-link {
    margin-top:18px}
.services-button {
    margin:24px 0 0 36px;
    width:calc(100% - 36px);
    height:44px}
.home-service-body .service-more {
    font-size:14px}
.objects {
    height:auto;
    min-height:780px;
    padding:24px 16px 32px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px}
.objects>.section-label {
    position:static;
    grid-column:1/-1}
.object-count {
    left:0;
    top:44px;
    opacity:.8}
.object-count span:first-child {
    font-size:88vw}
.object-count span:last-child {
    font-size:21vw;
    margin:0}
.object-gallery {
    position:relative;
    left:auto;
    top:auto;
    width:100%;
    min-height:440px;
    grid-column:2}
.object-active {
    top:0}
.object-active img {
    height:210px;
    object-fit:cover}
.object-next {
    top:247px;
    left:15%;
    width:70%}
.object-next img {
    height:130px}
.object-peek {
    display:none}
.object-description {
    position:relative;
    left:auto;
    top:auto;
    transform:none;
    width:100%;
    grid-column:1/-1;
    font-size:16px;
    max-width:320px}
.object-description p {
    width:200px}
.object-description .button {
    width:200px;
    height:44px;
    margin-top:20px}
.object-controls {
    position:relative;
    right:auto;
    top:auto;
    grid-column:1/-1;
    display:flex;
    gap:24px}
.object-controls img {
    width:32px}
.section-heading {
    margin-bottom:24px}
.news-grid {
    display:block}
.news-card+.news-card {
    margin-top:20px}
.news-image,.news-card:first-child .news-image {
    height:220px}
.news-copy {
    padding:14px;
    min-height:140px}
.news-copy time {
    font-size:12px}
.news-copy h3 {
    font-size:24px;
    margin-top:10px;
    max-width:100%;
    padding-bottom:35px}
.news-copy>.text-link {
    bottom:14px;
    right:14px}
.vacancies>.section-label {
    margin-bottom:24px}
.job-group {
    display:block}
.job-group>h3 {
    font-size:24px;
    max-width:280px;
    padding:24px 0}
.job summary {
    padding:20px 12px;
    min-height:64px;
    align-items:start}
.job h4 {
    font-size:20px}
.job summary .text-link {
    white-space:nowrap;
    margin-top:3px}
.job-body {
    padding:0 12px 24px;
    min-height:0}
.job-body>p {
    width:100%;
    line-height:1.3}
.job-body>a {
    font-size:14px;
    margin-top:20px}
.job-photo {
    position:static;
    width:100%;
    height:190px;
    margin-bottom:20px}
.contact-banner {
    height:150px;
    padding-top:12px}
.contact-values {
    font-size:8px;
    letter-spacing:0}
.contact-word {
    font-size:15.5vw;
    top:26px;
    left:0;
    right:0}
.contact-action {
    left:33%;
    top:50px;
    width:34%;
    height:45px}
.contact-action .button {
    height:30px;
    padding:0 12px}
.footer-columns {
    grid-template-columns:1fr 1fr;
    gap:32px;
    margin-top:24px}
.footer-phone {
    grid-column:1/-1;
    grid-row:1;
    font-size:16vw;
    line-height:.95;
    margin:0 0 8px}
.footer-columns nav {
    gap:10px;
    margin-top:12px}
.footer-address p+p {
    margin-top:12px}
.footer-address p:nth-child(3) {
    margin-top:20px}
.footer-bottom {
    display:grid;
    gap:16px;
    margin-top:40px;
    font-size:10px;
    line-height:1.4}
.site-footer {
    padding-bottom:32px}
.content {
    padding-top:120px}
.news-dialog h2 {
    font-size:24px}
}
.news-pagination {
    display:flex;
    gap:16px;
    margin-top:32px}
.maintenance-hero {
    position:relative}
.maintenance-head h1 {
    position:absolute;
    left:1.822917vw;
    top:9.544271vw;
    font-size:7.682292vw;
    line-height:1;
    display:flex;
    gap:.625vw;
    z-index:2;
    margin:0}
.maintenance-head h1 span:first-child {
    width:44.010417vw}
.maintenance-decoration {
    position:absolute;
    inset:0;
    pointer-events:none}
.maintenance-vector {
    position:absolute;
    max-width:none;
    height:auto}
.vector-one {
    left:24.624479%;
    top:16.197917vw;
    width:.948484vw}
.vector-two {
    left:13.958333%;
    top:0;
    width:.9375vw}
.vector-three {
    left:33.941667%;
    top:0;
    width:.987193vw}
.vector-four {
    left:70.504167%;
    top:16.197917vw;
    width:.985193vw}
.services-title {
    font-size:7.8125vw;
    line-height:.8;
    letter-spacing:-.07em}
.services-title span:nth-child(3) {
    margin-top:-.885417vw}
.services-hero-image {
    object-fit:fill;
    object-position:bottom}
.services-intro,.services-caption {
    font-size:15px;
    line-height:1;
    font-weight:500;
    letter-spacing:-.01em}
.services-caption {
    text-align:right}
@media(min-width:481px) {
    .services-intro-phrase {white-space:nowrap}
}
.catalog-service summary .catalog-plus {
    opacity:.5}
.catalog-service[open] summary .catalog-minus {
    opacity:.5}
@media(max-width:600px) {
.maintenance-head h1 {
    position:static;
    font-size:11vw;
    line-height:.9;
    display:block;
    letter-spacing:-.07em}
.maintenance-head h1 span {
    display:block}
.maintenance-head h1 span:first-child {
    width:auto}
.maintenance-decoration {
    display:none}
.services-title {
    font-size:12.5vw;
    line-height:.85}
.services-title span:nth-child(3) {
    margin-top:-.5vw}
.services-hero-image {
    object-fit:cover}
}
.all-services>.editorial-grid {grid-template-columns:40.43478% 1fr auto;}
.catalog-collapse {border:0;background:none;padding:0;justify-self:end;opacity:.5;}
.catalog-collapse img {width:100%;height:auto;}
.schedule-grid {isolation:isolate;}
@media(max-width:600px) {
    .schedule-grid {grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(6,220px);}
    .schedule-item {min-width:0;}
    .schedule-item h3 {font-size:24px;overflow-wrap:normal;}
    .hero-photo img {height:211.99%;left:-210%;top:-94.39%;}
    .all-services>.editorial-grid {display:grid;grid-template-columns:1fr 30px;gap:24px;}
    .all-services>.editorial-grid>.section-label {grid-column:1/-1;}
    .all-services>.editorial-grid>h3 {margin-top:0;}
}
@media(prefers-reduced-motion:reduce) {
    html {
    scroll-behavior:auto}
* {
    transition:none!important}
}

.object-gallery {overflow:hidden;touch-action:pan-x pinch-zoom}
.object-gallery:focus-visible {outline:1px solid #c9c9c9;outline-offset:6px}
.object-motion-item {position:absolute;margin:0;pointer-events:none;z-index:3}
.object-motion-item img {display:block;width:100%;object-fit:cover;object-position:bottom}
.object-motion-item :is(figcaption,p) {line-height:1.2}

@media(max-width:600px) {
    .job[open]::before {left:0}
}

@media(max-width:600px) {
    .job[open] {height:auto}
}

@media(max-width:600px) {
    .services-intro {top:auto;bottom:calc(70% - 31.375vw)}
}

@media(max-width:600px) {
    .services-caption {top:auto;bottom:calc(70% - 51.375vw)}
}

.catalog-tools {--catalog-icon-size:clamp(16px,1.302083vw,25px);display:flex;align-items:center;gap:2px;justify-self:end}
.catalog-collapse,.catalog-grid-icon {width:var(--catalog-icon-size);height:var(--catalog-icon-size);flex:none}
.catalog-grid-icon {display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:calc(var(--catalog-icon-size) * .12);padding:calc(var(--catalog-icon-size) * .12);opacity:1}
.catalog-grid-icon i {border:1px solid #fff}

/* Expanded services copy uses the available space in two columns. */
.catalog-body.catalog-body-columns {
    width:59.56522%;
}
.catalog-body-columns .catalog-description {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px 2.5vw;
}
.catalog-body-columns .catalog-description p {
    margin:0;
    font-size:16px;
    line-height:1.35;
}
@media(max-width:600px) {
    .catalog-body.catalog-body-columns {
        width:calc(100% - 32px);
    }
    .catalog-body-columns .catalog-description {
        grid-template-columns:minmax(0,1fr);
    }
}

@media(min-width:601px) {
    #service-1 .catalog-body-columns,
    #service-2 .catalog-body-columns,
    #service-3 .catalog-body-columns,
    #service-4 .catalog-body-columns,
    #service-5 .catalog-body-columns,
    #service-6 .catalog-body-columns,
    #service-7 .catalog-body-columns {
        width:calc(59.56522% - clamp(48px, 5vw, 96px));
    }
}

/* Service view controls and image cards. */
.catalog-grid-icon {border:0;background:none;color:inherit;cursor:pointer}
.catalog-tools [data-catalog-view] {opacity:1}
.catalog-tools [data-catalog-view][aria-pressed="true"] {opacity:.5}
.catalog-tools [data-catalog-view]:hover {background:none;color:inherit}
.catalog-tools [data-catalog-view]:focus-visible {outline:2px solid #fff;outline-offset:4px}
.catalog-card-preview {display:none}
.service-catalog.is-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px;align-items:start}
.is-grid .catalog-service {min-width:0;border:0}
.is-grid .catalog-service summary {grid-template-columns:auto 1fr 25px;gap:16px;min-height:0;padding:0;cursor:pointer}
.is-grid .catalog-service summary>span {font-size:14px}
.is-grid .catalog-service h3 {font-size:clamp(18px,1.5625vw,30px)}
.is-grid .catalog-service:not([open]) .catalog-card-preview {display:block;grid-column:1/-1;width:100%;height:auto;aspect-ratio:1.8;object-fit:cover;margin-bottom:4px}
.is-grid .catalog-service[open] {grid-column:1/-1;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0}
.is-grid .catalog-service[open] summary {margin-bottom:24px}
@media(max-width:1000px) {
    .service-catalog.is-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px) {
    .service-catalog.is-grid {grid-template-columns:1fr;gap:28px}
    .is-grid .catalog-service h3 {font-size:20px}
}

@media(min-width:1001px) {
    .is-grid #service-7:not([open]) {grid-column:2}
}
@media(min-width:601px) and (max-width:1000px) {
    .is-grid #service-7:not([open]) {
        grid-column:1/-1;
        width:calc((100% - 24px) / 2);
        justify-self:center;
    }
}

/* Match the visible bounds and stroke weight of both view icons. */
.catalog-tools .catalog-collapse {
    display:grid;
    grid-template-rows:repeat(3,minmax(0,1fr));
    gap:calc(var(--catalog-icon-size) * .12);
    padding:calc(var(--catalog-icon-size) * .12);
}
.catalog-tools .catalog-collapse i {
    display:block;
    min-height:0;
    border:1px solid #fff;
}

.price-number:has(.price-from) {
    display:flex;
    align-items:stretch;
}
.price-number small:has(.price-from) {
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    line-height:1;
    padding:0;
}

/* Trim to cap height and alphabetic baseline; comma descenders stay outside. */
.price-number:has(.price-from) .price-amount {
    text-box-trim:trim-both;
    text-box-edge:cap alphabetic;
}
.price-number small:has(.price-from)>span {
    text-box-trim:trim-both;
    text-box-edge:cap alphabetic;
}
@supports not (text-box-trim:trim-both) {
    .price-number:has(.price-from) .price-amount {line-height:.73}
    .price-number small:has(.price-from) {transform:translateY(-.18em)}
}

/* Restore the upper line-box space removed by trimming the amount. */
.price-number:has(.price-from) {
    padding-top:.14em;
}

.price-card:last-child .price-caption {
    width:100%;
    max-width:18ch;
    text-wrap:balance;
}

.contact-word-fit {left:0;right:0;text-align:left}
.contact-word-fit>span {
    display:inline-block;
    transform-origin:left center;
    transform:translateX(var(--contact-word-offset,0px)) scaleX(var(--contact-word-scale,1));
}

/* Shared navigation stays available while scrolling. */
html {scroll-padding-top:clamp(90px,6vw,130px)}
.site-header {
    position:fixed;
    inset:0 0 auto;
    padding:1.5625vw var(--gutter);
    z-index:60;
    transition:background-color .2s;
}
.site-header.is-scrolled {
    background:rgba(22,22,22,.97);
    box-shadow:none;
}
.site-header.is-scrolled nav {color:#fff}
.site-header.is-scrolled .brand-image {filter:brightness(0) invert(1)}
@media(max-width:600px) {
    .site-header {padding:20px 16px}
    .site-header nav {right:16px;top:calc(100% - 8px)}
}


.news-hero {overflow:hidden;--news-title-drop:.55vw}
.news-hero .maintenance-head {
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:64px var(--gutter) 0;
    min-height:180px;
}
.news-hero .maintenance-values {margin:0;position:relative;top:var(--news-title-drop);z-index:1}
.news-hero .maintenance-values span:nth-child(2) {margin:0}
.news-hero .maintenance-head h1 {
    position:relative;
    inset:var(--news-title-drop) auto auto;
    align-self:flex-start;
    display:block;
    font-size:max(28px,11vw);
    line-height:.84;
    letter-spacing:-.045em;
}
.news-hero .maintenance-head h1 .news-stroke {display:inline-block;position:relative;width:auto}
@media(min-width:601px) {
    .news-hero .maintenance-head {
        display:grid;
        align-content:end;
        justify-content:start;
    }
    .news-hero .maintenance-values {
        display:grid;
        grid-template-columns:1fr auto 1fr;
        z-index:3;
        transform:translateY(calc(.95vw + 100%));
    }
    .news-hero .maintenance-values span:first-child {margin-left:7.45vw}
    .news-hero .maintenance-values span:last-child {justify-self:end}
    .news-stroke::before {
        content:"";
        position:absolute;
        width:.12em;
        height:17vw;
        background:currentColor;
        pointer-events:none;
    }
    .news-stroke-first::before {left:.525em;width:.13em;bottom:.69em}
    .news-stroke-lower::before,.news-stroke-middle::before {
        top:.73em;
        /* Follow the upper edge of the pipe where it hides each stripe. */
        clip-path:polygon(0 0,100% 0,100% var(--pipe-edge-right),0 100%);
    }
    .news-stroke-lower::before {
        left:.185em;
        height:calc(31.2vw - var(--news-title-drop));
        --pipe-edge-right:calc(100% - .4vw);
    }
    .news-stroke-middle::before {
        left:.054em;
        width:.126em;
        height:calc(9.25vw - var(--news-title-drop));
        clip-path:polygon(0 0,100% 0,100% calc(100% - .15vw),35% calc(100% - .11vw),0 100%);
    }
}
.news-page .maintenance-statement {font-weight:600}
.news-page .maintenance-copy > p {font-size:16px}
@media(min-width:601px) {
    .news-page .maintenance-statement {width:55%}
    .news-page .maintenance-copy {width:32.119%;min-height:10.572917vw}
}
.news-page .news {padding-inline:0}
.news-page .section-heading,.news-page .news-empty {margin-inline:var(--gutter)}
.news-ribbon {
    position:relative;
    isolation:isolate;
    --news-row-gap:clamp(72px,11vw,180px);
}
.news-page .news-grid {
    display:grid;
    grid-template-columns:none;
    grid-template-rows:repeat(2,minmax(max(16vw,200px),1fr));
    grid-auto-flow:column;
    grid-auto-columns:max(25%,200px);
    gap:var(--news-row-gap) 0;
    overflow-x:auto;
    scrollbar-width:none;
    scroll-snap-type:x mandatory;
}
.news-ribbon-controls {
    position:absolute;
    inset:50% var(--gutter) auto;
    transform:translateY(-50%);
    display:flex;
    justify-content:space-between;
    pointer-events:none;
}
.news-ribbon-controls button {
    border:0;
    background:#161616;
    padding:0;
    width:44px;
    height:44px;
    pointer-events:auto;
}
.news-ribbon-controls button[aria-disabled="true"] {opacity:.4;cursor:default}
.news-ribbon-controls img {width:100%;height:auto}
.news-ribbon-controls button:last-child img {transform:scaleX(-1)}
.news-page .news-card {
    position:relative;
    background:transparent;
    border:1px solid #ffffff55;
    scroll-snap-align:start;
}
.news-page .news-card:first-child {grid-row:auto}
.news-page .news-copy {
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    gap:14px;
    min-height:0;
    padding:clamp(16px,2.083333vw,40px);
}
.news-page .news-copy time {color:#fff;font-size:clamp(12px,.9vw,18px)}
.news-page .news-copy h3 {font-size:clamp(18px,1.979167vw,38px);max-width:none;padding:0;margin:auto 0 0}
.news-page .news-copy>.text-link {position:static;align-self:flex-start}
@media(max-width:900px) {
    .news-page .news-grid {grid-auto-columns:max(50%,200px)}
    .news-page .news-card+.news-card {margin-top:0}
}
@media(max-width:600px) {
    .news-hero .maintenance-head {height:180px}
    .news-hero .maintenance-values {margin-bottom:2px}
    .news-page .news-grid {grid-auto-columns:82%}
}


.home #main :is(.advantage-copy p, .about .narrow, .home-service-body p, .object-description p, .job-body > p) {
    font-size:16px;
}

.feedback-dialog {
    width:min(500px, calc(100% - 32px));
    max-height:calc(100dvh - 32px);
    padding:clamp(20px,4vw,36px);
    border:1px solid var(--line);
    background:var(--paper);
    color:#fff;
}
.feedback-dialog::backdrop {background:#000b}
.feedback-dialog h2 {margin:0 40px 20px 0;font-size:26px}
.feedback-close {
    position:absolute;
    top:10px;
    right:10px;
    width:40px;
    height:40px;
    border:0;
    background:none;
    font:inherit;
    font-size:26px;
    cursor:pointer;
}
.feedback-form {display:grid;gap:14px}
.feedback-form[hidden] {display:none}
.feedback-form label {display:grid;gap:6px}
.feedback-form :is(input,textarea) {
    width:100%;
    min-width:0;
    padding:10px;
    border:1px solid var(--line);
    background:#202020;
    color:inherit;
    font:inherit;
}
.feedback-form textarea {resize:vertical}
.feedback-form .button {justify-self:start}
.feedback-form .button:disabled {opacity:.5;cursor:default}
.feedback-retry {margin-top:12px;padding:0;border:0;background:none;text-decoration:underline;cursor:pointer}
.feedback-status:not(:empty) {margin-top:12px}

.feedback-form[hidden] ~ .feedback-status {margin:0;padding-inline-end:30px}
