/* courseTableLong section styles (shared, externalised) */
/* ── Upcoming Dates Section ──────────────────────────────────────── */
    .ha-dates-section {
        background: #F8F3E9;
    }

    /* Accordion card */
    .ha-dates-accordion .ha-acc-item {
        margin-bottom: 14px;
        border-radius: 14px !important;
        overflow: hidden;
        box-shadow: 0 3px 16px rgba(0, 0, 0, .1);
        border: 1.5px solid rgba(80, 124, 36, .15) !important;
    }

    .ha-dates-accordion .ha-acc-header {
        background: var(--ha-green);
    }

    .ha-dates-accordion .ha-acc-btn {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        padding: 16px 22px;
        font-size: 1.05rem;
        font-weight: 700;
        color: #fff !important;
        background: transparent;
        border: none;
        text-align: left;
        cursor: pointer;
        text-decoration: none !important;
        outline: none !important;
        box-shadow: none !important;
        line-height: 1.4;
        gap: 12px;
    }

    .ha-dates-accordion .ha-acc-btn:hover,
    .ha-dates-accordion .ha-acc-btn:focus {
        color: #fff !important;
        text-decoration: none !important;
    }

    .ha-acc-title-wrap {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .ha-acc-title-wrap i {
        font-size: .9rem;
        opacity: .85;
    }

    .ha-acc-chevron {
        flex-shrink: 0;
        font-size: .78rem;
        transition: transform .3s ease;
        opacity: .9;
    }

    .ha-dates-accordion .ha-acc-btn[aria-expanded="true"] .ha-acc-chevron {
        transform: rotate(180deg);
    }

    /* Accordion body */
    .ha-dates-accordion .ha-acc-body {
        background: #fff;
        padding: 22px 24px 20px;
    }

    /* Meta info */
    .ha-acc-meta {
        margin-bottom: 18px;
        padding-bottom: 16px;
        border-bottom: 1px solid #eef2e8;
    }

    .ha-acc-meta-item {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 1rem;
        color: #000;
        font-weight: 500;
        margin-bottom: 8px;
    }

    .ha-acc-meta-item:last-child {
        margin-bottom: 0;
    }

    .ha-acc-meta-item i {
        color: #507C24;
        width: 16px;
        text-align: center;
        flex-shrink: 0;
    }

    .ha-acc-meta-item strong {
        color: #1a2e10;
        font-weight: 700;
        margin-right: 2px;
    }

    .ha-avail-badge {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        background: #eef7e4;
        color: #3a6318;
        font-size: .82rem;
        font-weight: 700;
        padding: 3px 10px;
        border-radius: 20px;
        border: 1px solid rgba(80, 124, 36, .25);
        margin-left: 6px;
    }

    /* Price table */
    .ha-price-wrap {
        border: 1px solid #e5edd8;
        border-radius: 10px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        margin-bottom: 20px;
    }

    @media (max-width: 767px) {

        /* Stack the pricing table into cards so every column is visible
           without horizontal scrolling. */
        .ha-price-wrap {
            overflow-x: visible !important;
            border: none !important;
        }

        .ha-price-table {
            min-width: 0 !important;
        }

        .ha-price-table thead {
            display: none;
        }

        .ha-price-table,
        .ha-price-table tbody {
            display: block;
            width: 100%;
        }

        .ha-price-table tbody tr {
            display: block;
            border: 1px solid #e5edd8 !important;
            border-radius: 10px;
            margin-bottom: 10px;
            overflow: hidden;
        }

        .ha-price-table tbody tr td {
            display: flex;
            align-items: baseline;
            gap: 8px;
            width: 100%;
            border: none !important;
            border-bottom: 1px solid #eef2e8 !important;
            padding: 10px 14px !important;
            font-size: 14px !important;
            background: #fff !important;
        }

        .ha-price-table tbody tr td:last-child {
            border-bottom: none !important;
        }

        /* Program name → card header (full-width, no label) */
        .ha-price-table tbody tr td:first-child {
            display: block;
            background: #f0f6e6 !important;
            color: #2d4a1e;
            font-weight: 700;
            font-size: 13.5px !important;
            line-height: 1.35;
        }

        /* Price rows: label on the left, price(s) grouped on the right */
        .ha-price-table tbody tr td:nth-child(2)::before {
            content: "International";
        }

        .ha-price-table tbody tr td:nth-child(3)::before {
            content: "Indian";
        }

        .ha-price-table tbody tr td:nth-child(n+2)::before {
            margin-right: auto;
            font-size: 11px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: .04em;
            color: #507C24;
        }

        .ha-price-strike {
            font-size: 12px;
        }

        .ha-price-disc,
        .ha-price-val {
            font-size: 13.5px;
        }
    }

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

    .ha-price-table thead tr {
        background: #f0f6e6;
    }

    .ha-price-table th {
        font-size: .92rem;
        font-weight: 700;
        color: #2d4a1e;
        padding: 11px 16px;
        border-bottom: 1px solid #d8e8c0;
        border-right: 1px solid #d8e8c0;
    }

    .ha-price-table th:last-child {
        border-right: none;
    }

    .ha-price-table td {
        padding: 12px 16px;
        font-size: 1rem;
        color: #000;
        font-weight: 500;
        border-bottom: 1px solid #eef2e8;
        border-right: 1px solid #eef2e8;
        vertical-align: middle;
    }

    .ha-price-table td:last-child {
        border-right: none;
    }

    .ha-price-table tbody tr:last-child td {
        border-bottom: none;
    }

    .ha-price-table tbody tr td {
        background: #fff;
    }

    .ha-price-table tbody tr:nth-child(odd) td {
        background: #fafcf8;
    }

    .ha-price-table tbody tr:hover td {
        background: #f2f8ea !important;
    }

    .ha-price-strike {
        color: #999;
        font-size: .9rem;
        text-decoration: line-through;
        margin-right: 5px;
    }

    .ha-price-disc {
        color: #e07b00;
        font-weight: 700;
        font-size: 1rem;
    }

    .ha-price-val {
        font-weight: 600;
        color: #1a2e10;
    }

    /* Action buttons */
    .ha-acc-actions {
        display: flex;
        gap: 12px;
    }

    .ha-acc-actions .ha-btn-enq {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 13px 20px;
        background: #fff;
        color: #507C24 !important;
        font-size: .88rem;
        font-weight: 700;
        letter-spacing: .06em;
        text-transform: uppercase;
        border-radius: 50px;
        text-decoration: none !important;
        transition: all .2s ease;
        border: 1.5px solid #507C24;
        cursor: pointer;
    }

    .ha-acc-actions .ha-btn-enq:hover {
        background: linear-gradient(135deg, #97BC17 0%, #507C24 100%);
        color: #fff !important;
        border-color: transparent;
        transform: translateY(-1px);
    }

    .ha-acc-actions .ha-btn-book {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 13px 20px;
        background: linear-gradient(135deg, #97BC17 0%, #507C24 100%);
        color: #fff !important;
        font-size: .88rem;
        font-weight: 700;
        letter-spacing: .06em;
        text-transform: uppercase;
        border-radius: 50px;
        text-decoration: none !important;
        transition: background .2s, transform .15s;
        border: none;
        cursor: pointer;
    }

    .ha-acc-actions .ha-btn-book:hover {
        filter: brightness(1.08);
        box-shadow: 0 6px 18px rgba(80,124,36,.35);
        transform: translateY(-1px);
    }

    /* Right image */
    .ha-dates-img-col {
        border-radius: 14px;
        overflow: hidden;
        box-shadow: 0 6px 28px rgba(0, 0, 0, .13);
        height: 100%;
    }

    .ha-dates-img-col img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        min-height: 420px;
    }

    @media (max-width:991px) {
        .ha-dates-img-col {
            margin-top: 32px;
        }

        .ha-dates-img-col img {
            min-height: 260px;
            max-height: 320px;
        }
    }
