/* =========================================
   BASE
   ========================================= */
:root {
    /* Grid sizing matches container width */
    --grid-max: 1250px; /* Bootstrap .container-xxl max */
    --grid-side-gap: 48px; /* container horizontal padding */

    --b3-purple: #243f8b;
    --b3-text-dark: #222222;
    --b3-text-muted: #767676;
    --b3-border-light: #ebebeb;
}
html {
    scroll-behavior: smooth;
}

.b3-body {
    margin: 0;
    font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto,
        "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
    background-color: #ffffff;
}

/* =========================================
   NAVBAR
   ========================================= */

.b3-header {
    border-bottom: 1px solid var(--b3-border-light);
    background-color: #ffffff;
}

.b3-navbar {
    padding-top: 8px;
    padding-bottom: 8px;
    background-color: #ffffff;
}

.b3-nav-container {
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
}

/* Brand */
.b3-logo {
    height: 32px;
    width: auto;
}

.b3-brand-text {
    font-weight: 700;
    font-size: 20px;
    letter-spacing: 0.02em;
    color: var(--b3-text-dark);
    white-space: nowrap;
}

/* Links */
.b3-navbar .nav-link {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #767676;
    padding-inline: 0;
    padding-block: 0.25rem;
    font-weight: 500;
}

.b3-navbar .nav-link:hover,
.b3-navbar .nav-link:focus,
.b3-navbar .nav-link.show {
    color: #243f8b;
}

/* space between nav items */
.b3-navbar .navbar-nav .nav-item + .nav-item {
    margin-left: 1.8rem;
}

/* Dropdown menu */
.b3-navbar .dropdown-menu {
    border-radius: 8px;
    border: 1px solid #e5e5e5;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
    font-size: 14px;
}

.b3-navbar .dropdown-item {
    padding: 0.4rem 1rem;
}

.b3-navbar .dropdown-item:hover {
    background-color: rgba(53, 37, 176, 0.06);
}

/* Contact button */
.btn-contact {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 2px 7px;
    border-radius: 999px;
    border: 2px solid #243f8b;
    background-color: #243f8b;
    color: #ffffff;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.btn-contact:hover {
    background-color: #243f8b;
    border-color: #243f8b;
    color: #ffffff;
}

.btn-contact-icon {
    width: 26px;
    height: 26px;
    display: inline-block;
    margin-right: -5px;
}

/* Mobile tweaks */
@media (max-width: 991.98px) {
    .b3-nav-container {
        padding-inline: 16px;
    }

    .b3-navbar .navbar-nav .nav-item + .nav-item {
        margin-left: 0;
    }

    .b3-navbar .navbar-nav {
        gap: 0.5rem;
        padding-top: 0.75rem;
    }
}

/* =========================================
   PROVINCE STRIP (beam under nav)
   ========================================= */
.province-strip {
    background-color: #243f8b;
}

.province-strip-inner {
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
}

.province-list {
    display: flex;
    justify-content: space-between;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 8px 0; /* height of beam */
}

.province-list li a {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: #ffffff;
    text-decoration: none;
    font-weight: 500;
    white-space: nowrap;
}

.province-list li a:hover {
    opacity: 0.9;
}

/* Mobile: stack nicely instead of scroll */
@media (max-width: 767.98px) {
    .province-strip-inner {
        padding-inline: 12px;
    }

    .province-list {
        justify-content: center; /* center items */
        flex-wrap: wrap; /* allow 2 lines */
        row-gap: 4px;
        column-gap: 1.5rem;
        overflow-x: visible; /* no horizontal scroll */
    }

    .province-list li a {
        font-size: 10px; /* slightly smaller */
        letter-spacing: 0.12em; /* a bit tighter */
    }
}

/* =========================================
   HERO: Crypto Accountant in Ontario
   ========================================= */

.hero-ontario {
    position: relative;
    color: #ffffff;

    /* SKY background */
    background-image: url("/cryptoaccountant/ontario/images/hero/sky.jpg");
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;

    min-height: 110vh;
    padding: 72px 0 40px; /* a bit closer to top */
    overflow: hidden;
}

/* White strap line across the hero */
.hero-ontario::before {
    content: "";
    position: absolute;
    inset-inline: 0;
    top: 19%;
    height: 70%;
    background-image: url("/cryptoaccountant/ontario/images/hero/whitemiddlestrap.png");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

.hero-ontario-inner {
    position: relative;
    z-index: 3; /* above strap & buildings */
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: calc(var(--grid-side-gap) + 32px); /* extra left margin */
    padding-top: 16px;
    display: flex;
    align-items: flex-start; /* top align */
    justify-content: flex-start;
    gap: 40px;
}

/* Left copy block */
.hero-copy {
    max-width: 520px;
    margin-top: -25px;
}

.hero-title {
    font-weight: 800;
    font-size: 67px;
    line-height: 1.04;
    margin: 0 0 18px;
    white-space: normal; /* one line on desktop */
}

/* keep "Crypto Accountant" on a single line */
.hero-title span:first-child {
    white-space: nowrap;
}

.hero-title span {
    display: block; /* keep all words on one line */
}

.hero-subtitle {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 18px;
    line-height: 1.7;
    max-width: 740px;
    margin-bottom: 10px;
}

.hero-star {
    flex: 0 0 auto;
    width: 50px; /* bigger star */
    height: 50px;
    margin-top: 2px;
    display: inline-block;
    object-fit: contain;
}

/* CTA button in hero */
.hero-cta.btn-contact {
    padding: 4px 8px;
    font-size: 14px;
    background-color: #ffffff;
    color: #243f8b;
    border-color: #ffffff;
}

.hero-cta.btn-contact:hover {
    background-color: #ffffff;
    border-color: #ffffff;
    color: #243f8b;
}

.hero-cta-icon {
    width: 26px;
    height: 26px;
    display: inline-block;
    border-radius: 50%;
    background-color: #243f8b;
    padding: 4px;
    object-fit: contain;
    margin-right: -4px;
}

/* Buildings wrapper – push image further down */
.hero-buildings-wrap {
    position: absolute;
    inset-inline: 0;
    bottom: -57%; /* pulled down so only top part shows */
    display: flex;
    justify-content: center;
    pointer-events: none;
    z-index: 2;
    overflow: hidden; /* extra safety */
}

/* Buildings image – full width */
.hero-buildings {
    width: 100vw; /* full viewport width */
    max-width: none;
    height: auto;
    display: block;
}

/* ------------------- Tablet & Mobile ------------------- */
@media (max-width: 991.98px) {
    .hero-ontario {
        padding: 72px 0 24px;
    }

    .hero-ontario-inner {
        padding-inline: 16px;
        padding-top: 0;
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    .hero-copy {
        max-width: 100%;
        margin-top: -25px;
    }

    .hero-title {
        font-size: 40px;
        white-space: normal; /* allow wrapping on smaller screens */
    }

    .hero-title span {
        display: block; /* back to stacked lines on tablet/mobile */
    }

    .hero-subtitle {
        font-size: 14px;
        max-width: 100%;
    }

    .hero-star {
        width: 28px;
        height: 28px;
    }

    .hero-ontario::before {
        top: 22%;
        height: 60%;
        background-size: 140% auto;
    }

    .hero-buildings {
        width: 100vw;
    }

    /* 🔹 NEW: bring buildings up on tablet */
    .hero-buildings-wrap {
        bottom: -15%;
    }
}

/* ------------------- Small Mobile ------------------- */
@media (max-width: 575.98px) {
    .hero-ontario {
        min-height: 50vh;
        padding: 73px 0 40px; /* was 96px 0 16px → slightly taller */
    }

    .hero-copy {
        margin-top: -60px;
    }

    .hero-title {
        font-size: 34px;
    }

    .hero-cta.btn-contact {
    }

    /* override only what changes for this width */
    .hero-ontario::before {
        top: 38%;
        height: 58%;
        background-size: 170% auto;
    }

    .hero-buildings {
        width: 100vw;
    }

    /* drop buildings to create gap under text */
    .hero-buildings-wrap {
        bottom: -150px;
    }
}
/* ------------------- Extra large screens ------------------- */
@media (min-width: 1440px) {
    .hero-ontario {
        padding-top: 96px; /* push whole hero content slightly down */
    }

    .hero-ontario-inner {
        padding-inline: calc(
            var(--grid-side-gap) - 106px
        ); /* 50px more left than before (-56 → -106) */
        padding-top: 24px;
    }

    .hero-copy {
        margin-top: 16px; /* little down */
        margin-left: -100px; /* 100px more to the left */
    }

    .hero-title {
        font-size: 76px; /* a bit smaller */
        font-weight: 750; /* slightly lighter weight */
        line-height: 1.03;
    }

    .hero-subtitle {
        font-size: 17px; /* little smaller than 20px */
        max-width: 860px;
        margin-bottom: 14px;
    }
}

/* =========================================
   SECTION: Crypto Trading in Ontario
   ========================================= */

.section-trading {
    padding: 80px 0;
    background-color: #ffffff;
}

.trading-inner {
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 64px;
}

/* Left column */
.trading-left {
    flex: 0 0 40%;
}

.trading-heading {
    font-size: 40px;
    line-height: 1.1;
    font-weight: 800;
    color: black;
    /* margin: 0 0 18px; */
}

.trading-lead {
    font-size: 13px;
    line-height: 1.7;
    color: #191b22cc;
    max-width: 420px;
    margin-bottom: 17px;
}

/* Button */
.trading-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 2px 7px;
    border-radius: 999px;
    border: 2px solid #243f8b;
    background-color: #243f8b;
    color: #ffffff;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.trading-btn:hover {
    color: #ffffff;
    background-color: #243f8b;
}

.trading-btn-icon {
    width: 26px;
    height: 26px;
    display: inline-block;
    margin-right: -5px;
}

/* Right column – feature list */
.trading-right {
    flex: 0 0 52%;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.trading-item {
    display: flex;
    align-items: flex-start;
    gap: 18px;
}

.trading-icon {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    object-fit: contain;
    margin-top: 2px;
}

.trading-item-title {
    margin: 0 0 4px;
    font-size: 16px;
    font-weight: 700;
    color: #243f8b;
}

.trading-item-text {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: #444444;
}

/* ---------- Mobile / tablet ---------- */
@media (max-width: 991.98px) {
    .section-trading {
        padding: 56px 0 64px;
    }

    .trading-inner {
        padding-inline: 16px;
        flex-direction: column;
        gap: 40px;
    }

    .trading-left,
    .trading-right {
        flex: 0 0 100%;
    }

    .trading-heading {
        font-size: 32px;
    }

    .trading-lead {
        max-width: 100%;
    }
}

@media (max-width: 575.98px) {
    .trading-heading {
        font-size: 28px;
    }

    .trading-item-title {
        font-size: 15px;
    }

    .trading-item-text {
        font-size: 13px;
    }
}
/* =========================================
   SECTION: Crypto Accounting Services
   ========================================= */

.section-accounting {
    position: relative;
    padding: 70px 0 30px;
    color: #ffffff;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #050818; /* dark base under the gradient */
    background-image: url("/cryptoaccountant/ontario/images/accouunting/bg-imgfull.png");
    background-repeat: no-repeat;

    background-size: 110% 100%;
    background-position: center center;
}

.accounting-inner {
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
}

/* small Block3 logo on top */
.accounting-logo {
    display: block;
    width: 200px;
    max-width: 40%;
    /* margin-bottom: 28px; */
    margin-left: -5%;
    margin-top: -3%;
}

/* main map + content frame */
.accounting-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 48px;
}

/* left map box */
.accounting-map-wrap {
    /* border: 1px dashed rgba(255, 255, 255, 0.35); */
    border-radius: 12px;
    padding: 28px 28px 24px;
    background: rgba(0, 0, 0, 0.15);
}

.accounting-map {
    display: block;
    width: 110%;
    height: auto;
}

/* right content box */
.accounting-content {
    /* border: 1px dashed rgba(255, 255, 255, 0.35); */
    border-radius: 12px;
    padding: 32px 32px 26px;
    /* background: rgba(0, 0, 0, 0.25); */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    /* gap: 24px; */
}

.accounting-title {
    margin: 0 0 16px;
    font-size: 39px;
    line-height: 1.25;
    font-weight: 800;
}

.accounting-list {
    margin: 0 0 24px;
    padding-left: 1.2rem;
    list-style: disc;
    font-size: 18px;
    line-height: 2;
}

.accounting-list li + li {
    margin-top: 4px;
}

/* Button – same style family as provided snippet */
.accounting-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 3px 9px;
    border-radius: 999px;
    /* border: 2px solid #243f8b; */
    background-color: white;
    color: #243f8b;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    align-self: flex-start;
}

