/**
 * Global Button Styles
 * ---------------------
 * Buttons used in nav bar: BOOK NOW & CALL
 */
.appointment-btn,
.call-btn {
    font-family: 'Rubik', sans-serif !important;
    display: inline-block;
    font-size: 13px;
    padding: 12px 32px;
    border: 2px solid transparent;
    text-decoration: none;
    transition: all 0.3s ease;
    text-align: center;
    white-space: nowrap;
}

.appointment-btn {
    background-color: #fecf33;
    color: #000;
    border-radius: 100px;
}

.appointment-btn:hover {
    background-color: transparent;
    color: #000;
    border-color: #fecf33;
}

.call-btn {
    background-color: transparent;
    color: #000;
    border-radius: 9999px;
    border-color: #fecf33;
}

.call-btn:hover {
    background-color: #fecf33;
    color: #000;
}

/* Prevent unwanted button opacity */
.btn:not(.appointment-btn):not(.call-btn) {
    opacity: 1;
}

/**
 * Logo Styling
 */
.logo-wrapper {
    display: inline-flex;
    justify-content: center;
    align-items: flex-start;
    min-width: 130px;
}

/**
 * Top bar
 */
.top-yellow-bar {
    font-family: 'DM Sans', sans-serif;
    background-color: #4EABE4;
    color: #FFF;
    font-weight: 400;
    font-size: 15px;
    padding: 10px 0;
    letter-spacing: 0.3px;
}

/**
 * Button Wrapper - Responsive Grid
 */
