.tm-photo-feature {
    background-image: linear-gradient(145deg, rgba(5, 14, 27, .08), rgba(5, 14, 27, .42)), url('assets/upscale-commercial-interior.png');
    background-position: center;
}

/* Semantic image system: crawlable image markup, city-specific metadata, and preserved crops. */
.tm-cover-image,
.tm-interior-hero-media,
.tm-service-hero-media,
.tm-additions-hero-photo,
.tm-residential-hero-image {
    position: absolute;
    inset: 0;
    display: block;
    overflow: hidden;
}

.tm-cover-image img,
.tm-interior-hero-media img,
.tm-service-hero-media img,
.tm-additions-hero-photo img,
.tm-residential-hero-image img,
.tm-card-image img,
.tm-project picture,
.tm-project img,
.tm-benefit-image img,
.tm-bath-outcome-image img,
.tm-whole-hero-image img,
.tm-residential-service-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tm-hero,
.tm-newhome-hero,
.tm-photo-feature,
.tm-interior-hero-media,
.tm-service-hero-media,
.tm-additions-hero-photo,
.tm-residential-hero-image,
.tm-benefit-image,
.tm-bath-outcome-image,
.tm-whole-hero-image {
    background-image: none !important;
}

.tm-hero .tm-cover-image,
.tm-newhome-hero .tm-cover-image,
.tm-repairs-hero .tm-cover-image { z-index: 0; }
.tm-hero::before,
.tm-service-hero::after,
.tm-residential-hero::after { z-index: 1; }
.tm-hero-content,
.tm-service-hero-copy,
.tm-residential-hero-copy,
.tm-repairs-hero-grid { position: relative; z-index: 2; }
.tm-newhome-hero-shade,
.tm-repairs-hero-shade { position: absolute; inset: 0; z-index: 1; }
.tm-repairs-hero-shade { background: linear-gradient(90deg,rgba(3,7,13,.95),rgba(4,12,24,.78) 55%,rgba(3,8,16,.22)); }

#services .tm-service::before { display: none; }
#services .tm-service { padding-top: 0; }
#services .tm-service::after { top: 199px; }
#services .tm-card-image { display: block; height: 205px; margin: 0 -28px 26px; }
#services .tm-service h3 { margin-top: 27px; }

.tm-gallery .tm-project { background-image: none !important; }
.tm-gallery .tm-project picture { position: absolute; inset: 0; }
.tm-photo-feature .tm-cover-image { z-index: 0; }
.tm-photo-feature::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(145deg,rgba(5,14,27,.08),rgba(5,14,27,.42)); }

