/* ============================================================
   MAPLEVIEWS WEBSITE - SITE STYLES

   Edit the relevant section rather than adding duplicate rules.
   Responsive overrides are grouped at the end of the file.
   ============================================================ */

@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Roboto:wght@400;500;600;700&display=swap");
:root {
    --ink: #252b2e;
    --muted: #626a70;
    --accent: #bd682c;
    --accent-dark: #8f491d;
    --line: #e3e5e6;
    --paper: #fff;
    --wash: #f4f5f5;
    --charcoal: #252a2c;
}

/* ==================== GENERAL SETTINGS ==================== */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font: 15px/1.75 Manrope,Arial,sans-serif;
    color: var(--ink);
    background: #fff;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    max-width: 100%;
    display: block;
}

button {
    font: inherit;
    cursor: pointer;
}

p {
    margin: 0 0 1.1rem;
}

h1,h2,h3 {
    line-height: 1.22;
    letter-spacing: -.035em;
    margin: 0 0 1rem;
}

h1 {
    font-size: clamp(2.5rem,4.8vw,4.7rem);
}

h2 {
    font-size: clamp(1.9rem,3vw,2.9rem);
}

h3 {
    font-size: 1.2rem;
}

h4 {
    margin: 0 0 .5rem;
}

/* ==================== PAGE STRUCTURE ==================== */

.container {
    max-width: 1190px;
    padding: 0 26px;
    margin: auto;
}

.eyebrow {
    font-size: .85rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 14px;
}

.lead {
    font-size: 1.13rem;
    line-height: 1.85;
    color: #505a60;
    max-width: 790px;
}

.muted {
    color: var(--muted);
}

.section {
    padding: 83px 0;
}

.section.alt {
    background: var(--wash);
}

.section.alt.capabilities-section {
    background: #EAF0F4;
}

.section-heading {
    max-width: 790px;
    margin-bottom: 34px;
}

.section-heading p {
    color: var(--muted);
}

/* ==================== HEADER AND NAVIGATION ==================== */

.site-header {
    background: var(--charcoal);
    position: sticky;
    top: 0;
    z-index: 30;
    border-bottom: 1px solid #434748;
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 77px;
    gap: 26px;
    max-width: none;
    padding-left: 20px;
    padding-right: 26px;
}

.brand {
    display: flex;
    align-items: center;
    gap: 11px;
    color: #fff;
    font-weight: 800;
    letter-spacing: .02em;
    flex-shrink: 0;
    text-decoration: none;
}

.brand img {
    width: 90px;
    height: auto;
    object-fit: contain;
}

.nav {
    display: flex;
    align-items: center;
    gap: 5px;
}

.nav>a,.nav-item>a {
    color: #e3e6e6;
    font-size: .9rem;
    font-weight: 700;
    padding: 15px 11px;
    display: block;
}

.nav a:hover,.nav a[aria-current=page] {
    color: #f3b383;
}

.nav-item {
    position: relative;
}

.dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    width: 325px;
    background: #fff;
    box-shadow: 0 16px 40px #0002;
    border: 1px solid var(--line);
    padding: 17px;
    border-radius: 0 0 8px 8px;
    display: none;
}

.nav-item:hover .dropdown,.nav-item:focus-within .dropdown {
    display: block;
}

.dropdown p {
    font-size: .82rem;
    color: var(--muted);
    margin: 0 0 12px;
}

.dropdown a {
    display: block;
    color: var(--ink);
    font-size: .82rem;
    padding: 6px 0;
    font-weight: 700;
}

.nav-cta {
    background: var(--accent);
    color: white !important;
    border-radius: 4px;
    margin-left: 7px;
    padding: 10px 15px !important;
}

.nav-cta:hover {
    background: var(--accent-dark);
}

.mobile-toggle {
    display: none;
    background: none;
    border: 1px solid #666;
    color: white;
    border-radius: 4px;
    padding: 7px 12px;
}

/* ==================== BUTTONS ==================== */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 22px;
    background: var(--accent);
    color: #fff;
    font-weight: 800;
    font-size: .83rem;
    border: 1px solid var(--accent);
    border-radius: 4px;
}

.btn:hover {
    background: var(--accent-dark);
}

.btn.outline {
    background: transparent;
    border-color: #adb2b3;
    color: inherit;
}

.btn.outline:hover {
    border-color: var(--accent);
    color: var(--accent);
}

.btn.light {
    background: #fff;
    border-color: #fff;
    color: var(--ink);
}

.btn.light:hover {
    background: #f0f0f0;
}

.actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 25px;
}

/* ==================== INNER PAGE HERO AND GRIDS ==================== */

.page-hero {
    padding: 85px 0 74px;
    background: linear-gradient(120deg,#f4f5f5,#fff);
}

.page-hero .lead {
    max-width: 840px;
}

.grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 22px;
}

.grid.two {
    grid-template-columns: repeat(2,minmax(0,1fr));
}

.grid.four {
    grid-template-columns: repeat(4,minmax(0,1fr));
}

/* ==================== CARDS AND FEATURES ==================== */

.card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 7px;
    overflow: hidden;
}

.card-body {
    padding: 25px;
}

.card p {
    font-size: .88rem;
    color: var(--muted);
}

