/* Homepage: open editorial layouts inspired by the supplied references. */
.hero {
    position: relative;
    height: 690px;
    color: white;
    overflow: hidden;
    background: var(--navy);
    border-radius: 0 0 100px 0;
}
.hero-image, .hero-shade {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.hero-image {
    object-position: center 57%;
}
.hero-shade {
    background: linear-gradient(90deg, #0a293bd9, #0b2a3c8c 48%, #0b2a3c26);
}
.hero-content {
    position: relative;
    padding-top: 152px;
}
.hero-kicker {
    color: #fff;
    font-size: 17px;
    letter-spacing: .16em;
    margin-bottom: 22px;
}
.hero-kicker span {
    color: #f3d26e;
}
.hero h1 {
    font-size: clamp(36px, 3.45vw, 54px);
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: .06em;
    margin-bottom: 24px;
}
.hero h1 > span {
    color: #f2ca68;
}
.hero-description {
    color: #e0eaf0;
    font-size: 17px;
    line-height: 2;
    margin-bottom: 30px;
}
.hero-contact {
    position: absolute;
    right: 6%;
    top: 42%;
    width: 132px;
    height: 132px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    border-radius: 50%;
    background: #1689bedb;
    border: 1px solid #ffffff78;
    box-shadow: 0 0 0 9px #49b8e331, 0 0 0 10px #c2edff38;
    font-size: 17px;
    transition: transform .3s;
}
.hero-contact:hover {
    transform: translateY(-5px);
}
.hero-contact > span {
    font-size: 25px;
}
.hero-contact small {
    font-size: 13px;
    letter-spacing: .03em;
    color: #d5eef9;
}
.hero-bottom {
    position: absolute;
    bottom: 34px;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 13px;
    letter-spacing: .06em;
    color: #e0eaf0;
}
.hero-pagination {
    display: flex;
    gap: 20px;
}
.hero-pagination button {
    color: #c3d7e3;
    background: none;
    border: none;
    padding: 10px 0;
    font-size: 15px;
    position: relative;
}
.hero-pagination button[aria-pressed="true"] {
    color: white;
}
.hero-pagination button[aria-pressed="true"]::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 2px;
    background: #f3d26e;
}
.hero-bottom > a span {
    margin-left: 20px;
}
.home-intro {
    position: relative;
    background: linear-gradient(145deg, #f6f3ed 0%, #fff 52%, #f5f2eb 100%);
    isolation: isolate;
}
.home-intro::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(90deg, transparent 0, transparent calc(25% - 1px), #aec8d521 25%);
    z-index: -1;
}
.service-entry-layout {
    display: grid;
    grid-template-columns: 1.13fr repeat(3, 1fr);
    align-items: center;
    gap: 30px;
}
.home-services {
    padding-top: 96px;
    padding-bottom: 90px;
}
.home-services .section-title h2 {
    font-size: 30px;
}
.home-services .button {
    margin-top: 6px;
}
.service-entry {
    position: relative;
    padding: 34px 16px 29px;
    text-align: center;
    background: white;
    border-radius: 24px;
    box-shadow: 0 8px 32px #32678812, 0 0 0 7px #ffffff70;
    transition: transform .3s, box-shadow .3s;
}
.service-entry:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 35px #32678821;
}
.service-entry svg {
    width: 65px;
    height: 65px;
    margin: 0 auto 16px;
    color: #268ab9;
}
.service-entry h3 {
    font-size: 20px;
    margin-bottom: 8px;
    font-weight: 600;
}
.service-entry p {
    font-size: 13px;
    margin-bottom: 12px;
}
.entry-arrow {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    color: var(--blue);
    border-radius: 50%;
    background: #eff7fb;
}
.service-entry.featured {
    background: linear-gradient(145deg, #258bac, #176482);
    color: white;
    transform: translateY(-22px);
}
.service-entry.featured p, .service-entry.featured svg {
    color: white;
}
.service-entry.featured:hover {
    transform: translateY(-30px);
}
.about-home {
    padding-top: 45px;
    padding-bottom: 80px;
}
.about-home .about-layout {
    grid-template-columns: 1.05fr 1fr;
    gap: 90px;
}
.about-home .section-title h2 {
    font-size: clamp(28px, 2.4vw, 36px);
}
.about-home .about-layout > div > p {
    line-height: 2.15;
}
.about-home .button {
    margin-top: 14px;
}
.about-composition {
    position: relative;
    padding: 0 45px 72px 0;
}
.about-main {
    width: 100%;
    height: 375px;
    object-fit: cover;
    border-radius: 30px 30px 90px 30px;
    box-shadow: 0 0 0 8px white, 0 15px 40px #395e6f19;
}
.about-inset {
    width: 46%;
    height: 180px;
    object-fit: cover;
    position: absolute;
    right: 0;
    bottom: 0;
    border: 8px solid white;
    border-radius: 25px;
    box-shadow: 0 8px 25px #24475916;
}
.about-caption {
    position: absolute;
    left: 0;
    bottom: 20px;
    color: var(--blue);
    font-size: 14px;
    letter-spacing: .08em;
}
.trust-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 82px;
}
.trust-row > div {
    padding-left: 42px;
    border-left: 1px solid #cbdde5;
}
.trust-row > div > span {
    font-size: 14px;
    color: #6a8394;
}
.trust-row strong {
    display: block;
    color: #1c506c;
    font-size: 40px;
    font-weight: 500;
    margin: 10px 0;
}
.trust-row strong span {
    font-size: 19px;
    padding-left: 10px;
}
.trust-row p {
    margin: 0;
    font-size: 14px;
}
.center-heading {
    text-align: center;
    margin-bottom: 40px;
}
.center-heading .eyebrow {
    justify-content: center;
}
.product-home {
    padding-top: 95px;
    padding-bottom: 90px;
    overflow: hidden;
}
.product-stage {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    align-items: center;
    gap: 70px;
    max-width: 1050px;
    margin: 0 auto;
}
.product-stage-visual {
    position: relative;
    min-height: 410px;
    display: grid;
    place-items: center;
    isolation: isolate;
}
.product-stage-visual > img {
    position: relative;
    width: 88%;
    height: 345px;
    object-fit: contain;
    mix-blend-mode: multiply;
}
.product-orbit {
    position: absolute;
    width: 315px;
    height: 315px;
    background: #e8eef0;
    border-radius: 50%;
    z-index: -1;
}
.product-orbit::before {
    content: '';
    position: absolute;
    width: 82px;
    height: 82px;
    background: #edbc4d;
    border-radius: 50%;
    left: -32px;
    top: 20px;
}
.product-watermark {
    position: absolute;
    bottom: 0;
    font: 600 65px/1 Arial, sans-serif;
    color: #f0f3f5;
    letter-spacing: .07em;
    z-index: -1;
}
.product-stage-copy h3 {
    font-size: 29px;
    font-weight: 600;
    margin-bottom: 23px;
}
.product-stage-copy > p:not(.category) {
    line-height: 2.1;
    margin-bottom: 30px;
}
.product-controls {
    display: flex;
    gap: 20px;
    align-items: center;
    margin-top: 30px;
    font-size: 13px;
    color: #678396;
}
.product-controls button {
    border: 1px solid #d4e4ec;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: white;
    color: var(--blue);
    font-size: 20px;
}
.product-controls button:hover {
    background: var(--blue);
    color: white;
}
.product-selector {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-top: 36px;
    border-top: 1px solid #e4edf2;
    padding-top: 24px;
}
.product-selector button, .product-selector a {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 10px 8px;
    color: #678396;
    font-size: 16px;
}
.product-selector button span {
    margin-left: 14px;
    font-size: 13px;
    color: #9aadb9;
}
.product-selector button[aria-pressed="true"] {
    color: var(--blue);
    box-shadow: 0 2px var(--blue);
}
.product-selector a {
    color: var(--blue);
}
.home-cases {
    background: linear-gradient(125deg, #142f43, #214d63);
    color: #fff;
    border-radius: 100px 0 0 0;
    position: relative;
}
.case-editorial {
    display: grid;
    grid-template-columns: 1.12fr 1fr;
    gap: 55px;
}
.case-feature .image-wrap {
    border-radius: 25px 25px 70px 25px;
}
.case-feature img {
    aspect-ratio: 1.45;
}
.case-feature > div:last-child {
    padding: 24px 55px 0 0;
    position: relative;
}
.case-feature h3 {
    font-size: 24px;
    font-weight: 500;
    margin-bottom: 0;
}
.round-arrow {
    position: absolute;
    right: 0;
    top: 40px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: white;
    background: var(--blue);
    display: grid;
    place-items: center;
}
.case-secondary {
    padding-top: 36px;
}
.case-secondary > a {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    align-items: center;
    padding-bottom: 27px;
    margin-bottom: 27px;
    border-bottom: 1px solid #d7e5ed;
}
.case-secondary .image-wrap {
    border-radius: 20px;
}
.case-secondary img {
    aspect-ratio: 1.15;
}
.case-secondary h3 {
    font-size: 21px;
    font-weight: 500;
    margin-bottom: 15px;
}
.home-cases .image-note {
    margin-top: 28px;
}
.news-home {
    position: relative;
    padding-top: 70px;
    padding-bottom: 120px;
    background: radial-gradient(ellipse at 10% 100%, #eee7d9, transparent 60%);
}
.news-editorial {
    display: grid;
    grid-template-columns: 1.45fr 1fr;
    gap: 55px;
    align-items: center;
}
.news-feature {
    display: grid;
    grid-template-columns: 1fr .85fr;
    align-items: center;
}
.news-feature > img {
    width: 100%;
    height: 370px;
    object-fit: cover;
    border-radius: 28px;
    box-shadow: 0 0 0 6px #edf5f9;
}
.news-feature > div {
    background: #f4eee2;
    border-radius: 0 24px 24px 0;
    padding: 30px 25px;
}
.news-feature h3 {
    font-size: 23px;
    font-weight: 500;
}
.news-feature p:not(.category) {
    font-size: 15px;
}
.news-list > a {
    display: block;
    padding: 22px 0;
    border-bottom: 1px solid #d4e4ed;
    position: relative;
}
.news-list h3 {
    font-size: 21px;
    font-weight: 500;
    margin-bottom: 0;
}
.news-list > a > span {
    font-size: 13px;
    color: var(--blue);
    display: inline-block;
    margin-top: 12px;
}
.news-list .all-news {
    color: var(--blue);
    border: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 0;
}
.news-list .all-news span {
    margin-top: 0;
    font-size: 24px;
}
@media (max-width: 1100px) {
    .hero-contact {
        display: none;
    }
    .service-entry-layout {
        gap: 18px;
    }
    .service-entry h3 {
        font-size: 17px;
    }
    .home-services .section-title h2 {
        font-size: 26px;
    }
    .about-home .about-layout {
        gap: 45px;
    }
    .case-editorial, .news-editorial {
        gap: 32px;
    }
    .news-editorial {
        grid-template-columns: 1.35fr 1fr;
    }
    .news-feature {
        grid-template-columns: 1fr;
    }
    .news-feature > img {
        height: 260px;
    }
    .news-feature > div {
        border-radius: 0 0 24px 24px;
        margin: -20px 20px 0;
        position: relative;
    }
    .case-secondary > a {
        grid-template-columns: .85fr 1fr;
        gap: 18px;
    }
}
@media (max-width: 760px) {
    .hero {
        height: 650px;
        border-radius: 0 0 55px 0;
    }
    .hero-image {
        object-position: 65% center;
    }
    .hero-shade {
        background: linear-gradient(90deg, #0a293be0, #0a293b75);
    }
    .hero-content {
        padding-top: 105px;
    }
    .hero-kicker {
        font-size: 14px;
        letter-spacing: .02em;
    }
    .hero h1 {
        font-size: clamp(26px, 6.65vw, 42px);
        line-height: 1.75;
        letter-spacing: .01em;
    }
    .hero-description {
        font-size: 15px;
        max-width: 325px;
    }
    .hero-bottom {
        bottom: 30px;
        padding-right: 45px;
    }
    .hero-bottom > span {
        display: none;
    }
    .hero-pagination {
        gap: 15px;
    }
    .home-services {
        padding-block: 65px 45px;
    }
    .service-entry-layout {
        grid-template-columns: 1fr 1fr;
        gap: 22px 18px;
    }
    .service-entry-layout > div:first-child {
        grid-column: 1 / -1;
        margin-bottom: 8px;
    }
    .service-entry {
        padding: 25px 10px;
    }
    .service-entry.featured, .service-entry.featured:hover {
        transform: none;
    }
    .service-entry:last-child {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: 65px 1fr 24px;
        text-align: left;
        column-gap: 20px;
        align-items: center;
        padding: 20px 24px;
    }
    .service-entry:last-child svg {
        grid-row: 1 / 3;
        margin: 0;
    }
    .service-entry:last-child h3 {
        grid-column: 2;
        margin-bottom: 0;
    }
    .service-entry:last-child p {
        grid-column: 2;
        margin-bottom: 0;
    }
    .service-entry:last-child .entry-arrow {
        grid-column: 3;
        grid-row: 1 / 3;
    }
    .about-home .about-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .about-home {
        padding-block: 30px 60px;
    }
    .about-main {
        height: 285px;
    }
    .about-inset {
        height: 140px;
    }
    .about-composition {
        padding-right: 25px;
        padding-bottom: 65px;
    }
    .about-caption {
        font-size: 13px;
        letter-spacing: 0;
    }
    .trust-row {
        margin-top: 45px;
        grid-template-columns: 1fr;
        gap: 25px;
    }
    .trust-row > div {
        padding-left: 25px;
    }
    .trust-row strong {
        font-size: 32px;
        margin: 5px 0;
    }
    .trust-row strong span {
        font-size: 18px;
    }
    .product-home {
        padding-block: 65px;
    }
    .product-stage {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .product-stage-visual {
        min-height: 315px;
    }
    .product-stage-visual > img {
        height: 280px;
    }
    .product-orbit {
        width: 260px;
        height: 260px;
    }
    .product-orbit::before {
        width: 65px;
        height: 65px;
        left: -15px;
    }
    .product-watermark {
        font-size: 48px;
    }
    .product-stage-copy h3 {
        font-size: 25px;
    }
    .product-selector {
        flex-wrap: wrap;
        justify-content: start;
        gap: 12px;
    }
    .product-selector button, .product-selector a {
        font-size: 14px;
    }
    .product-selector button span {
        margin-left: 8px;
    }
    .home-cases {
        border-radius: 55px 0 0 0;
    }
    .case-editorial, .news-editorial {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .case-feature h3 {
        font-size: 22px;
    }
    .case-secondary {
        padding-top: 0;
    }
    .case-secondary h3 {
        font-size: 18px;
    }
    .case-secondary > a:last-child {
        margin-bottom: 0;
    }
    .news-home {
        padding-block: 50px 75px;
    }
    .news-feature > div {
        margin-inline: 14px;
        padding: 28px;
    }
}

/* Warm electrical accents paired with cool plumbing tones. */
.service-entry:not(.featured) svg {
    color: #a77420;
}
.service-entry:last-child {
    background: #f8edce;
}
.service-entry:last-child .entry-arrow {
    background: #173d55;
    color: #fff;
}
.home-services .button {
    background: #173d55;
}
.trust-row > div:nth-child(2) strong {
    color: #9d6c16;
}
.trust-row > div:nth-child(3) strong {
    color: #267f86;
}
.product-home {
    background: #fff;
}
.home-cases .eyebrow,
.home-cases .category,
.home-cases .text-link {
    color: #f1cd78;
}
.home-cases .case-secondary > a {
    border-bottom-color: #ffffff30;
}
.home-cases .round-arrow {
    background: #f1cd78;
    color: #173d55;
}
.news-feature .category,
.news-list .category {
    color: #916117;
}
.news-list > a {
    border-bottom-color: #dfd7c7;
}
