/**
 * Site-wide responsive completion layer — load after site-responsive.css
 * Breakpoints: 768 (tablet/mobile), 640 (small), 480 (narrow phone)
 */

/* —— Global safety —— */
html.ha-unified {
    overflow-x: clip;
}

html.ha-unified body {
    overflow-x: clip;
    max-width: 100%;
}

html.ha-unified img:not(header .nav-logo img):not(footer .footer-logo img),
html.ha-unified video,
html.ha-unified iframe {
    max-width: 100%;
    height: auto;
}

/* Header logo — exempt from global responsive img shrink */
html.ha-unified header .nav-logo img,
html.ha-unified .main-nav-container .nav-logo img {
    max-width: none !important;
    width: auto !important;
    height: 64px !important;
    max-height: 64px !important;
    object-fit: contain !important;
}

html.ha-unified footer .footer-logo img,
html.ha-unified footer.ha-footer .footer-logo img,
html.ha-unified footer#contact .footer-logo img {
    max-width: 108px !important;
    width: auto !important;
    height: auto !important;
    max-height: 108px !important;
    object-fit: contain !important;
}

html.ha-unified header.scrolled .nav-logo img {
    height: 52px !important;
    max-height: 52px !important;
}

@media (max-width: 768px) {
    html.ha-unified header .nav-logo img,
    html.ha-unified .main-nav-container .nav-logo img {
        height: auto !important;
        max-height: 52px !important;
    }
}

html.ha-unified .container {
    width: min(var(--container-max, 1280px), 100%);
    padding-inline: clamp(14px, 4vw, 24px);
}

/* —— Top bar: hidden on phone/tablet (see site-mobile.css); desktop layout in header-premium.css —— */
@media (max-width: 768px) {
    html.ha-unified header#header .top-bar,
    html.ha-unified header .top-bar {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        min-height: 0 !important;
        overflow: hidden !important;
        padding: 0 !important;
        margin: 0 !important;
        border: none !important;
        pointer-events: none !important;
    }
}