/* .accounting-btn:hover {
    color: #ffffff;
    background-color: #243f8b;
} */

.accounting-btn-icon {
    width: 28px;
    height: 28px;
    display: inline-block;
    margin-right: -5px;
}

/* ---------- Responsive ---------- */
@media (max-width: 991.98px) {
    .section-accounting {
        padding: 64px 0 72px;
    }

    .accounting-inner {
        padding-inline: 16px;
    }

    .accounting-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 32px;
    }

    .accounting-title {
        font-size: 28px;
    }
}

@media (max-width: 575.98px) {
    .accounting-title {
        font-size: 24px;
    }

    .accounting-list {
        font-size: 13px;
    }
}

/* =========================================
   SECTION: Who We Support in Ontario
   ========================================= */

.section-support {
    padding: 40px 0 45px;
    background-color: #ffffff; /* white page bg */
}

/* make card wider, keep small safe gap on very large screens */
.support-card {
    position: relative;
    max-width: 1400px; /* was var(--grid-max) */
    width: calc(100% - 80px); /* ~40px gap on left & right */
    margin-inline: auto;
    padding: 48px 56px 40px;
    border-radius: 26px;
    background-color: #243f8b;
    color: #ffffff;
    overflow: hidden;
}
/* top-right white strap */
.support-decoration {
    position: absolute;
    top: -40px;
    right: 250px; /* was -40px → move inside a bit */
    width: 320px;
    max-width: 45%;
    pointer-events: none;
    user-select: none;
}

.support-inner {
    position: relative;
    z-index: 1;
}

/* header text */
.support-header {
    max-width: 540px;
    margin-bottom: 40px;
}

.support-title {
    margin: 0 0 12px;
    font-size: 40px;
    line-height: 1.1;
    font-weight: 800;
}

.support-title span {
    display: block;
}

.support-intro {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    opacity: 0.9;
}

/* grid of 6 tiles */
.support-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 8px;
    border-top: 1px dashed rgba(255, 255, 255, 0.3);
    border-bottom: 1px dashed rgba(255, 255, 255, 0.3);
}

.support-item {
    display: flex;
    flex-direction: column; /* stack icon above text */
    align-items: flex-start;
    gap: 12px; /* space between icon and text block */
    padding: 28px 32px;
    border-right: 1px dashed rgba(255, 255, 255, 0.3);
    border-bottom: 1px dashed rgba(255, 255, 255, 0.3);
}

/* remove right border on last column */
.support-item:nth-child(3n) {
    border-right: 0;
}

/* remove bottom border on last row */
.support-item:nth-last-child(-n + 3) {
    border-bottom: 0;
}

.support-icon {
    width: 32px;
    height: 32px;
    object-fit: contain;
    margin: 0 0 4px 0; /* small gap under icon */
}

.support-item-title {
    margin: 0 0 4px;
    font-size: 15px;
    font-weight: 700;
    color: #ffffff;
}

.support-item-text {
    margin: 0;
    font-size: 11px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.86);
}

/* ---------- Responsive ---------- */
@media (max-width: 991.98px) {
    .support-card {
        max-width: 100%;
        width: calc(100% - 32px); /* 16px side padding on tablets */
        padding: 40px 24px 32px;
        border-radius: 22px;
    }

    .support-title {
        font-size: 32px;
    }

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

    .support-item {
        padding: 22px 20px;
    }

    .support-decoration {
        top: -60px;
        right: -40px; /* back to earlier position on smaller */
        width: 260px;
    }
}

/* single-column on small phones */
@media (max-width: 575.98px) {
    .section-support {
        padding: 64px 0 80px;
    }

    .support-title {
        font-size: 28px;
    }

    .support-grid {
        grid-template-columns: 1fr;
    }

    .support-item {
        border-right: 0;
    }

    .support-item:nth-last-child(-n + 3) {
        border-bottom: 1px dashed rgba(255, 255, 255, 0.3);
    }

    .support-item:last-child {
        border-bottom: 0;
    }

    .support-card {
        width: calc(100% - 24px); /* tiny margin each side on phones */
    }

    .support-decoration {
        top: -80px;
        right: -100px;
        width: 220px;
    }
}
/* =========================================
   SECTION: Cities We Serve in Ontario
   ========================================= */

.section-cities {
    position: relative;
    padding: 80px 0 90px;
    color: #ffffff;
    background-image: url("/cryptoaccountant/ontario/images/citis-we-serve/bg-img.jpg");
    background-size: cover; /* use bg nicely, not stretched crazy */
    background-position: center center;
    background-repeat: no-repeat;
}

/* soft dark overlay so text pops */
.section-cities::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(15, 23, 42, 0.65),
        rgba(15, 23, 42, 0.75)
    );
    backdrop-filter: blur(15px);
    z-index: 0;
}

.cities-inner {
    position: relative;
    z-index: 1;
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
}

/* header row */
.cities-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 33px;
}

.cities-heading {
    max-width: 520px;
}

.cities-title {
    margin: 0 0 10px;
    font-size: 40px;
    line-height: 1.1;
    font-weight: 800;
}

.cities-subtext {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    opacity: 0.9;
}

/* CTA button (white pill with #243F8B text) */
.cities-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 3px 7px;
    border-radius: 999px;
    /* border: 2px solid #243f8b; */
    background-color: white;
    color: #243f8b;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    align-self: flex-start;
    margin-top: 4%;
}

.cities-cta:hover {
    color: #243f8b;
    background-color: #f9fafb;
}

.cities-cta-icon {
    width: 28px;
    height: 28px;
    display: inline-block;
    margin-right: -5px;
}

/* list of cities */

.cities-list {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px dashed rgba(255, 255, 255, 0.4);
}

.city-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 0;
    border-bottom: 1px dashed rgba(255, 255, 255, 0.22);
}

.city-left {
    display: flex;
    align-items: center;
    gap: 40px;
}

.city-number {
    width: 40px;
    font-size: 14px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    opacity: 0.9;
}

.city-name {
    font-size: 16px;
    font-weight: 500;
}

/* right arrow button */
.city-arrow {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, 0.25);
    backdrop-filter: blur(6px);
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.city-arrow-icon {
    width: 20px;
    height: 20px;
    display: block;
}

/* hover: slight slide to the right */
.city-row:hover .city-arrow {
    transform: translateX(4px);
    background-color: rgba(255, 255, 255, 0.12);
}
/* city name underline on hover */
.city-row:hover .city-name {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

/* base arrow styles (same as you had, just ensure this exists) */
.city-arrow {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, 0.25);
    backdrop-filter: blur(6px);
    transition: transform 0.2s ease, background-color 0.2s ease,
        border-color 0.2s ease;
}

.city-arrow-icon {
    width: 20px;
    height: 20px;
    display: block;
}

/* show only white arrow by default */
.city-arrow-icon-blue {
    display: none;
}

/* HOVER STATE: pill white + blue arrow */
.city-row:hover .city-arrow {
    transform: translateX(4px);
    background-color: #ffffff;
    border-color: #ffffff;
}

.city-row:hover .city-arrow-icon-white {
    display: none;
}

.city-row:hover .city-arrow-icon-blue {
    display: block;
}
/* make ONLY the white arrow a bit bigger */
.city-arrow-icon-white {
    width: 24px;
    height: 24px;
}

/* keep blue arrow at the original size */
.city-arrow-icon-blue {
    width: 20px;
    height: 20px;
}

/* ---------- responsive ---------- */

@media (max-width: 991.98px) {
    .section-cities {
        padding: 64px 0 72px;
    }

    .cities-inner {
        padding-inline: 16px;
    }

    .cities-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .cities-title {
        font-size: 32px;
    }
}

@media (max-width: 575.98px) {
    .cities-title {
        font-size: 28px;
    }

    .city-left {
        gap: 20px;
    }

    .city-number {
        width: 32px;
    }

    .city-name {
        font-size: 15px;
    }
}
/* =========================================
   SECTION: How We Prepare Your Crypto Taxes
   (5 white cards – horizontal step slider)
   ========================================= */

