/* Haritha course theme (shared, externalised) */
/* ═══════════════════════════════════════════════════════════════════
       DESIGN TOKENS
    ═══════════════════════════════════════════════════════════════════ */
    :root {
      --ha-green:      #507C24;
      --ha-dark:       #2d4a1e;
      --ha-olive:      #3d6b16;
      --ha-light:      #f4f8f0;
      --ha-cream:      #fdfbf7;
      --ha-border:     #e2edda;
      --ha-text:       #2c2c2c;
      --ha-muted:      #6b7a5e;
      --ha-orange:     #d97b2a;
      --ha-shadow-sm:  0 2px 12px rgba(80,124,36,.10);
      --ha-shadow:     0 4px 28px rgba(80,124,36,.13);
      --ha-shadow-lg:  0 8px 40px rgba(80,124,36,.16);
      --ha-radius:     14px;
      --ha-radius-sm:  8px;
      --ha-transition: .22s ease;
    }
/* Hero H1 — large screens only (clamp handles smaller) */
@media (min-width: 1200px) {
    .ha-hero h1 { font-size: 55px !important; }
}
/* ───────────────────────────────────────────────────────────────────
   Neutralize global theme (pink-theme.css) h1–h6 { font-size … !important }
   overrides that break this page's responsive heading sizes, esp. on mobile.
   Scoped to .ha-page so other pages are unaffected.
   ─────────────────────────────────────────────────────────────────── */