.card .kicker {
    font-size: .7rem;
    font-weight: 800;
    color: var(--accent);
    letter-spacing: .1em;
    text-transform: uppercase;
}

.card img {
    width: 100%;
    height: 190px;
    object-fit: cover;
    object-position: center;
}

.card .card-link {
    color: var(--accent-dark);
    font-weight: 800;
    font-size: .82rem;
}

.split {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    align-items: center;
    gap: 65px;
}

.split img {
    width: 100%;
    border: 1px solid var(--line);
    box-shadow: 0 15px 35px #0001;
    border-radius: 6px;
}

/* Solutions 01–05 and 07–08: consistent illustration presentation. */
.solution-graphic-split > img {
    display: block;
    width: 100%;
    max-width: 560px;
    max-height: 470px;
    object-fit: contain;
    justify-self: center;
    border: 0;
    box-shadow: none;
    border-radius: 0;
}

/* Solution 06: pale full-width photograph with dark text on the right. */
.solution-photo-light {
    position: relative;
    display: flex;
    align-items: center;
    min-height: min(49vw, 810px);
    padding: 65px 0;
    background: #edf0f1 url('../assets/images/solutionG6.png') center center / cover no-repeat;
}
.solution-photo-inner {
    width: 100%;
    display: flex;
    justify-content: flex-end;
}
.solution-photo-copy {
    width: 43%;
    max-width: 550px;
    color: #26313a;
}
.solution-photo-copy h2 { color: #242b2e; }
.solution-photo-copy .lead { color: #303c43; }
.solution-photo-copy > p:not(.lead) { color: #45525a; }
@media (max-width: 950px) {
    .solution-photo-light {
        display: block;
        min-height: 0;
        padding: 53vw 0 50px;
        background-size: 100% auto;
        background-position: center top;
    }
    .solution-photo-inner { display: block; }
    .solution-photo-copy { width: 100%; max-width: 750px; }
}


.pill-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 23px 0;
}

.pill {
    background: #f0f1f1;
    border: 1px solid #e0e1e2;
    border-radius: 3px;
    padding: 8px 12px;
    font-size: .79rem;
    font-weight: 700;
}

.feature-list {
    padding-left: 20px;
    color: #4e575b;
}

.feature-list li {
    margin: 0 0 10px;
}

/* ==================== HOMEPAGE CAROUSEL ==================== */

.carousel {
    position: relative;
    background: #1d2529;
    color: #fff;
    height: clamp(620px, 47vw, 850px);
    overflow: hidden;
}

.slide {
    display: none;
    height: 100%;
    position: relative;
    align-items: center;
}

.slide.active {
    display: flex;
}

.slide:before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(18, 25, 30, .10);
    z-index: 1;
}

.slide-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 1;
    object-position: center center;
}

.slide-content {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 28px 0 76px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    height: 100%;
}

/* Original slide title and subtitle, centred across the image. */
.slide-content > .slide-original-heading {
    width: 100%;
    max-width: none;
    text-align: center;
}

.slide-original-heading h2 {
    font-family: 'Roboto', Arial, sans-serif;
    color: #ffad22;
    font-size: 30px;
    font-weight: 400;
    line-height: 1.2;
    margin: 0 0 10px;
}

.slide-original-heading p {
    font-family: 'Roboto', Arial, sans-serif;
    color: #f0f0f0;
    font-size: 18px;
    line-height: 1.45;
    max-width: none;
    margin: 0 auto;
    text-align: center;
}

.carousel-controls {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    pointer-events: none;
    z-index: 5;
}

.carousel-controls button {
    background: transparent;
    border: 0;
    color: #fff;
    font-size: 30px;
    padding: 12px 15px;
    pointer-events: auto;
}

.carousel-dots {
    position: absolute;
    bottom: 34px;
    left: max(26px,calc((100vw - 1138px)/2));
    z-index: 5;
    display: flex;
    gap: 9px;
}

.carousel-dots button {
    border: 0;
    width: 10px;
    height: 10px;
    border-radius: 100%;
    background: #ffffff70;
    padding: 0;
}

.carousel-dots button.active {
    background: #f2a36c;
}

/* ==================== OTHER HOMEPAGE SECTIONS ==================== */

.intro-band {
    padding: 60px 0;
    border-bottom: 1px solid var(--line);
}

.intro-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    align-items: center;
    gap: 40px;
}

.intro-band .eyebrow {
    font-size: 14px;
    margin-bottom: 20px;
}

.intro-copy p {
    font-size: 16px;
    line-height: 1.75;
    color: #505a60;
}

.intro-copy .intro-opening {
    font-size: 21px;
    line-height: 1.45;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 22px;
}

.intro-visual img {
    display: block;
    width: 100%;
    height: auto;
}

/* ==================== CLIENT EXPERIENCE ==================== */

.client-experience {
    overflow: hidden;
}

.client-experience-heading {
    max-width: 930px;
    margin-bottom: 30px;
}

.client-logo-window {
    width: 100%;
    overflow: hidden;
    padding: 8px 0 22px;
}

.client-logo-track {
    display: flex;
    width: max-content;
    animation: client-logo-scroll 77s linear infinite;
}

.client-logo-window:hover .client-logo-track,
.client-logo-window:focus-within .client-logo-track {
    animation-play-state: paused;
}