.section-tax-cards {
    background-color: #ffffff;
    padding: 80px 0 90px;
    color: var(--b3-text-dark);
}

.tax-cards-inner {
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
}

/* viewport that masks the track */
.tax-cards-viewport {
    overflow: hidden;
    position: relative;
}

/* horizontal track – JS moves this left in 100% steps */
.tax-cards-track {
    display: flex;
    /* no gap here so each slide is exactly full width */
    transform: translateX(0);
    transition: transform 0.8s ease-in-out;
}

/* each step card */
.tax-card {
    background-color: #ffffff;
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.06);
    padding: 32px 36px 30px;

    /* show one card at a time in viewport */
    flex: 0 0 100%;
    box-sizing: border-box;
}

/* 2-column layout inside card */
.tax-card-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    column-gap: 56px;
    align-items: flex-start;
    position: relative;
}

/* vertical divider */
.tax-card-grid::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 8px;
    bottom: 8px;
    width: 1px;
    background-color: #e5e7eb;
}

/* centre dot */
.tax-card-dot {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background-color: #9ca3af;
}

/* left column: title + list */
.tax-card-title {
    margin: 0 0 18px;
    font-size: 34px;
    line-height: 1.1;
    font-weight: 800;
    color: #243f8b;
}

.tax-card-title span {
    display: block;
}

.tax-card-list {
    margin: 0;
    padding-left: 18px;
    display: flex;
    flex-direction: column;
    gap: 9px;
    font-size: 14px;
    line-height: 1.6;
    color: #111827;
}

.tax-card-list li {
    list-style: disc;
}

.tax-card-link {
    text-decoration: none;
    color: inherit;
}

/* active bullet */
.tax-card-list li.is-active .tax-card-link {
    color: #243f8b;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* right column */
.tax-card-step-label {
    margin: 0 0 8px;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #6b7280;
}

.tax-card-step-title {
    margin: 0 0 12px;
    font-size: 22px;
    line-height: 1.35;
    font-weight: 700;
    color: #243f8b;
}

.tax-card-step-text {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: #4b5563;
    max-width: 520px;
}

/* step dots under slider */
.tax-cards-dots {
    margin-top: 16px;
    display: flex;
    justify-content: center;
    gap: 10px;
}

.tax-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    border: 1px solid #d1d5db;
    background-color: #e5e7eb;
    padding: 0;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.2s ease, width 0.2s ease;
}

.tax-dot.is-active {
    width: 24px; /* pill when active */
    background-color: #243f8b;
    border-color: #243f8b;
    transform: translateY(-1px);
}

/* Tablet & small desktop */
@media (max-width: 991.98px) {
    .section-tax-cards {
        padding: 64px 0 72px;
    }

    .tax-cards-inner {
        padding-inline: 16px;
    }

    /* keep slider: one card per viewport */
    .tax-card {
        flex: 0 0 100%;
        padding: 28px 20px 24px;
        border-radius: 16px;
    }

    .tax-card-grid {
        grid-template-columns: minmax(0, 1fr); /* stack columns inside card */
        row-gap: 24px;
    }

    /* hide vertical divider & centre dot on smaller screens */
    .tax-card-grid::before,
    .tax-card-dot {
        display: none;
    }

    .tax-card-title {
        font-size: 28px;
    }

    .tax-cards-dots {
        margin-top: 12px;
    }

    .tax-dot {
        width: 8px;
        height: 8px;
    }
}

/* Small mobiles */
@media (max-width: 575.98px) {
    .tax-card-title {
        font-size: 26px;
    }

    .tax-card-step-title {
        font-size: 19px;
    }
}

/* =========================================
   SECTION: #1 Crypto Accountants in North America
   ========================================= */

.section-northamerica {
    position: relative;
    background-color: #243f8b; /* solid purple bg only */
    padding: 120px 0 150px;
    color: #ffffff;
    overflow: hidden;
}

/* vector PNG layer above the bg, behind text */
.section-northamerica .northamerica-vector {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* make it span nicely */
    pointer-events: none;
    user-select: none;
    z-index: 0;
}

.northamerica-inner {
    position: relative;
    z-index: 1; /* on top of the vector */
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
    display: flex;
    align-items: center;
    min-height: 220px;
}

.northamerica-title {
    margin: 0;
    font-size: 52px;
    line-height: 1.15;
    font-weight: 800;
}

.northamerica-title span {
    display: inline-block;
}

.northamerica-highlight {
    color: #fdea6e; /* yellow for #1 */
}

/* --------- responsive --------- */
@media (max-width: 991.98px) {
    .section-northamerica {
        padding: 90px 0 110px;
    }

    .northamerica-inner {
        padding-inline: 16px;
        min-height: 180px;
    }

    .northamerica-title {
        font-size: 38px;
    }
}

@media (max-width: 575.98px) {
    .northamerica-title {
        font-size: 32px;
    }
}
/* =========================================
   SECTION: Why Clients in Ontario Choose Block3
   ========================================= */

.section-why-ontario {
    position: relative;
    padding: 80px 0 90px;
    color: #ffffff;
    background: radial-gradient(
            circle at 8% -30%,
            #243f8b 0,
            rgba(5, 6, 10, 0.9) 40%
        ),
        radial-gradient(circle at 90% 0%, #243f8b 0, #020617 55%);
    overflow: hidden;
}

/* decorative bottom-right logo – even bigger */
.why-ontario-bglogo {
    position: absolute;
    right: -780px; /* push further out so it doesn't overlap cards */
    bottom: -5px;
    width: 940px; /* was 520px */
    max-width: 100%; /* was 60% */
    opacity: 0.24;
    pointer-events: none;
    user-select: none;
    z-index: 0;
}

.why-ontario-inner {
    position: relative;
    z-index: 1;
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    column-gap: 72px;
    align-items: flex-start;
}

/* left side: heading + CTA */
.why-ontario-left {
    max-width: 520px;
}

.why-ontario-title {
    margin: 0 0 24px;
    font-size: 42px;
    line-height: 1.1;
    font-weight: 800;
}

.why-ontario-title span {
    display: block;
}

.why-ontario-text {
    margin: 0 0 28px;
    font-size: 14px;
    line-height: 1.7;
    color: rgba(248, 250, 252, 0.8);
}

/* CTA button */
.why-ontario-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 3px 7px;
    border-radius: 999px;
    /* border: 2px solid #243f8b; */
    background-color: white;
    color: #243f8b;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    align-self: flex-start;
    margin-top: 4%;
}

.why-ontario-btn:hover {
    background-color: #f9fafb;
    color: #243f8b;
}

.why-ontario-btn-icon {
    width: 22px;
    height: 22px;
    display: inline-block;
    margin-right: -4px;
}

/* right side: 2 x 2 grid of reasons */
.why-ontario-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 40px;
    column-gap: 48px;
}

.why-ontario-item {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.why-ontario-icon {
    width: 32px;
    height: 32px;
    object-fit: contain;
}

.why-ontario-item-title {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: #f9fafb;
}

.why-ontario-item-text {
    margin: 0;
    font-size: 13px;
    line-height: 1.7;
    color: rgba(209, 213, 219, 0.9);
}

/* ---------- responsive ---------- */
@media (max-width: 991.98px) {
    .section-why-ontario {
        padding: 64px 0 72px;
    }

    .why-ontario-inner {
        padding-inline: 16px;
        grid-template-columns: minmax(0, 1fr);
        row-gap: 40px;
    }

    .why-ontario-left {
        max-width: 100%;
    }

    .why-ontario-title {
        font-size: 34px;
    }

    .why-ontario-grid {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 32px;
    }

    .why-ontario-bglogo {
        width: 260px;
        bottom: -60px;
        opacity: 0.2;
    }
}

@media (max-width: 575.98px) {
    .why-ontario-title {
        font-size: 30px;
    }

    .why-ontario-btn {
        padding-inline: 16px;
    }
}

/* =========================================
   SECTION: Our Featured Work
   ========================================= */

.section-featured-work {
    background-color: #f7f7fb; /* light page bg, NO big image */
    padding: 72px 0 90px;
    color: #111827;
}

.featured-work-inner {
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
}

/* header row */
.featured-work-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}

.featured-work-title {
    margin: 0 0 8px;
    font-size: 40px;
    line-height: 1.1;
    font-weight: 800;
    color: #111827;
}

.featured-work-subtitle {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: #4b5563;
    max-width: 520px;
}

/* CTA reusing btn-contact, just tweak spacing if needed */
.featured-work-btn {
    white-space: nowrap;
    margin-top: 62px;
}

/* main card – background only inside this */
.featured-work-card {
    position: relative;
    border-radius: 28px;
    overflow: hidden;
    background-color: #050818;
    box-shadow: 0 26px 70px rgba(15, 23, 42, 0.45);
}

/* local bg image */
.featured-work-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