.ha-page h2:not(.ha-section-title) { font-size: 2rem !important; line-height: 1.3; }
.ha-page h3 { font-size: 1.5rem !important; line-height: 1.35; color: #43882b !important; }
.ha-page h3.font18 { font-size: 18px !important; }
/* Fix: .single-blog-post h3 in custom.css sets color:#444 with higher specificity than .txt-color-01 */
.ha-page .single-blog-post h3 { color: #43882b !important; }
@media (max-width: 767px) {
    .ha-page h2:not(.ha-section-title) { font-size: 1.5rem !important; }
    .ha-page h3 { font-size: 1.25rem !important; }
    .ha-page h3.font18 { font-size: 16px !important; }
    /* Let hero headline & tagline wrap naturally on phones instead of
       breaking at the desktop-tuned <br> (avoids awkward short lines). */
    .ha-hero h1 br, .ha-hero-tagline br { display: none; }
    /* Bigger breadcrumb tap targets for thumbs (was ~21px tall). */
    .ha-page .breadcrumb-item a,
    .ha-page .breadcrumb-item.active { display: inline-block; padding: 6px 2px; }
}
@media (max-width: 480px) {
    /* Eyebrow line ("Since 2009 • 5000+ ...") crowds into 2–3 lines at
       1.25rem uppercase + wide tracking on small phones — tighten it. */
    .ha-hero-tag {
        font-size: .8rem !important;
        letter-spacing: .12em;
        margin-bottom: 12px;
    }
    .ha-hero-location { font-size: .95rem; }
}
    /* ═══════════════════════════════════════════════════════════════════
       GLOBAL PAGE
    ═══════════════════════════════════════════════════════════════════ */
    .ha-page { font-family: 'Montserrat', sans-serif; color: var(--ha-text); overflow-x: clip; }
    .ha-page *, .ha-page *::before, .ha-page *::after { box-sizing: border-box; }

    /* ═══════════════════════════════════════════════════════════════════
       SECTION CHROME
    ═══════════════════════════════════════════════════════════════════ */
    .ha-section       { padding: 80px 0; }
    .ha-section-alt   { background: var(--ha-light); }
    .ha-section-cream { background: var(--ha-cream); }
    .ha-section-dark { background: var(--ha-green); color: #fff; }
    .ha-eyebrow {
      display: inline-block;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--ha-green);
      margin-bottom: 8px;
    }
    .ha-section-dark .ha-eyebrow { color: #a8d46e; }
    .ha-section-title {
      font-size: 2rem !important;
      font-weight: 700;
      color: var(--ha-dark);
      line-height: 1.25;
      margin-bottom: 16px;
      text-align: center !important;
    }
    .ha-section-dark .ha-section-title { color: #fff; }
    /* Hide bespoke dividers so the uploaded divider is used consistently */
    .hroom-divider, .hfood-divider, .hexc-divider, .hfaq-divider, .hgal-lotus,
    .hcta-title + img { display: none !important; }
    .ha-section-sub {
      font-size: 19px !important;
      margin: 0 auto 44px;
      text-align: center;
    }
    @media (max-width: 767px) {
      .ha-section-sub { font-size: 17px !important; }
    }

    /* ── HERO ──────────────────────────────────────────────────────── */
    .ha-hero {
      position: relative;
      min-height: 84vh;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      overflow: hidden;
    }
    .ha-hero-bg {
      position: absolute; inset: 0;
      background-size: cover;
      background-position: center;
      z-index: 0;
    }
    .ha-hero-bg::after {
      content: '';
      position: absolute; inset: 0;
      background: linear-gradient(to bottom, rgba(0,0,0,.55) 0%, rgba(0,0,0,.62) 60%, rgba(0,0,0,.78) 100%);
    }
    .ha-hero-body {
      position: relative; z-index: 2;
      text-align: center;
      padding: 90px 20px 40px;
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
    }
    .ha-hero-tag {
      font-size: 1.25rem;
      letter-spacing: .2em;
      color: rgba(255,255,255,.95);
      text-transform: uppercase;
      margin-bottom: 18px;
      font-weight: 600;
      text-shadow: 0 1px 8px rgba(0,0,0,.6); /* legibility over hero photo */
    }
    .ha-hero h1 {
      font-size: clamp(2rem, 5vw, 3.4rem) !important;
      font-weight: 800;
      color: #fff;
      line-height: 1.15;
      margin-bottom: 14px;
    }
    .ha-hero-location {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      color: rgba(255,255,255,.75);
      font-size: 1.25rem;
      letter-spacing: .12em;
      text-transform: uppercase;
      margin-bottom: 20px;
      font-weight: 500;
    }
    .ha-hero-location::before,
    .ha-hero-location::after {
      content: '';
      display: block;
      width: 60px;
      height: 1px;
      background: rgba(255,255,255,.4);
    }
    .ha-hero-tagline {
      font-size: 26px!important;
      color: rgba(255,255,255,.85);
      margin: 0 auto 32px;
      line-height: 1.6;
      text-align: center !important; /* override global p{text-align: left} */
      max-width: 760px;
    }
    .ha-btn-primary {
      display: inline-block;
      background: linear-gradient(135deg, #97BC17 0%, #507C24 100%);
      color: #fff !important;
      padding: 14px 36px;
      border-radius: 100px;
      font-size: 16px;
      font-weight: 600;
      letter-spacing: .3px;
      text-transform: none;
      border: 1px solid transparent;
      cursor: pointer;
      box-shadow: 0 4px 12px rgba(80,124,36,.25);
      transition: all .25s ease;
      text-decoration: none;
    }
    .ha-btn-primary:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(80,124,36,.42);
      filter: brightness(1.08);
      color: #fff !important;
      text-decoration: none;
    }
    .ha-btn-secondary {
      display: inline-block;
      background: #fff;
      color: #507C24 !important;
      padding: 14px 36px;
      border-radius: 100px;
      font-size: 16px;
      font-weight: 600;
      letter-spacing: .3px;
      text-transform: none;
      border: 1.5px solid #507C24;
      cursor: pointer;
      box-shadow: 0 4px 12px rgba(80,124,36,.12);
      transition: all .25s ease;
      text-decoration: none;
    }
    .ha-btn-secondary:hover {
      transform: translateY(-2px);
      background: linear-gradient(135deg, #97BC17 0%, #507C24 100%);
      border-color: transparent;
      box-shadow: 0 8px 24px rgba(80,124,36,.42);
      color: #fff !important;
      text-decoration: none;
    }

    /* ── Hero Stats Bar ────────────────────────────────────────────── */
    .ha-stats-bar {
      position: relative; z-index: 2;
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      gap: 8px;
      padding: 20px 20px 28px;
      flex-shrink: 0;
    }
    .ha-stat-chip {
      display: flex;
      align-items: center;
      gap: 10px;
      background: rgba(255,255,255,.12);
      backdrop-filter: blur(6px);
      border: 1px solid rgba(255,255,255,.2);
      border-radius: 50px;
      padding: 10px 20px;
      color: #fff;
      font-size: 1rem;
    }
    .ha-stat-chip i { color: var(--ha-green); font-size: .9rem; }
    .ha-stat-val { font-weight: 700; font-size: 1.25rem; }

    /* ── Quick Info Bar ─────────────────────────────────────────────── */
    .ha-info-bar {
      background: var(--ha-green);
      padding: 0;
    }
    .ha-info-bar-inner {
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
    }
    .ha-info-item {
      flex: 1;
      min-width: 180px;
      padding: 22px 28px;
      text-align: center;
      border-right: 1px solid rgba(255,255,255,.1);
    }
    .ha-info-item:last-child { border-right: none; }
    .ha-info-label {
      font-size: .9rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: rgb(255,255,255);
      margin-bottom: 4px;
    }
    .ha-info-val {
      font-size: 1rem;
      font-weight: 700;
      color: #fff;
    }

    /* ── Course Details Panel ───────────────────────────────────────── */
    .ha-course-details-card {
      background: #fff;
      border: 2px solid var(--ha-green);
      border-radius: 18px;
      overflow: hidden;
      color: var(--ha-text);
      box-shadow: 0 14px 38px rgba(45,77,24,.09);
      
    }
    .ha-cd-header {
      background: linear-gradient(135deg, #97BC17 0%, #507C24 100%);
      color: #fff;
      padding: 16px 20px;
      font-size: .9rem;
      font-weight: 700;
      letter-spacing: .18em;
      text-transform: uppercase;
      text-align: center;
    }
    .ha-cd-body { padding: 4px 0; }
    .ha-cd-row {
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      align-items: center;
      gap: 12px;
      padding: 12px 22px;
      border-bottom: 1px solid var(--ha-border);
    }
    .ha-cd-row:last-child { border-bottom: none; }
    .ha-cd-key { color: #507C24; font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; flex: 0 0 auto; }
    .ha-cd-val { font-size: .98rem; font-weight: 600; text-align: right; color: var(--ha-dark); }
    .ha-fee-block {
      background: #EEF5E8;
      padding: 18px 20px 8px;
      text-align: center;
      border-top: 1px solid var(--ha-border);
    }
    .ha-fee-label { font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: #7a8a63; font-weight: 700; margin-bottom: 12px; }
    .ha-fee-grid { display: flex; justify-content: center; gap: 24px; margin-bottom: 14px; }
    .ha-fee-amt { font-size: 1.55rem; font-weight: 800; color: var(--ha-dark); }
    .ha-fee-cur { font-size: .62rem; color: #7a8a63; margin-top: 3px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; }
    .ha-enroll-btn {
      display: block;
      background: linear-gradient(135deg, #97BC17 0%, #507C24 100%);
      color: #fff !important;
      text-align: center;
      padding: 14px;
      font-size: .74rem;
      font-weight: 700;
      letter-spacing: .1em;
      text-transform: uppercase;
      border-radius: 100px;
      margin: 18px 20px 8px;
      cursor: pointer;
      box-shadow: 0 6px 16px rgba(80,124,36,.28);
      transition: all .25s ease;
      text-decoration: none !important;
    }
    .ha-enroll-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(80,124,36,.42); filter: brightness(1.06); color: #fff !important; }

    /* ── Image Slider ──────────────────────────────────────────────── */
    .ha-img-slider { border-radius: var(--ha-radius); overflow: hidden; position: relative; }
    .ha-img-slider img { width: 100%; height: 558px; object-fit: cover; display: block; }
    @media (max-width:767px) { .ha-img-slider img { height: 260px; } }

    /* ── About Program ─────────────────────────────────────────────── */
    .ha-video-wrap {
      position: relative;
      border-radius: var(--ha-radius);
      overflow: hidden;
      box-shadow: var(--ha-shadow);
      min-width: 0;
    }
    .ha-video-wrap img {  display: block; }
    /* Clear fixed social-share icons on left */
    @media (min-width:992px) {
      .ha-section .container { padding-left: max(15px, env(safe-area-inset-left)); }
    }
    .ha-video-play {
      position: absolute;
      top: 50%; left: 50%;
      transform: translate(-50%,-50%);
      width: 64px; height: 64px;
      background: rgba(255,255,255,.92);
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      transition: transform .2s, background .2s;
      cursor: pointer;
    }
    .ha-video-play:hover { transform: translate(-50%,-50%) scale(1.1); background: #fff; }
    .ha-video-play i { color: var(--ha-green); font-size: 1.3rem; margin-left: 4px; }
    /* .ha-blockquote removed — unused */
    .ha-mini-cards { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-top: 24px; }
    @media (max-width:767px) { .ha-mini-cards { grid-template-columns: 1fr 1fr; } }
    .ha-mini-card {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      background: var(--ha-light);
      border-radius: 10px;
      padding: 14px;
    }
    .ha-mini-icon {
      width: 36px; height: 36px;
      background: rgba(80,124,36,.12);
      border-radius: 8px;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .ha-mini-icon i { color: var(--ha-green); font-size: .85rem; }
    .ha-mini-title { font-size: 1.1rem; font-weight: 700; color: var(--ha-dark); margin-bottom: 1px; }
    .ha-mini-sub { font-size: .8rem; font-weight:400; color: var(--ha-muted); }

    /* ════════════════════════════════════════════════════════════════
       "Advanced Ayurveda Therapy Diploma Course" — mobile UI polish
       Soft-UI: clear hierarchy, responsive 16:9 video, tidy 2×2 cards.
       Scoped to .ha-adv-diploma so no other section is affected.
       ════════════════════════════════════════════════════════════════ */
    @media (max-width: 767px) {
      /* Subtitle must sit below the title in hierarchy (was 22px > title) */
      .ha-adv-diploma .ha-section-sub {
        font-size: 17px !important; /* match global mobile section-sub size */
        line-height: 1.55;
        margin-bottom: 26px;
        max-width: 40ch;
        text-align: center !important; /* keep sub centered under centered title */
      }
      /* Body copy reads better left-aligned than justified on narrow screens */
      .ha-adv-diploma p { text-align: left; }
      /* Responsive video — replace the fixed 600px height with 16:9 */
      .ha-adv-diploma .ha-video-wrap img {
        height: auto !important;
        aspect-ratio: 16 / 9;
        object-fit: cover;
      }
      .ha-adv-diploma .ha-video-play { width: 56px; height: 56px; }
      .ha-adv-diploma .ha-video-play i { font-size: 1.1rem; }
      /* Soft-UI treatment for the info cards */
      .ha-adv-diploma .ha-mini-card {
        background: #fff;
        border: 1px solid var(--ha-border);
        box-shadow: 0 2px 10px rgba(80,124,36,.06);
        border-radius: 12px;
      }
    }
    @media (max-width: 480px) {
      /* Keep a compact 2×2 grid (override the global 1-column rule) and
         stack icon above text so titles don't get cramped */
      .ha-adv-diploma .ha-mini-cards { grid-template-columns: 1fr 1fr !important; gap: 10px; }
      .ha-adv-diploma .ha-mini-card { flex-direction: column; gap: 8px; padding: 14px 12px; }
      .ha-adv-diploma .ha-mini-icon { width: 40px; height: 40px; }
      .ha-adv-diploma .ha-mini-icon i { font-size: 1rem; }
      .ha-adv-diploma .ha-mini-title { font-size: .95rem; line-height: 1.25; }
      .ha-adv-diploma .ha-mini-sub { font-size: .75rem; line-height: 1.3; }
    }

    /* ── Feature Cards (Why Train) ─────────────────────────────────── */
    .ha-feat-card {
      background: #fff;
      border: 1.5px solid var(--ha-green);
      border-radius: 16px;
      overflow: hidden;
      padding: 20px 20px;
      box-shadow: var(--ha-shadow);
      height: 100%;
      transition: transform .25s;
    }
    .ha-feat-card:hover { transform: translateY(-4px); }
    .ha-feat-icon {
      width: 52px; height: 52px;
      background: var(--ha-light);
      border-radius: 12px;
      display: flex; align-items: center; justify-content: center;
      margin-bottom: 16px;
    }
    .ha-feat-icon i { color: var(--ha-green); font-size: 1.2rem; }
    .ha-feat-title { font-size: 18px; font-weight: 700; color: var(--ha-dark); margin-bottom: 6px; }
    .ha-feat-desc { font-size: 16px; line-height: 1.55; }
    @media (max-width: 767px) {
      .ha-feat-desc, .ha-transform-text { font-size: 17px !important; }
    }

    /* ── Who Is This For ───────────────────────────────────────────── */
    .ha-fit-card {
      border-radius: var(--ha-radius);
      background: #fff;
      box-shadow: var(--ha-shadow);
      padding: 28px;
    }
    .ha-fit-header {
      display: flex;
      align-items: center;
      gap: 14px;
      padding-bottom: 16px;
      border-bottom: 1px solid var(--ha-border);
      margin-bottom: 20px;
    }
    .ha-fit-icon {
      width: 44px; height: 44px;
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 1rem;
      flex-shrink: 0;
    }
    .ha-fit-icon.yes { background: rgba(80,124,36,.12); color: var(--ha-green); }
    .ha-fit-icon.no  { background: rgba(200,50,50,.08); color: #c03232; }
    .ha-fit-title-wrap { line-height: 1.2; }
    .ha-fit-title { font-size: 1rem; font-weight: 700; color: var(--ha-dark); }
    .ha-fit-sub { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
    .ha-fit-sub.yes { color: var(--ha-green); }
    .ha-fit-sub.no  { color: #c03232; }
    .ha-fit-list { list-style: none; padding: 0; margin: 0; }
    .ha-fit-list li {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      padding: 8px 0;
      font-size: .9rem;
      color: #444;
      border-bottom: 1px solid #f0f0f0;
    }
    .ha-fit-list li:last-child { border-bottom: none; }
    .ha-fit-list li i.yes { color: var(--ha-green); }
    .ha-fit-list li i.no  { color: #c03232; }

    /* ── Curriculum ────────────────────────────────────────────────── */
    .ha-curr-accordion .ha-curr-head {
      background: var(--ha-green);
      color: #fff;
      border-radius: 10px;
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 18px 22px;
      cursor: pointer;
      user-select: none;
    }
    .ha-curr-num {
      width: 32px; height: 32px;
      background: rgba(255,255,255,.2);
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: .85rem;
      font-weight: 700;
      flex-shrink: 0;
    }
    .ha-curr-head-title { flex: 1; font-size: 1rem; font-weight: 700; }
    .ha-curr-head i { transition: transform .3s; }
    .ha-curr-head[aria-expanded="true"] i { transform: rotate(180deg); }
    .ha-curr-accordion .ha-curr-head[aria-expanded="true"] { border-radius: 10px 10px 0 0; }
    .ha-curr-body {
      background: var(--ha-light);
      border: 1.5px solid var(--ha-green);
      border-top: none;
      border-radius: 0 0 10px 10px;
      padding: 24px;
    }
    .ha-curr-col-head {
      background: var(--ha-green);
      color: #fff!important;
      border-radius: 8px;
      padding: 10px 16px;
      font-size: .88rem;
      font-weight: 700;
      margin-bottom: 14px;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .ha-curr-col-head i { font-size: .75rem; }
    .ha-curr-list { list-style: none; padding: 0; margin: 0; }
    .ha-curr-list li {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      padding: 7px 0;
      font-size: .88rem;
      color: #333;
      border-bottom: 1px solid rgba(80,124,36,.1);
    }
    .ha-curr-list li:last-child { border-bottom: none; }
    .ha-curr-list li i { color: var(--ha-green); font-size: .75rem; margin-top: 3px; flex-shrink: 0; }
    .ha-curr-list li .ha-bullet { width: 16px; height: 16px; flex-shrink: 0; margin-top: 2px; }

    /* ── Daily Schedule ────────────────────────────────────────────── */
    .ha-schedule-wrap {
      background: #fff;
      border-radius: var(--ha-radius);
      box-shadow: var(--ha-shadow);
      overflow: hidden;
      height: 100%;
      border-left: 3px solid var(--ha-green);
    }
    .ha-schedule-table { width: 100%; border-collapse: collapse; }
    .ha-schedule-table thead tr { background: #f7f9f5; }
    .ha-schedule-table thead th {
      color: var(--ha-dark) !important;
      font-size: .8rem;
      font-weight: 700;
      letter-spacing: .1em;
      text-transform: uppercase;
      padding: 14px 20px;
      border: none !important;
      border-bottom: 2px solid var(--ha-border) !important;
    }
    .ha-schedule-table tbody tr {
      border-bottom: 1px solid #f0f3ec;
    }
    .ha-schedule-table tbody tr:last-child { border-bottom: none; }
    .ha-schedule-table td {
      padding: 14px 20px;
      font-size: 1rem;
      color: var(--ha-text);
      vertical-align: middle;
      border: none !important;
    }
    .ha-schedule-table td:first-child {
      width: 36%;
      font-weight: 600;
      color: #3a3a3a;
      font-size: .95rem;
      white-space: nowrap;
      font-variant-numeric: tabular-nums;
    }
    .ha-schedule-table td:last-child {
      color: var(--ha-text);
      font-size: 1rem;
      font-weight: 500;
    }
    /* Subtle alternating rows — barely-there tint */
    .ha-schedule-table tbody tr:nth-child(even) { background: #fafcf8; }

    .ha-schedule-img-col {
      border-radius: var(--ha-radius);
      overflow: hidden;
      box-shadow: var(--ha-shadow);
      height: 100%;
    }
    .ha-schedule-img-col img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 300px; }

    /* Tabs — clean underline style, no pill */
    .ha-schedule-tabs {
      border-bottom: 1px solid var(--ha-border);
      margin-bottom: 28px;
    }
    .ha-schedule-tabs .nav-pills {
      gap: 0;
      border-bottom: none;
    }
    .ha-schedule-tabs .nav-pills .nav-link {
      border-radius: 0;
      padding: 10px 28px;
      font-size: .88rem;
      font-weight: 600;
      color: var(--ha-muted);
      background: none;
      border-bottom: 3px solid transparent;
      margin-bottom: -1px;
      transition: color .2s, border-color .2s;
    }
    .ha-schedule-tabs .nav-pills .nav-link:hover { color: var(--ha-dark); }
    .ha-schedule-tabs .nav-pills .nav-link.active {
      color: var(--ha-dark);
      border-bottom-color: var(--ha-green);
      background: none;
    }

    /* ── Accommodation ─────────────────────────────────────────────── */
    .ha-accom-img {
      border-radius: var(--ha-radius);
      overflow: hidden;
      box-shadow: var(--ha-shadow);
    }
    .ha-accom-img img { width: 100%; height: 220px; object-fit: cover; display: block; transition: transform .4s; }
    .ha-accom-img:hover img { transform: scale(1.04); }

    /* ── Food Section ──────────────────────────────────────────────── */
    .ha-food-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }
    .ha-food-item { border-radius: 10px; overflow: hidden; position: relative; }
    .ha-food-item img { width: 100%; height: 180px; object-fit: cover; display: block; transition: transform .4s; }
    .ha-food-item:hover img { transform: scale(1.05); }

    /* ── Inclusions ────────────────────────────────────────────────── */
    .ha-incl-card {
      border-radius: 16px;
      overflow: hidden;
      box-shadow: 0 4px 24px rgba(0,0,0,.1);
      border: 1px solid rgba(80,124,36,.12);
      height: 100%;
    }
    .ha-incl-card-head {
      padding: 22px 24px 20px;
      display: flex;
      align-items: flex-start;
      gap: 14px;
    }
    .ha-incl-card-head.residential {
      background: linear-gradient(135deg, #507C24 0%, #2d4a1e 100%);
    }
    .ha-incl-card-head.nonresidential {
      background: linear-gradient(135deg, #3d6e1c 0%, #1e3810 100%);
    }
    .ha-incl-head-icon {
      width: 44px; height: 44px;
      background: rgba(255,255,255,.15);
      border-radius: 10px;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      font-size: 1.1rem;
      color: #fff;
    }
    .ha-incl-head-text { flex: 1; }
    .ha-incl-head-title {
      font-size: 1.2rem;
      font-weight: 800;
      color: #fff;
      letter-spacing: .02em;
      margin-bottom: 4px;
    }
    .ha-incl-head-sub {
      font-size: 1rem;
      color: rgba(255,255,255,.7);
    }
    .ha-incl-count {
      background: rgba(255,255,255,.2);
      color: #fff;
      font-size: .72rem;
      font-weight: 700;
      padding: 4px 10px;
      border-radius: 20px;
      white-space: nowrap;
      align-self: flex-start;
      margin-top: 2px;
    }
    .ha-incl-body { background: #fff; padding: 8px 0; }
    .ha-incl-list { list-style: none; padding: 0; margin: 0; }
    .ha-incl-list li {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 11px 24px;
      font-size: .88rem;
      color: #333;
      border-bottom: 1px solid #f4f7ef;
      transition: background .15s;
    }
    .ha-incl-list li:last-child { border-bottom: none; }
    .ha-incl-list li:hover { background: #f9fdf5; }
    .ha-incl-list li .ha-bullet { width: 18px; height: 18px; flex-shrink: 0; }

    /* ── STED ──────────────────────────────────────────────────────── */
    .ha-sted-section { background: var(--ha-light); }
    .ha-sted-cert {
      border-radius: var(--ha-radius);
      overflow: hidden;
      border: 3px solid var(--ha-green);
      box-shadow: var(--ha-shadow);
    }
    .ha-sted-cert img { width: 100%; display: block; }

    /* ── FAQ ───────────────────────────────────────────────────────── */
    .ha-faq-item {
      background: #fff;
      border-radius: var(--ha-radius-sm);
      border: 1px solid var(--ha-border);
      overflow: hidden;
      margin-bottom: 10px;
    }
    .ha-faq-q {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 18px 22px;
      cursor: pointer;
      font-size: 1.1rem;
      font-weight: 500;
      color: var(--ha-dark);
      gap: 12px;
    }
    .ha-faq-num {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 28px; height: 28px;
      background: var(--ha-light);
      border-radius: 50%;
      font-size: .78rem;
      font-weight: 700;
      color: var(--ha-green);
      flex-shrink: 0;
    }
    .ha-faq-q-text { flex: 1; }
    .ha-faq-chevron { color: var(--ha-green); transition: transform .3s; flex-shrink: 0; }
    .ha-faq-q[aria-expanded="true"] .ha-faq-chevron { transform: rotate(180deg); }
    .ha-faq-a {
      padding: 0 22px 18px 22px;
      font-size: .9rem;
      color: #444; /* WCAG AA: #444 on white = 5.74:1 — was #555 (4.2:1, failing) */
      line-height: 1.7;
    }
    .ha-faq-a p { margin: 0; }

    /* ── Transformation Cards ──────────────────────────────────────── */
    .ha-transform-card {
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.12);
      border-radius: var(--ha-radius);
      padding: 32px 24px;
      height: 100%;
    }
    .ha-transform-icon {
      width: 52px; height: 52px;
      background: rgba(255,255,255,.1);
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      margin-bottom: 18px;
    }
    .ha-transform-icon i { color: #a8d46e; font-size: 1.2rem; }
    .ha-transform-title { font-size: 20px; font-weight: 700; color: #fff; margin-bottom: 10px; }
    .ha-transform-text { font-size: 19px; line-height: 1.7; }

    /* ── Gallery ───────────────────────────────────────────────────── */
    .ha-gallery-item {
      border-radius: var(--ha-radius-sm);
      overflow: hidden;
      box-shadow: var(--ha-shadow);
    }
    .ha-gallery-item img { width: 100%; height: 220px; object-fit: cover; display: block; transition: transform .4s; }
    .ha-gallery-item:hover img { transform: scale(1.05); }

    /* ── T&C ───────────────────────────────────────────────────────── */
    .ha-tc-list { list-style: none; padding: 0; }
    .ha-tc-list li {
      display: flex;
      gap: 12px;
      padding: 10px 0;
      font-size: .9rem;
      color: #555;
      border-bottom: 1px solid var(--ha-border);
      line-height: 1.65;
    }
    .ha-tc-list li:last-child { border-bottom: none; }
    .ha-tc-list li i { color: var(--ha-green); font-size: .75rem; margin-top: 5px; flex-shrink: 0; }
    .ha-tc-list li img.ha-tc-bullet { width: 18px; height: 18px; margin-top: 3px; flex-shrink: 0; object-fit: contain; }

    /* ── Sticky Book Now ──────────────────────────────────────────── */
    .ha-sticky-cta {
      position: fixed;
      right: 0;
      top: 50%;
      transform: translateY(-50%);
      z-index: 999;
      display: flex;
      flex-direction: column;
      gap: 2px;
    }
    .ha-sticky-cta a {
      writing-mode: vertical-rl;
      text-orientation: mixed;
      background: var(--ha-green);
      color: #fff !important;
      padding: 16px 10px;
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: .1em;
      text-transform: uppercase;
      text-decoration: none !important;
      transition: background .2s;
      border-radius: 6px 0 0 6px;
    }
    .ha-sticky-cta a:hover { background: var(--ha-olive); }

    /* ── WhatsApp Floating Button ─────────────────────────────────── */
    .ha-whatsapp-float {
      position: fixed;
      bottom: 28px;
      left: 28px;
      z-index: 1000;
      width: 58px; height: 58px;
      background: #25D366;
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      box-shadow: 0 4px 20px rgba(37,211,102,.45);
      text-decoration: none !important;
      transition: transform .22s ease, box-shadow .22s ease;
    }
    .ha-whatsapp-float:hover {
      transform: scale(1.10);
      box-shadow: 0 8px 28px rgba(37,211,102,.55);
    }
    .ha-whatsapp-float svg { width: 30px; height: 30px; fill: #fff; }
    @media (max-width:767px) {
      .ha-whatsapp-float { display: none; }
    }

    /* ── Time badge in schedule table ────────────────────────────── */
    .ha-time-badge {
      display: inline-block;
      font-weight: 600;
      color: #3a3a3a;
      font-size: .85rem;
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
    }

    /* ── CTA Banner ────────────────────────────────────────────────── */
    .ha-cta-banner { background: var(--ha-green); padding: 32px 0; text-align: center; }
    .ha-cta-banner p { color: rgba(255,255,255,.85); margin-bottom: 20px; }

    /* ── Button Group ───────────────────────────────────────────────── */
    .ha-btn-group {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      align-items: center;
    }
    .ha-btn-group.centered { justify-content: center; }
    .ha-btn-primary, .ha-btn-secondary {
      box-shadow: 0 4px 14px rgba(0,0,0,.15);
    }
    .ha-btn-primary:focus, .ha-btn-secondary:focus {
      outline: 3px solid rgba(80,124,36,.4);
      outline-offset: 2px;
    }

    /* ── Check List ─────────────────────────────────────────────────── */
    .ha-check-list { list-style: none; padding: 0; margin: 0 0 20px; }
    .ha-check-list li {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 7px 0;
      font-size: .9rem;
      color: #444;
      border-bottom: 1px solid rgba(80,124,36,.08);
    }
    .ha-check-list li:last-child { border-bottom: none; }
    .ha-check-list li i { color: var(--ha-green); font-size: .8rem; flex-shrink: 0; }

    /* ── Marker List ────────────────────────────────────────────────── */
    .ha-marker-list { list-style: none; padding: 0; margin: 0 0 24px; }
    .ha-marker-list li {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 7px 0;
      font-size: .9rem;
      color: #444;
      border-bottom: 1px solid rgba(80,124,36,.08);
    }
    .ha-marker-list li:last-child { border-bottom: none; }
    .ha-marker-list li i { color: var(--ha-green); font-size: .8rem; flex-shrink: 0; }

    /* ── Excursions ────────────────────────────────────────────────── */
    .ha-excursion-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-bottom: 28px; }
    @media (max-width:767px) { .ha-excursion-grid { grid-template-columns: repeat(2,1fr); } }
    .ha-excursion-card {
      background: #fff;
      border: 1px solid rgba(80,124,36,.14);
      border-radius: 12px;
      padding: 18px 16px 14px;
      text-align: center;
      transition: box-shadow .2s, transform .2s;
      box-shadow: 0 2px 8px rgba(0,0,0,.06);
    }
    .ha-excursion-card:hover { box-shadow: 0 8px 24px rgba(80,124,36,.18); transform: translateY(-3px); }
    .ha-excursion-icon {
      width: 48px; height: 48px;
      background: linear-gradient(135deg,rgba(80,124,36,.12) 0%,rgba(80,124,36,.22) 100%);
      border-radius: 12px;
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 10px;
      font-size: 1.1rem;
      color: var(--ha-green);
    }
    .ha-excursion-label { font-size: 18px; font-weight: 500; color: #1a2e10; line-height: 1.3; }
    .ha-location-card {
      display: flex;
      align-items: flex-start;
      gap: 14px;
      background: var(--ha-light);
      border-radius: 12px;
      padding: 16px 18px;
      border-left: 4px solid var(--ha-green);
    }
    @media (max-width: 767px) { .ha-location-card { margin-bottom: 24px; } }
    .ha-location-card i { color: var(--ha-green); font-size: 1.2rem; margin-top: 2px; flex-shrink: 0; }
    .ha-location-title { font-size: .88rem; font-weight: 700; color: var(--ha-dark); margin-bottom: 4px; }
    .ha-location-text { font-size: .82rem; color: #555; line-height: 1.6; margin: 0; }
    .ha-excursion-img-wrap {
      position: relative;
      border-radius: 16px;
      overflow: hidden;
      box-shadow: 0 8px 32px rgba(0,0,0,.15);
      height: 100%;
    }
    .ha-excursion-img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 420px; }
    .ha-excursion-badge {
      position: absolute;
      bottom: 20px; left: 20px;
      background: rgba(255,255,255,.95);
      border-radius: 10px;
      padding: 10px 14px;
      display: flex;
      align-items: center;
      gap: 8px;
      box-shadow: 0 4px 16px rgba(0,0,0,.15);
    }
    .ha-excursion-badge i { color: var(--ha-green); font-size: 1rem; }
    .ha-excursion-badge-text { font-size: .78rem; }
    .ha-excursion-badge-title { font-weight: 700; color: #1a2e10; display: block; }
    .ha-excursion-badge-sub { color: #666; font-size: .72rem; }

    /* ── Fee Grid ──────────────────────────────────────────────────── */
    .ha-fee-col { text-align: center; flex: 1; }
    .ha-fee-divider { width: 1px; background: rgba(80,124,36,.25); align-self: stretch; }

    /* ── Owl Carousel Nav & Dots ────────────────────────────────────── */
    .ha-img-slider { position: relative; }
    .ha-img-slider .owl-nav button.owl-prev,
    .ha-img-slider .owl-nav button.owl-next {
      position: absolute !important;
      top: 50% !important;
      transform: translateY(-50%) !important;
      width: 42px !important; height: 42px !important;
      background: rgba(255,255,255,.92) !important;
      border-radius: 50% !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      box-shadow: 0 2px 10px rgba(0,0,0,.22) !important;
      border: none !important;
      margin: 0 !important;
      transition: background .2s, transform .2s !important;
      z-index: 5 !important;
      line-height: 1 !important;
    }
    .ha-img-slider .owl-nav button.owl-prev { left: 14px !important; }
    .ha-img-slider .owl-nav button.owl-next { right: 14px !important; }
    .ha-img-slider .owl-nav button:hover { background: #fff !important; transform: translateY(-50%) scale(1.08) !important; }
    .ha-img-slider .owl-nav button span { font-size: 1.4rem !important; color: var(--ha-dark) !important; line-height: 1 !important; }
    .ha-img-slider .owl-dots { position: absolute !important; bottom: 16px !important; width: 100% !important; text-align: center !important; margin: 0 !important; line-height: 0 !important; }
    .ha-img-slider.owl-theme .owl-dots .owl-dot span {
      display: inline-block !important;
      width: 9px !important;
      height: 9px !important;
      background: rgba(255,255,255,.6) !important;
      border: 1px solid rgba(255,255,255,.85) !important;
      border-radius: 50% !important;
      margin: 0 5px !important;
      box-shadow: 0 1px 4px rgba(0,0,0,.28) !important;
      transition: width .3s ease, background .3s ease, border-radius .3s ease !important;
    }
    .ha-img-slider.owl-theme .owl-dots .owl-dot.active span {
      width: 26px !important;
      height: 9px !important;
      border-radius: 6px !important;
      background: linear-gradient(90deg, #97BC17 0%, #507C24 100%) !important;
      border-color: rgba(255,255,255,.9) !important;
    }
    .ha-img-slider.owl-theme .owl-dots .owl-dot:hover span { background: rgba(255,255,255,.9) !important; }

    /* ── Curriculum Chevron ─────────────────────────────────────────── */
    .ha-curr-head .ha-chevron { transition: transform .3s; }
    .ha-curr-head[aria-expanded="true"] .ha-chevron { transform: rotate(180deg); }

    /* ── Course Details Card ────────────────────────────────────────── */
    .ha-course-details-card {
      display: flex;
      flex-direction: column;
      height: 100%;
      background: #fff;
      box-shadow: 0 14px 38px rgba(45,77,24,.09);
    }
    .ha-cd-body { flex: 1; }

    /* ── Responsive ─────────────────────────────────────────────────── */
    @media (min-width:1400px) {
      .ha-section { padding: 60px 0; } 
    }
    @media (max-width:1199px) {
      .ha-hero h1 { font-size: clamp(1.9rem, 4vw, 2.8rem) !important; }
    }
    @media (max-width:991px) {
      .ha-section { padding: 60px 0; }
      .ha-hero { min-height: 72vh; }
      /* The mobile header (green bar + nav) is position:fixed ≈94px tall and
         overlaps the top of the page. The hero isn't inside .inner-page-wrapper,
         so it doesn't get the JS margin-top offset — reserve the clearance here
         so the first line ("Since 2009…") isn't hidden behind the header. */
      .ha-hero .ha-hero-body { padding-top: 143px !important; }
      .ha-mini-cards { grid-template-columns: 1fr; }
      .ha-course-details-card { margin-top: 28px; height: auto; }
    }
    @media (max-width:767px) {
      .ha-section { padding: 44px 0; }
      .ha-section-title { font-size: 1.55rem !important; }
      .ha-info-item { min-width: 50%; border-bottom: 1px solid rgba(255,255,255,.08); }
      .ha-info-item:nth-child(even) { border-right: none; }
      .ha-food-grid { grid-template-columns: 1fr; }
      .ha-sticky-cta {
        position: fixed; bottom: 0; left: 0; right: 0; z-index: 999;
        display: flex; flex-direction: row !important; gap: 0;
        box-shadow: 0 -2px 12px rgba(0,0,0,.15);
        height: 52px;
        transform: none !important;
        top: auto !important;
      }
      .ha-sticky-cta a {
        flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px;
        padding: 0 10px; font-size: .88rem; font-weight: 700; text-decoration: none;
        color: #fff; border-radius: 0; height: 52px;
        writing-mode: horizontal-tb !important;
        text-orientation: mixed !important;
        letter-spacing: 0 !important;
      }
      .ha-sticky-cta a.ha-scta-book {
        background: linear-gradient(135deg, #97BC17 0%, #507C24 100%);
      }
      .ha-sticky-cta a.ha-scta-wa {
        background: #25D366;
      }
      .ha-fee-amt { font-size: 1.4rem; }
      .ha-hero-body { padding: 60px 16px 30px; }
      .ha-hero-tagline { font-size: 1.05rem !important; }
      .ha-hero-tagline br { display: none; } /* let tagline wrap naturally on mobile */
      .ha-hero-tag { font-size: 1rem; }
      .ha-hero-location { font-size: 1rem; }
      .ha-stats-bar { padding: 16px 16px 24px; }
      .ha-stat-chip { font-size: .75rem; padding: 8px 14px; }
      .ha-btn-group { gap: 10px; }
      .ha-include-tab-header { grid-template-columns: 1fr; }
      .ha-include-tab-btn { border-bottom: 1px solid var(--ha-border); }
      .ha-include-tab-btn:last-child { border-bottom: none; }
    }
    @media (max-width:480px) {
      .ha-section { padding: 36px 0; }
      .ha-section-title { font-size: 1.35rem !important; text-align: center !important;}
      .ha-hero h1 { font-size: 1.7rem !important; }
      .ha-hero-tagline { font-size: .95rem !important; }
      .ha-feat-card { padding: 20px 16px; }
      .ha-fit-card { padding: 20px 16px; }
      .ha-fee-grid { gap: 16px; }
    }

    /* ── 45-Day vs 90-Day comparison: stacked cards on mobile (no h-scroll) ── */
    @media (max-width: 767px) {
      .ha-cmp-wrap { overflow-x: visible !important; }
      .ha-cmp-table { box-shadow: none !important; border-radius: 0 !important; }
      .ha-cmp-table, .ha-cmp-table tbody { display: block; width: 100%; }
      .ha-cmp-table thead { display: none; }
      .ha-cmp-table tr {
        display: flex;
        flex-wrap: wrap;
        margin-bottom: 12px;
        border-radius: 12px;
        overflow: hidden;
        border: 1px solid var(--ha-border) !important;
        box-shadow: 0 2px 10px rgba(80,124,36,.08);
        background: #fff !important;
      }
      .ha-cmp-table td { display: block; border-bottom: none !important; }
      /* Feature name → full-width card header */
      .ha-cmp-table td:first-child {
        flex: 0 0 100%;
        background: var(--ha-dark) !important;
        color: #fff !important;
        text-align: center !important;
        font-weight: 700 !important;
        font-size: 14px !important;
        padding: 9px 12px !important;
      }
      /* The two programs → side-by-side labeled columns */
      .ha-cmp-table td:nth-child(2),
      .ha-cmp-table td:nth-child(3) {
        flex: 1 1 50%;
        text-align: center !important;
        font-size: 14px !important;
        padding: 11px 8px !important;
        line-height: 1.35;
      }
      .ha-cmp-table td:nth-child(2) { border-right: 1px solid var(--ha-border) !important; }
      .ha-cmp-table td:nth-child(2)::before,
      .ha-cmp-table td:nth-child(3)::before {
        content: attr(data-label);
        display: block;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: .05em;
        text-transform: uppercase;
        color: var(--ha-green);
        margin-bottom: 3px;
      }
    }

    /* ── Comprehensive mobile fixes ─────────────────────────────────── */
    @media (max-width: 767px) {

      /* Generic heading caps — override pink-theme h2/h3 !important (placed
         late so source order wins). Section titles handled separately. */
      .ha-page h2:not(.ha-section-title) { font-size: 1.5rem !important; }
      .ha-page h3:not(.font18) { font-size: 1.25rem !important; }

      /* Stats bar: 2×2 grid of compact stacked tiles (icon → value → label) */
      .ha-stats-bar { gap: 8px; }
      .ha-stat-chip {
        flex: 0 0 calc(50% - 4px);
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        gap: 1px;
        border-radius: 10px;
        padding: 7px 8px !important;
        font-size: .62rem !important;
        line-height: 1.2;
      }
      .ha-stat-chip i { font-size: .8rem; }
      .ha-stat-chip span { display: block; }
      .ha-stat-val { font-size: .85rem !important; margin-bottom: 0; }

      /* mini-cards: keep 2×2 (override the 991px 1-col rule) */
      .ha-mini-cards { grid-template-columns: 1fr 1fr !important; }

      /* Curriculum columns: force stack */
      .ha-curr-body .col-lg-6 { flex: 0 0 100%; max-width: 100%; }

      /* Upcoming Dates: price table horizontal scroll */
      .ha-price-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
      .ha-price-table { min-width: 480px; }

      /* Schedule section: stack schedule table + image */
      .ha-schedule-section .col-lg-7,
      .ha-schedule-section .col-lg-5 { flex: 0 0 100%; max-width: 100%; }

      /* Hero buttons: stack on very small */
      .ha-btn-group { flex-direction: row; align-items: center; flex-wrap: nowrap; justify-content: center; gap: 10px; }
      .ha-btn-group .ha-btn-primary, .ha-btn-group .ha-btn-secondary { flex: 1 1 0; width: auto; max-width: 220px; text-align: center; white-space: nowrap; padding: 12px 14px; font-size: 15px; }

      /* About Haritha: stack text + image */
      .ha-about-cert .col-lg-7,
      .ha-about-cert .col-lg-5 { flex: 0 0 100%; max-width: 100%; }

      /* Info bar: 2×2 grid */
      .ha-info-item { flex: 0 0 50%; border-right: 1px solid rgba(255,255,255,.1); padding: 13px 10px; }
      .ha-info-item:nth-child(2n) { border-right: none; }
      /* Concise + readable info cells on mobile */
      .ha-info-label { font-size: .58rem; letter-spacing: .1em; margin-bottom: 2px; color: rgba(255,255,255,.68); }
      .ha-info-val { font-size: .82rem; line-height: 1.25; }

      /* Section title line-height */
      .ha-section-title { line-height: 1.3; }

      /* Excursion grid: 2 cols already, ensure no overflow */
      .ha-excursion-grid { grid-template-columns: repeat(2,1fr) !important; }
      .ha-excursion-label { font-size: 14px; }

      /* International support grid */
      .ha-int-grid .col-md-6,
      .ha-int-grid .col-lg-3 { flex: 0 0 100%; max-width: 100%; }

      /* Review cards: full width */
      .ha-review-card { padding: 20px 16px; }

      /* Sticky CTA clears content above */
      body { padding-bottom: 60px; }

      /* Fix long email links overflowing in tc-list */
      .ha-tc-list li span,
      .ha-tc-list li a { word-break: break-all; overflow-wrap: break-word; }
    }

    @media (max-width: 480px) {
      .ha-stat-chip { flex: 0 0 calc(50% - 5px); } /* keep 2×2 tiles, not full-width */
      .ha-mini-cards { grid-template-columns: 1fr !important; }
      .ha-excursion-grid { grid-template-columns: 1fr !important; }
    }


    /* ── Intro decorative card (shared: accommodations, testimonials, reviews) ── */
    .ha-acf-intro-card {
        position: relative;
        text-align: center;
        margin: 0 auto 32px;
    }
    .ha-acf-corner {
        position: absolute;
        width: 14px; height: 14px;
        border-color: var(--ha-green);
        border-style: solid;
    }
    .ha-acf-corner.tl { top: 6px; left: 6px; border-width: 2px 0 0 2px; }
    .ha-acf-corner.tr { top: 6px; right: 6px; border-width: 2px 2px 0 0; }
    .ha-acf-corner.bl { bottom: 6px; left: 6px; border-width: 0 0 2px 2px; }
    .ha-acf-corner.br { bottom: 6px; right: 6px; border-width: 0 2px 2px 0; }
    .ha-acf-pill {
        display: inline-flex; align-items: center; gap: 6px;
        background: linear-gradient(135deg, var(--ha-green) 0%, var(--ha-dark) 100%);
        color: #fff;
        font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
        padding: 7px 20px; border-radius: 50px;
        margin-bottom: 16px;
    }
    .ha-acf-tagline {
        font-size: 1.05rem; font-style: italic; color: #555; line-height: 1.7; margin: 0;
    }

    /* ════════════════════════════════════════════════════════════════
       Desktop (≥768px): keep the original large display heading sizes.
       Mobile (≤767px) keeps the responsive sizes defined above.
       Placed last so it overrides the earlier responsive heading rules.
       ════════════════════════════════════════════════════════════════ */
    @media (min-width: 768px) {
        .ha-hero h1 { font-size: 68px !important; }
        /* Elegant, cleaner section headings (was 60px — too heavy) */
        .ha-section-title { font-size: 2.5rem !important; line-height: 1.2 !important; }
        .ha-page h2:not(.ha-section-title) { font-size: 2.5rem !important; line-height: 1.2 !important; }
        /* H3 sub-headings (global theme forces 24px — too big next to body text) */
        .ha-page h3:not(.font18) { font-size: 1.35rem !important; line-height: 1.3 !important; }
    }
    /* H1 & H2 heading font family across all course/retreat pages */
    .ha-page h1,
    .ha-page .ha-hero h1,
    .ha-page h2,
    .ha-page .ha-section-title { font-family: 'Lustria', serif !important; }