.client-logo-set {
    display: flex;
    flex: none;
    gap: 18px;
    padding-right: 18px;
}

.client-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 164px;
    height: 116px;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: 0 3px 10px #00000012;
}

.client-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

@keyframes client-logo-scroll {
    to {
        transform: translateX(-50%);
    }
}

.client-quote {
    max-width: 900px;
    margin: 28px auto 0;
    padding: 24px 32px;
    border-left: 3px solid var(--accent);
    background: #fff;
}

.client-quote blockquote {
    margin: 0 0 14px;
    font-size: 1.12rem;
    line-height: 1.7;
    font-weight: 600;
}

.client-quote figcaption {
    color: var(--muted);
    font-size: .9rem;
    font-weight: 700;
}

.cta-band {
    background: #394144;
    color: #fff;
    padding: 50px 0;
}

.cta-band h2 {
    font-size: clamp(1.615rem, 2.55vw, 2.465rem);
}

.cta-band .lead {
    color: #cdd3d4;
}

.cta-band .split {
    grid-template-columns: 1.5fr .5fr;
}

.cta-band .actions {
    justify-content: flex-end;
}

/* ==================== FOOTER ==================== */

.footer {
    background: #202526;
    color: #d6dcdd;
    padding: 32px 0 20px;
}

.footer .columns {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 40px;
    align-items: center;
}

.footer .footer-brand h3,
.footer .footer-brand p {
    margin-bottom: 0;
}

.footer .footer-brand h3 {
    margin-bottom: 8px;
}

.footer a {
    color: #d6dcdd;
}

.footer a:hover {
    color: #f3b383;
}

.footer small {
    color: #aeb7b9;
}

.footer .legal {
    border-top: 1px solid #424849;
    margin-top: 24px;
    padding-top: 14px;
    font-size: .73rem;
    color: #aeb7b9;
}

/* ==================== TESTIMONIALS AND CONTACT ==================== */

.quote {
    padding: 26px;
    background: #fff;
    border: 1px solid var(--line);
    border-top: 3px solid var(--accent);
    border-radius: 4px;
}

.quote blockquote {
    margin: 0 0 16px;
    font-size: .95rem;
    line-height: 1.9;
}

.quote cite {
    font-size: .78rem;
    font-style: normal;
    color: var(--muted);
    font-weight: 700;
}

.contact-grid {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 60px;
}

.contact-box {
    background: var(--wash);
    padding: 30px;
    border: 1px solid var(--line);
    border-radius: 5px;
}

.contact-box a {
    color: var(--accent-dark);
    font-weight: 800;
}

.note {
    font-size: .79rem;
    color: var(--muted);
}

.skip {
    position: absolute;
    left: -9999px;
}

.skip:focus {
    left: 8px;
    top: 8px;
    z-index: 100;
    background: #fff;
    padding: 10px;
}




/* ==================== PLATFORM PAGE: SIX ADVANTAGES ==================== */

.platform-hero {
    background: linear-gradient(115deg, #f1f4f5 0%, #ffffff 90%);
}

    .platform-hero h1 {
        max-width: 900px;
        font-size: 2rem;
    }

.platform-feature-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.16fr) minmax(0, .84fr);
    gap: 58px;
    align-items: center;
}

    .platform-feature-grid.platform-reverse .platform-copy {
        order: 2;
    }

    .platform-feature-grid.platform-reverse .platform-visual {
        order: 1;
    }

.platform-copy h2 {
    font-size: clamp(1.85rem, 2.6vw, 2.7rem);
    margin-bottom: 14px;
}

.platform-copy > p {
    color: #505a60;
    max-width: 670px;
}

.platform-copy .platform-subtitle {
    font-size: 1.12rem;
    font-weight: 750;
    line-height: 1.55;
    color: var(--ink);
    margin-bottom: 18px;
}

.platform-points {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 19px 25px;
    margin-top: 29px;
}

.platform-point {
    border-top: 2px solid #d7e0e4;
    padding-top: 13px;
}

    .platform-point h3 {
        font-size: .95rem;
        letter-spacing: -.015em;
        margin-bottom: 6px;
    }

    .platform-point p {
        color: var(--muted);
        font-size: .86rem;
        line-height: 1.65;
        margin: 0;
    }

.platform-visual {
    margin: 0;
}

    .platform-visual img {
        width: 100%;
        border: 1px solid var(--line);
        border-radius: 7px;
        box-shadow: 0 14px 35px #00000012;
    }

    .platform-visual figcaption {
        color: var(--muted);
        font-size: .75rem;
        margin-top: 9px;
        text-align: center;
    }

/* Professional services diagram: preserve its proportions without placeholder framing. */

#professional-services .platform-visual img {
    display: block;
    width: 50%;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
    border: 1px solid #d5dadd;
    box-shadow: none;
}

/* Delivered with the Data: two icon-led lists, paired with the data illustration. */
#delivered-data .platform-feature-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 42px;
}

#delivered-data .platform-points.data-points {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-top: 26px;
}

#delivered-data .data-point {
    min-width: 0;
}

#delivered-data .data-point h3 {
    font-size: 1rem;
    margin-bottom: 16px;
}

#delivered-data .data-icon-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 13px;
}