.tm-benefit-image,
.tm-bath-outcome-image,
.tm-whole-hero-image,
.tm-residential-service-image { overflow: hidden; }
.tm-two-image-stack { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.tm-two-image-stack img { width: 100%; height: 100%; min-height: 330px; object-fit: cover; }
.tm-addition-join-image.tm-two-image-stack { grid-template-columns: 1fr; gap: 0; }
.tm-addition-join-image.tm-two-image-stack img { min-height: 350px; }
.tm-residential-service-card.tm-text-only-card { grid-template-columns: 1fr; min-height: 230px; }
.tm-city-coverage { padding: 20px 24px; text-align: center; background: #071426; color: #c5d2e3; border-top: 1px solid #29405f; font-size: 13px; }

@media (max-width: 640px) {
    #services .tm-card-image { height: 190px; }
    #services .tm-service::after { top: 184px; }
    .tm-two-image-stack { grid-template-columns: 1fr; }
    .tm-city-coverage { font-size: 12px; text-align: left; }
}

.tm-topbar {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 18px;
    min-height: 34px;
}

.tm-topbar-message {
    color: #e5f2ff;
    letter-spacing: .07em;
}

.tm-topbar-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 25px;
    padding: 4px 15px;
    background: #fff;
    color: #075fc7;
    border: 1px solid rgba(255, 255, 255, .82);
    box-shadow: 0 4px 12px rgba(4, 46, 105, .18);
    letter-spacing: .08em;
}

.tm-brand {
    flex-direction: column;
    align-items: flex-start;
    width: 235px;
    padding: 6px 0 10px;
}

.tm-brand .tm-logo {
    width: 100%;
    max-height: none;
}

.tm-brand span {
    width: 100%;
    margin-top: 5px;
    color: #e7c776;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
}

@media (min-width: 1001px) {
    .tm-header-inner {
        width: min(1420px, calc(100% - 64px));
        min-height: 170px;
    }

    .tm-logo {
        width: 100%;
        max-height: none;
    }

    .tm-hero-content {
        width: min(1420px, calc(100% - 64px));
        max-width: none;
    }

    .tm-hero-content > * {
        max-width: 720px;
    }

    .tm-hero {
        min-height: max(530px, calc(100svh - 236px));
    }

    .tm-hero-content {
        padding: 48px 0 54px;
    }

    .tm-hero-content > .tm-eyebrow,
    .tm-hero-content > h1 {
        max-width: 980px;
    }

    .tm-hero h1 {
        margin: 18px 0;
        font-size: clamp(54px, 4.4vw, 74px);
    }

    .tm-hero p {
        font-size: 17px;
    }

    .tm-hero .tm-actions {
        margin-top: 27px;
    }
}

@media (max-width: 640px) {
    .tm-topbar {
        flex-wrap: wrap;
        gap: 7px;
        padding: 8px 14px;
        line-height: 1.35;
    }

    .tm-topbar-message {
        flex-basis: 100%;
    }

    .tm-topbar-button {
        min-height: 23px;
        padding: 3px 13px;
    }

    .tm-header-inner {
        min-height: 108px;
    }

    .tm-logo {
        width: 100%;
        max-height: none;
    }

    .tm-brand {
        width: 215px;
        padding: 8px 0 12px;
    }

    .tm-brand span {
        font-size: 5.5px;
        letter-spacing: .08em;
    }
}

@media (min-width: 641px) {
    .tm-division:first-child > p {
        max-width: 440px;
    }
}

.tm-gallery-link {
    display: block;
    width: fit-content;
    margin-top: 12px;
    color: #075fc7;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.tm-gallery-link:hover {
    color: #0878f9;
}

.tm-stat strong {
    margin-bottom: 10px;
}

.tm-point small,
.tm-process small {
    font-size: 14px;
}

.tm-service-area-footer .tm-area h3 {
    margin-top: 0;
}

.tm-cta-centered {
    padding: 66px 0;
}

.tm-cta-centered-inner {
    max-width: 780px;
    text-align: center;
}

.tm-cta-centered h2 {
    margin-bottom: 18px;
    font-size: clamp(42px, 3vw, 54px);
    white-space: nowrap;
}

.tm-cta-centered-inner > p:not(.tm-eyebrow):not(.tm-cta-call) {
    max-width: 690px;
    margin: 0 auto 26px;
}

.tm-cta-call {
    margin: 18px 0 0;
    font-size: 14px;
}

.tm-cta-call a {
    color: #fff;
    font-weight: 800;
}

@media (max-width: 640px) {
    .tm-cta-centered {
        padding: 54px 0;
    }

    .tm-cta-centered h2 {
        white-space: normal;
    }
}

/* Branded desktop mega navigation */
.tm-primary-menu {
    position: relative;
}

.tm-primary-menu > li {
    position: relative;
}

.tm-primary-menu > .tm-services-menu {
    position: static;
}

.tm-nav-trigger {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 16px 0;
    border: 0;
    background: transparent;
    color: #e8edf5;
    cursor: default;
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    transition: color .2s;
}

.tm-nav-trigger span {
    width: 7px;
    height: 7px;
    margin-top: -3px;
    border-right: 2px solid #42a9ff;
    border-bottom: 2px solid #42a9ff;
    color: transparent;
    font-size: 0;
    transform: rotate(45deg);
    transition: transform .2s;
}

.tm-has-mega:hover .tm-nav-trigger,
.tm-has-mega:focus-within .tm-nav-trigger {
    color: #42a9ff;
}

.tm-has-mega:hover .tm-nav-trigger span,
.tm-has-mega:focus-within .tm-nav-trigger span {
    margin-top: 3px;
    transform: rotate(225deg);
}

.tm-mega {
    position: absolute;
    top: calc(100% + 58px);
    left: 50%;
    z-index: 50;
    width: 410px;
    padding: 21px;
    border: 1px solid #cbd6e2;
    border-top: 3px solid #d5aa55;
    border-radius: 0 0 16px 16px;
    background: linear-gradient(145deg, #f8fafc, #e9eef4);
    box-shadow: 0 24px 65px rgba(0, 0, 0, .48);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 10px);
    visibility: hidden;
    transition: opacity .2s, transform .2s, visibility .2s;
}

.tm-mega::before {
    content: "";
    position: absolute;
    top: -64px;
    right: 0;
    left: 0;
    height: 64px;
}

.tm-has-mega:hover .tm-mega,
.tm-has-mega:focus-within .tm-mega {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0);
    visibility: visible;
}