@media (min-width: 768px) {
    .top-yellow-bar .container {
        text-align: center;
    }

    .btn-wrapper {
        display: flex;
        justify-content: center;
        flex-wrap: nowrap;
        gap: 32px;
    }

    .appointment-btn,
    .call-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

.about-image-wrapper {
    position: relative;
    display: inline-block;
}

.about-img {
    max-width: 100%;
    border-radius: 8px;
    z-index: 2;
    position: relative;
}

/* circle design */
.about-circle-bg {
    position: absolute;
    top: -60px; /* ⬅️ was -20px, now more up */
    right: -20px;
    width: 160px;
    height: 160px;
    background: linear-gradient(45deg, #b1cc63, #f6cc46);
    border-radius: 50%;
    z-index: 1;
}

@media (max-width: 768px) {
    .btn-wrapper {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 6px;
        padding: 0 5px;
    }

    .appointment-btn,
    .call-btn {
        flex: 1 1 calc(50% - 12px);
        min-width: 120px;
        padding: 12px 16px;
        font-size: 13px;
        text-align: center;
        box-sizing: border-box;
    }

    .page-title.bg--secondary h3 {
        font-size: 1.7em !important;
    }

    .section-snippet-about-2 {
        padding: 0 0 !important;
    }

    .about-circle-bg {
        top: -50px;  /* ⬆️ lifted it up on mobile too */
        right: -10px;
        width: 120px;
        height: 120px;
    }
}

@media (max-width: 400px) {
    .btn-wrapper {
        flex-wrap: nowrap;
        justify-content: space-between;
        gap: 8px;
        padding: 0 8px;
    }

    .appointment-btn,
    .call-btn {
        flex: 1 1 auto;
        min-width: 0;
        padding: 10px 13px;
        font-size: 13px;
    }
}

/**
 * Navbar Menu: Tablet View
 */
@media (max-width: 991px) {
    .menu-module {
        text-align: center !important;
        margin-top: 30px;
    }

    .menu li {
        text-align: center;
    }

    .menu li a {
        font-size: clamp(20px, 4vw, 22px);
        padding: 10px 0;
        font-weight: 300;
    }
}

/**
 * Navigation Hover Indicator + Dropdown Styling (Desktop Only)
 */
@media (min-width: 1025px) {
    .menu > li > a {
        position: relative;
        display: inline-block;
        transition: color 0.3s ease;
    }

    .menu > li > a::before {
        content: '';
        position: absolute;
        top: 0;
        left: 50%;
        width: 0%;
        height: 6px;
        background-color: #fecf33;
        transform: translateX(-50%);
        transform-origin: center;
        transition: width 0.3s ease;
    }

    .menu > li:hover > a::before {
        width: 100%;
    }

    .nav-bar {
        position: relative;
        z-index: 10;
    }

    .menu li.has-dropdown > ul {
        position: absolute;
        top: 118%;
        background-color: #fff;
        border-radius: 0 0 10px 10px;
        padding: 12px 0;
        min-width: 157%;
        box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
        overflow: hidden;
        z-index: 999;
        transition: all 0.3s ease;
    }

    .menu li.has-dropdown > ul li {
        padding: 0;
    }

    .menu li.has-dropdown > ul li a {
        display: block;
        padding: 12px 20px;
        font-size: 14px;
        color: #333;
        transition: background 0.2s ease, color 0.2s ease;
        font-family: 'Rubik', sans-serif;
    }

    .menu li.has-dropdown > ul li a:hover {
        background: #f9f9f9;
        color: #000;
    }

    .menu li.has-dropdown > ul li + li::before {
        display: none;
    }
}

/**
 * Responsive Button Sizing (optimize spacing before collapsing nav)
 */
@media (max-width: 1400px) {
    .col-md-4 .btn-wrapper {
        gap: 8px;
    }

    .col-md-4 .appointment-btn,
    .col-md-4 .call-btn {
        padding: 8px 20px;
        font-size: 13px;
    }

    .col-md-4 .btn__text {
        font-size: 13px;
        letter-spacing: 0.5px;
    }

    .col-md-4 .ion-calendar,
    .col-md-4 .ion-android-call {
        font-size: 14px;
        padding-right: 4px;
    }
}

@media (max-width: 1200px) {
    .col-md-4 .appointment-btn,
    .col-md-4 .call-btn {
        padding: 6px 16px;
        font-size: 12px;
    }

    .col-md-4 .btn__text {
        font-size: 12px;
    }
}

@media (max-width: 991px) {
    .mobile-menu-wrapper {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.9s ease-in-out;
    }

    body.menu-open .mobile-menu-wrapper {
        max-height: 500px; /* or a value that fits your full menu */
    }
}

@media (max-width: 480px) {
    .top-yellow-bar span {
        font-size: 13px; /* smaller on mobile */
    }
}

@media (max-width: 991px) {
    .menu li.has-dropdown > ul {
        width: 90vw; /* wider than before */
        max-width: 340px;
        background-color: #fff;
        border-radius: 0 0 10px 10px;
        padding: 12px 0;
        /*box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);*/
        margin-bottom: 10px;
        transition: all 0.3s ease;
    }

    .menu li.has-dropdown > ul li a {
        display: block;
        font-size: 17px;
        color: #333;
        font-weight: 400;
        font-family: 'DM Sans', sans-serif;
        transition: background 0.2s ease, color 0.2s ease;
        text-align: left !important;
        padding: 10px 20px 5px 40px; /* add left space for icon */
    }

    .menu li.has-dropdown > ul li a:hover {
        background: #f9f9f9;
        color: #000;
    }

    .menu li.has-dropdown > ul {
        position: static; /* prevent overlapping issues on small screens */
    }
}











@media (max-width: 576px) {
    .page-title.bg--secondary,
    .programs-section-gradient {
        padding-top: 2em !important;
        padding-bottom: 0.7em !important;
    }

    .page-title.bg--secondary h3, .section-title {
        font-size: 1.6em !important;
    }
    .page-title.bg--secondary h4, .section-subtitle {
        font-size: 1.2em !important;
    }
}

/* === PROGRAMS SECTION === */
.programs-section,
.programs-section-gradient {
    position: relative;
    padding: 80px 20px;
    overflow: hidden;
    background-color: #fecf33;
    z-index: 1;
}

.programs-section-gradient {
    background: #fff;
    padding: 4.6875em 0;
}

/* Blue half for diagonal design (if still used) */
.blue-half-bg {
    position: absolute;
    top: 0;
    right: 0;
    width: 60%;
    height: 101%;
    background-color: #4EABE4;
    clip-path: polygon(30% 0%, 100% 0%, 100% 100%, 0% 100%);
    z-index: 0;
}

/* Decorative SVG shape */
.wave-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

.wave-bg svg {
    width: 100%;
    height: 100%;
    display: block;
}

.desktop-wave {
    display: block;
}
.mobile-wave {
    display: none;
}

@media (max-width: 767px) {
    .desktop-wave {
        display: none;
    }
    .mobile-wave {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 500px;
        z-index: 0;
    }

    .mobile-wave svg {
        width: 100%;
        height: 100%;
        display: block;
    }

    .section-reviews-modern {
        padding-top: 10em;
    }
}

.programs-section .container,
.programs-content {
    position: relative;
    z-index: 2;
}

/* === TITLES === */
.section-title {
    font-size: 2em;
    font-weight: 300;
    font-family: 'Rubik', sans-serif;
    color: #111;
    margin-bottom: 12px;
}

.section-subtitle {
    font-family: 'DM Sans', 'Helvetica';
    color: #111;
    font-weight: 300;
    font-size: 1.4375em;
    line-height: 1.63em;
    max-width: 700px;
    margin: 0 auto 20px;
}

/* === BUTTON === */
.see-all-btn {
    display: inline-block;
    padding: 12px 32px;
    margin: 2em 0;
    font-family: 'Rubik', sans-serif;
    font-size: 13px;
    font-weight: 500;
    border-radius: 30px;
    background: #fff;
    color: #000;
    border: 2px solid #000;
    text-decoration: none;
    transition: all 0.3s ease;
}

.see-all-btn:hover {
    background: #000;
    color: #fff;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
    border-color: transparent;
}

/* === PROGRAM CARD === */
.program-card {
    position: relative;
    width: 100%;
    height: 300px;
    background-size: cover;
    background-position: center;
    border-radius: 10px;
    overflow: hidden;
    margin-top: 2em;
    margin-bottom: 30px;
    box-shadow: 0 12px 25px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}

.program-card:hover {
    transform: scale(1.03);
}

.card-overlay {
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: 1em;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.7), transparent);
    color: #fff;
    font-weight: 600;
    font-size: 1rem;
    text-align: left;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

.programs-cards {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2rem;
    margin-top: 40px;
}

.programs-cards .service-box {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    text-align: center;
}

/* Optional: make sure images behave */
.service-box img {
    width: 100%;
    height: auto;
    display: block;
}

/* Desktop - 4 per row */
@media (min-width: 1024px) {
    .programs-cards .service-box {
        flex: 0 0 calc(25% - 2rem);
        max-width: calc(25% - 2rem);
    }
}

/* Tablet & Mobile - 2 per row */
@media (max-width: 1023px) {
    .programs-cards .service-box {
        flex: 0 0 calc(50% - 1rem);
        max-width: calc(50% - 1rem);
    }
}


/* ===== Vars ===== */
:root{
    --brand: #1ea6d7;
    --ink: #0c1323;
    --muted: #5b6576;
    --panel: #fafbfe;

    --radius: 14px;
    --shadow: 0 10px 30px rgba(0,0,0,.08);
    --shadow-sm: 0 6px 18px rgba(0,0,0,.08);

    --content-pad: clamp(16px, 4vw, 28px);
    --content-gap: clamp(6px, 1.5vw, 12px);
}

/* ===== Desktop / Default ===== */
.services-tiles{
    display: grid;
    gap: 48px;
    margin-block: 40px 72px;
}

.service-tile{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    align-items: stretch;
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
}

.tile-media,
.tile-content{ aspect-ratio: 16 / 10; }

/* Media */
.tile-media{ overflow: hidden; background: #eef3fb; }
.tile-media img{
    width: 100%; height: 100%; object-fit: cover;
    transform: scale(1.02);
    transition: transform .45s ease;
}
.service-tile:hover .tile-media img{ transform: scale(1.06); }

/* Content */
.tile-content{
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 28px 28px 24px;
    background: var(--panel);
}

/* Order: default = media left / content right */
.tile-media{ order: 1; }
.tile-content{ order: 2; }

/* Alternate every other row */
.service-tile.is-reverse .tile-media{ order: 2; }
.service-tile.is-reverse .tile-content{ order: 1; }

/* ===== Type & CTA ===== */
.tile-title{
    margin: 0 0 8px;
    color: var(--ink);
    font-family: 'DM Sans', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-weight: 400;
    line-height: 1.2;
    /* 36px on desktop, scales down naturally */
    font-size: clamp(22px, 3.5vw, 36px);

    /* gradient title */
    background: linear-gradient(135deg, #4eabe4, #fecf33);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
}
.tile-desc{
    margin: 20px auto 0;
    width: 100%;
    color: #111;
    text-align: center;
    line-height: 1.55;
    font-size: 1rem;
}
.tile-cta{
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin: 25px auto 0;
    font-weight: 700;
    color: var(--brand);
    text-decoration: none;
    /* 36px on desktop, scales down naturally */
    font-size: clamp(18px, 3.5vw, 20px);
}

/* ===== Tablet and down (stack) ===== */
@media (max-width: 1024px){
    .services-tiles{ gap: 20px; margin-block: 24px 40px; }

    .service-tile{
        grid-template-columns: 1fr;     /* stack */
        box-shadow: var(--shadow-sm);
    }

    /* Keep media first to avoid zig-zag reading */
    .service-tile .tile-media{ order: 0 !important; }
    .service-tile .tile-content{ order: 1 !important; }

    .service-tile .tile-media{ aspect-ratio: 16 / 10; }
    .service-tile .tile-content{ aspect-ratio: auto; }

    /* Unified card shape */
    .tile-media, .tile-content{ border-radius: 0; }
}

/* ===== Mobile refinements ===== */
@media (max-width: 768px){
    /* Comfortable inner spacing & readable line length (if you add .tile-inner) */
    .tile-inner{
        max-inline-size: 60ch;
        padding: var(--content-pad);
        gap: var(--content-gap);
        justify-self: stretch;
        align-self: start;
    }

    /* Type scales further on small screens */
    .tile-title{
        font-size: clamp(20px, 5.2vw, 28px);
        letter-spacing: .1px;
    }
    .tile-desc{
        font-size: clamp(14px, 3.8vw, 16px);
        line-height: 1.6;
    }

    /* Touch-friendly CTA */
    .tile-cta{
        padding-block: 6px;   /* helps reach ~44px row height with line-height */
        border-bottom-width: 2px;
    }
}

/* ===== Extra small phones ===== */
@media (max-width: 380px){
    .tile-inner{ padding: 14px; }
    .tile-title{ font-size: clamp(19px, 6vw, 24px); }
}

/* ===== Motion safety ===== */
@media (prefers-reduced-motion: reduce){
    .service-tile, .tile-media img, .tile-cta{ transition: none; }
}

/* === ABOUT TITLE ENHANCEMENT === */
.about-title-enhanced {
    position: relative;
    display: inline-block;
    font-size: 2.2em;
    font-weight: 700;
    color: #000;
    z-index: 1;
    padding-bottom: 0.2em;
}

.about-title-enhanced::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: -10px;
    width: 120%;
    height: 20px;
    background: linear-gradient(90deg, #f6cc46, #b1cc63);
    opacity: 0.25;
    z-index: -1;
    border-radius: 6px;
    transform: rotate(-2deg);
}

.about-title-enhanced.underline-only::before {
    height: 5px;
    transform: none;
}

/* === ICON FEATURE BLOCK === */
.section-icon-feature {
    padding: 2.6875em 0;
}

@media (min-width: 768px) {
    .section-icon-feature {
        padding-bottom: 0;
    }
}

.icon-feature {
    margin-bottom: 3.125em;
    text-align: center;
}

.icon-feature i {
    font-size: 6em;
    margin: 0.2em 0;
    background: linear-gradient(135deg, #fecf33, #ffeb00);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    transition: transform 0.2s ease-in-out;
}

.icon-feature:hover i {
    transform: scale(1.1);
}

.icon-feature h3 {
    color: #111;
}

.icon-feature h4 {
    font-family: 'Rubik', serif;
    margin-bottom: 0.5em;
    font-weight: 400;
    font-size: 1.2em;
}

.icon-summary {
    font-size: 1.2em;
    color: #343434;
}

.fancy-service-card {
    position: relative;
    margin-bottom: 60px;
    text-align: center;
}

.card-shape-bg {
    position: absolute;
    top: -30px;
    left: 50%;
    width: 180px;
    height: 180px;
    transform: translateX(-50%) rotate(20deg);
    background: radial-gradient(circle at 30% 30%, #f6cc46, #f3b233);
    border-radius: 60% 40% 60% 40%;
    z-index: 1;
    filter: blur(20px);
    opacity: 0.4;
}

.card-content {
    position: relative;
    z-index: 2;
    background: #ffffffdd;
    padding: 2em 1.2em 1em;
    border-radius: 18px;
    backdrop-filter: blur(8px);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
    text-decoration: none;
    display: block;
    transition: transform 0.3s ease;
}

.card-content:hover {
    transform: translateY(-6px);
}

/* Unique image mask */
.image-shape {
    width: 120px;
    height: 120px;
    margin: 0 auto 1em;
    clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
    overflow: hidden;
    border-radius: 20px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.image-shape img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Text & CTA */
.card-text h3 {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 0.5em;
    color: #111;
}

.card-cta {
    font-size: 0.875rem;
    color: #4db4e7;
    font-weight: 600;
}

.service-box {
    margin-bottom: 20px;
    text-align: center;
}

.elevated-card {
    display: block;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    transition: transform 0.3s ease;
    text-decoration: none;
    color: inherit;
}

.elevated-card:hover {
    transform: scale(1.02);
}

.card-image-wrapper {
    width: 100%;
    height: 180px;
    background: linear-gradient(135deg, #f6cc46, #4db4e7);
    padding: 12px;
    border-bottom: 1px solid rgba(0,0,0,0.05);
    display: flex;
    align-items: center;
    justify-content: center;
}

.card-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 14px;
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.08);
}

.card-info {
    padding: 1em;
}

.card-info h4 {
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 0.5em;
}

.cta-link {
    font-size: 0.85rem;
    font-weight: 500;
    color: #4db4e7;
}

.elevated-card {
    min-height: 260px; /* Adjust to your taste */
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.card-info {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.card-info h4 {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 0.5em;
    min-height: 3.4em; /* Ensures 2-line height for all titles */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.2;
    padding: 0 10px;
}

.review-card-collapsed {
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 8px 28px rgba(0,0,0,0.06);
    padding: 1.5em;
    height: 100%;
    transition: 0.3s ease;
}
.review-header {
    display: flex;
    align-items: center;
    margin-bottom: 1em;
}
.review-img {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
.review-name {
    margin: 0;
    font-size: 1rem;
    font-weight: bold;
    margin-left: 1em;
}
.review-role {
    font-size: 0.85rem;
    color: #666;
    margin-left: 1em;
}
.review-body {
    font-size: 0.95rem;
    color: #333;
    line-height: 1.54;
    position: relative;
}
.read-more-btn {
    background: none;
    color: #4db4e7;
    border: none;
    font-weight: 600;
    padding: 0;
    cursor: pointer;
    margin-top: 0.5em;
}

.principles-title-enhanced {
    font-size: 2rem;
    font-weight: 300;
    color: #fff;
    position: relative;
    margin-bottom: 2.5em;
}
.principles-title-enhanced::before {
    content: '';
    width: 80%;
    height: 10px;
    background: rgba(255, 255, 255, 0.15);
    position: absolute;
    left: 10%;
    bottom: -12px;
    border-radius: 6px;
}

.step-card {
    background: rgba(255, 255, 255, 0.15);
    border-radius: 16px;
    padding: 2em 1.5em;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    min-height: 240px;
    position: relative;
    color: #fff;
    transition: all 0.3s ease;
}
.step-card:hover {
    transform: translateY(-6px);
}

.step-card p {
    text-align: left;
}

.step-badge {
    width: 56px;
    height: 56px;
    background: #fff;
    color: #4EABE4;
    font-weight: bold;
    border-radius: 50%;
    line-height: 56px;
    font-size: 1.4rem;
    margin: 0 auto 1.2em;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.cta-icon-message {
    text-align: center;
    margin-top: 60px;
}

.cta-icon-circle {
    display: inline-block;
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #f6cc46, #b1cc63);
    border-radius: 50%;
    padding: 12px;
    margin-bottom: -40px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    z-index: 2;
    position: relative;
}

.cta-icon-circle img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.cta-box {
    background: #ffffff;
    border: 2px solid #4db4e7;
    border-radius: 20px;
    padding: 2em 1.5em 1.5em;
    display: inline-block;
    font-size: 1.1rem;
    font-weight: 600;
    color: #1c3d58;
    max-width: 90%;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
    line-height: 1.6;
    position: relative;
    z-index: 1;
}

.review-text.collapsed {
    overflow: hidden;
    max-height: 120px;
    transition: max-height 0.4s ease;
}

.review-text {
    overflow: hidden;
    max-height: 6.5em; /* enough for ~3 lines */
    transition: max-height 0.5s ease;
    position: relative;
}

.review-text.expanded {
    max-height: 1000px; /* allow full text reveal */
}

/* ============================== */
/* HERO SECTION */
/* ============================== */

.section-hero-1 {
    min-height: 400px;
}

@media (max-width: 768px) {
    .hero-title {
        margin-top: 110px;
    }
}

/* ============================== */
/* GROUNDUP STEPS SECTION */
/* ============================== */

.section-groundup-steps {
    background: #4cb4e7;
    padding: 100px 2em 50px;
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.section-groundup-steps::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: repeating-linear-gradient(
        45deg,
        rgba(255, 255, 255, 0.1) 0%,
        rgba(255, 255, 255, 0.1) 10%,
        rgba(255, 255, 255, 0) 10%,
        rgba(255, 255, 255, 0) 50%
    );
    animation: backgroundMove 30s linear infinite;
    z-index: 0;
}

@keyframes backgroundMove {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.groundup-steps-title {
    color: #fff;
    font-size: 2.4rem;
    font-weight: 800;
    margin-bottom: 80px;
    text-align: center;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
    z-index: 1;
    position: relative;
}

.groundup-steps-row {
    margin-top: 30px;
    position: relative;
    z-index: 1;
    text-align: left;
}

/* Sticky Note Box Core */
.groundup-step-box {
    position: relative;
    padding: 5em 2em 2.5em;
    border-radius: 14px;
    margin-bottom: 50px;
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15),
    0 12px 30px rgba(0, 0, 0, 0.08),
    0 0 20px rgba(255, 255, 255, 0.12);
    transform: rotate(-1.5deg);
    transition: transform 0.4s ease, box-shadow 0.4s ease;
    min-height: 340px;
}

.groundup-step-box:hover {
    transform: rotate(0deg) scale(1.02);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25),
    0 0 24px rgba(255, 255, 255, 0.15);
}

.step-color-1 { background: #fffbc2; }
.step-color-2 { background: #e0f2fe; }
.step-color-3 { background: #cbfff2; }

.step-number-box {
    position: absolute;
    top: -40px;
    left: 40px;
    width: 80px;
    height: 80px;
    background: #fcd34d;
    color: #fff;
    font-weight: 800;
    font-size: 1.8em;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2), 0 0 0 4px white;
    transform: rotate(-5deg);
    transition: transform 0.3s ease;
    z-index: 2;
    letter-spacing: 0.03em;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.step-number-box::after {
    content: "";
    position: absolute;
    bottom: -8px;
    right: -8px;
    width: 22px;
    height: 22px;
    background: rgba(0, 0, 0, 0.07);
    transform: rotate(45deg);
    border-radius: 3px;
}

.groundup-step-box:hover .step-number-box {
    transform: rotate(0deg) scale(1.1);
}

/* Text inside boxes */
.groundup-step-box h4 {
    font-weight: 800;
    margin-top: 1em;
    font-size: 1.5em;
    color: #222;
    letter-spacing: 0.02em;
}

.groundup-step-box p {
    font-size: 1.125em;
    line-height: 1.75;
    color: rgba(20, 20, 20, 0.9);
    text-shadow: 0 1px 0 #fff;
    margin-top: 0;
}

/* Floating Animation */
@keyframes float {
    0% { transform: translateY(0px) rotate(-1.5deg); }
    50% { transform: translateY(-10px) rotate(-0.5deg); }
    100% { transform: translateY(0px) rotate(-1.5deg); }
}

.groundup-step-box:nth-child(1) { animation: float 8s ease-in-out infinite; }
.groundup-step-box:nth-child(2) { animation: float 8s ease-in-out infinite 2s; }
.groundup-step-box:nth-child(3) { animation: float 8s ease-in-out infinite 4s; }

/* ============================== */
/* RESPONSIVE CLEANUP */
/* ============================== */

@media (max-width: 768px) {
    .groundup-step-box {
        padding: 4.5em 1.5em 2em;
        transform: none;
        min-height: auto;
    }

    .step-number-box {
        top: -35px;
        left: 50%;
        width: 65px;
        height: 65px;
        font-size: 1.6em;
        transform: translateX(-50%) rotate(-5deg);
        margin-top: 40px;
    }

    .step-number-box::after {
        right: 50%;
        transform: translateX(50%) rotate(45deg);
    }

    .groundup-steps-title {
        font-size: 2rem;
        margin-top: -30px;
    }

    .groundup-step-box h4 {
        font-size: 1.35em;
    }

    .groundup-step-box p {
        font-size: 1.05em;
    }
}




/* Footer Styling - Bloor Yonge Chiro Style */
.bg--dark {
    background: #fff;
    position: relative;
    margin-top: 100px;
    padding: 0;
    overflow: visible;
}

/* Top Wave Section */
.bg--dark::before {
    content: '';
    position: absolute;
    top: -100px;
    left: 0;
    width: 100%;
    height: 100px;
    background: #4EABE4;
    clip-path: polygon(0 0, 100% 100%, 100% 100%, 0% 100%);
    margin-top: 0.2px;
}

/* Main Footer Content */
.footer-content-wrapper {
    background: #4EABE4;
    padding: 80px 0 40px;
    color: #fff;
    position: relative;
}

/* Logo Styling */
.footer-number-email .logo {
    max-width: 240px;
    height: auto;
    margin-bottom: 25px;
    filter: brightness(0) invert(1);
}

/* Contact Information */
.footer-number-email .inline-block {
    font-size: 18px;
    line-height: 1.8;
}

.footer-number-email .block,
.footer-number-email .link-underline {
    color: #fff;
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-number-email .block:hover,
.footer-number-email .link-underline:hover {
    color: #fecf33;
}

/* Address Section */
.footer-address {
    font-size: 18px;
    line-height: 1.8;
}

.footer-address p {
    margin: 0;
}

/* Social Icons */
.col-sm-4 ul {
    display: flex;
    gap: 15px;
    list-style: none;
    padding: 0;
    margin: 20px 0 0;
}

.icon--circle {
    width: 40px;
    height: 40px;
    background: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease;
}

.icon--circle:hover {
    transform: translateY(-3px);
}

.icon--circle i {
    color: #4EABE4;
    font-size: 20px;
}

/* Footer Title Styling */
.footer-title {
    color: #fff;
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 25px;
}

/* Hours Section */
.footer-hours {
    margin-top: 30px;
}

.hours-table {
    width: 100%;
    border-collapse: collapse;
}

.hours-table tr {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.hours-table td {
    padding: 0;
    color: #fff;
}

.hours-table td:last-child {
    text-align: right;
}

/* Contact Links */
.footer-contact-link {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    text-decoration: none;
    margin-bottom: 15px;
}

.footer-contact-link i {
    font-size: 20px;
}

/* Responsive Adjustments */
@media (max-width: 768px) {
    .bg--dark {
        margin-top: 60px;
    }

    .bg--dark::before {
        top: -60px;
        height: 60px;
    }

    .footer-content-wrapper {
        padding: 50px 0 30px;
    }

    .footer-number-email,
    .footer-address {
        text-align: center;
        margin-bottom: 40px;
    }

    .col-sm-4 ul {
        justify-content: center;
    }

    .footer-title {
        text-align: center;
    }

    .hours-table {
        max-width: 300px;
        margin: 0 auto;
    }
}

/* Add this to your existing HTML */
.footer-content-wrapper {
    position: relative;
    overflow: hidden;
}

.footer-content-wrapper::after {
    content: '';
    position: absolute;
    bottom: -100px;
    left: 0;
    width: 100%;
    height: 100px;
    background: #4EABE4;
    clip-path: polygon(0 0, 100% 0, 100% 0, 0 100%);
}

footer {
    background-clip: border-box;
}

.contact-wrapper {
    display: flex;
    flex-wrap: wrap;
    min-height: 100vh;
    width: 100%;
    margin: 0 auto;
}

.contact-wrapper > div {
    flex: 1;
    min-width: 320px;
    width: 100%;
}


@media (max-width: 768px) {
    .section-contact-1 {
        padding: 0 !important;
    }

    .contact-wrapper {
        flex-direction: column;
        width: 100%;
    }

    .contact-wrapper > div {
        width: 100% !important;
        padding: 24px !important;
        box-sizing: border-box;
    }

    .contact-form {
        padding: 0 !important;
    }

    .form-control {
        width: 100% !important;
    }

    .contact-form-button {
        width: 100%;
        padding: 14px 0;
        font-size: 16px;
    }
}

/* ===========================
   GroundUpChiro — Video Showcase (scoped)
   Scope by wrapping section with class="guc-vs"
   =========================== */

.guc-vs{
    /* background + vertical rhythm */
    --guc-ink:#0c1323;
    --guc-muted:#5b6576;
    --guc-blue:#4EABE4;
    --guc-gold:#f6cc46;
    --guc-card:#ffffff;
    --guc-soft:#F8FAFC;

    --guc-radius-lg:20px;
    --guc-radius-md:16px;

    --guc-shadow-lg:0 20px 40px rgba(0,0,0,.10);
    --guc-shadow:0 10px 30px rgba(0,0,0,.08);

    padding: clamp(40px, 6vw, 80px) 0;
    background: linear-gradient(to bottom, var(--guc-soft), #FFFFFF);
    margin-top: 3em;
}

/* Eyebrow pill */
.guc-vs .guc-vs__eyebrow{
    display:inline-block;
    padding:6px 12px;
    border-radius:999px;
    background:#eef6fd;
    color:#25658c;
    font-weight:700;
    font-size:.9rem;
    letter-spacing:.3px;
    margin-bottom:10px;
}

/* Title + gradient spans */
.guc-vs .guc-vs__title{
    margin:10px 0;
    font-weight:300;
    line-height:1.15;
    font-size: clamp(25px, 5vw, 48px) !important;
}
.guc-vs .guc-vs__grad{
    display:inline-block;
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    font-family:'DM Sans', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}
.guc-vs .guc-vs__grad--blue{ background-image:linear-gradient(90deg,var(--guc-blue),var(--guc-blue)); }
.guc-vs .guc-vs__grad--gold{ background-image:linear-gradient(90deg,var(--guc-gold),var(--guc-gold)); }
.guc-vs .guc-vs__grad--ink{  background-image:linear-gradient(90deg,#000,#000); }

/* Subcopy */
.guc-vs .guc-vs__sub{
    margin:0 auto;
    max-width:70ch;
    color:#333;
    font-size: clamp(16px, 1.6vw, 23px);
    font-weight:300;
    line-height:1.35;
}

/* Video card wrapper */
.guc-vs .guc-vs__video{
    margin: clamp(20px,3.5vw,36px) auto;
    max-width:1100px;
    padding: clamp(10px,1.6vw,20px);
    border-radius: var(--guc-radius-lg);
    background:
        radial-gradient(60% 120% at 10% -10%, rgba(78,171,228,.20), transparent 60%),
        radial-gradient(60% 120% at 90% 110%, rgba(246,204,70,.20), transparent 60%),
        #fff;
    box-shadow: var(--guc-shadow-lg);
}
.guc-vs .guc-vs__videoInner{
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 4px 12px rgba(0,0,0,.08);
    aspect-ratio:16/9;
    background:#000;
}
.guc-vs .guc-vs__videoInner iframe{
    width:100%; height:100%; border:0; display:block;
}

/* Cards (Limited Availability / Direct Billing) */
.guc-vs .guc-card{
    background: var(--guc-card);
    border-radius: var(--guc-radius-md);
    padding: clamp(18px,2.6vw,36px);
    height:100%;
    box-shadow: var(--guc-shadow);
    display:grid;
    gap:10px;
    align-content:start;
    transition: transform .25s ease, box-shadow .25s ease;
}
.guc-vs .guc-card:hover{
    transform: translateY(-2px);
    box-shadow: var(--guc-shadow-lg);
}
.guc-vs .guc-card__icon{
    font-size:2.25rem;
    color:var(--guc-blue);
    line-height:1;
    margin-bottom:.25rem;
}
.guc-vs .guc-card__title{
    margin:0;
    font-weight:800;
    font-size: clamp(18px, 2vw, 22px);
    color: var(--guc-ink);
}
.guc-vs .guc-card__text{
    margin: 0 auto .75rem;
    color:#111;
    font-size: clamp(15px,1.6vw,18px);
    line-height:1.55;
}

/* Buttons */
.guc-vs .guc-btn{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    padding:12px 24px;
    border-radius:10px;
    font-weight:700;
    letter-spacing:.3px;
    text-decoration:none;
    box-shadow:0 4px 14px rgba(0,0,0,.1);
}
.guc-vs .guc-btn--gold{ background:var(--guc-gold); color:#000; }
.guc-vs .guc-btn--blue{ background:var(--guc-blue); color:#fff; }

/* Mobile tweaks */
@media (max-width: 992px){
    .guc-vs{ padding: clamp(28px, 6vw, 48px) 0; }
}
@media (max-width: 480px){
    .guc-vs .guc-vs__title{ font-size: clamp(24px, 7vw, 34px); }
}
@media (prefers-reduced-motion: reduce){
    .guc-vs .guc-card{ transition:none; }
}











/* ================================
   GroundUp — Locations (optimized)
   Scope with .guc-locs
   ================================ */
.guc-locs{
    /* tokens */
    --gx-ink:#0c1323;
    --gx-muted:#5b6576;
    --gx-blue:#4EABE4;
    --gx-accent:#f59e0b;
    --gx-card:#fff;
    --gx-soft:#f8fafc;

    --gx-radius:16px;
    --gx-shadow:0 14px 34px rgba(0,0,0,.12);

    width:100%;
    padding:clamp(20px,5vw,40px) 0;
    background:
        linear-gradient(180deg,var(--gx-soft),rgba(255,255,255,0)) 0 0/100% 140px no-repeat,
        #fff;
}

/* Container + grid */
.guc-locs__inner{
    max-width:1160px;
    margin:0 auto;
    padding:0 clamp(12px,3vw,20px);
}
.guc-locs__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(12px,2vw,20px);
}

/* Card */
.guc-loc{
    background:var(--gx-card);
    border-radius:var(--gx-radius);
    box-shadow:var(--gx-shadow);
    padding:clamp(16px,2.4vw,24px);
    display:grid;
    gap:10px;
    align-content:start;
    transition:transform .2s ease, box-shadow .2s ease;
}
.guc-loc:hover{ transform:translateY(-2px); box-shadow:0 18px 40px rgba(0,0,0,.14); }

/* Typographic hierarchy */
.guc-loc__title{
    margin:0;
    color:var(--gx-ink);
    font-weight:400;
    letter-spacing:.2px;
    font-size:clamp(18px,1.4vw,22px);
}
.guc-loc__subtitle{
    margin-top:2px;
    color:var(--gx-muted);
    font-size:.95rem;
    line-height:1.2;
}
.guc-loc__phone{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-weight:800;
    color: #f6cc46;
    text-decoration:none;
    margin-top:2px;
    font-size:15px;
}
.guc-loc__phone i{ font-size:18px; line-height:1; }
.guc-loc__addr{
    margin:0;
    color:#475569;
    font-style:normal;
    font-size:14px;
    line-height:1.45;
}
.guc-loc__link{
    margin-top:4px;
    display:inline-block;
    color:var(--gx-ink);
    font-weight:700;
    text-decoration:none;
}
.guc-loc__link:hover{ border-bottom-color:currentColor; }

/* ----- Compact variant (short, 2-col interior) ----- */
.guc-loc--compact{ padding:14px 16px; }
.guc-loc__row{
    display:grid;
    grid-template-columns:1.05fr .95fr;   /* LEFT | RIGHT */
    align-items:center;
    column-gap:16px; row-gap:8px;
}
.guc-loc__left{ display:grid; gap:4px; align-content:center; }
.guc-loc__right{
    display:grid; gap:6px; align-content:center;
    padding-left:14px; border-left:1px solid #e9eef5;
}

/* ----- Full-width section variant ----- */
.guc-locs--full{ background:#fff; } /* remove if you prefer the soft gradient */
.guc-locs--full .guc-locs__inner{
    max-width:none; width:100%; margin:0;
    padding-left:clamp(12px,4vw,48px);
    padding-right:clamp(12px,4vw,48px);
}
.guc-locs--full .guc-locs__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(12px,2vw,24px);
}

/* ================================
   Responsive
   ================================ */
@media (max-width:768px){
    /* keep 2-across on phones (2×2) but tighten spacing */
    .guc-locs__grid,
    .guc-locs--full .guc-locs__grid{ gap:10px; }

    .guc-loc{ padding:14px; border-radius:14px; }
    .guc-loc__subtitle{ display:none; }      /* compact tiles */
    .guc-loc__phone{ font-size:16px; }
    .guc-loc__addr{ font-size:13px; }

    /* compact card interior stacks */
    .guc-loc--compact{ padding:12px; }
    .guc-loc__row{ grid-template-columns:1fr; row-gap:10px; }
    .guc-loc__right{ border-left:0; padding-left:0; }
    .guc-loc__title{ font-size:15px; }
}

@media (max-width:380px){
    .guc-locs__grid{ gap:8px; }
    .guc-loc{ padding:12px; }
}

/* Motion preference */
@media (prefers-reduced-motion:reduce){
    .guc-loc{ transition:none; }
}




/* ===== GroundUp — “Uniquely Cool” Benefits ===== */
.guc-bx{
    --bx-ink:#0c1323; --bx-muted:#5b6576;
    --bx-blue:#4eabe4; --bx-gold:#fecf33;
    --bx-card:#ffffff; --bx-soft:#f8fafc;
    --bx-r:18px; --bx-shadow:0 18px 44px rgba(10,20,30,.08);

    position:relative;
    padding:clamp(36px,6vw,84px) 0;
    background:
        radial-gradient(110% 70% at 10% -10%, rgba(78,171,228,.10), transparent 60%),
        radial-gradient(90% 70% at 100% 0%, rgba(254,207,51,.10), transparent 55%),
        linear-gradient(180deg, var(--bx-soft), #fff 40%);
    overflow:hidden;
}

.guc-bx__inner{ max-width:1160px; margin:0 auto; padding:0 clamp(12px,3vw,20px); }

.guc-bx__header{ text-align:center; margin-bottom:clamp(16px,3vw,28px); }
.guc-bx__title{
    margin:0; color:var(--bx-ink); font-weight:300; line-height:1.2;
    font-size:clamp(24px,3.2vw,36px);
    letter-spacing:.2px;
    /*background:*/
    /*    linear-gradient(90deg, var(--bx-blue), var(--bx-blue)) padding-box,*/
    /*    linear-gradient(90deg, rgba(78,171,228,.35), rgba(254,207,51,.35)) border-box;*/
    border-bottom:2px solid transparent; display:inline-block; padding-bottom:.25rem;
}

.guc-bx__grid{
    list-style:none; margin:0; padding:0;
    display:grid; gap:clamp(16px,2.2vw,26px);
    grid-template-columns:repeat(3, minmax(0,1fr));
}
@media (max-width:992px){ .guc-bx__grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:560px){ .guc-bx__grid{ grid-template-columns:1fr; } }

.guc-bx__card{
    position:relative; border-radius:var(--bx-r);
    background:rgba(255,255,255,.92);
    box-shadow:var(--bx-shadow);
    -webkit-backdrop-filter:saturate(130%) blur(6px);
    backdrop-filter:saturate(130%) blur(6px);
    padding:clamp(18px,2.4vw,26px);
    display:grid; gap:10px; align-content:start; text-align:center;
    transition:transform .25s ease, box-shadow .25s ease, filter .25s ease;
    isolation:isolate;
}

/* Animated gradient border (conic) */
.guc-bx__card::before{
    content:""; position:absolute; inset:0; padding:2px; border-radius:inherit;
    background:conic-gradient(from 0deg, var(--bx-blue), var(--bx-gold), var(--bx-blue));
    -webkit-mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude;
    opacity:.25; transition:opacity .25s ease, filter .25s ease;
}
.guc-bx__card:hover{ transform:translateY(-6px); box-shadow:0 26px 60px rgba(10,20,30,.12); }
.guc-bx__card:hover::before{ opacity:.55; filter:saturate(120%); }

/* Icon — 60×60 gradient tile + spinning halo */
.guc-bx__icon{
    width:60px; height:60px; margin:0 auto 18px;
    /*background:linear-gradient(135deg, var(--bx-blue), var(--bx-gold));*/
    border-radius:15px; display:flex; align-items:center; justify-content:center;
    /*box-shadow:inset 0 1px 0 rgba(255,255,255,.7), 0 10px 22px rgba(0,0,0,.08);*/
    position:relative;
}
.guc-bx__icon i{ color:var(--brand); font-size:28px; line-height:1; }

/* halo ring */
.guc-bx__icon::after{
    content:""; position:absolute; inset:-10px; border-radius:22px;
    background:
        conic-gradient(from 0deg, rgba(78,171,228,.0), rgba(78,171,228,.35), rgba(254,207,51,.35), rgba(78,171,228,.0));
    -webkit-mask:radial-gradient(closest-side, transparent 64%, #000 66%);
    mask:radial-gradient(closest-side, transparent 64%, #000 66%);
    animation:gbx-spin 12s linear infinite;
    filter: blur(4px); opacity:.7;
}
@keyframes gbx-spin { to { transform: rotate(1turn); } }

/* Text */
.guc-bx__cardTitle{
    margin:0; color:var(--bx-ink); font-weight:600;
    font-size:clamp(18px,1.6vw,22px);
    font-family: 'DM Sans', 'Helvetica';
}
.guc-bx__text{
    margin:0; color:var(--bx-muted); line-height:1.65; font-size:1rem;
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
    .guc-bx__card, .guc-bx__card::before, .guc-bx__icon::after{ animation:none; transition:none; }
}












/* ===== Reviews — Classic Editorial (scoped .rvw) ===== */
.rvw{
    --ink:#0c1323; --muted:#5b6576;
    --gold:#F5C451; --line:#e8edf4; --card:#f7f9fc;
    --r:10px; --shadow:0 10px 28px rgba(12,19,35,.08);
    padding: clamp(28px,5vw,64px) 0;
    background: linear-gradient(180deg,#f8fafc,#fff 40%);
}

.rvw__header{ text-align:center; margin-bottom: clamp(18px,3vw,28px); }
.rvw__title{
    margin:0; color:var(--ink);
    font-weight:800; letter-spacing:.2px;
    font-size: clamp(24px,3vw,38px);
}
.rvw__intro{
    margin:.5rem auto 1rem; color:#6b7280; max-width:72ch;
    font-size: clamp(14px,1vw,16px);
}
.rvw__meter{
    display:flex; gap:10px; align-items:center; justify-content:center;
    color:#4b5563; font-weight:700; font-size:.95rem;
}
.rvw__meter img{ height:18px; width:auto; display:block; }
.rvw__stars svg{ width:14px; height:14px; fill:var(--gold); opacity:.9; }
.rvw__count{ margin-left:6px; }
.rvw__jane{ display:inline-flex; align-items:center; gap:6px; padding-left:4px; }

/* viewport + arrows */
.rvw__viewport{ position:relative; }
.rvw__track{
    list-style:none; margin:0; padding:0;
    display:grid; gap:16px;
    grid-auto-flow:column;
    grid-auto-columns:min(92%, 520px);     /* mobile: one card */
    overflow-x:auto; scroll-snap-type:x mandatory;
    scroll-padding-inline:24px;
    padding: 6px 24px 6px;
}
@media (min-width: 992px){
    .rvw__track{ grid-auto-columns: min(32%, 520px); } /* ~3 across */
}
.rvw__track::-webkit-scrollbar{ height:8px; }
.rvw__track::-webkit-scrollbar-thumb{ background:#eef2f7; border-radius:999px; }

.rvw__nav{
    position:absolute; top:50%; transform:translateY(-50%);
    width:40px; height:40px; border-radius:50%;
    background:#fff; border:1px solid var(--line);
    display:grid; place-items:center; padding:0; cursor:pointer;
    box-shadow:var(--shadow);
}
.rvw__nav svg{ width:22px; height:22px; fill:#7b8794; }
.rvw__nav--prev{ left:6px; }
.rvw__nav--next{ right:6px; }
@media (max-width: 768px){ .rvw__nav{ display:none; } }

/* Card */
.rvwCard{
    scroll-snap-align:center;
    background:var(--card);
    border:1px solid var(--line);
    border-radius: var(--r);
    padding:16px 18px;
}
.rvwCard__top{
    display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
    margin-bottom:8px;
}
.rvwCard__who{ min-width:0; }
.rvwCard__name{ font-weight:800; color:var(--ink); }
.rvwCard__role{ display:block; color:#6b7280; font-size:.92rem; margin-top:2px; }

.rvwCard__stars svg{ width:14px; height:14px; fill:#d1d5db; }
.rvwCard__stars svg.is-on{ fill:var(--gold); }

.rvwCard__meta{
    display:flex; align-items:center; gap:8px;
    color:#334155; font-size:.9rem; margin-bottom:8px;
}
.rvwCard__verified{
    display:inline-flex; align-items:center; gap:6px;
    background:#f2f7ff; border:1px solid #e1ecfb; padding:3px 8px;
    border-radius:999px; font-weight:700; font-size:.72rem; color:#25658c;
}
.rvwCard__verified img{ width:30px; height:30px; display:block; }

.rvwCard__text{
    margin:0; color:#1f2937; line-height:1.6;
    font-size:1rem;
}

.rvwCard__foot{
    margin-top:10px; color:#6b7280; font-size:.85rem;
    display:flex; justify-content:flex-end;
}








/* ===== Brand Underbar (concatenated to footer) ===== */
.guc-underbar{
    --bg: #4EABE4;                 /* set this to your footer background */
    --fg: rgba(255,255,255,.08);   /* watermark text color */
    background: var(--bg);
    position: relative;
    margin: 0;                     /* sit flush under footer */
    padding: 0;
    overflow: hidden;
}

/* thin divider to echo footer rule */
/*.guc-underbar::before{*/
/*    content:"";*/
/*    position:absolute; left:0; right:0; top:0; height:1px;*/
/*    background: rgba(255,255,255,.12);*/
/*    z-index:1;*/
/*}*/

.guc-underbar__inner{
    position: relative; z-index: 1;
    padding-block: clamp(48px, 10vw, 120px);
}

/* REAL TEXT with vertical white gradient (bottom → top) */
.guc-underbar__word{
    display:block;
    text-align:center;
    font-weight:900;
    letter-spacing:-.02em;
    line-height:.9;
    white-space:nowrap;
    font-size: clamp(56px, 12vw, 180px);
    /* fallback color if a browser doesn't support background-clip:text */
    color: rgba(255,255,255,.08);
    user-select:text;

    /* gradient fill on supporting browsers */
    background: linear-gradient(
        to top,
        rgba(255,255,255,0.06) 0%,
        rgba(255,255,255,0.16) 30%,
        rgba(255,255,255,0.38) 60%,
        rgba(255,255,255,0.92) 100%
    );
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent; /* Safari/Chrome */
    color: transparent;           /* others that support bg-clip:text */
}


@media (max-width: 768px){
    .guc-underbar__inner{ padding-block: clamp(36px, 12vw, 80px); }
    .guc-underbar__word{ font-size: clamp(44px, 18vw, 120px); }
}










/* ===== GroundUp — Premium Footer (Arthro-style) ===== */
.guc-foot3{
    --ink:#fff;
    --muted:#bcd0e6;
    --line:rgba(255,255,255,.12);
    --chip:#0c2a4a;
    color:var(--muted);
    padding: clamp(28px,5vw,64px) 0;
    position:relative;
    background:
        radial-gradient(120% 160% at 10% -20%, rgba(78,171,228,.15), transparent 60%),
        radial-gradient(120% 160% at 100% 0%, rgba(246,204,70,.12), transparent 60%),
        linear-gradient(180deg,#0E2742 0%, #081B31 100%);
    overflow:hidden;
}

/* watermark brand */
.guc-foot3__brandmark::before{
    content: attr(data-brand);
}
.guc-foot3__brandmark{
    position:absolute; inset:auto 0 0 0; pointer-events:none;
}
.guc-foot3__brandmark::before{
    position:absolute; right: clamp(-8vw,-4vw,-2vw); bottom: -1vw;
    font-weight:900; letter-spacing:-.02em; line-height:.8; white-space:nowrap;
    font-size: clamp(140px, 30vw, 860px);
    color: rgba(255,255,255,.06);
    content: attr(data-brand);
}
.guc-foot3[data-brand] .guc-foot3__brandmark::before{
    content: attr(data-brand);
}

/* grid */
.guc-foot3__grid{
    display:grid;
    grid-template-columns: 1.2fr 1fr 1fr 1.2fr;
    gap: clamp(16px,2.6vw,36px);
    align-items:start;
}
@media (max-width: 992px){
    .guc-foot3__grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px){
    .guc-foot3__grid{ grid-template-columns: 1fr; }
}

/* brand */
.guc-foot3__logo{ height:42px; width:auto; display:block; margin-bottom:16px; }
.guc-foot3__social{ list-style:none; padding:0; margin:10px 0 0; display:flex; gap:10px; }
.guc-foot3__sbtn{
    width:40px; height:40px; display:grid; place-items:center; border-radius:10px;
    background:#fff; color:#0b2740; text-decoration:none;
    box-shadow:0 8px 22px rgba(0,0,0,.22);
    transition: transform .15s ease;
}
.guc-foot3__sbtn:hover{ transform:translateY(-2px); }
.guc-foot3__sbtn svg{ width:18px; height:18px; }

/* columns */
.guc-foot3__title{
    color:var(--ink); margin:0 0 10px; font-weight:800;
    text-transform:uppercase; letter-spacing:.35px; font-size:.95rem;
}
.guc-foot3__links{ list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.guc-foot3__links a{ color:var(--muted); text-decoration:none; }
.guc-foot3__links a:hover{ color:#eaf3ff; }

/* newsletter */
.guc-foot3__copy{ margin:.25rem 0 .75rem; }
.guc-foot3__form{
    position:relative; display:flex; align-items:center; gap:8px;
    background:rgba(255,255,255,.06);
    border:1px solid var(--line); border-radius:12px; padding:6px;
}
.guc-foot3__input{
    flex:1; background:transparent; border:0; outline:0; color:#fff;
    padding:10px 12px; font-size:.95rem;
}
.guc-foot3__input::placeholder{ color:#cfe0f2; }
.guc-foot3__submit{
    width:44px; height:38px; border:0; border-radius:10px; cursor:pointer;
    display:grid; place-items:center;
    color:#0b2740; background:linear-gradient(135deg,#4EABE4,#F6CC46);
    box-shadow:0 8px 22px rgba(0,0,0,.22);
}
.guc-foot3__submit svg{ width:20px; height:20px; }

/* separator */
.guc-foot3__rule{
    border:0; border-top:1px solid var(--line); margin: clamp(18px,3vw,28px) 0;
}

/* bottom bar */
.guc-foot3__bar{
    display:flex; justify-content:space-between; align-items:center; gap:12px;
    flex-wrap:wrap;
}
.guc-foot3__legal a{ color:#eaf3ff; text-decoration:none; }
.guc-foot3__sep{ opacity:.5; margin:0 .5ch; }
.guc-foot3__accept{ display:flex; align-items:center; gap:10px; }
.guc-foot3__pay{ display:flex; gap:6px; align-items:center; }
.guc-foot3__pay img{
    height:18px; width:auto; display:block;
    filter: drop-shadow(0 2px 6px rgba(0,0,0,.2));
}