/* inner content (screenshot) */
.featured-work-card-inner {
    position: relative;
    z-index: 1;
    padding: 32px 32px -10px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.featured-work-main-img {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: 16px;
}
.featured-work-link {
    text-decoration: underline;
    text-underline-offset: 2px;
    color: inherit; /* keep same colour as text */
    font-weight: 600; /* optional: small emphasis */
}

.featured-work-link:hover {
    opacity: 0.85;
}

/* ---------- responsive ---------- */
@media (max-width: 991.98px) {
    .section-featured-work {
        padding: 56px 0 72px;
    }

    .featured-work-inner {
        padding-inline: 16px;
    }

    .featured-work-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .featured-work-title {
        font-size: 32px;
    }

    .featured-work-btn {
        margin-top: 4px;
    }

    .featured-work-card-inner {
        padding: 20px 16px 18px;
    }
}

@media (max-width: 575.98px) {
    .featured-work-title {
        font-size: 28px;
    }
}
/* =========================================
   SECTION: Clients We Have Worked With
   ========================================= */

.section-clients {
    background-color: #ffffff; /* page bg */
    padding: 42px 52px;
}

.clients-inner {
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
}

/* purple rounded card */
.clients-card {
    position: relative;
    background-color: #243f8b;
    color: #ffffff;
    border-radius: 26px;
    padding: 48px 56px 40px;
    overflow: hidden;
}

/* decorative curve in top-right */
.clients-decoration {
    position: absolute;
    top: 0px;
    right: 150px;
    width: 340px;
    max-width: 45%;
    pointer-events: none;
    user-select: none;
    opacity: 0.9;
    z-index: 0;
}

.clients-header {
    position: relative;
    z-index: 1;
    max-width: 480px;
    margin-bottom: 40px;
}

.clients-title {
    margin: 0 0 14px;
    font-size: 40px;
    line-height: 1.1;
    font-weight: 800;
}

.clients-intro {
    margin: 0;
    font-size: 12px;
    line-height: 1.7;
    opacity: 0.9;
}

/* logo grid */
.clients-logos-grid {
    position: relative;
    z-index: 1;
    margin-top: 8px;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 20px 24px; /* row / column gap */
}

/* individual logo card – all same size */
.client-logo-card {
    background-color: #ffffff;
    border-radius: 18px;
    padding: 18px 22px;
    min-height: 110px; /* equal card height */
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
}

/* normalize logo sizing even if source images differ */
.client-logo-card img {
    max-width: 130px;
    max-height: 46px; /* controls logo height */
    width: 100%;
    height: auto;
    object-fit: contain; /* keep aspect ratio */
    display: block;
}

/* ---------- responsive ---------- */
@media (max-width: 1199.98px) {
    .clients-card {
        padding: 40px 32px 32px;
    }

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

@media (max-width: 991.98px) {
    .clients-inner {
        padding-inline: 16px;
    }

    .clients-card {
        border-radius: 22px;
    }

    .clients-title {
        font-size: 32px;
    }

    .clients-logos-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .clients-decoration {
        top: -100px;
        right: -80px;
        width: 280px;
    }
}

@media (max-width: 575.98px) {
    .section-clients {
        padding: 64px 0 80px;
    }

    .clients-card {
        padding: 32px 20px 28px;
        border-radius: 20px;
    }

    .clients-title {
        font-size: 28px;
    }

    .clients-logos-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px 16px;
    }

    .client-logo-card {
        min-height: 96px;
        padding: 14px 16px;
    }

    .clients-decoration {
        top: -110px;
        right: -120px;
        width: 240px;
    }
}
/* ============== PODCASTS (Marquee) ============== */
.podcasts {
    background: #fafafa;
    padding: clamp(20px, 6vw, 30px) 0;
    color: #0f172a;
    overflow-x: clip; /* no bottom scrollbar */
}
.podcasts .container-xxl {
    padding-inline: clamp(12px, 3vw, 20px);
}

.podcasts .podcasts-head {
    margin-bottom: 18px;
}
.podcasts h2 {
    font-size: clamp(28px, 3.6vw, 40px);
    font-weight: 600;
    margin: 0 0 6px;
}
.podcasts p {
    margin: 0;
    color: #141414;
    font-size: clamp(14px, 1.3vw, 18px);
    max-width: 90ch; /* limit by character width */
}

/* --- Marquee rail --- */
.pod-marquee {
    position: relative;
    overflow: hidden; /* clips track; no scrollbars */
    padding-block: 6px;
}
.pod-track {
    display: flex;
    gap: 22px;
    width: max-content; /* single long row */
    will-change: transform;
    animation: podScroll 45s linear infinite;
}
.pod-marquee:hover .pod-track {
    animation-play-state: paused;
}

/* keyframes: translate by exactly the width of one set (handled in JS) */
@keyframes podScroll {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(var(--pod-shift, -50%));
    }
}

/* --- Cards --- */
.pod-card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    /* box-shadow: 0 10px 22px rgba(0, 0, 0, 0.1); */
    border: 1px solid rgba(2, 90, 161, 0.25);
    display: flex;
    flex-direction: column;
    height: 100%;
    flex: 0 0 var(--pod-card-w, 320px); /* fixed width per card for stable marquee */
}
.pod-media {
    position: relative;
    aspect-ratio: 18/16; /* uniform media height */
    overflow: hidden;
}
.pod-media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
}
.pod-meta {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: var(--pod-meta-min, 150px);
}
.pod-title {
    font-weight: 700;
    font-size: clamp(14px, 1.35vw, 18px);
    line-height: 1.35;
    color: #191b22;
    margin: 0;
    display: block; /* override -webkit-box */
    -webkit-line-clamp: unset;
    -webkit-box-orient: initial;
    overflow: visible;
}
.pod-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #191b22cc;
    font-size: 16px;
}
.pod-link {
    color: #0d2da2;
    font-weight: 800;
    text-decoration: none;
}
.pod-link:hover {
    text-decoration: underline;
}

/* --- Outside fades (subtle) --- */
.pod-marquee::before,
.pod-marquee::after {
    content: "";
    position: absolute;
    top: -4px;
    bottom: -4px;
    width: clamp(36px, 7vw, 120px);
    pointer-events: none;
    z-index: 2;
}
.pod-marquee::before {
    left: 0;
    transform: translateX(-60%); /* sit slightly outside */
    background: linear-gradient(to right, #fafafa 65%, rgba(250, 250, 250, 0));
}
.pod-marquee::after {
    right: 0;
    transform: translateX(60%);
    background: linear-gradient(to left, #fafafa 65%, rgba(250, 250, 250, 0));
}

/* --- Responsive card widths --- */
@media (max-width: 1399.98px) {
    .pod-card {
        --pod-card-w: 300px;
    }
}
@media (max-width: 1199.98px) {
    .pod-card {
        --pod-card-w: 280px;
    }
}
@media (max-width: 991.98px) {
    .pod-card {
        --pod-card-w: 260px;
    }
    .podcasts .container-xxl {
        padding-inline: clamp(12px, 3vw, 18px);
    }
}
@media (max-width: 767.98px) {
    .pod-card {
        --pod-card-w: 230px;
    }
}
@media (max-width: 575.98px) {
    .pod-card {
        --pod-card-w: 200px;
    }
    .podcasts .container-xxl {
        padding-inline: 10px;
    }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
    .pod-track {
        animation-duration: 0.001ms;
        animation-iteration-count: 1;
    }
}

/* =========================================
   SECTION: Maximizing Crypto Tax Efficiency
   ========================================= */

.section-max-crypto {
    background-color: #020617; /* very dark base under whole section */
    padding: 0; /* edge-to-edge like screenshot */
}

.max-crypto-inner {
    max-width: 100%;
    margin: 0;
    display: flex;
    min-height: 520px;
}

/* LEFT IMAGE SIDE */
.max-crypto-left {
    flex: 0 0 45%;
    position: relative;
    overflow: hidden;
}

.max-crypto-img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* fill left side nicely */
    display: block;
}

/* RIGHT CONTENT PANEL */
.max-crypto-right {
    flex: 0 0 55%;
    position: relative;
    color: #ffffff;
    background: radial-gradient(
            circle at top left,
            #2d2a5f 0,
            #020617 34%,
            #000000 100%
        ),
        radial-gradient(
            circle at bottom right,
            #1d4ed8 0,
            #020617 40%,
            #000000 100%
        );

    display: flex;
    align-items: center;
    justify-content: center;
    padding-block: 56px;
    padding-inline: 56px;
    box-sizing: border-box;
    overflow: clip;
}

/* decorative logo bottom-right */
.max-crypto-bglogo {
    position: absolute;
    right: -580px;
    bottom: 0;
    /* width: 260px; */
    max-width: 100%;
    opacity: 0.26;
    pointer-events: none;
    user-select: none;
    z-index: 0;
}

.max-crypto-content {
    position: relative;
    z-index: 1;
    max-width: 540px;
}

.max-crypto-title {
    margin: 0 0 16px;
    font-size: 36px;
    line-height: 1.15;
    font-weight: 800;
}

.max-crypto-lead {
    margin: 0 0 24px;
    font-size: 14px;
    line-height: 1.7;
    color: #e5e7eb;
}

/* feature list */
.max-crypto-list {
    list-style: none;
    margin: 0 0 28px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.max-crypto-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.max-crypto-icon {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    object-fit: contain;
    margin-top: 2px;
}

.max-crypto-item-title {
    margin: 0 0 2px;
    font-size: 14px;
    font-weight: 600;
    color: #f9fafb;
}

.max-crypto-item-text {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: #9ca3af;
}

/* CTA button – white pill, purple text + arrow */
.max-crypto-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 3px 7px;
    border-radius: 999px;
    /* border: 2px solid #243f8b; */
    background-color: white;
    color: #243f8b;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    align-self: flex-start;
    margin-top: 4%;
}

.max-crypto-btn-icon {
    width: 22px;
    height: 22px;
    display: inline-block;
    margin-right: -4px;
}

.max-crypto-btn:hover {
    background-color: #e5e7eb;
    border-color: #e5e7eb;
    color: #1e2a78;
}

/* ---------- Responsive ---------- */
@media (max-width: 991.98px) {
    .max-crypto-inner {
        flex-direction: column;
    }

    .max-crypto-left,
    .max-crypto-right {
        flex: 0 0 auto;
        width: 100%;
    }

    .max-crypto-right {
        padding-inline: 24px;
        padding-block: 40px;
    }

    .max-crypto-title {
        font-size: 30px;
    }

    .max-crypto-bglogo {
        width: 220px;
        bottom: -60px;
    }
}

@media (max-width: 575.98px) {
    .max-crypto-right {
        padding-inline: 18px;
        padding-block: 32px;
    }

    .max-crypto-title {
        font-size: 26px;
    }

    .max-crypto-lead {
        font-size: 13px;
    }

    .max-crypto-bglogo {
        width: 190px;
        bottom: -70px;
        right: -20px;
    }
}

/* =========================================
   SECTION: Events We Have Attended
   ========================================= */

.section-events {
    background-color: #f7f7fb;
    padding: 72px 0 64px;
    color: #111827;
}

.events-inner {
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
}

/* heading + text row */
.events-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    column-gap: 64px;
    align-items: flex-start;
    margin-bottom: 40px;
}

.events-title {
    margin: 0;
    font-size: 40px;
    line-height: 1.1;
    font-weight: 800;
}

.events-text {
    margin: 0;
    font-size: 18px; /* little bigger */
    line-height: 1.7;
    max-width: 650px;
}

/* solid blue up to "our expertise in" */
.events-text-main {
    color: #243f8b;
    font-weight: 600;
}