.tm-mega-services {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    width: min(1180px, calc(100vw - 64px));
    padding: 7px;
}

.tm-menu-group {
    min-width: 0;
}

.tm-menu-group > p {
    margin: 0 0 9px;
    color: #8c6518;
    font-size: 12.5px;
    font-weight: 800;
    letter-spacing: .13em;
    line-height: 1.3;
    text-transform: uppercase;
}

.tm-menu-items {
    display: grid;
    gap: 10px;
}

.tm-menu-card {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 62px;
    padding: 6px 32px 6px 15px;
    overflow: hidden;
    border: 1px solid rgba(77, 145, 215, .42);
    border-left: 3px solid #168cff;
    border-radius: 8px;
    background: #152942;
    color: #fff;
    transition: background .2s, border-color .2s, transform .2s;
}

.tm-menu-card::before {
    content: none;
}

.tm-menu-card::after {
    content: "›";
    position: absolute;
    right: 12px;
    color: #d5aa55;
    font-size: 20px;
}

.tm-menu-card:hover {
    border-color: rgba(71, 173, 255, .52);
    border-left-color: #42a9ff;
    background: #1a3657;
    transform: translateX(2px);
}

.tm-menu-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    font-family: "Segoe UI", Arial, Helvetica, sans-serif;
    line-height: 1.35;
}

.tm-menu-copy strong {
    color: #f5f8fc;
    font-size: 14.5px;
    font-weight: 500;
    letter-spacing: .01em;
    line-height: 1.35;
    text-transform: uppercase;
}

.tm-menu-copy small {
    margin-top: 2px;
    color: #f0f5fb;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: .012em;
    line-height: 1.45;
    text-transform: none;
}

.tm-mega-services .tm-menu-copy small {
    display: -webkit-box;
    min-height: 34.8px;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* Switch to the compact navigation before desktop labels begin wrapping. */
@media (max-width: 1350px) {
    .tm-nav {
        display: none;
    }

    .tm-mobile {
        position: relative;
        display: block;
    }

    .tm-mobile > summary {
        padding: 9px 12px;
        border: 1px solid #2e83df;
        cursor: pointer;
        font-size: 11px;
        font-weight: 800;
        letter-spacing: .08em;
        list-style: none;
        text-transform: uppercase;
    }

    .tm-mobile-nav {
        position: absolute;
        top: calc(100% + 14px);
        right: 0;
        z-index: 70;
        width: min(420px, calc(100vw - 32px));
        max-height: calc(100vh - 180px);
        max-height: min(620px, calc(100dvh - 180px));
        padding: 10px;
        overflow-y: auto;
        border: 1px solid #cbd6e2;
        border-top: 3px solid #d5aa55;
        border-radius: 0 0 14px 14px;
        background: linear-gradient(145deg, #f8fafc, #e9eef4);
        box-shadow: 0 22px 55px rgba(0, 0, 0, .52);
    }

    .tm-mobile-nav > a,
    .tm-mobile-group > summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 13px 12px;
        border-bottom: 1px solid #cad5e1;
        color: #10213a;
        font-size: 11px;
        font-weight: 800;
        letter-spacing: .09em;
        list-style: none;
        text-transform: uppercase;
    }

    .tm-mobile-group > summary::-webkit-details-marker {
        display: none;
    }

    .tm-mobile-group > summary span {
        color: #42a9ff;
        font-size: 18px;
        line-height: 1;
    }

    .tm-mobile-group[open] > summary span {
        transform: rotate(45deg);
    }

    .tm-mobile-panel {
        padding: 13px 7px 17px;
        background: transparent;
    }

    .tm-mobile-panel .tm-menu-group + .tm-menu-group {
        margin-top: 18px;
    }

    .tm-mobile-panel .tm-menu-card {
        min-height: 64px;
        padding-left: 14px;
    }
}

/* Static portfolio preview images; client-owned project photography will replace these. */
.tm-gallery .tm-gallery-placeholder {
    gap: 22px;
}

.tm-gallery .tm-project {
    min-height: 430px;
    background-position: center;
    background-size: cover;
    border: 1px solid #c8d3e2;
    box-shadow: 0 18px 46px rgba(7, 20, 38, .12);
}

.tm-gallery .tm-project:nth-child(1) {
    background-image: url('assets/portfolio-residential-luxury-remodel.webp');
}

.tm-gallery .tm-project:nth-child(2) {
    background-image: url('assets/portfolio-commercial-property.webp');
}

.tm-gallery .tm-project::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 48%, rgba(3, 9, 18, .76) 100%);
}