#delivered-data .data-icon-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: .83rem;
    font-weight: 700;
    line-height: 1.45;
    color: #6f92b6;
}

#delivered-data .data-icon-list-right li {
    color: #9a83ac;
}

#delivered-data .data-icon-list img {
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    object-fit: contain;
}

#delivered-data .platform-visual img {
    display: block;
    width: 50%;
    margin: 0 auto;
    height: auto;
    object-fit: contain;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

/* Brand customization: two balanced icon-led columns. */
#customized-brand .customized-brand-visual {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    align-items: start;
}

#customized-brand .customized-brand-list {
    display: grid;
    grid-template-rows: repeat(5, minmax(58px, auto));
    gap: 16px;
    list-style: none;
    padding: 0;
    margin: 0;
}

#customized-brand .customized-brand-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    font-size: .9rem;
    line-height: 1.4;
    font-weight: 750;
    color: #527da8;
}

#customized-brand .customized-brand-list img {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    object-fit: contain;
}

/* Complete Decision Support: two icon-led capability lists. */
.decision-support-section .platform-feature-grid {
    grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
    gap: 48px;
    align-items: center;
}

.decision-support-description {
    font-size: 1rem;
    line-height: 1.85;
}

.decision-support-visual {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 25px;
}

.decision-support-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-rows: repeat(6, minmax(52px, auto));
    gap: 13px;
}

.decision-support-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    color: #456f98;
    font-size: .88rem;
    font-weight: 800;
    line-height: 1.4;
}

.decision-support-list img {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    object-fit: contain;
}

/* Premium Support: full-width photograph with text kept between the monitor and CN Tower. */
#premium-support.premium-support-photo {
    background: #30383d url("../assets/images/mapleviewsPremiumSupport3.png") center center / cover no-repeat;
    padding: 0;
    min-height: min(52vw, 920px);
    display: flex;
    align-items: center;
}

#premium-support .premium-support-container {
    width: 100%;
    max-width: none;
    padding: 48px 0;
    margin: 0;
}

/*#premium-support .premium-support-content {
    box-sizing: border-box;
    width: 38%;
    margin-left: 7%;
    color: #fff;
}
*/

#premium-support .premium-support-content {
    box-sizing: border-box;
    width: 35%;
    margin-left: 51%;
    color: #fff;
}

#premium-support .premium-support-content h2 {
    color: #fff;
    font-size: clamp(1.9rem, 2.6vw, 2.65rem);
    line-height: 1.14;
    margin-bottom: 12px;
}

#premium-support .premium-support-content > p,
#premium-support .premium-support-content .platform-subtitle {
    color: #f0f2f4;
}

#premium-support .premium-support-content > p:not(.platform-subtitle) {
    font-size: .91rem;
    line-height: 1.7;
    margin-bottom: 0;
}

#premium-support .premium-support-content .platform-subtitle {
    font-size: 1.04rem;
    line-height: 1.45;
    margin-bottom: 13px;
}

#premium-support .premium-support-points {
    gap: 16px 20px;
    margin-top: 23px;
}

#premium-support .premium-support-points .platform-point {
    border-top: 1px solid rgba(255,255,255,.52);
    padding-top: 9px;
}

#premium-support .premium-support-points h3 {
    color: #fff;
    font-size: .91rem;
}

#premium-support .premium-support-points p {
    color: #e7ecef;
    font-size: .8rem;
    line-height: 1.55;
}

@media (max-width: 1100px) {
    #premium-support.premium-support-photo {
        background-size: 100% auto;
        background-position: center top;
        background-color: #30383d;
        display: block;
        min-height: 0;
        padding-top: 50vw;
    }

    #premium-support .premium-support-container {
        padding: 30px 26px 55px;
    }

    #premium-support .premium-support-content {
        width: 100%;
        max-width: 760px;
        margin: 0 auto;
    }
}

@media (max-width: 560px) {
    #premium-support .premium-support-points {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    #delivered-data .platform-feature-grid {
        grid-template-columns: 1fr;
    }

    .decision-support-section .platform-feature-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .platform-feature-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

        .platform-feature-grid.platform-reverse .platform-copy,
        .platform-feature-grid.platform-reverse .platform-visual {
            order: initial;
        }

    .platform-visual {
        max-width: 620px;
    }
}

@media (max-width: 560px) {
    #customized-brand .customized-brand-visual {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    #customized-brand .customized-brand-list {
        grid-template-rows: none;
    }

    #delivered-data .platform-points.data-points {
        grid-template-columns: 1fr;
    }

    .decision-support-visual {
        grid-template-columns: 1fr;
        gap: 13px;
    }

    .decision-support-list {
        grid-template-rows: none;
    }

    .platform-points {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}







/* ==================== SOLUTIONS: ADVANCED ANALYTICS MODE ==================== */

.solution-advanced-analytics {
    position: relative;
    background: #30383e url('../assets/images/solutionG9.png') center center / cover no-repeat;
    color: #fff;
    padding: 0;
    min-height: min(52vw, 920px);
    display: flex;
    align-items: center;
}

.solution-advanced-analytics-inner {
    width: 100%;
    max-width: none;
    padding: 48px 0;
    margin: 0;
}

.solution-advanced-analytics-copy {
    box-sizing: border-box;
    width: 35%;
    margin-left: 7%;
    color: #fff;
}