/* softer blue for the rest */
.events-text-sub {
    color: #243f8ba3; /* same blue with alpha */
}

/* logos marquee */
.events-marquee {
    position: relative;
    overflow: hidden;
    padding-block: 10px;
}

.events-track {
    display: flex;
    gap: 40px;
    width: max-content;
    will-change: transform;
    animation: eventsScroll 40s linear infinite;
}

/* pause on hover */
.events-marquee:hover .events-track {
    animation-play-state: paused;
}

.events-logo {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 120px;
}

.events-logo img {
    display: block;
    max-height: 42px;
    width: auto;
    object-fit: contain;
}

/* infinite scroll keyframes */
@keyframes eventsScroll {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(var(--events-shift, -50%));
    }
}

/* reduced motion: disable animation */
@media (prefers-reduced-motion: reduce) {
    .events-track {
        animation-duration: 0.001ms;
        animation-iteration-count: 1;
    }
}

/* ---------- responsive ---------- */
@media (max-width: 991.98px) {
    .section-events {
        padding: 56px 0 52px;
    }

    .events-inner {
        padding-inline: 16px;
    }

    .events-grid {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 16px;
        margin-bottom: 32px;
    }

    .events-title {
        font-size: 32px;
    }

    .events-text {
        font-size: 16px;
    }

    .events-track {
        gap: 30px;
    }

    .events-logo img {
        max-height: 38px;
    }
}

@media (max-width: 575.98px) {
    .events-title {
        font-size: 28px;
    }

    .events-text {
        font-size: 15px;
    }

    .events-track {
        gap: 24px;
    }

    .events-logo {
        min-width: 100px;
    }

    .events-logo img {
        max-height: 34px;
    }
}

/* =========================================
   SECTION: Talk to a Crypto Accountant in Ontario
   (full-width skyline hero after Podcasts)
   ========================================= */

.section-talk-cta {
    position: relative;
    background-image: url("/cryptoaccountant/ontario/images/talk-to-accountant/bg.jpg");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    color: #ffffff;
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 80px 0;
    overflow: hidden;
}

/* dark overlay so text pops */
.section-talk-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(15, 23, 42, 0.55),
        rgba(15, 23, 42, 0.85)
    );
    z-index: 0;
}

.talk-cta-inner {
    position: relative;
    z-index: 1;
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
}

.talk-cta-content {
    max-width: 780px;
    margin-inline: auto;
}

/* main heading */
.talk-cta-title {
    margin: 0 0 16px;
    font-weight: 800;
    font-size: 56px;
    line-height: 1.05;
}

.talk-cta-title br {
    display: block;
}

/* subtitle */
.talk-cta-subtitle {
    margin: 0 0 28px;
    font-size: 16px;
    line-height: 1.6;
    opacity: 0.95;
}

/* CTA button – white pill + blue arrow disk */
.talk-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px;
    border-radius: 999px;
    background-color: #ffffff;
    color: #243f8b;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    border: none;
}

.talk-cta-btn:hover {
    background-color: #f9fafb;
    color: #243f8b;
}

.talk-cta-btn-icon {
    width: 26px;
    height: 26px;
    display: inline-block;
    object-fit: contain;
    margin-left: 4px;
}

/* ---------- responsive ---------- */
@media (max-width: 991.98px) {
    .section-talk-cta {
        min-height: 60vh;
        padding: 64px 0;
    }

    .talk-cta-inner {
        padding-inline: 16px;
    }

    .talk-cta-title {
        font-size: 40px;
    }

    .talk-cta-subtitle {
        font-size: 15px;
    }
}

@media (max-width: 575.98px) {
    .section-talk-cta {
        min-height: 55vh;
        padding: 56px 0;
    }

    .talk-cta-title {
        font-size: 32px;
    }

    .talk-cta-subtitle {
        font-size: 14px;
    }

    .talk-cta-btn {
        padding-inline: 20px;
    }
}

/* =========================================
   SECTION: Contact Us (below Talk to Accountant)
   ========================================= */
/* Target only this select */
#about_us_cta:hover,
#about_us_cta:focus {
    background-color: #222a42 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

.section-contact-cta {
    background-color: #ffffff;
    padding: 80px 0 25px;
}

.contact-cta-inner {
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.05fr);
    column-gap: 72px;
    align-items: stretch;
}

/* LEFT TEXT BLOCK */
.contact-cta-left {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

/* top pill: max-content, left fully rounded, right only top rounded */
.contact-cta-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 22px 6px 22px;
    width: max-content;
    border-radius: 999px 999px 0 999px; /* TL, TR, BR, BL */
    border: 1px solid #243f8b;
    color: #243f8b;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    background-color: #ffffff;
    margin-bottom: 20px;
}

/* heading typography – Aeonik, 48px, 130%, -2% letter-spacing */
.contact-cta-title {
    margin: 0;
    font-family: "Aeonik", "Inter", system-ui, -apple-system, Segoe UI,
        sans-serif;
    font-weight: 350;
    font-size: 30px; /* was 48px */
    line-height: 1.3;
    letter-spacing: -0.02em;
    color: #111827;
}

/* RIGHT FORM CARD */
.contact-cta-right {
    background-color: #243f8b;
    border-radius: 0;
    padding: 32px 40px 34px;
    color: #ffffff;
    display: flex;
    align-items: stretch;
}

.contact-cta-form {
    width: 100%;
}

.contact-cta-row {
    margin-bottom: 26px;
}

.contact-cta-row-two {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 40px;
}

.contact-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.contact-field label {
    font-size: 13px;
    font-weight: 500;
    color: #ffffff;
}

.contact-field-note {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.7);
}

/* Inputs & textarea: underline only */
.contact-field input,
.contact-field textarea {
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.45);
    padding: 6px 0 8px;
    font-size: 13px;
    color: #ffffff;
    outline: none;
}

.contact-field textarea {
    resize: vertical;
    min-height: 80px;
}

.contact-field input::placeholder,
.contact-field textarea::placeholder {
    color: rgba(255, 255, 255, 0.7);
}

/* Submit button */
.contact-cta-row-submit {
    margin-top: 12px;
}

.contact-cta-submit {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px;
    border-radius: 999px;
    border: none;
    background-color: #ffffff;
    color: #243f8b;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.contact-cta-submit:hover {
    background-color: #f3f4ff;
}

.contact-cta-submit-icon {
    width: 26px;
    height: 26px;
    display: inline-block;
    object-fit: contain;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 991.98px) {
    .section-contact-cta {
        padding: 1px 0 0;
    }

    .contact-cta-inner {
        padding-inline: 16px;
        grid-template-columns: minmax(0, 1fr);
        row-gap: 32px;
    }

    .contact-cta-right {
        padding: 28px 22px 26px;
        margin-bottom: 20px;
    }

    .contact-cta-row-two {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 22px;
    }

    .contact-cta-title {
        font-size: 26px;
    }
}

@media (max-width: 575.98px) {
    .contact-cta-title {
        font-size: 20px;
    }

    .contact-cta-right {
        padding: 24px 18px 24px;
        margin-bottom: 20px;
    }

    .contact-cta-submit {
        padding-inline: 16px;
    }
}

/* =========================================
   FOOTER CTA: Block3 Finance
   ========================================= */

.footer-cta {
    position: relative;
    margin-top: 0;
    padding: 0 0 80px; /* NO padding from top */
    color: #ffffff;
    background-color: #050818;
    /* same bg as section-accounting */
    background-image: url("/cryptoaccountant/ontario/images/accouunting/bg-imgfull.png");
    background-repeat: no-repeat;
    background-size: 110% 100%;
    background-position: center center;
}

.footer-cta-inner {
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
    /* content sits lower like in design */
    padding-top: 80px; /* distance from very top of bg to content */
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    column-gap: 80px;
    align-items: flex-end;
}

/* LEFT SIDE */

.footer-cta-left {
    padding-bottom: 40px;
}

.footer-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid #ffffff;
    background-color: #ffffff;
    color: #243f8b;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    margin-bottom: 22px;
}

.footer-cta-btn-icon {
    width: 26px;
    height: 26px;
    display: inline-block;
    margin-right: -4px;
    object-fit: contain;
}

.footer-cta-copy {
    margin: 0 0 18px;
    font-size: 22px; /* increased */
    line-height: 1.8;
    color: rgba(241, 245, 249, 0.95);
}

.footer-cta-brand {
    margin: 0;
    font-size: 56px; /* increased */
    line-height: 1.05;
    font-weight: 800;
    letter-spacing: 0.03em;
}

/* RIGHT CARD – GLASS / TRANSPARENT */

.footer-cta-right {
    display: flex;
    justify-content: flex-end;
}

.footer-card {
    width: 280px; /* slightly less width */
    max-width: 100%;
    min-height: 700px; /* taller card */
    border-radius: 30px;
    padding: 32px 26px 26px;
    background: radial-gradient(
            254.38% 143.37% at -76.18% -24.5%,
            rgba(13, 45, 162, 0) 0%,
            rgba(0, 0, 0, 0.64) 56.59%
        ),
        linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));
    border: 1px solid rgba(148, 163, 184, 0.35);
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* keep top + bottom pinned */
    gap: 18px;
    font-family: "Aeonik", system-ui, -apple-system, BlinkMacSystemFont,
        "Segoe UI", sans-serif;
}

/* logo row */
.footer-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.footer-card-logo {
    width: 100%;
    height: auto;
    object-fit: contain;
}

/* sections */

.footer-card-section {
    margin-top: 6px;
}

.footer-card-title {
    margin: 0 0 11px;
    font-size: 18px;
    font-weight: 200;
    /* color: rgba(249, 250, 251, 0.9); */
    color: #ffffffa3;
}

.footer-card-list {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 13px;
}

.footer-card-list li + li {
    margin-top: 6px;
}

.footer-card-list a {
    color: #ffffff;
    text-decoration: none;
}

.footer-card-list a:hover {
    text-decoration: underline;
}

/* bottom row */

.footer-card-bottom {
    text-align: center;
    padding-top: 10px;
    display: flex;
    flex-direction: column;
    align-items: center; /* center horizontally */
    gap: 10px;
}

.footer-card-copy {
    margin: 0;
    font-size: 10px;
    color: rgba(148, 163, 184, 0.9);
}