.tm-gallery .tm-project::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 5px;
    background: linear-gradient(90deg, #0878f9 0 72%, #d5aa55 72% 84%, #071426 84%);
}

.tm-gallery .tm-project span {
    z-index: 1;
    bottom: 27px;
    font-size: 11px;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .55);
}

.tm-service-area-footer {
    position: relative;
    background: #fff;
    border-bottom: 1px solid #dce3ed;
}

.tm-service-area-footer::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, #0878f9, #24a1ff 48%, #d5aa55 76%, transparent);
}

/* Full site footer. */
.tm-footer {
    position: relative;
    overflow: hidden;
    padding: 78px 0 30px;
    background: linear-gradient(145deg, #030509 0%, #071426 72%, #06101f 100%);
    color: #aeb9ca;
    border-top: 1px solid #1c3d67;
}

.tm-footer::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, #0878f9, #24a1ff 48%, #d5aa55 76%, transparent);
}

.tm-cta .tm-contact-links a {
    font-size: clamp(22px, 2.25vw, 30px);
    line-height: 1.25;
}

.tm-footer-grid {
    display: grid;
    grid-template-columns: 1.45fr .72fr 1fr 1fr;
    gap: 56px;
    align-items: start;
}

.tm-footer-brand img {
    display: block;
    width: 260px;
    max-height: none;
    margin: -20px 0 20px;
    object-fit: contain;
    object-position: left center;
}

.tm-footer-brand-contact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #26364c;
}

.tm-footer-brand-contact a {
    margin-bottom: 6px;
    color: #dbe3ef;
    font-size: 14px;
}

.tm-footer-brand-contact .tm-footer-brand-phone {
    color: #fff;
    font: 500 18px Georgia, serif;
}

.tm-footer-brand-contact address {
    margin-top: 8px;
    color: #99a7bb;
    font-size: 13px;
    font-style: normal;
    line-height: 1.65;
}

.tm-social-icons {
    display: flex;
    gap: 10px;
    align-items: center;
}

.tm-social-icon {
    display: inline-flex;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    box-shadow: 0 5px 14px rgba(0, 0, 0, .24);
}

.tm-social-icon svg {
    display: block;
    width: 100%;
    height: 100%;
}

.tm-footer-social p {
    max-width: 220px;
    margin-top: 14px;
}

.tm-footer-brand p {
    max-width: 360px;
    margin: 0 0 15px;
    color: #bac5d5;
    font-size: 14px;
}

.tm-footer-brand strong {
    display: block;
    margin: 0 0 14px;
    color: #e8c778;
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.tm-footer-column h3 {
    margin: 0 0 20px;
    color: #67b8ff;
    font: 500 22px Georgia, serif;
}

.tm-footer-column nav,
.tm-footer-column {
    display: flex;
    flex-direction: column;
}

.tm-footer-column a {
    width: fit-content;
    margin-bottom: 9px;
    color: #e5ebf4;
    font-size: 15px;
}

.tm-footer-column a:hover {
    color: #67b8ff;
}

.tm-footer-column .tm-footer-phone {
    color: #fff;
    font: 500 22px Georgia, serif;
}

.tm-footer-column address,
.tm-footer-column p {
    margin: 8px 0 12px;
    color: #aeb9ca;
    font-size: 14px;
    font-style: normal;
    line-height: 1.7;
}

.tm-footer-column p strong {
    color: #e5ebf4;
}

.tm-footer-emergency {
    width: fit-content;
    margin-top: 5px;
    padding-bottom: 4px;
    border-bottom: 1px solid #d5aa55;
    color: #e8c778;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.tm-footer-service-area {
    display: flex;
    gap: 12px;
    margin-top: 52px;
    padding: 18px 0;
    border-top: 1px solid #26364c;
    border-bottom: 1px solid #26364c;
}

.tm-footer-service-area span {
    flex: 1;
    color: #dbe3ef;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-align: center;
    text-transform: uppercase;
}

.tm-footer-service-area span + span {
    border-left: 1px solid #26364c;
}

.tm-footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding-top: 25px;
    color: #7f8ca0;
    font-size: 10px;
    letter-spacing: .04em;
}