.solution-advanced-analytics-copy .eyebrow {
    color: #ef9c63;
}

.solution-advanced-analytics-copy h2 {
    color: #fff;
    font-size: clamp(1.9rem, 2.6vw, 2.65rem);
    line-height: 1.14;
    margin-bottom: 12px;
}

.solution-advanced-analytics-subtitle {
    color: #fff;
    font-weight: 750;
    font-size: 1.04rem;
    line-height: 1.45;
    margin-bottom: 13px;
}

.solution-advanced-analytics-copy > p:not(.solution-advanced-analytics-subtitle) {
    color: #f0f2f3;
    font-size: .91rem;
    line-height: 1.7;
}

.solution-advanced-analytics-copy .btn.outline {
    color: #fff;
    border-color: rgba(255,255,255,.7);
    margin-top: 7px;
}

.solution-advanced-analytics-copy .btn.outline:hover {
    border-color: #fff;
    color: #fff;
    background: rgba(255,255,255,.12);
}

/* Advanced Analytics Mode: show the complete photograph above the text on smaller screens. */
@media (max-width: 1100px) {
    .solution-advanced-analytics {
        background-size: 100% auto;
        background-position: center top;
        background-color: #30383e;
        display: block;
        min-height: 0;
        padding-top: 50vw;
    }

    .solution-advanced-analytics-inner {
        padding: 30px 26px 55px;
    }

    .solution-advanced-analytics-copy {
        width: 100%;
        max-width: 760px;
        margin: 0 auto;
    }
}

/* ==================== RESPONSIVE: (max-width:1050px) ==================== */