.footer-card-socials {
    display: flex;
    justify-content: center; /* center icons left/right */
    align-items: center;
    gap: 12px;
    font-size: 14px;
}

.footer-card-socials a {
    color: rgba(226, 232, 240, 0.95);
    text-decoration: none;
}

.footer-card-socials a:hover {
    color: #ffffff;
}

/* ---------- Responsive ---------- */

@media (max-width: 991.98px) {
    .footer-cta-inner {
        padding-inline: 16px;
        padding-top: 120px;
        grid-template-columns: minmax(0, 1fr);
        row-gap: 40px;
        align-items: flex-start;
    }

    .footer-cta-left {
        padding-bottom: 0;
    }

    .footer-cta-brand {
        font-size: 38px;
    }

    .footer-cta-right {
        justify-content: flex-start;
    }

    .footer-card {
        width: 100%;
        max-width: 360px;
    }
}

@media (max-width: 575.98px) {
    .footer-cta-inner {
        padding-top: 90px;
    }

    .footer-cta-brand {
        font-size: 32px;
    }

    .footer-cta-copy {
        font-size: 18px;
    }

    .footer-card {
        padding: 22px 20px 20px;
        border-radius: 24px;
    }
}

/* =========================================
   LARGE SCREEN OPTIMIZATIONS (1200px+)
   ========================================= */

@media (min-width: 1200px) {
    /* =================== NAVBAR =================== */
    .b3-header {
        padding: 0 2%;
    }

    .b3-nav-container {
        max-width: 1300px;
        margin: 0 auto;
    }

    .b3-brand-text {
        font-size: 22px;
    }

    .b3-navbar .nav-link {
        font-size: 13px;
        padding-inline: 0.5rem;
    }

    .btn-contact {
        padding: 4px 12px;
        font-size: 14px;
    }

    /* =================== PROVINCE STRIP =================== */
    .province-strip-inner {
        max-width: 1300px;
    }

    .province-list li a {
        font-size: 12px;
    }

    .hero-ontario {
        min-height: 100vh;
        padding-top: 80px; /* was 100px → pull hero content up */
        background-size: cover;
        background-position: center 30%;
    }

    /* move white strap further down */
    .hero-ontario::before {
        top: 29%; /* was ~19% → strap goes down */
    }

    .hero-ontario-inner {
        max-width: 1300px;
        padding-top: 0; /* remove extra gap above text */
        padding-left: 8%;
    }

    .hero-copy {
        max-width: 600px;
        margin-top: -20px; /* lift text block up */
    }

    .hero-title {
        font-size: 67px !important;
        line-height: 1.05;
        margin-bottom: 24px;
        font-weight: 700;
    }

    .hero-subtitle {
        font-size: 19px !important;
        line-height: 1.6;
        max-width: 700px;
        margin-bottom: 32px;
    }

    .hero-star {
        width: 55px;
        height: 55px;
    }

    .hero-cta.btn-contact {
        padding: 3px 7px;
        font-size: 16px;
    }

    .hero-cta-icon {
        width: 32px;
        height: 32px;
    }

    .hero-buildings-wrap {
        bottom: -75%;
    }

    .hero-buildings {
        width: 100%;
        max-width: none;
        height: auto;
    }
    /* =================== CRYPTO TRADING SECTION =================== */
    .section-trading {
        padding: 100px 0;
    }

    .trading-inner {
        max-width: 1300px;
        gap: 80px;
    }

    .trading-heading {
        font-size: 47px;
        font-weight: 700;
    }

    .trading-lead {
        font-size: 14px;
        max-width: 500px;
        margin-bottom: 24px;
    }

    .trading-btn {
        padding: 3px 8px;
        font-size: 15px;
    }

    .trading-right {
        gap: 32px;
    }

    .trading-item {
        gap: 20px;
    }

    .trading-icon {
        width: 36px;
        height: 36px;
    }

    .trading-item-title {
        font-size: 18px;
    }

    .trading-item-text {
        font-size: 15px;
    }

    /* =================== CRYPTO ACCOUNTING SERVICES =================== */
    .section-accounting {
        padding: 100px 0 50px;
    }

    .accounting-inner {
        max-width: 1300px;
    }

    .accounting-logo {
        width: 240px;
        margin-bottom: 40px;
    }

    .accounting-grid {
        gap: 60px;
    }

    .accounting-map-wrap {
        padding: 36px;
    }

    .accounting-content {
        padding: 40px;
        margin-top: -10%;
    }

    .accounting-title {
        font-size: 48px;
        margin-bottom: 24px;
    }

    .accounting-list {
        font-size: 18px;
        line-height: 2.2;
        margin-bottom: 32px;
    }

    .accounting-btn {
        padding: 3px 8px;
        font-size: 15px;
    }

    /* =================== WHO WE SUPPORT =================== */
    .section-support {
        padding: 20px 0px 20px 0px;
    }

    .support-card {
        max-width: 1400px;
        padding: 60px 70px 50px;
        border-radius: 32px;
    }

    .support-decoration {
        right: 300px;
        width: 400px;
    }

    .support-header {
        max-width: 600px;
        margin-bottom: 50px;
    }

    .support-title {
        font-size: 48px;
        margin-bottom: 16px;
    }

    .support-intro {
        font-size: 16px;
    }

    .support-grid {
        margin-top: 10px;
    }

    .support-item {
        padding: 32px 40px;
        gap: 16px;
    }

    .support-icon {
        width: 36px;
        height: 36px;
    }

    .support-item-title {
        font-size: 17px;
    }

    .support-item-text {
        font-size: 14px;
    }

    /* =================== CITIES WE SERVE =================== */
    .section-cities {
        padding: 100px 0 110px;
    }

    .cities-inner {
        max-width: 1300px;
    }

    .cities-title {
        font-size: 40px;
    }

    .cities-subtext {
        font-size: 16px;
    }

    .cities-cta {
        padding: 3px 8px;
        font-size: 15px;
    }

    .city-row {
        padding: 22px 0;
    }

    .city-left {
        gap: 50px;
    }

    .city-number {
        width: 50px;
        font-size: 16px;
    }

    .city-name {
        font-size: 18px;
    }

    .city-arrow {
        width: 48px;
        height: 48px;
    }

    .city-arrow-icon {
        width: 24px;
        height: 24px;
    }

    .city-arrow-icon-white {
        width: 28px;
        height: 28px;
    }

    /* =================== HOW WE PREPARE TAXES =================== */
    .section-tax-cards {
        padding: 100px 0 110px;
    }

    .tax-cards-inner {
        max-width: 1300px;
    }

    .tax-card {
        padding: 40px 44px 38px;
        border-radius: 24px;
    }

    .tax-card-grid {
        column-gap: 70px;
    }

    .tax-card-title {
        font-size: 42px;
        margin-bottom: 24px;
    }

    .tax-card-list {
        font-size: 16px;
        gap: 12px;
    }

    .tax-card-step-label {
        font-size: 12px;
    }

    .tax-card-step-title {
        font-size: 26px;
    }

    .tax-card-step-text {
        font-size: 16px;
        max-width: 600px;
    }

    .tax-dot {
        width: 12px;
        height: 12px;
    }

    .tax-dot.is-active {
        width: 28px;
    }

    /* =================== #1 CRYPTO ACCOUNTANTS =================== */
    .section-northamerica {
        padding: 140px 0 180px;
    }

    .northamerica-inner {
        max-width: 1300px;
        min-height: 260px;
    }

    .northamerica-title {
        font-size: 62px;
    }

    /* =================== WHY CLIENTS CHOOSE BLOCK3 =================== */
    .section-why-ontario {
        padding: 100px 0 110px;
    }

    .why-ontario-inner {
        max-width: 1300px;
        column-gap: 90px;
    }

    .why-ontario-title {
        font-size: 40px;
    }

    .why-ontario-text {
        font-size: 16px;
        margin-bottom: 32px;
    }

    .why-ontario-btn {
        padding: 3px 8px;
        font-size: 15px;
        margin-top: 1px;
    }

    .why-ontario-grid {
        row-gap: 45px;
        column-gap: 60px;
    }

    .why-ontario-icon {
        width: 36px;
        height: 36px;
    }

    .why-ontario-item-title {
        font-size: 17px;
    }

    .why-ontario-item-text {
        font-size: 15px;
    }

    .why-ontario-bglogo {
        right: -800px;
        width: 1100px;
    }

    /* =================== FEATURED WORK =================== */
    .section-featured-work {
        padding: 90px 0 110px;
    }

    .featured-work-inner {
        max-width: 1300px;
    }

    .featured-work-title {
        font-size: 48px;
    }

    .featured-work-subtitle {
        font-size: 16px;
        max-width: 600px;
    }

    .featured-work-card {
        border-radius: 34px;
    }

    .featured-work-card-inner {
        padding: 40px 20px 0px;
    }
    .featured-work-btn {
        padding: 3px 8px;
        font-size: 15px;
    }

    /* =================== CLIENTS WE WORKED WITH =================== */
    .section-clients {
        padding: 30px 0 30px;
    }

    .clients-inner {
        max-width: 1300px;
    }

    .clients-card {
        padding: 60px 70px 50px;
        border-radius: 32px;
    }

    .clients-decoration {
        right: 180px;
        width: 400px;
    }

    .clients-title {
        font-size: 48px;
    }

    .clients-intro {
        font-size: 14px;
    }

    .clients-logos-grid {
        gap: 25px 30px;
    }

    .client-logo-card {
        min-height: 130px;
        padding: 22px 26px;
        border-radius: 22px;
    }

    .client-logo-card img {
        max-width: 150px;
        max-height: 55px;
    }

    /* =================== PODCASTS =================== */
    .podcasts {
        padding: 48px 0;
    }

    .podcasts h2 {
        font-size: 48px;
    }

    .podcasts p {
        font-size: 18px;
    }

    .pod-card {
        --pod-card-w: 320px;
        --pod-card-h: 430px; /* 🔹 more height on large screens */
    }

    .pod-meta {
        padding: 18px 20px 20px;
    }

    .pod-title {
        font-size: 16px;
    }

    .pod-footer {
        font-size: 15px;
    }
    .pod-media {
        --pod-media-h: 250px;
    }

    /* =================== MAXIMIZING CRYPTO TAX =================== */
    .section-max-crypto {
        padding: 0;
    }

    .max-crypto-inner {
        min-height: 600px;
    }

    .max-crypto-right {
        padding: 70px 70px;
    }

    .max-crypto-title {
        font-size: 42px;
        margin-bottom: 20px;
    }

    .max-crypto-lead {
        font-size: 16px;
        margin-bottom: 30px;
    }

    .max-crypto-list {
        gap: 18px;
        margin-bottom: 35px;
    }

    .max-crypto-item {
        gap: 16px;
    }

    .max-crypto-icon {
        width: 32px;
        height: 32px;
    }

    .max-crypto-item-title {
        font-size: 16px;
    }

    .max-crypto-item-text {
        font-size: 15px;
    }

    .max-crypto-btn {
        padding: 3px 8px;
        font-size: 15px;
    }

    .max-crypto-bglogo {
        right: -600px !important;
    }

    /* =================== EVENTS WE ATTENDED =================== */
    .section-events {
        padding: 90px 0 80px;
    }

    .events-inner {
        max-width: 1300px;
    }

    .events-title {
        font-size: 48px;
    }

    .events-text {
        font-size: 20px;
        max-width: 700px;
    }

    .events-track {
        gap: 50px;
    }

    .events-logo {
        min-width: 140px;
    }

    .events-logo img {
        max-height: 50px;
    }

    /* =================== TALK TO CRYPTO ACCOUNTANT =================== */
    .section-talk-cta {
        min-height: 80vh;
        padding: 100px 0;
    }

    .talk-cta-inner {
        max-width: 90%;
    }

    .talk-cta-title {
        font-size: 56px; /* keep same as base so it doesn’t wrap weirdly */
        line-height: 1.09;
        /* margin-bottom: 24px; */
    }

    .talk-cta-subtitle {
        font-size: 18px;
        /* margin-bottom: 36px; */
    }

    .talk-cta-btn {
        padding: 4px 8px;
        font-size: 16px;
    }

    .talk-cta-btn-icon {
        width: 30px;
        height: 30px;
        margin-right: -4px;
    }

    /* =================== CONTACT US =================== */
    .section-contact-cta {
        padding: 20px 0 40px;
    }

    .contact-cta-inner {
        max-width: 1300px;
        column-gap: 90px;
    }

    .contact-cta-pill {
        padding: 8px 26px;
        font-size: 13px;
        margin-bottom: 24px;
    }

    .contact-cta-title {
        font-size: 32px;
    }

    .contact-cta-right {
        padding: 14px 48px 14px;
    }

    .contact-cta-row {
        margin-bottom: 30px;
    }

    .contact-cta-row-two {
        column-gap: 50px;
    }

    .contact-field label {
        font-size: 14px;
    }

    .contact-field input,
    .contact-field textarea {
        font-size: 15px;
        padding: 8px 0 10px;
    }

    .contact-field textarea {
        min-height: 100px;
    }

    .contact-cta-submit {
        padding: 4px 8px;
        font-size: 15px;
    }

    /* =================== FOOTER =================== */
    .footer-cta {
        padding: 0 0 100px;
    }

    .footer-cta-inner {
        max-width: 1300px;
        padding-top: 100px;
        column-gap: 100px;
    }

    .footer-cta-left {
        padding-bottom: 50px;
    }

    .footer-cta-btn {
        padding: 4px 8px;
        font-size: 15px;
        margin-bottom: 28px;
    }

    .footer-cta-copy {
        font-size: 26px;
        margin-bottom: 22px;
    }

    .footer-cta-brand {
        font-size: 68px;
    }

    .footer-cta-right {
        justify-content: flex-end;
    }

    .footer-card {
        width: 320px;
        min-height: 750px;
        border-radius: 36px;
        padding: 40px 32px 32px;
    }

    .footer-card-title {
        font-size: 20px;
        margin-bottom: 14px;
    }

    .footer-card-list {
        font-size: 14px;
    }

    .footer-card-list li + li {
        margin-top: 8px;
    }

    .footer-card-copy {
        font-size: 11px;
    }

    .footer-card-socials {
        font-size: 15px;
        gap: 14px;
    }
}