@media (max-width: 1000px) {
    .tm-footer-grid {
        grid-template-columns: 1.2fr .8fr 1fr;
    }

    .tm-footer-column:last-child {
        grid-column: 2 / -1;
    }
}

@media (max-width: 640px) {
    .tm-gallery .tm-project {
        min-height: 330px;
    }

    .tm-footer {
        padding-top: 62px;
    }

    .tm-footer-grid {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .tm-footer-column:last-child {
        grid-column: auto;
    }

    .tm-footer-brand img {
        width: 235px;
    }

    .tm-footer-service-area,
    .tm-footer-bottom {
        flex-direction: column;
    }

    .tm-footer-service-area span {
        padding: 7px 0;
        text-align: left;
    }

    .tm-footer-service-area span + span {
        border-left: 0;
    }
}

#services {
    background: linear-gradient(180deg, #ffffff 0%, #f3f7fc 100%);
}

#services .tm-service-grid {
    gap: 22px;
}

#services .tm-service p {
    font-size: 16px;
}

#services .tm-service {
    position: relative;
    min-height: 500px;
    padding: 0 28px 30px;
    overflow: hidden;
    border: 1px solid #cbd9eb;
    border-left: 3px solid #0878f9;
    box-shadow: 0 16px 40px rgba(7, 20, 38, .07);
}

#services .tm-service::before {
    content: "";
    display: block;
    height: 205px;
    margin: 0 -28px 26px;
    background-position: center;
    background-size: cover;
}

#services .tm-service::after {
    content: "";
    position: absolute;
    top: 199px;
    right: 0;
    left: 0;
    height: 6px;
    background: linear-gradient(90deg, #0878f9 0 72%, #d5aa55 72% 82%, #071426 82%);
}

#services .tm-service:nth-child(1)::before { background-image: linear-gradient(180deg, transparent 60%, rgba(5, 17, 34, .30)), url('assets/service-kitchen-remodel.webp'); }
#services .tm-service:nth-child(2)::before { background-image: linear-gradient(180deg, transparent 60%, rgba(5, 17, 34, .30)), url('assets/service-commercial-buildout.webp'); }
#services .tm-service:nth-child(3)::before { background-image: linear-gradient(180deg, transparent 60%, rgba(5, 17, 34, .30)), url('assets/service-general-contracting.webp'); }
#services .tm-service:nth-child(4)::before { background-image: linear-gradient(180deg, transparent 60%, rgba(5, 17, 34, .30)), url('assets/service-new-construction-addition.webp'); }
#services .tm-service:nth-child(5)::before { background-image: linear-gradient(180deg, transparent 60%, rgba(5, 17, 34, .30)), url('assets/service-roofing.webp'); }
#services .tm-service:nth-child(6)::before { background-image: linear-gradient(180deg, transparent 60%, rgba(5, 17, 34, .30)), url('assets/service-storm-water-damage.webp'); }

#services .tm-service b {
    color: #0878f9;
    font-size: 12px;
}

#services .tm-service h3 {
    margin: 27px 0 13px;
}

#services .tm-service a {
    color: #075fc7;
    font-size: 11.5px;
}

#services .tm-service a::after {
    content: "→";
    display: inline-block;
    margin-left: 8px;
    font-size: 17px;
    line-height: 0;
    transform: translateY(1px);
}

#services .tm-service:hover {
    border-color: #0878f9;
    box-shadow: 0 22px 52px rgba(7, 47, 101, .15);
}

@media (max-width: 640px) {
    #services .tm-service {
        min-height: 455px;
    }

    #services .tm-service::before {
        height: 190px;
    }

    #services .tm-service::after {
        top: 184px;
    }
}