@media (max-width:1050px) {

    .header-inner {
        flex-wrap: wrap;
    }

    .mobile-toggle {
        display: block;
    }

    .nav {
        display: none;
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        padding: 0 0 18px;
    }

    .nav.open {
        display: flex;
    }

    .nav>a,.nav-item>a {
        padding: 9px 5px;
    }

    .nav-cta {
        margin-left: 0 !important;
        align-self: flex-start;
    }

    .dropdown {
        display: block;
        position: static;
        width: auto;
        box-shadow: none;
        background: #33393b;
        border: 0;
        padding: 5px 16px;
    }

    .dropdown p {
        color: #c4cacc;
    }

    .dropdown a {
        color: #fff;
    }

    .split {
        gap: 30px;
    }

    .grid.four {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

}

/* ==================== RESPONSIVE: (max-width:720px) ==================== */

@media (max-width:720px) {

    .container {
        padding: 0 20px;
    }

    .section {
        padding: 55px 0;
    }

    .page-hero {
        padding: 55px 0;
    }

    .grid,.grid.two,.grid.four,.split,.contact-grid,.footer .columns,.cta-band .split {
        grid-template-columns: 1fr;
    }

    .intro-layout {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .carousel {
        height: 650px;
    }

    .slide {
        height: 100%;
    }

    .slide-content {
        padding: 30px 0 90px;
        height: 100%;
    }

    .slide:before {
        background: rgba(18, 25, 30, .20);
    }

    .client-logo {
        width: 140px;
        height: 100px;
    }

    .client-quote {
        padding: 20px;
    }

    .card img {
        height: 210px;
    }

    .cta-band .actions {
        justify-content: flex-start;
    }

    .footer .columns {
        gap: 20px;
    }

}



.card img[src$="highlight2_location_modeling.png"] {
    filter: brightness(90%);
}






/* ==================== RESPONSIVE: (prefers-reduced-motion:reduce) ==================== */

@media (prefers-reduced-motion:reduce) {

    html {
        scroll-behavior: auto;
    }

    .client-logo-track {
        animation: none;
    }

    .client-logo-window {
        overflow-x: auto;
    }

}



/* ==================== DATA PAGE: SOURCE CATALOGUE ==================== */
.data-page { background:#f5f6f7; }
.data-page .container { max-width: 1430px; padding-left:35px; padding-right:35px; }
.data-intro { padding:70px 0 54px; background:linear-gradient(115deg,#f0f3f5,#fafbfb); }
.data-intro h1 { max-width:950px; font-size:clamp(2.25rem,4vw,3.8rem); }
.data-intro .lead { max-width:1050px; }
.data-category { padding:68px 0 78px; border-top:1px solid #e4e7e9; position:relative; overflow:hidden; }
.data-category:nth-of-type(2n) { background:#f0f2f4; }
.data-category-heading { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:31px; position:relative; z-index:1; }
.data-category-heading h2 { color:#30363a; font-size:clamp(1.75rem,2.7vw,2.75rem); margin:0 0 14px; }
.data-category-heading p { max-width:880px; color:#66717b; font-size:1.03rem; line-height:1.75; margin:0; }
.data-category .eyebrow { margin-bottom:13px; }
.data-provider-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; position:relative; z-index:1; }
.data-provider-card { background:#fff; border:1px solid #e1e5e9; border-radius:12px; overflow:hidden; box-shadow:0 10px 26px rgba(28,40,51,.035); display:flex; flex-direction:column; min-height:0; }
.data-logo-area { height:94px; display:flex; align-items:center; padding:23px 28px 12px; background:#fff; }
.data-logo-area.data-logo-dark { background:#bfbfbf; }
.data-logo-area img { width:auto; height:auto; max-width:100%; max-height:50px; object-fit:contain; object-position:left center; }
.data-card-content { padding:8px 25px 22px; display:flex; flex-direction:column; flex:1; }
.data-provider-name { color:#71808c; font-size:.82rem; font-weight:750; margin-bottom:7px; }
.data-provider-card h3 { font-size:1.12rem; line-height:1.4; letter-spacing:-.025em; margin:0; color:#28343c; }
.data-card-rule { display:block; width:35px; height:4px; border-radius:5px; background:#ec893b; margin:11px 0 12px; }
.data-provider-card p { color:#687783; font-size:.9rem; line-height:1.75; margin:0; }
.data-international {
    background: #f4f7f9 url("../assets/images/Glowing Earth with City Hotspots.png") center center / cover no-repeat;
}
.data-international .data-category-heading p { max-width:1040px; }
/*.data-globe-visual { position:absolute; right:-4%; top:25px; width:42%; aspect-ratio:1; opacity:.16; pointer-events:none; overflow:hidden; }*/
.data-globe-visual {
    display: none;
}
.data-globe-orb { position:absolute; width:100%; height:100%; border-radius:50%; border:1px solid #89a4b9; background:radial-gradient(circle at 28% 24%,#fff 0%,#afc9da 22%,#729bb8 58%,#2c5575 100%); box-shadow:inset -45px -25px 80px #1b496b66,0 0 65px #91b8d8; }
.data-globe-orb:before { content:'';position:absolute;inset:4%;border-radius:50%;background:repeating-linear-gradient(90deg,transparent 0 14%,#fff6 14.2% 14.5%,transparent 14.8% 28%),repeating-linear-gradient(0deg,transparent 0 16%,#fff6 16.2% 16.5%,transparent 16.8% 32%); }
.data-globe-light { position:absolute; width:13%;height:13%;border-radius:50%;background:#fff;box-shadow:0 0 25px 17px #fff,0 0 65px 30px #f7e4a8; }
.data-globe-light.l1 {top:30%;left:24%;}.data-globe-light.l2 {top:51%;left:56%;}.data-globe-light.l3 {top:24%;left:74%;}
.data-country-list { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:11px 18px; margin:30px 0 43px; position:relative; z-index:1; }
.data-country { display:flex;align-items:center;gap:10px;background:#ffffffc9;border:1px solid #e1e6eb;border-radius:7px;padding:11px 13px;font-size:.87rem;font-weight:700;color:#35424c; }
.data-country-flag { width:28px; height:19px; object-fit:contain; flex:0 0 28px; }
@media(max-width:980px){.data-provider-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.data-country-list{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:650px){.data-page .container{padding-left:20px;padding-right:20px;}.data-intro{padding:50px 0 42px;}.data-category{padding:48px 0 55px;}.data-provider-grid{grid-template-columns:1fr;gap:16px;}.data-provider-card{min-height:0;}.data-country-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}.data-country{font-size:.75rem;padding:9px;gap:6px;}.data-country-flag{width:23px;height:16px;flex-basis:23px;}.data-globe-visual{width:80%;right:-35%;opacity:.10;}}


/* ==================== TESTIMONIALS PAGE ==================== */
.testimonials-page { background:#ededed; }
.testimonials-page .testimonials-hero { background:linear-gradient(115deg,#f3f5f5,#fff); padding:74px 0 62px; }
.testimonials-page .testimonials-hero h1 { font-size:clamp(36px,5vw,64px); letter-spacing:-.045em; line-height:1.13; margin:0 0 16px; font-weight:700; }
.testimonials-page .testimonials-hero .lead { color:#667179; font-size:17px; max-width:790px; margin:0; }
.testimonials-page .testimonials-main { padding:66px 0 94px; background:#ededed; }
.testimonials-page .testimonials-container { max-width:1120px; }
.testimonials-page .testimonials-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:23px; align-items:stretch; }
.testimonials-page .testimonial-card { border:1px solid #e5e8e9; border-radius:9px; background:#fff; box-shadow:0 10px 28px rgba(23,37,43,.045); padding:31px 33px 26px; display:flex; flex-direction:column; min-height:250px; }
.testimonials-page .testimonial-quote-mark { font-family:Georgia,serif; font-size:66px; line-height:.7; color:#bd682c; opacity:.82; height:43px; margin-top:5px; }
.testimonials-page .testimonial-quote-text { font-size:16px; line-height:1.85; letter-spacing:-.01em; margin:7px 0 28px; font-weight:500; flex:1; }
.testimonials-page .testimonial-attribution { border-top:1px solid #e1e5e6; padding-top:17px; display:flex; gap:12px; align-items:center; }
.testimonials-page .testimonial-attribution:before { content:''; width:3px; height:31px; background:#bd682c; border-radius:3px; flex:none; }
.testimonials-page .testimonial-client-logo { width:29px; height:29px; object-fit:contain; flex:none; }
.testimonials-page .testimonial-attribution strong { display:block; font-size:13px; line-height:1.55; font-weight:800; color:#30393e; }
.testimonials-page .testimonial-attribution span { display:block; font-size:12px; color:#667179; line-height:1.6; }
@media(max-width:720px) {
  .testimonials-page .testimonials-hero { padding:52px 0; }
  .testimonials-page .testimonials-main { padding:42px 0 60px; }
  .testimonials-page .testimonials-grid { grid-template-columns:1fr; }
  .testimonials-page .testimonial-card { min-height:0; padding:25px; }
}

/* ==================== HOME PAGE: ABOUT MARKET FORTÉ ==================== */
.market-forte-about { background: #fff; }
.market-forte-about .container { max-width: 1060px; }
.market-forte-about-heading { display: flex; align-items: center; gap: 18px; margin-bottom: 25px; }
.market-forte-about-logo { width: 50px; height: auto; flex: 0 0 50px; object-fit: contain; }
/*.market-forte-about-heading h2 { margin: 0; }*/
.market-forte-about-heading h2 {
    margin: 0;
    font-size: clamp(1.52rem, 2.4vw, 2.32rem);
}
.market-forte-about p { color: #505a60; font-size: 1rem; line-height: 1.8; }
.market-forte-leadership { border-top: 1px solid var(--line); margin-top: 31px; padding-top: 27px; }
.market-forte-leadership h3 { margin-bottom: 17px; }
.market-forte-leadership p:last-child { margin-bottom: 0; }
@media (max-width: 720px) {
    .market-forte-about-heading { gap: 13px; }
    .market-forte-about-logo { width: 42px; flex-basis: 42px; }
}


/* ==================== SOLUTIONS AND CONTACT PAGE TITLES ==================== */

#solutions-page-title {
    font-size: clamp(2rem, 3.84vw, 3.76rem);
}

#contact-title {
    font-size: clamp(2rem, 3.36vw, 3.32rem);
}


/* ==================== CONTACT PAGE: ENTERPRISE INQUIRIES ==================== */
.contact-page { background: #fff; }
.contact-intro { background: linear-gradient(110deg, #f1f4f5 0%, #f8f9f9 65%, #fff 100%); border-bottom: 1px solid #e3e8eb; }
.contact-intro-inner { min-height: 310px; display: grid; grid-template-columns: minmax(0, 1fr) 295px; gap: 45px; align-items: center; padding-top: 65px; padding-bottom: 62px; }
.contact-intro .eyebrow { font-size: .75rem; letter-spacing: .15em; margin-bottom: 18px; }
.contact-intro h1 { font-size: clamp(2.5rem, 4.2vw, 4.15rem); letter-spacing: -.048em; margin-bottom: 20px; }
.contact-intro .lead { font-size: 1.07rem; line-height: 1.8; max-width: 750px; margin: 0; }
.contact-intro-art { align-self: stretch; display: flex; flex-direction: column; justify-content: center; align-items: flex-end; gap: 19px; }
.contact-intro-art img { width: 270px; height: auto; mix-blend-mode: multiply; opacity: .74; }
.contact-art-caption { color: #87929a; font-size: .65rem; letter-spacing: .23em; font-weight: 800; }
.contact-content { padding: 82px 0 110px; }
.contact-content-grid { display: grid; grid-template-columns: minmax(0, 1.42fr) minmax(310px, .82fr); gap: clamp(55px, 7vw, 110px); align-items: start; }
.contact-section-kicker { display: flex; align-items: center; gap: 11px; font-size: .69rem; font-weight: 800; letter-spacing: .14em; color: #697782; margin-bottom: 20px; }
.contact-section-number { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: 1px solid #e2c7b4; border-radius: 50%; color: var(--accent); font-size: .7rem; letter-spacing: 0; }
.contact-form-column h2, .contact-details h2 { font-size: clamp(1.6rem, 2.3vw, 2.35rem); margin-bottom: 14px; }
.contact-section-intro, .contact-details-intro { color: #66717a; line-height: 1.8; margin-bottom: 32px; font-size: .96rem; }
.contact-inquiry-form { display: grid; gap: 22px; }
.contact-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.contact-field { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.contact-field label { color: #39464d; font-weight: 750; font-size: .84rem; }
.contact-field label > span:not(.contact-optional) { color: var(--accent); }
.contact-optional { color: #8b959a; font-size: .75rem; font-weight: 500; margin-left: 5px; }
.contact-field input, .contact-field select, .contact-field textarea { display: block; width: 100%; border: 1px solid #dce3e7; background: #f8fafb; border-radius: 6px; color: #303a40; padding: 13px 15px; font: 500 .9rem/1.5 Manrope, Arial, sans-serif; transition: border-color .15s ease, box-shadow .15s ease; }
.contact-field input, .contact-field select { min-height: 51px; }
.contact-field textarea { min-height: 135px; resize: vertical; }
.contact-field input::placeholder, .contact-field textarea::placeholder { color: #929da4; font-weight: 400; }
.contact-field select:invalid { color: #929da4; }
.contact-field input:focus, .contact-field select:focus, .contact-field textarea:focus { outline: none; border-color: #bc784c; box-shadow: 0 0 0 3px #bd682c20; background: #fff; }
.contact-form-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.contact-form-bottom p { margin: 0; color: #7b878d; font-size: .76rem; }
.contact-submit { min-width: 177px; border-radius: 5px; }
.contact-submit span { font-size: 1.1rem; }
.contact-form-notice { font-size: .76rem; color: #7a858c; line-height: 1.7; margin: -7px 0 0; }
.contact-details { border-left: 1px solid #e3e8eb; padding-left: clamp(28px, 3.8vw, 55px); }
.contact-details-intro { margin-bottom: 30px; }
.contact-detail-block { padding: 20px 0 23px; border-top: 1px solid #e5e9ec; }
.contact-detail-label { color: #849099; font-size: .67rem; letter-spacing: .11em; font-weight: 800; margin-bottom: 10px; }
.contact-detail-link { color: #a75a2b; font-size: 1.01rem; font-weight: 750; overflow-wrap: anywhere; }
.contact-detail-link:hover { text-decoration: underline; }
.contact-address-block address { font-style: normal; color: #4c5961; line-height: 1.9; font-size: .91rem; }
.contact-address-block address strong { color: #303a40; }
.contact-location-footnote { display: flex; align-items: baseline; gap: 9px; color: #75818a; font-size: .78rem; line-height: 1.6; margin-top: 7px; }
.contact-location-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); flex: 0 0 7px; }
@media (max-width: 960px) {
    .contact-content-grid { grid-template-columns: 1fr; gap: 65px; }
    .contact-details { border-left: 0; border-top: 1px solid #e3e8eb; padding: 44px 0 0; }
}
@media (max-width: 720px) {
    .contact-intro-inner { grid-template-columns: 1fr; gap: 22px; padding-top: 52px; padding-bottom: 42px; }
    .contact-intro-art { align-items: flex-start; gap: 8px; }
    .contact-intro-art img { width: 205px; }
    .contact-content { padding: 55px 0 75px; }
    .contact-form-row { grid-template-columns: 1fr; }
}

/* Content refresh: long-form Solutions copy and customer-intelligence benefits */
.solution-graphic-split { align-items: center; }
.solution-graphic-split > div > p:not(.lead),
.solution-photo-copy > p:not(.lead) { color:#505a60; font-size:.94rem; line-height:1.8; }
.solution-graphic-split > div > p, .solution-photo-copy > p { max-width:740px; }
.solution-benefits-list { columns:2; column-gap:26px; padding-left:21px; margin:18px 0 22px; color:#505a60; font-size:.88rem; line-height:1.65; }
.solution-benefits-list li { break-inside:avoid; margin:0 0 9px; padding-left:2px; }
#customer .solution-graphic-split { grid-template-columns:minmax(0, 1.08fr) minmax(0, .92fr); gap:35px; }
#customer .solution-graphic-split > img { align-self:center; position:static; max-width:none; max-height:none; }
@media(max-width:950px) { .solution-benefits-list { columns:1; } #customer .solution-graphic-split { grid-template-columns:1fr; } #customer .solution-graphic-split > img { position:static; } }
/* Long-form franchisee copy: use a solid, legible reading surface over the photograph. */
#franchisee .solution-photo-copy { background:rgba(255,255,255,.94); padding:26px; border-radius:8px; width:49%; max-width:650px; }
@media(max-width:950px) { #franchisee .solution-photo-copy { width:100%; max-width:760px; padding:18px; } }
/* Data product cards now contain logo, provider, divider and product title only. */
.data-provider-card .data-card-content { flex:0 1 auto; }

/* Customer Intelligence: four benefits per column on desktop. */
@media (min-width:951px) { #customer .solution-benefits-list li:nth-child(4) { break-after:column; } }

/* ==================== CONTACT PAGE: OPTIONAL PRESENTATION ==================== */
.contact-seminar { padding: 44px 0 0; background: #fff; }
.contact-seminar-panel { display: flex; align-items: center; justify-content: space-between; gap: 34px; padding: 29px 34px; border: 1px solid #e0e5e7; border-left: 3px solid var(--accent); border-radius: 7px; background: #f8f9f9; }
.contact-seminar-copy { min-width: 0; max-width: 740px; }
.contact-seminar-label { color: #a45b2b; font-size: .69rem; font-weight: 800; letter-spacing: .12em; margin-bottom: 10px; }
.contact-seminar-panel h2 { font-size: clamp(1.2rem, 1.8vw, 1.55rem); letter-spacing: -.025em; margin: 0 0 9px; }
.contact-seminar-panel p { font-size: .9rem; line-height: 1.7; color: #5e6a71; margin: 0 0 12px; }
.contact-seminar-details summary { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; color: #955024; font-size: .83rem; font-weight: 750; list-style: none; }
.contact-seminar-details summary::-webkit-details-marker { display: none; }
.contact-seminar-details summary::before { content: '+'; display: inline-block; font-size: 1.15rem; line-height: 1; font-weight: 500; }
.contact-seminar-details[open] summary::before { content: '−'; }
.contact-seminar-details summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.contact-seminar-details ul { margin: 12px 0 0; padding-left: 21px; color: #5e6a71; font-size: .85rem; line-height: 1.75; }
.contact-seminar-book { flex-shrink: 0; white-space: nowrap; }
@media (max-width: 800px) {
    .contact-seminar-panel { flex-direction: column; align-items: flex-start; gap: 20px; padding: 25px; }
    .contact-seminar-book { white-space: normal; }
}
@media (max-width: 720px) { .contact-seminar { padding-top: 28px; } }