/* =========================================
   EXTRA LARGE SCREEN OPTIMIZATIONS (1440px+)
   ========================================= */

@media (min-width: 1440px) {
    /* Container adjustments */
    .b3-nav-container,
    .province-strip-inner,
    .hero-ontario-inner,
    .trading-inner,
    .accounting-inner,
    .cities-inner,
    .tax-cards-inner,
    .northamerica-inner,
    .why-ontario-inner,
    .featured-work-inner,
    .clients-inner,
    .events-inner,
    .talk-cta-inner,
    .contact-cta-inner,
    .footer-cta-inner {
        max-width: 1400px;
    }

    /* Hero section extra adjustments */
    .hero-ontario-inner {
        padding-left: 10%;
    }

    .hero-copy {
        max-width: 680px;
    }

    .hero-title {
        font-size: 82px;
    }

    .hero-subtitle {
        font-size: 22px;
        max-width: 850px;
    }

    /* Support card wider */
    .support-card {
        max-width: 1500px;
    }

    /* Who we support decoration */
    .support-decoration {
        right: 350px;
    }

    /* Clients decoration */
    .clients-decoration {
        right: 220px;
    }

    /* Footer card wider */
    .footer-card {
        width: 350px;
    }

    /* Maximizing crypto tax background logo */
    .max-crypto-bglogo {
        right: -700px;
    }

    /* Why Ontario background logo */
    .why-ontario-bglogo {
        right: -850px;
    }
}

/* =========================================
   ANIMATIONS & MICRO-INTERACTIONS
   ========================================= */

/* ---- Keyframes ---- */

@keyframes fadeUpSoft {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInSlow {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes floatSlow {
    0% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-8px);
    }
    100% {
        transform: translateY(0px);
    }
}

@keyframes floatDiagonal {
    0% {
        transform: translate(0, 0);
    }
    50% {
        transform: translate(10px, -10px);
    }
    100% {
        transform: translate(0, 0);
    }
}

@keyframes softGlow {
    0% {
        box-shadow: 0 16px 40px rgba(15, 23, 42, 0.06);
    }
    50% {
        box-shadow: 0 20px 55px rgba(15, 23, 42, 0.12);
    }
    100% {
        box-shadow: 0 16px 40px rgba(15, 23, 42, 0.06);
    }
}

/* =========================================
   SECTION ENTRANCE ANIMATIONS (on load)
   ========================================= */

/* Main section containers fade up softly */
.hero-ontario-inner,
.trading-inner,
.accounting-inner,
.section-support .support-card,
.cities-inner,
.tax-cards-inner,
.northamerica-inner,
.why-ontario-inner,
.featured-work-inner,
.clients-inner,
.max-crypto-inner,
.events-inner,
.talk-cta-inner,
.contact-cta-inner,
.footer-cta-inner {
    animation: fadeUpSoft 0.9s ease-out;
    animation-fill-mode: both;
}

/* Stagger a bit so everything doesn’t move at once */
.trading-inner {
    animation-delay: 0.08s;
}
.accounting-inner {
    animation-delay: 0.12s;
}
.section-support .support-card {
    animation-delay: 0.16s;
}
.cities-inner {
    animation-delay: 0.18s;
}
.tax-cards-inner {
    animation-delay: 0.2s;
}
.northamerica-inner {
    animation-delay: 0.22s;
}
.why-ontario-inner {
    animation-delay: 0.24s;
}
.featured-work-inner {
    animation-delay: 0.26s;
}
.clients-inner {
    animation-delay: 0.28s;
}
.max-crypto-inner {
    animation-delay: 0.3s;
}
.events-inner {
    animation-delay: 0.32s;
}
.talk-cta-inner {
    animation-delay: 0.34s;
}
.contact-cta-inner {
    animation-delay: 0.36s;
}
.footer-cta-inner {
    animation-delay: 0.38s;
}

/* =========================================
   HERO / DECORATIVE ELEMENT MOTION
   ========================================= */

/* Buildings gently float */
.hero-buildings-wrap {
    will-change: transform;
    animation: floatSlow 16s ease-in-out infinite;
}

/* Support / clients / background logos = slow drift */
.support-decoration,
.clients-decoration,
.max-crypto-bglogo,
.why-ontario-bglogo,
.section-northamerica .northamerica-vector {
    will-change: transform;
    animation: floatDiagonal 24s ease-in-out infinite;
    animation-direction: alternate;
}

/* Make hero star pop slightly */
.hero-star {
    transition: transform 0.25s ease;
}
.hero-star:hover {
    transform: scale(1.06) rotate(-4deg);
}

/* =========================================
   CARD & ROW HOVER LIFTS
   ========================================= */

.trading-item,
.support-item,
.client-logo-card,
.pod-card,
.max-crypto-item,
.why-ontario-item,
.tax-card,
.city-row,
.events-logo,
.footer-card,
.featured-work-card {
    transition: transform 0.25s ease, box-shadow 0.25s ease,
        background-color 0.25s ease, border-color 0.25s ease;
    will-change: transform, box-shadow;
}

/* Generic lift on hover */
.trading-item:hover,
.support-item:hover,
.client-logo-card:hover,
.pod-card:hover,
.max-crypto-item:hover,
.why-ontario-item:hover,
.tax-card:hover,
.events-logo:hover,
.featured-work-card:hover {
    transform: translateY(-4px);
}

/* Slightly stronger + glow for big hero-style cards */
.section-support .support-card:hover,
.clients-card:hover,
.footer-card:hover {
    transform: translateY(-6px);
}

/* Soft glow loop on main white tax card */
.tax-card {
    animation: softGlow 10s ease-in-out infinite;
}

/* Keep your existing city arrow hover, just add a tiny lift */
.city-row:hover {
    transform: translateY(-2px);
}

/* =========================================
   BUTTON & CTA INTERACTIONS
   ========================================= */

.btn-contact,
.hero-cta.btn-contact,
.trading-btn,
.accounting-btn,
.cities-cta,
.why-ontario-btn,
.max-crypto-btn,
.featured-work-btn,
.talk-cta-btn,
.contact-cta-submit,
.footer-cta-btn {
    transition: transform 0.2s ease, box-shadow 0.2s ease,
        background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    will-change: transform, box-shadow;
}