/* Responsive navigation refinements for laptops, tablets, and phones. */
@media (max-width: 1000px) {
    .tm-header-inner { min-height: 118px; gap: 18px; }
    .tm-brand { width: 195px; padding: 6px 0 9px; }
    .tm-brand .tm-logo { width: 100%; max-height: 104px; object-fit: contain; }
    .tm-brand span { font-size: 6px; }
}

@media (max-width: 820px) {
    .tm-call { display: none; }
}

@media (max-width: 640px) {
    .tm-header-inner { min-height: 96px; gap: 12px; }
    .tm-brand { width: min(185px, calc(100vw - 108px)); padding: 7px 0 9px; }
    .tm-brand .tm-logo { max-height: 90px; }
    .tm-brand span { font-size: 5px; letter-spacing: .07em; }
    .tm-mobile-nav { width: min(360px, calc(100vw - 28px)); max-height: calc(100vh - 150px); max-height: calc(100dvh - 150px); padding: 8px; }
    .tm-mobile .tm-menu-copy small { display: none; }
    .tm-mobile-panel .tm-menu-card { min-height: 46px; padding: 10px 32px 10px 12px; }
}

/* Homepage supporting-content readability. */
.tm-family-copy>p:not(.tm-eyebrow){font-size:18px;line-height:1.7;color:#c8d0dc}
.tm-point small{font-size:16px;line-height:1.6;color:#b6c0cf}
.tm-split-copy>p{font-size:18px;line-height:1.7;color:#4f5d73}
.tm-process small{font-size:16px;line-height:1.6;color:#4f5d73}
.tm-cta-centered-inner>p:not(.tm-eyebrow):not(.tm-cta-call){font-size:18px;line-height:1.7;color:#c8d2e0}
.tm-cta-call,.tm-cta-call a{font-size:16px}
.tm-service-area-footer .tm-section-head>p{font-size:18px;line-height:1.7;color:#4f5d73}
.tm-service-area-footer .tm-area p{font-size:16px;line-height:1.7;color:#4f5d73}

/* Keep the two leadership statements on one line each at desktop widths. */
@media(min-width:1001px){.tm-family-grid{grid-template-columns:.65fr 1.35fr;gap:70px}}

/* Keep the homepage services heading on its two intended lines. */
@media(min-width:1001px){#services .tm-section-head{grid-template-columns:1.45fr .55fr;gap:60px}#services .tm-section-head h2{font-size:60px}}

/* Homepage section-intro contrast and two-line gallery heading. */
#services .tm-section-head>p,.tm-gallery .tm-section-head>p{color:#3f4b61}
@media(min-width:1001px){.tm-gallery .tm-section-head{grid-template-columns:1.35fr .65fr;gap:60px}.tm-gallery .tm-section-head h2{font-size:60px}}

/* Homepage eyebrow, division-link, and CTA phone hierarchy. */
.tm-hero .tm-eyebrow{font-size:14px}
.tm-division a{font-size:13px;letter-spacing:.08em}
#services .tm-eyebrow,.tm-mid-cta .tm-eyebrow,.tm-gallery .tm-eyebrow,.tm-service-area-footer .tm-eyebrow{font-size:13px}
.tm-mid-cta span a,.tm-cta-call a{font-size:20px}

/* Homepage gallery link clarity and card affordance. */
.tm-gallery-link{font-size:13px;letter-spacing:.08em}
.tm-project span{font-size:14px;letter-spacing:.1em}
.tm-project span::after{content:" →";display:inline-block;font-size:18px;line-height:.75;transition:transform .2s ease}
.tm-project:hover span::after,.tm-project:focus-visible span::after{transform:translateX(4px)}

/* Homepage gallery card labels: override the earlier gallery-specific size. */
.tm-gallery .tm-project span{font-size:14px}


/* Residential service-card link readability: 2026-09-15 */
.page-id-1148 .tm-residential-service-card b{font-size:13px;line-height:1.5;letter-spacing:.08em}


/* Interior page readability and hierarchy: 2026-09-15 */
.tm-interior-page h2{font-size:clamp(40px,4vw,54px);line-height:1.08}
.tm-interior-page .tm-text-link,
.tm-interior-page .tm-related-grid b{font-size:13px;line-height:1.5;letter-spacing:.08em}
.tm-interior-page .tm-editorial-copy p,
.tm-interior-page .tm-remodeling-feature-copy>p:not(.tm-eyebrow),
.tm-interior-page .tm-remodeling-process p,
.tm-interior-page .tm-related-grid span{color:#3f4b61;font-size:16px;line-height:1.65}
@media(max-width:900px){.tm-interior-page h2{font-size:clamp(40px,6vw,46px)}}
@media(max-width:640px){.tm-interior-page h2{font-size:40px}}


/* Commercial and general service-page consistency: 2026-09-15 */
.tm-cbo-page h2:not([data-tmcg-subheading]){font-size:clamp(40px,4vw,54px);line-height:1.08}
.tm-cbo-page .tm-text-link{font-size:13px;line-height:1.5;letter-spacing:.08em}
.tm-cbo-page>section:not(.tm-cbo-hero) p:not(.tm-eyebrow){color:#3f4b61;font-size:16px;line-height:1.65}
@media(max-width:900px){.tm-cbo-page h2:not([data-tmcg-subheading]){font-size:clamp(40px,6vw,46px)}}
@media(max-width:640px){.tm-cbo-page h2:not([data-tmcg-subheading]){font-size:40px}}


/* Final interior-page typography alignment: 2026-09-15 */
.tm-interior-page h2,
.tm-cbo-page h2:not([data-tmcg-subheading]),
.tm-commercial-page h2:not([data-tmcg-subheading]),
.page-id-1324 h2:not([data-tmcg-subheading]){font-size:clamp(40px,3.5vw,48px);line-height:1.08}
.tm-commercial-page .tm-text-link,
.page-id-1324 .tm-text-link{font-size:13px;line-height:1.5;letter-spacing:.08em}
.tm-commercial-page>section:not(.tm-commercial-hero) p:not(.tm-eyebrow),
.page-id-1324 section:not(.tm-cmr-hero) p:not(.tm-eyebrow){color:#3f4b61;font-size:16px;line-height:1.65}
@media(max-width:900px){.tm-commercial-page h2:not([data-tmcg-subheading]),.page-id-1324 h2:not([data-tmcg-subheading]){font-size:clamp(40px,6vw,46px)}}
@media(max-width:640px){.tm-commercial-page h2:not([data-tmcg-subheading]),.page-id-1324 h2:not([data-tmcg-subheading]){font-size:40px}}


/* Enforce the approved compact section-title scale across interior templates. */
.tm-interior-page h2,
.tm-cbo-page h2:not([data-tmcg-subheading]),
.tm-commercial-page h2:not([data-tmcg-subheading]),
.page-id-1324 h2:not([data-tmcg-subheading]){font-size:42px!important;line-height:1.1!important}
@media(max-width:640px){.tm-interior-page h2,.tm-cbo-page h2:not([data-tmcg-subheading]),.tm-commercial-page h2:not([data-tmcg-subheading]),.page-id-1324 h2:not([data-tmcg-subheading]){font-size:36px!important}}


/* Live visual regression correction: 2026-09-15 */
/* Keep the large scale on true section titles only; normalized former H3s remain supporting headings. */
.tm-interior-page h2[data-tmcg-subheading]{font-size:28px!important;line-height:1.18!important}
.tm-interior-page .tm-text-link{white-space:nowrap}
.tm-interior-page .tm-process-section p:not(.tm-eyebrow),
.tm-interior-page .tm-related-links p:not(.tm-eyebrow),
.tm-interior-page .tm-newhome-opening p,
.tm-interior-page .tm-newhome-path p,
.tm-interior-page .tm-newhome-priorities p{color:#3f4b61!important}
.tm-interior-page .tm-remodeling-feature .tm-eyebrow{color:#247eea!important}
.tm-newhome-priority-note{color:#53627a!important}
.tm-newhome-links p{color:#fff!important}
@media(max-width:640px){.tm-interior-page h2[data-tmcg-subheading]{font-size:25px!important;line-height:1.22!important}.tm-interior-page .tm-text-link{white-space:normal}}

/* Final interior action-link readability: 2026-09-15 */
.tm-interior-page .tm-text-link,.tm-newhome-links a{font-size:14px!important;line-height:1.5!important}