/* —— Power heroes (all marketing pages) —— */
@media (max-width: 768px) {
    html.ha-unified body.page-about > header + .about-hero,
    html.ha-unified body.page-infrastructure > header + .infra-hero,
    html.ha-unified body.page-how-we-train > header + .hwt-hero,
    html.ha-unified body.page-insights > header + .ins-hero,
    html.ha-unified body.page-contact > header + .con-hero {
        padding-left: clamp(12px, 4vw, 20px) !important;
        padding-right: clamp(12px, 4vw, 20px) !important;
        padding-bottom: clamp(52px, 9vw, 64px) !important;
    }

    html.ha-unified .about-hero-cta,
    html.ha-unified .infra-hero-cta,
    html.ha-unified .hwt-hero-cta,
    html.ha-unified .ins-hero-cta,
    html.ha-unified .con-hero-cta {
        flex-direction: column !important;
        align-items: stretch !important;
        width: 100%;
    }

    html.ha-unified .about-hero-cta .btn,
    html.ha-unified .infra-hero-cta .btn,
    html.ha-unified .hwt-hero-cta .btn,
    html.ha-unified .ins-hero-cta .btn,
    html.ha-unified .con-hero-cta .btn,
    html.ha-unified .about-hero-cta .ha-book-counselling,
    html.ha-unified .about-hero-cta .ha-counselling-trigger,
    html.ha-unified .hwt-hero-cta .ha-book-counselling,
    html.ha-unified .con-hero-cta .ha-book-counselling {
        width: 100% !important;
        max-width: 100% !important;
        justify-content: center !important;
        box-sizing: border-box !important;
    }

    html.ha-unified .about-hero-meta,
    html.ha-unified .infra-hero-meta,
    html.ha-unified .hwt-hero-meta,
    html.ha-unified .ins-hero-meta,
    html.ha-unified .con-hero-meta {
        flex-direction: column !important;
        align-items: center !important;
    }

    /* Power stats → 2 col then 1 col */
    html.ha-unified body.page-about .about-power-stats,
    html.ha-unified body.page-infrastructure .infra-power-stats,
    html.ha-unified body.page-how-we-train .hwt-power-stats,
    html.ha-unified body.page-insights .ins-power-stats {
        grid-template-columns: repeat(2, 1fr) !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Sticky quick navs — horizontal scroll */
    html.ha-unified .about-quick-nav,
    html.ha-unified .infra-quick-nav,
    html.ha-unified .hwt-quick-nav,
    html.ha-unified .ins-quick-nav,
    html.ha-unified .con-quick-nav,
    html.ha-unified .programs-quick-nav,
    html.ha-unified .program-quick-nav {
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
        padding-bottom: 8px !important;
    }

    /* Content cards — tighter padding on phones */
    html.ha-unified main .content-card,
    html.ha-unified main > section.content-card {
        padding: clamp(16px, 4vw, 22px) clamp(14px, 3.5vw, 18px) !important;
    }

    /* Legal / utility pages */
    html.ha-unified .legal-content {
        font-size: clamp(0.95rem, 3.5vw, 1.05rem) !important;
    }

    html.ha-unified .legal-content h3 {
        font-size: clamp(1.05rem, 4vw, 1.25rem) !important;
    }

    html.ha-unified .page-title h1,
    html.ha-unified .hero-title {
        font-size: clamp(1.65rem, 6vw, 2.25rem) !important;
        line-height: 1.2 !important;
    }

    /* Global CTA button stacks */
    html.ha-unified .btn-group,
    html.ha-unified .cta-buttons,
    html.ha-unified .con-cta-btns,
    html.ha-unified .ins-cta-btns,
    html.ha-unified .global-cta .btn-group {
        flex-direction: column !important;
        align-items: stretch !important;
        width: 100%;
    }

    html.ha-unified .btn-group .btn,
    html.ha-unified .cta-buttons .btn,
    html.ha-unified .cta-buttons a,
    html.ha-unified .con-cta-btns .btn,
    html.ha-unified .ins-cta-btns .btn,
    html.ha-unified .global-cta .btn,
    html.ha-unified .global-cta a.btn {
        width: 100% !important;
        max-width: 100% !important;
        justify-content: center !important;
        box-sizing: border-box !important;
    }

    /* Touch-friendly controls */
    html.ha-unified .filter-btn,
    html.ha-unified .con-intent-tab,
    html.ha-unified .ins-intent-tab,
    html.ha-unified button:not(.hwt-gallery-item):not(.ins-topic-card):not(.hero-dot):not(.home-training-gallery-dot):not(.hwt-gallery-dot):not(.testimonials-carousel__dot):not(.ha-mobile-bottom-nav__item) {
        min-height: 44px;
    }

    html.ha-unified input,
    html.ha-unified select,
    html.ha-unified textarea {
        font-size: max(16px, 1rem) !important;
    }

    /* Map containers */
    html.ha-unified .map-container,
    html.ha-unified .con-map-frame {
        height: min(360px, 52vh) !important;
        min-height: 220px;
    }

    /* Partner / enroll flex rows from inline styles */
    html.ha-unified [style*="display: flex"][style*="gap"] {
        flex-wrap: wrap !important;
    }
}

@media (max-width: 480px) {
    html.ha-unified body.page-about .about-power-stats,
    html.ha-unified body.page-infrastructure .infra-power-stats,
    html.ha-unified body.page-how-we-train .hwt-power-stats,
    html.ha-unified body.page-insights .ins-power-stats,
    html.ha-unified body.page-contact .con-power-stats {
        grid-template-columns: 1fr !important;
    }

    html.ha-unified .con-action-grid {
        grid-template-columns: 1fr !important;
    }

    html.ha-unified .ins-action-grid {
        grid-template-columns: 1fr !important;
    }
}

/* —— Mobile card layout for wide compare/data tables —— */
@media (max-width: 640px) {
    html.ha-unified .infra-compare-wrap,
    html.ha-unified .program-batch-wrap,
    html.ha-unified .program-compare-wrap,
    html.ha-unified .program-schedule-wrap,
    html.ha-unified .programs-compare-wrap,
    html.ha-unified .enroll-fee-wrap {
        overflow-x: visible;
    }

    html.ha-unified .infra-compare-table,
    html.ha-unified .program-batch-table,
    html.ha-unified .program-compare-table,
    html.ha-unified .program-schedule-table,
    html.ha-unified .programs-compare-table,
    html.ha-unified .enroll-fee-table {
        min-width: 0 !important;
    }

    html.ha-unified .infra-compare-table thead,
    html.ha-unified .program-batch-table thead,
    html.ha-unified .program-compare-table thead,
    html.ha-unified .program-schedule-table thead,
    html.ha-unified .programs-compare-table thead,
    html.ha-unified .enroll-fee-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    html.ha-unified .infra-compare-table tbody tr,
    html.ha-unified .program-batch-table tbody tr,
    html.ha-unified .program-compare-table tbody tr,
    html.ha-unified .program-schedule-table tbody tr,
    html.ha-unified .programs-compare-table tbody tr,
    html.ha-unified .enroll-fee-table tbody tr {
        display: block;
        margin-bottom: 14px;
        border: 1px solid rgba(0, 75, 4, 0.14);
        border-radius: 12px;
        overflow: hidden;
        background: #fff;
    }

    html.ha-unified .infra-compare-table tbody td,
    html.ha-unified .program-batch-table tbody td,
    html.ha-unified .program-compare-table tbody td,
    html.ha-unified .program-schedule-table tbody td,
    html.ha-unified .programs-compare-table tbody td,
    html.ha-unified .enroll-fee-table tbody td {
        display: block;
        width: 100% !important;
        box-sizing: border-box;
        border-bottom: 1px solid rgba(0, 75, 4, 0.08);
        white-space: normal !important;
        text-align: left !important;
        padding: 12px 14px !important;
    }

    html.ha-unified .infra-compare-table tbody td:last-child,
    html.ha-unified .program-batch-table tbody td:last-child,
    html.ha-unified .program-compare-table tbody td:last-child,
    html.ha-unified .program-schedule-table tbody td:last-child,
    html.ha-unified .programs-compare-table tbody td:last-child,
    html.ha-unified .enroll-fee-table tbody td:last-child {
        border-bottom: none;
    }

    html.ha-unified .infra-compare-table tbody td:first-child {
        background: #f6fbf7;
        font-weight: 700;
        color: #004b04;
    }

    html.ha-unified .infra-compare-table tbody td:nth-child(1)::before { content: "Activity"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
    html.ha-unified .infra-compare-table tbody td:nth-child(2)::before { content: "Classroom"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
    html.ha-unified .infra-compare-table tbody td:nth-child(3)::before { content: "NFT Lab"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
    html.ha-unified .infra-compare-table tbody td:nth-child(4)::before { content: "Microgreens"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }

    html.ha-unified .program-batch-table tbody td:nth-child(1)::before { content: "Batch"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
    html.ha-unified .program-batch-table tbody td:nth-child(2)::before { content: "Start Date"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
    html.ha-unified .program-batch-table tbody td:nth-child(3)::before { content: "Duration"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
    html.ha-unified .program-batch-table tbody td:nth-child(4)::before { content: "Seats"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }

    html.ha-unified .program-schedule-table tbody td:nth-child(1)::before { content: "Week"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
    html.ha-unified .program-schedule-table tbody td:nth-child(2)::before { content: "Focus"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
    html.ha-unified .program-schedule-table tbody td:nth-child(3)::before { content: "Details"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }

    html.ha-unified .programs-compare-table tbody td:nth-child(1)::before { content: "Program"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
    html.ha-unified .programs-compare-table tbody td:nth-child(2)::before { content: "Duration"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
    html.ha-unified .programs-compare-table tbody td:nth-child(3)::before { content: "Level"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }

    html.ha-unified .enroll-fee-table tbody td:nth-child(1)::before { content: "Program"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
    html.ha-unified .enroll-fee-table tbody td:nth-child(2)::before { content: "Registration"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
    html.ha-unified .enroll-fee-table tbody td:nth-child(3)::before { content: "Total Fee"; display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
}

/* —— Power CTA dark bands (override white card shell) —— */
html.ha-unified body.page-how-we-train main > section.hwt-power-cta,
html.ha-unified body.page-infrastructure main > section.infra-power-cta {
    background: var(--dark-green, #004b04) !important;
    border: none !important;
    color: #fff;
}

html.ha-unified body.page-how-we-train main > section.hwt-why-band {
    background: linear-gradient(140deg, #004b04 0%, #006b04 55%, #007305 100%) !important;
    border: none !important;
    color: #fff !important;
}

html.ha-unified body.page-how-we-train .hwt-power-cta h2,
html.ha-unified body.page-how-we-train .hwt-power-cta .section-text,
html.ha-unified body.page-infrastructure .infra-power-cta h2,
html.ha-unified body.page-infrastructure .infra-power-cta .section-power-lead,
html.ha-unified body.page-infrastructure .infra-power-cta p {
    color: #fff !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified body.page-how-we-train .hwt-power-cta .section-text {
    color: rgba(255, 255, 255, 0.9) !important;
}

html.ha-unified body.page-contact main > section.con-power-cta {
    background: linear-gradient(180deg, #fff 0%, #f0fdf4 100%) !important;
}

/* —— Program detail hero —— */
@media (max-width: 768px) {
    html.ha-unified body.page-program-detail .program-hero-stats,
    html.ha-unified body.page-program-detail .power-stats-bar {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    html.ha-unified body.page-program-detail .program-quick-nav {
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 480px) {
    html.ha-unified body.page-program-detail .program-hero-stats,
    html.ha-unified body.page-program-detail .power-stats-bar {
        grid-template-columns: 1fr !important;
    }
}

/* —— Testimonials / company / images utility pages —— */
@media (max-width: 768px) {
    html.ha-unified .contact-info-boxes {
        grid-template-columns: 1fr !important;
    }
}

/* =============================================================================
   Site-wide fixed header clearance — all pages, all hero types
   Load last; overrides stale inline hero padding on any template
   ============================================================================= */
@media (max-width: 768px) {
    :root {
        --site-fixed-header-offset: calc(4.75rem + env(safe-area-inset-top, 0px));
    }
}

@media (max-width: 640px) {
    :root {
        --site-fixed-header-offset: calc(4.75rem + env(safe-area-inset-top, 0px));
    }
}

@media (max-width: 480px) {
    :root {
        --site-fixed-header-offset: calc(4.75rem + env(safe-area-inset-top, 0px));
    }
}

@media (max-width: 768px) {
    /* All hero bands — never vertically center under tall mobile header */
    html.ha-unified section.hero,
    html.ha-unified section.page-hero,
    html.ha-unified section.programs-hero,
    html.ha-unified section.program-hero,
    html.ha-unified section.about-hero,
    html.ha-unified section.infra-hero,
    html.ha-unified section.hwt-hero,
    html.ha-unified section.ins-hero,
    html.ha-unified section.con-hero,
    html.ha-unified .programs-hero,
    html.ha-unified .page-hero {
        align-items: flex-start !important;
        justify-content: flex-start !important;
    }

    html.ha-unified body.page-home section.hero {
        padding-top: calc(var(--site-fixed-header-offset) + clamp(12px, 3vw, 24px)) !important;
    }

    html.ha-unified body:not(.page-home) > header + .page-hero,
    html.ha-unified body:not(.page-home) > header + .programs-hero,
    html.ha-unified body:not(.page-home) > header + .program-hero,
    html.ha-unified body:not(.page-home) > header + .about-hero,
    html.ha-unified body:not(.page-home) > header + .infra-hero,
    html.ha-unified body:not(.page-home) > header + .hwt-hero,
    html.ha-unified body:not(.page-home) > header + .ins-hero,
    html.ha-unified body:not(.page-home) > header + .con-hero {
        padding-top: calc(var(--site-fixed-header-offset) + clamp(12px, 3vw, 24px)) !important;
    }

    /* Pages with no hero — first block after header */
    html.ha-unified body:not(.page-home) > header + main,
    html.ha-unified body:not(.page-home) > header + main.container,
    html.ha-unified body > header + .page-wrap,
    html.ha-unified body.page-company-details .page-wrap {
        padding-top: calc(var(--site-fixed-header-offset) + clamp(12px, 3vw, 24px)) !important;
    }

    html.ha-unified body > header + .page-wrap,
    html.ha-unified body.page-company-details .page-wrap {
        align-items: flex-start !important;
        justify-content: flex-start !important;
    }

    /* Blog article back nav under fixed header */
    html.ha-unified .blog-back-to-hub {
        padding-top: calc(var(--site-fixed-header-offset) + clamp(12px, 3vw, 20px)) !important;
    }

    /* Scroll-reveal: never leave content invisible on phones */
    html.ha-unified .js-interactive-reveal-target {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }

    /* Program detail — room for fixed back-to-top + fee cards */
    html.ha-unified body.page-program-detail main#program-main {
        padding-bottom: var(--ha-page-pad-nav-clear, calc(var(--ha-mobile-bottom-nav-h, 78px) + 24px)) !important;
    }

    html.ha-unified body.page-program-detail .program-power-cta {
        margin-top: 0 !important;
        margin-bottom: 14px !important;
    }

    html.ha-unified body.page-program-detail .fee-promo-box {
        padding: 18px 16px !important;
    }

    html.ha-unified body.page-program-detail .fee-promo-price .fee-now {
        font-size: clamp(1.85rem, 8vw, 2.4rem) !important;
        line-height: 1.15 !important;
    }

    html.ha-unified .ha-back-to-top {
        bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
        width: 44px !important;
        height: 44px !important;
    }

    /* Grid safety — kill horizontal scroll from wide children */
    html.ha-unified main [style*="display: grid"],
    html.ha-unified main [style*="display:grid"] {
        max-width: 100% !important;
        min-width: 0 !important;
    }
}

/* Final grid pass — narrow phones */
@media (max-width: 640px) {
    html.ha-unified .programs-showcase-grid,
    html.ha-unified .programs-grid,
    html.ha-unified .article-grid,
    html.ha-unified .testimonials-grid:not(.testimonials-carousel__track) {
        grid-template-columns: 1fr !important;
    }
}

/* =============================================================================
   Responsive Master — layout containment, touch UX, mobile heroes (v20260751)
   ============================================================================= */

html.ha-unified main,
html.ha-unified main > section,
html.ha-unified main > .container,
html.ha-unified .content-card,
html.ha-unified .programs-page__card,
html.ha-unified .programs-directory,
html.ha-unified .programs-catalog,
html.ha-unified .page-wrap {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

/* Horizontal chip / tab strips — scroll inside container, not page overflow */
html.ha-unified .programs-quick-nav,
html.ha-unified .program-quick-nav,
html.ha-unified .about-quick-nav,
html.ha-unified .infra-quick-nav,
html.ha-unified .hwt-quick-nav,
html.ha-unified .ins-quick-nav,
html.ha-unified .con-quick-nav,
html.ha-unified .programs-filter-bar,
html.ha-unified .infra-unit-filter {
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: auto !important;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scroll-padding-inline: 12px;
    scrollbar-width: thin;
}

html.ha-unified .programs-filter-bar,
html.ha-unified .infra-unit-filter {
    flex-wrap: nowrap !important;
}

html.ha-unified .programs-filter-bar button,
html.ha-unified .programs-filter,
html.ha-unified .infra-unit-filter button {
    flex: 0 0 auto;
    white-space: nowrap;
}

/* Table / data scroll regions */
html.ha-unified .table-responsive,
html.ha-unified .infra-compare-wrap,
html.ha-unified .programs-compare-wrap,
html.ha-unified .program-compare-wrap,
html.ha-unified .program-batch-wrap,
html.ha-unified .program-schedule-wrap,
html.ha-unified .refund-window-table-wrap {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
}

@media (max-width: 992px) {
    html.ha-unified .pf-layout,
    html.ha-unified .programs-flagship-spotlight,
    html.ha-unified .infra-facility-power,
    html.ha-unified .con-layout,
    html.ha-unified .ins-hub-layout {
        grid-template-columns: 1fr !important;
    }

    html.ha-unified .pf-sidebar,
    html.ha-unified .programs-flagship-spotlight__aside,
    html.ha-unified .con-sidebar {
        order: -1;
        width: 100% !important;
        max-width: 100% !important;
    }
}

@media (max-width: 768px) {
    body.page-programs nav.programs-quick-nav {
        margin-inline: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        padding-inline: clamp(12px, 4vw, 18px) !important;
    }

    html.ha-unified .hero-title,
    html.ha-unified .page-hero .hero-title,
    html.ha-unified .program-title,
    html.ha-unified .programs-title,
    html.ha-unified .about-hero__title,
    html.ha-unified .infra-hero__title,
    html.ha-unified .hwt-hero__title,
    html.ha-unified .ins-hero__title,
    html.ha-unified .con-hero__title {
        font-size: clamp(1.45rem, 6.2vw, 2.2rem) !important;
        line-height: 1.15 !important;
        word-break: break-word;
        overflow-wrap: anywhere;
    }

    html.ha-unified .program-hero-hook,
    html.ha-unified .page-hero p,
    html.ha-unified .hero-subtitle,
    html.ha-unified .programs-subtitle,
    html.ha-unified .programs-lead {
        font-size: clamp(0.9rem, 3.5vw, 1.05rem) !important;
        line-height: 1.55 !important;
        max-width: 100% !important;
    }

    html.ha-unified .hero-meta,
    html.ha-unified .program-hero .hero-meta {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        width: 100% !important;
    }

    html.ha-unified .meta-item {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    html.ha-unified main input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    html.ha-unified main select,
    html.ha-unified main textarea {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    body.page-how-we-train .hwt-nav-shell {
        max-width: 100%;
        overflow: hidden;
    }

    body.page-how-we-train .hwt-quick-nav {
        flex-wrap: nowrap !important;
        padding-inline: 8px !important;
    }

    #hwt-training-gallery .hwt-gallery-slider,
    #hwt-training-gallery .hwt-gallery-shell {
        max-width: 100%;
    }

    #hwt-training-gallery .hwt-gallery-viewport {
        width: 100%;
        flex: 1 1 auto;
        min-width: 0;
    }

    html.ha-unified .infra-gallery-strip {
        grid-template-columns: 1fr !important;
    }

    html.ha-unified .policy-summary {
        grid-template-columns: 1fr !important;
    }

    html.ha-unified .policy-meta {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 640px) {
    html.ha-unified body.page-about .about-power-stats,
    html.ha-unified body.page-infrastructure .infra-power-stats,
    html.ha-unified body.page-how-we-train .hwt-power-stats,
    html.ha-unified body.page-contact .con-power-stats,
    html.ha-unified body.page-insights .ins-power-stats,
    html.ha-unified body.page-programs .programs-power-stats,
    html.ha-unified body.page-program-detail .program-power-stats {
        grid-template-columns: 1fr !important;
    }

    html.ha-unified .programs-batch-strip,
    html.ha-unified .program-batch-strip {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 480px) {
    html.ha-unified .hero-cta,
    html.ha-unified .program-hero-cta,
    html.ha-unified .hwt-hero-cta,
    html.ha-unified .about-hero-cta,
    html.ha-unified .infra-hero-cta {
        flex-direction: column !important;
        align-items: stretch !important;
        width: 100%;
    }

    html.ha-unified .hero-cta .btn,
    html.ha-unified .program-hero-cta .btn,
    html.ha-unified .hwt-hero-cta .btn,
    html.ha-unified .about-hero-cta .btn,
    html.ha-unified .about-hero-cta .ha-counselling-trigger,
    html.ha-unified .infra-hero-cta .btn {
        width: 100% !important;
        max-width: 100% !important;
        justify-content: center !important;
    }

    html.ha-unified .content-card,
    html.ha-unified main > section.content-card {
        padding: clamp(14px, 4vw, 20px) !important;
    }

    html.ha-unified .refund-window-table {
        font-size: 0.82rem;
    }

    html.ha-unified .refund-window-table th,
    html.ha-unified .refund-window-table td {
        padding: 10px 8px;
    }
}

/* =============================================================================
   Mobile completion — site-wide (768px and below)
   ============================================================================= */
@media (max-width: 768px) {
    html.ha-unified .programs-quick-nav,
    html.ha-unified .program-quick-nav {
        margin-inline: 0 !important;
        padding-inline: clamp(10px, 3vw, 16px) !important;
        scroll-snap-type: x proximity;
    }

    html.ha-unified .programs-quick-nav a,
    html.ha-unified .program-quick-nav a,
    html.ha-unified .hwt-quick-nav a,
    html.ha-unified .about-quick-nav a,
    html.ha-unified .infra-quick-nav a,
    html.ha-unified .ins-quick-nav a,
    html.ha-unified .con-quick-nav a {
        scroll-snap-align: start;
        flex-shrink: 0;
    }

    html.ha-unified .programs-academic-card {
        grid-template-columns: 1fr !important;
        text-align: center;
    }

    html.ha-unified .programs-academic-card .btn-card {
        width: 100%;
        max-width: 100%;
    }

    html.ha-unified body.page-home #programs.programs-showcase .programs-showcase-grid,
    html.ha-unified body.page-home #programs.programs-showcase .grid-3 {
        grid-template-columns: 1fr !important;
    }

    html.ha-unified body.page-home .stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html.ha-unified .blog-article,
    html.ha-unified .blog-content,
    html.ha-unified article.prose {
        padding-inline: clamp(14px, 4vw, 20px) !important;
        max-width: 100% !important;
    }

    html.ha-unified .blog-hero,
    html.ha-unified .article-hero {
        padding-top: calc(var(--site-fixed-header-offset) + clamp(20px, 5vw, 36px)) !important;
        padding-inline: clamp(14px, 4vw, 20px) !important;
    }
}

@media (max-width: 480px) {
    html.ha-unified body.page-home .stats-grid {
        grid-template-columns: 1fr !important;
    }
}

/* =============================================================================
   RESPONSIVE COMPLETION v2 — tables, tablet, scroll safety
   ============================================================================= */

html.ha-unified .ha-table-scroll {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    margin-bottom: 1rem;
    border-radius: 8px;
}

html.ha-unified .ha-table-scroll:focus-visible {
    outline: 2px solid var(--primary-green, #007305);
    outline-offset: 2px;
}

html.ha-unified .ha-table-scroll table {
    width: 100%;
    border-collapse: collapse;
}

@media (max-width: 768px) {
    html.ha-unified .ha-table-scroll table:not(.enroll-fee-table):not(.programs-compare-table):not(.infra-compare-table):not(.program-compare-table):not(.program-batch-table):not(.program-schedule-table) {
        min-width: min(560px, 118vw);
    }

    html.ha-unified .infra-compare-wrap table,
    html.ha-unified .program-compare-scroll table {
        min-width: min(520px, 115vw);
    }
}

/* Tablet landscape — comfortable 2-column layouts */
@media (min-width: 769px) and (max-width: 1024px) {
    html.ha-unified .container {
        padding-inline: clamp(18px, 3vw, 28px);
    }

    html.ha-unified .con-action-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html.ha-unified .con-contact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html.ha-unified .ins-value-grid,
    html.ha-unified .about-focus-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html.ha-unified body.page-home #programs.programs-showcase .programs-showcase-grid.grid-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html.ha-unified .programs-flagship-spotlight {
        grid-template-columns: 1fr !important;
    }

    html.ha-unified .pf-layout {
        grid-template-columns: 1fr !important;
    }
}

/* —— Responsive completion pass (site-wide mobile polish) —— */
@media (max-width: 768px) {
    html.ha-unified main.container {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding-inline: clamp(14px, 4vw, 20px);
        box-sizing: border-box;
    }

    html.ha-unified .content-card,
    html.ha-unified main > section.content-card {
        padding: clamp(18px, 4vw, 28px) !important;
        min-width: 0;
        max-width: 100%;
    }

    html.ha-unified .btn-group {
        flex-wrap: wrap;
        justify-content: center;
        gap: 12px;
    }

    html.ha-unified .btn-group .btn {
        min-width: min(100%, 220px);
    }

    html.ha-unified body.page-legal .legal-content,
    html.ha-unified body.page-faq main.container,
    html.ha-unified body.page-partner main.container {
        padding-inline: clamp(14px, 4vw, 20px);
    }

    html.ha-unified body.page-program-detail main {
        padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px));
    }
}

@media (max-width: 480px) {
    html.ha-unified .btn-group {
        flex-direction: column;
        align-items: stretch;
    }

    html.ha-unified .btn-group .btn {
        width: 100%;
        min-width: 0;
    }

    html.ha-unified .ha-form-row-2,
    html.ha-unified .ha-grid-2-col-list {
        grid-template-columns: 1fr !important;
    }
}

/* =============================================================================
   Responsive completion v3 — cross-page mobile polish (20260797)
   ============================================================================= */
@media (max-width: 768px) {
    html.ha-unified main > section,
    html.ha-unified main > article,
    html.ha-unified main > div {
        min-width: 0;
        max-width: 100%;
    }

    html.ha-unified .page-hero {
        padding-inline: clamp(14px, 4vw, 20px) !important;
    }

    html.ha-unified .page-hero .hero-title {
        word-break: break-word;
        overflow-wrap: anywhere;
        hyphens: auto;
    }

    html.ha-unified body.page-testimonials .testimonials-grid,
    html.ha-unified body.page-testimonials #testimonials-grid,
    html.ha-unified .testimonial-card {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    html.ha-unified .testimonials-carousel,
    html.ha-unified .testimonials-carousel__shell {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        overflow: hidden;
    }

    html.ha-unified .testimonials-carousel__viewport {
        width: 100%;
        max-width: 100%;
    }

    html.ha-unified .testimonials-carousel__track .testimonial-card {
        flex: 0 0 min(100%, 340px);
        max-width: min(100%, 340px);
    }

    html.ha-unified body.page-home #home-training-gallery .home-training-gallery-shell,
    html.ha-unified body.page-home #home-training-gallery .home-training-gallery-viewport {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    html.ha-unified body.page-home .home-cta-columns {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        width: 100%;
    }

    html.ha-unified body.page-home .home-cta-column .btn,
    html.ha-unified body.page-home .home-cta-column .ha-counselling-trigger {
        width: 100% !important;
        max-width: 100% !important;
    }

    html.ha-unified body.page-faq .faq-container {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding-inline: 0;
    }

    html.ha-unified body.page-faq .faq-category-header {
        padding: clamp(14px, 4vw, 18px) !important;
        font-size: clamp(0.95rem, 3.8vw, 1.08rem) !important;
        line-height: 1.45 !important;
        word-break: break-word;
    }

    html.ha-unified body.page-partner .partner-eligible-grid,
    html.ha-unified body.page-partner .forms-grid {
        grid-template-columns: 1fr !important;
    }

    html.ha-unified body.page-partner .forms-grid input:not([type="checkbox"]):not([type="radio"]),
    html.ha-unified body.page-partner .forms-grid select,
    html.ha-unified body.page-partner .forms-grid textarea {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    html.ha-unified .con-contact-grid {
        grid-template-columns: 1fr !important;
    }

    html.ha-unified .con-contact-card__value,
    html.ha-unified .con-contact-card__value a {
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    html.ha-unified .ins-path-flow {
        width: 100%;
        max-width: 100%;
        margin-inline: auto;
    }

    html.ha-unified .footer-cta-row {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
    }

    html.ha-unified .footer-cta-row .footer-cta {
        width: 100% !important;
        max-width: 100% !important;
        justify-content: center !important;
        box-sizing: border-box !important;
    }

    html.ha-unified body.page-programs .programs-cta-row,
    html.ha-unified body.page-programs .programs-spotlight-cta {
        flex-direction: column !important;
        align-items: stretch !important;
        width: 100%;
    }

    html.ha-unified body.page-programs .programs-cta-row .btn,
    html.ha-unified body.page-programs .programs-cta-row .ha-counselling-trigger,
    html.ha-unified body.page-programs .programs-spotlight-cta .btn {
        width: 100% !important;
        max-width: 100% !important;
    }

    html.ha-unified body.page-gallery .gallery-toolbar {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    html.ha-unified body.page-gallery .gallery-search {
        width: 100% !important;
    }

    html.ha-unified body.ha-mobile-bottom-nav-on footer.ha-footer,
    html.ha-unified body.ha-mobile-bottom-nav-on footer#contact {
        padding-bottom: var(--ha-page-pad-nav-clear, calc(var(--ha-mobile-bottom-nav-h, 78px) + 16px)) !important;
    }
}

@media (max-width: 480px) {
    html.ha-unified .testimonials-carousel__controls {
        gap: 8px;
        flex-wrap: wrap;
        justify-content: center;
    }

    html.ha-unified .testimonials-carousel__arrow {
        min-width: 44px;
        min-height: 44px;
    }

    html.ha-unified body.page-home .stats-grid .stat-item {
        padding: clamp(14px, 4vw, 20px);
    }

    html.ha-unified .horizontal-legal-links {
        flex-direction: column !important;
        align-items: center !important;
        gap: 8px !important;
    }

    html.ha-unified .horizontal-legal-links a {
        width: 100%;
        max-width: 280px;
        justify-content: center;
    }
}