.btn-contact:hover,
.hero-cta.btn-contact:hover,
.trading-btn:hover,
.accounting-btn:hover,
.cities-cta:hover,
.why-ontario-btn:hover,
.max-crypto-btn:hover,
.featured-work-btn:hover,
.talk-cta-btn:hover,
.contact-cta-submit:hover,
.footer-cta-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);
}

/* Icon nudge to the right on hover */
.hero-cta-icon,
.trading-btn-icon,
.accounting-btn-icon,
.cities-cta-icon,
.why-ontario-btn-icon,
.max-crypto-btn-icon,
.talk-cta-btn-icon,
.contact-cta-submit-icon,
.footer-cta-btn-icon {
    transition: transform 0.2s ease;
}

.hero-cta.btn-contact:hover .hero-cta-icon,
.trading-btn:hover .trading-btn-icon,
.accounting-btn:hover .accounting-btn-icon,
.cities-cta:hover .cities-cta-icon,
.why-ontario-btn:hover .why-ontario-btn-icon,
.max-crypto-btn:hover .max-crypto-btn-icon,
.talk-cta-btn:hover .talk-cta-btn-icon,
.contact-cta-submit:hover .contact-cta-submit-icon,
.footer-cta-btn:hover .footer-cta-btn-icon {
    transform: translateX(3px);
}

/* =========================================
   PODCAST CARDS – subtle hover
   ========================================= */

.pod-card:hover {
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.16);
}

/* =========================================
   SMALL-SCREEN: KEEP IT SOFT (less motion)
   ========================================= */

@media (max-width: 575.98px) {
    /* tone down lifts on tiny screens */
    .trading-item:hover,
    .support-item:hover,
    .client-logo-card:hover,
    .pod-card:hover,
    .max-crypto-item:hover,
    .why-ontario-item:hover,
    .tax-card:hover,
    .events-logo:hover,
    .featured-work-card:hover {
        transform: translateY(-2px);
    }

    .footer-card:hover {
        transform: translateY(-3px);
    }
}

/* =========================================
   SECTION: FAQ
   ========================================= */

.section-faq {
    background-color: #ffffff;
    padding: 20px 0 20px;
}

.faq-inner {
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);
}

/* Header */
.faq-header {
    text-align: center;
    max-width: 800px;
    margin: 0 auto 48px;
}

.faq-title {
    margin: 0 0 12px;
    font-size: 40px;
    line-height: 1.1;
    font-weight: 800;
    color: #111827;
}

.faq-title span {
    display: block;
}

.faq-subtitle {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: #4b5563;
    opacity: 0.9;
}

/* Accordion */
.faq-accordion {
    max-width: 900px;
    margin: 0 auto 48px;
}

.faq-item {
    border-bottom: 1px solid #e5e7eb;
}

.faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 22px 0;
    background: none;
    border: none;
    text-align: left;
    cursor: pointer;
    transition: all 0.2s ease;
    color: #111827;
}

.faq-question:hover {
    color: #243f8b;
}

.faq-number {
    font-size: 14px;
    font-weight: 600;
    color: #243f8b;
    min-width: 36px;
    margin-right: 12px;
}

.faq-question-text {
    flex: 1;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
    margin-right: 24px;
}

.faq-icon {
    flex: 0 0 auto;
    position: relative;
    width: 24px;
    height: 24px;
    color: #243f8b;
}

.faq-icon .fa-plus {
    display: block;
    transition: opacity 0.3s ease;
}

.faq-icon .fa-minus {
    display: none;
    transition: opacity 0.3s ease;
}

/* When item is open */
.faq-item.active .faq-question {
    color: #243f8b;
}

.faq-item.active .faq-icon .fa-plus {
    display: none;
}

.faq-item.active .faq-icon .fa-minus {
    display: block;
}

/* Answer */
.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
}

.faq-answer-content {
    padding: 0 0 22px 48px;
}

.faq-answer-content p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: #4b5563;
}

.faq-answer-content strong {
    color: #243f8b;
}

/* CTA */
.faq-cta {
    text-align: center;
    padding-top: 32px;
    border-top: 1px solid #e5e7eb;
}

.faq-cta-text {
    margin: 0 0 20px;
    font-size: 18px;
    font-weight: 600;
    color: #111827;
}

.faq-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 3px 7px;
    border-radius: 999px;
    background-color: #243f8b;
    color: #ffffff;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    border: 2px solid #243f8b;
}

.faq-cta-btn:hover {
    background-color: #1e2a78;
    border-color: #1e2a78;
    color: #ffffff;
}

.faq-cta-btn-icon {
    width: 26px;
    height: 26px;
    display: inline-block;
    object-fit: contain;
    margin-right: -4px;
}

/* ---------- Responsive ---------- */
@media (max-width: 991.98px) {
    .section-faq {
        padding: 25px 0 0px;
    }

    .faq-inner {
        padding-inline: 16px;
    }

    .faq-title {
        font-size: 32px;
    }

    .faq-question-text {
        font-size: 17px;
        margin-top: -30px;
    }

    .faq-answer-content {
        padding-left: 40px;
    }
}

@media (max-width: 767.98px) {
    .faq-question {
        padding: 18px 0;
        align-items: flex-start;
    }

    .faq-question-text {
        font-size: 16px;
        margin-right: 16px;
    }

    .faq-number {
        min-width: 30px;
        margin-right: 8px;
    }

    .faq-answer-content {
        padding-left: 30px;
    }

    .faq-answer-content p {
        font-size: 15px;
    }
}

@media (max-width: 575.98px) {
    .faq-title {
        font-size: 28px;
    }

    .faq-subtitle {
        font-size: 15px;
    }

    .faq-question-text {
        font-size: 15px;
    }
}

/* =================== LARGE SCREEN OPTIMIZATIONS =================== */
@media (min-width: 1200px) {
    .section-faq {
        padding: 30px 0 30px;
    }

    .faq-inner {
        max-width: 1300px;
    }

    .faq-title {
        font-size: 48px;
    }

    .faq-subtitle {
        font-size: 18px;
        margin-bottom: 56px;
    }

    .faq-question-text {
        font-size: 19px;
    }

    .faq-answer-content p {
        font-size: 17px;
    }

    .faq-cta-text {
        font-size: 20px;
    }

    .faq-cta-btn {
        padding: 4px 8px;
        font-size: 15px;
    }
}
/* =========================================
   SECTION: #1 Crypto Accountants in North America
   ========================================= */

.section-northamerica {
    position: relative;
    background-color: #243f8b;
    padding: 120px 0 150px;
    color: #ffffff;
    overflow: hidden;
}

.section-northamerica .northamerica-vector {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    user-select: none;
    z-index: 0;
}

.northamerica-inner {
    position: relative;
    z-index: 1;
    max-width: var(--grid-max);
    margin-inline: auto;
    padding-inline: var(--grid-side-gap);

    /* ✅ stack title + paragraph */
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 16px;

    min-height: 220px;
}

.northamerica-title {
    margin: 0;
    font-size: 52px;
    line-height: 1.15;
    font-weight: 800;
}

.northamerica-title span {
    display: inline-block;
}

.northamerica-highlight {
    color: #fdea6e;
}

/* ✅ new: paragraph styling */
.northamerica-subtext {
    margin: 0;
    max-width: 920px;
    font-size: 14px;
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.9);
}

/* --------- responsive --------- */
@media (max-width: 991.98px) {
    .section-northamerica {
        padding: 90px 0 110px;
    }

    .northamerica-inner {
        padding-inline: 16px;
        min-height: 180px;
        gap: 12px;
    }

    .northamerica-title {
        font-size: 38px;
    }

    .northamerica-subtext {
        font-size: 13px;
    }
}

@media (max-width: 575.98px) {
    .northamerica-title {
        font-size: 32px;
    }
}
/* =========================================
   CITIES LIST -> CARD GRID (REPLACE OLD LIST STYLES)
   ========================================= */

.cities-list {
    list-style: none;
    margin: 0;
    padding: 0;

    /* card grid */
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;

    /* remove old dashed separator */
    border-top: 0;
}

/* each <li> becomes a card */
.city-row {
    position: relative;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;

    padding: 18px 18px 16px;
    border-radius: 12px;

    background: rgba(15, 23, 42, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.18);

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    /* remove old row divider */
    border-bottom: 0;

    /* min- height: 110px; */
    cursor: pointer;
}

/* left block becomes stacked (number on top, name below) */
.city-left {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;

    /* remove old spacing */
    gap: 10px;
}

/* number looks like small tag */
.city-number {
    width: auto;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    opacity: 0.85;

    padding: 4px 8px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.06);
}

/* title text */
.city-name {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.35;
    max-width: 92%;
}

/* move arrow bubble to bottom-right like a small action button */
.city-arrow {
    position: absolute;
    right: 14px;
    bottom: 14px;

    width: 38px;
    height: 38px;
    border-radius: 999px;

    border: 1px solid rgba(255, 255, 255, 0.55);
    background: rgba(15, 23, 42, 0.25);

    display: flex;
    align-items: center;
    justify-content: center;

    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    transition: transform 0.2s ease, background-color 0.2s ease,
        border-color 0.2s ease;
}

.city-arrow-icon {
    width: 20px;
    height: 20px;
    display: block;
}

/* show only white arrow by default */
.city-arrow-icon-blue {
    display: none;
}

/* hover: lift + underline like your theme */
.city-row:hover {
    transform: translateY(-2px);
}

.city-row:hover .city-name {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

/* hover bubble becomes white + blue arrow */
.city-row:hover .city-arrow {
    background-color: #ffffff;
    border-color: #ffffff;
    transform: translateX(3px);
}

.city-row:hover .city-arrow-icon-white {
    display: none;
}

.city-row:hover .city-arrow-icon-blue {
    display: block;
}

/* slightly bigger white arrow */
.city-arrow-icon-white {
    width: 24px;
    height: 24px;
}
.city-arrow-icon-blue {
    width: 20px;
    height: 20px;
}

/* ---------- responsive grid ---------- */
@media (max-width: 991.98px) {
    .cities-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .city-row {
        min-height: 105px;
        padding: 16px 16px 14px;
    }
}

@media (max-width: 575.98px) {
    .cities-list {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .city-row {
        min-height: 96px;
    }

    .city-name {
        font-size: 15px;
    }
}
.city-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    text-decoration: none;
    color: inherit;
}
.city-link:hover {
    color: inherit;
}
