/*
 * ISDM site-wide theme (theme-03 public pages).
 * Loaded by main.php (all inner pages) and pages/v2/head_v2.php (homepage).
 * Everything is scoped to body.isdm-site so admin/CRM/student panels, which do
 * not use this layout, are never affected.
 *
 * Sections: 1 tokens · 2 base typography · 3 utilities & buttons · 4 header ·
 * 5 drawer · 6 footer · 7 legacy page theming · 8 responsive · 9 reduced motion
 */

/* ---------- 1. Tokens ---------- */
.isdm-site {
  /* Brand */
  --brand-primary:        #08516E;
  --brand-primary-dark:   #063D54;
  --brand-primary-light:  #0E6E8F;
  --brand-yellow:         #F0B811;
  --brand-yellow-hover:   #D9A50C;
  --brand-yellow-soft:    #FDF3D0;
  --brand-green:          #038C43;
  --brand-pink:           #CB2B86;
  --brand-sky:            #24A0D9;

  /* Neutrals */
  --ink:         #13303D;
  --ink-strong:  #0B2633;
  --muted:       #546B76;
  --subtle:      #8A9BA4;
  --border:      #DCE8EE;
  --border-soft: #EAF1F4;
  --bg:          #FFFFFF;
  --bg-alt:      #F2F7F9;
  --bg-hover:    #EAF3F7;
  --on-dark:     #C9DFE8;

  /* Gradients */
  --grad-dark: linear-gradient(135deg, #063D54 0%, #08516E 55%, #0E6E8F 100%);
  --grad-hero: radial-gradient(900px 420px at 80% 40%, rgba(240,184,17,.10), transparent 62%),
               linear-gradient(180deg, #F2F7F9 0%, #FFFFFF 72%);
  --stripe-nxt: linear-gradient(90deg, #038C43 0 33.33%, #F0B811 33.33% 66.66%, #CB2B86 66.66% 100%);

  /* Shape & depth */
  --radius-sm: 8px; --radius: 12px; --radius-lg: 18px; --radius-xl: 24px; --radius-pill: 999px;
  --shadow-header:  0 1px 8px rgba(6,61,84,.16);
  --shadow-card:    0 14px 40px rgba(8,81,110,.08);
  --shadow-pop:     0 18px 44px rgba(8,81,110,.14);
  --shadow-primary: 0 10px 24px -8px rgba(8,81,110,.45);
  --shadow-yellow:  0 4px 12px rgba(240,184,17,.35);
  --container: 1180px;

  /* Legacy theme variables (main.php :root) remapped to the brand palette */
  --primary:     var(--brand-primary);
  --secondary:   var(--brand-pink);
  --accent:      var(--brand-yellow);
  --text:        var(--ink);
  --card:        #FFFFFF;
  --footer-dark: var(--brand-primary-dark);
}

/* ---------- 2. Base typography ---------- */
.isdm-site {
  margin: 0;
  font-family: "Poppins", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  font-weight: 400;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
/* modules/site/views/common-header.php forces `body { font-family: 'Reem Kufi' !important }`
   for every area; body.isdm-site out-ranks it on theme-03 public pages only. */
body.isdm-site { font-family: "Poppins", "Segoe UI", system-ui, -apple-system, Arial, sans-serif !important; }
.isdm-site h1, .isdm-site h2, .isdm-site h3, .isdm-site h4, .isdm-site h5, .isdm-site h6,
.isdm-site button, .isdm-site input, .isdm-site select, .isdm-site textarea,
.isdm-site .btn, .isdm-site .title, .isdm-site .pageTitle, .isdm-site .secTitle, .isdm-site .widgetTitle {
  font-family: inherit;
}
.isdm-site h1, .isdm-site h2, .isdm-site h3, .isdm-site h4 { letter-spacing: -.3px; line-height: 1.25; }
.isdm-site a:focus-visible, .isdm-site button:focus-visible, .isdm-site summary:focus-visible,
.isdm-site input:focus-visible, .isdm-site select:focus-visible, .isdm-site textarea:focus-visible,
.isdm-site .btn:focus-visible { outline: 3px solid var(--brand-yellow); outline-offset: 3px; box-shadow: none; }

/* ---------- 3. Utilities & buttons ---------- */
.isdm-site .isdm-skip-link {
  position: fixed; z-index: 2000; top: 8px; left: 8px; padding: 10px 16px; border-radius: var(--radius-sm);
  background: var(--brand-primary-dark); color: #fff; font-weight: 600; transform: translateY(-160%); transition: transform .15s;
}
.isdm-site .isdm-skip-link:focus { transform: none; color: #fff; }
.isdm-site #isdmMain:focus { outline: none; }
.isdm-site .isdm-container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: 28px; }
.isdm-site .isdm-hl { color: inherit; font-style: normal; box-shadow: inset 0 -12px 0 var(--brand-yellow); padding: 0 2px; }
.isdm-site .isdm-period { color: var(--brand-yellow); }
.isdm-site .isdm-eyebrow {
  display: inline-block; margin-bottom: 14px; padding: 5px 14px; border-radius: 30px;
  background: var(--brand-yellow-soft); color: var(--brand-primary);
  font-size: 12.5px; font-weight: 600; letter-spacing: 1.4px; text-transform: uppercase; line-height: 1.5;
}
.isdm-site .isdm-eyebrow-dark { background: rgba(240,184,17,.16); color: var(--brand-yellow); }
.isdm-site .isdm-icon-circle {
  display: inline-grid; place-items: center; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%;
  background: var(--brand-yellow-soft); color: var(--brand-primary); font-size: 18px;
}
.isdm-site .isdm-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 15px 26px; border-radius: var(--radius); border: 1.5px solid transparent;
  font-size: 15.5px; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer;
  transition: background-color .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.isdm-site .isdm-btn:hover { transform: translateY(-2px); text-decoration: none; }
.isdm-site .isdm-btn-primary { background: var(--brand-primary); color: #fff; box-shadow: var(--shadow-primary); }
.isdm-site .isdm-btn-primary:hover { background: var(--brand-primary-dark); color: #fff; }
.isdm-site .isdm-btn-accent { background: var(--brand-yellow); color: var(--brand-primary-dark); border-radius: var(--radius-sm); box-shadow: var(--shadow-yellow); }
.isdm-site .isdm-btn-accent:hover { background: var(--brand-yellow-hover); color: var(--brand-primary-dark); }
.isdm-site .isdm-btn-outline { background: #fff; color: var(--brand-primary); border-color: var(--brand-primary); }
.isdm-site .isdm-btn-outline:hover { background: var(--brand-primary); color: #fff; }
.isdm-site .isdm-btn-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
.isdm-site .isdm-btn-ghost:hover { background: #fff; color: var(--brand-primary-dark); border-color: #fff; }

/* ---------- 4. Header ---------- */
/* Neutralise the legacy element rule `header { gradient; shadow; overflow:hidden; ::before/::after orbs }`. */
.isdm-site header.isdm-header {
  position: sticky; top: 0; z-index: 1000; overflow: visible; margin: 0; padding: 0; border: 0;
  background: #fff; color: var(--ink); box-shadow: none; font-size: 16px; line-height: 1.65;
}
.isdm-site header.isdm-header::before, .isdm-site header.isdm-header::after { content: none; display: none; }
.isdm-site .isdm-header ul { margin: 0; padding: 0; list-style: none; }
.isdm-site .isdm-header p { margin: 0; }
.isdm-site .isdm-header a { text-decoration: none; }

/* 4a. Ticker */
/* Dark shade of the logo pink (#CB2B86) so white text and the light-yellow highlights stay readable (AA). */
.isdm-site .isdm-ticker { height: 34px; overflow: hidden; background: #A11F6B; color: #FDEAF4; font-size: 12.5px; }
.isdm-site .isdm-ticker-track { display: flex; width: max-content; height: 100%; animation: isdm-ticker 40s linear infinite; }
.isdm-site .isdm-ticker:hover .isdm-ticker-track, .isdm-site .isdm-ticker:focus-within .isdm-ticker-track { animation-play-state: paused; }
.isdm-site .isdm-ticker-group { display: flex; align-items: center; gap: 48px; padding: 0 24px; }
.isdm-site .isdm-ticker-group li { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.isdm-site .isdm-ticker-group li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--brand-yellow); }
.isdm-site .isdm-ticker a { color: inherit; line-height: 34px; }
.isdm-site .isdm-ticker a:hover { color: #fff; }
.isdm-site .isdm-ticker strong { color: #FFE9A3; font-weight: 700; }
@keyframes isdm-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* 4b. Main bar (wider than the page container: logo + 5 items + More + call + login + CTA need ~1,380px) */
.isdm-site .isdm-mainbar { position: relative; background: #fff; box-shadow: var(--shadow-header); }
.isdm-site .isdm-mainbar-inner { display: flex; align-items: center; gap: 20px; min-height: 72px; padding-block: 10px; max-width: 1440px; }
.isdm-site .isdm-logo { display: inline-flex; flex: 0 0 auto; }
.isdm-site .isdm-logo img { display: block; width: auto; height: 52px; max-width: none; object-fit: contain; }
/* 4c. "19 Years of Excellence" / "1st AI Training Institute" flip badge beside the logo (markup: header_v2.php) */
.isdm-site .isdm-hbadge { flex: 0 0 auto; display: block; width: 176px; height: 54px; margin-left: -6px; perspective: 800px; }
.isdm-site .isdm-hbadge-card { position: relative; display: block; width: 100%; height: 100%; transform-style: preserve-3d; animation: isdm-hbadge-flip 8s cubic-bezier(.65,0,.35,1) infinite; }
.isdm-site .isdm-hbadge-face {
  position: absolute; inset: 0; display: flex; align-items: center; gap: 8px; padding: 4px 12px 4px 5px; overflow: hidden;
  border: 1.5px solid var(--brand-yellow); border-radius: 12px; color: #fff; font-family: Poppins, system-ui, sans-serif;
  background: linear-gradient(135deg, #063D54 0%, #08516E 60%, #0E6E8F 100%);
  box-shadow: 0 4px 12px rgba(6,61,84,.25), inset 0 0 0 1px rgba(255,233,163,.2);
  -webkit-backface-visibility: hidden; backface-visibility: hidden;
}
.isdm-site .isdm-hbadge-back { transform: rotateY(180deg); background: linear-gradient(135deg, #7E1554 0%, #A11F6B 60%, #CB2B86 100%); } /* logo pink */
.isdm-site .isdm-hbadge-face::after { /* shine sweep */
  content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 40px; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent); animation: isdm-hbadge-shine 4s ease-in-out infinite;
}
.isdm-site .isdm-hbadge-medal { flex: 0 0 auto; display: block; width: 44px; height: 46px; }
.isdm-site .isdm-hbadge-medal svg { display: block; width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 2px 3px rgba(0,0,0,.3)); }
.isdm-site .isdm-hbadge-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.12; text-transform: uppercase; white-space: nowrap; }
.isdm-site .isdm-hbadge-text small { color: #fff; font-size: 10.5px; font-weight: 600; letter-spacing: .08em; }
.isdm-site .isdm-hbadge-text b { color: var(--brand-yellow); font-size: 15px; font-weight: 800; letter-spacing: .03em; }
.isdm-site .isdm-hbadge-back .isdm-hbadge-text b, .isdm-site .isdm-hbadge-back .isdm-hbadge-m b { color: #FFE9A3; } /* AA on pink */
.isdm-site .isdm-hbadge-back .isdm-hbadge-m b { text-transform: none; } /* keep "1st" lowercase */
.isdm-site .isdm-hbadge-m { display: none; }
@keyframes isdm-hbadge-flip {
  0%, 40% { transform: rotateY(0deg); }     /* "19 Years of Excellence" */
  50%, 90% { transform: rotateY(180deg); }  /* "1st AI Training Institute" */
  100% { transform: rotateY(360deg); }      /* back to the first badge */
}
@keyframes isdm-hbadge-shine { 0%, 25% { transform: translateX(-60px) skewX(-18deg); } 55%, 100% { transform: translateX(220px) skewX(-18deg); } }
/* Two-line menu labels ("Learn with" / "AI") — switched on by the width tiers below */
.isdm-site .isdm-nl { display: inline; }
.isdm-site .isdm-nav { flex: 1 1 auto; display: flex; justify-content: center; min-width: 0; }
.isdm-site .isdm-nav-list { display: flex; align-items: center; gap: 30px; }
.isdm-site .isdm-nav-item { position: relative; }
.isdm-site .isdm-nav-link {
  position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 14px 0; background: none; border: 0;
  color: var(--ink); font-size: 15px; font-weight: 400; line-height: 1.2; white-space: nowrap; text-decoration: none; cursor: pointer;
}
.isdm-site .isdm-nav-link:hover { color: var(--brand-primary); text-decoration: none; }
.isdm-site .isdm-nav-link::after {
  content: ""; position: absolute; left: 0; bottom: 8px; width: 100%; height: 2px; background: var(--brand-yellow);
  transform: scaleX(0); transform-origin: left; transition: transform .2s;
}
.isdm-site .isdm-nav-item:hover > .isdm-nav-link, .isdm-site .isdm-nav-item:focus-within > .isdm-nav-link,
.isdm-site .isdm-nav-item.is-open > .isdm-nav-link, .isdm-site .isdm-nav-link[aria-current="page"] { color: var(--brand-primary); }
.isdm-site .isdm-nav-item:hover > .isdm-nav-link::after, .isdm-site .isdm-nav-item:focus-within > .isdm-nav-link::after,
.isdm-site .isdm-nav-item.is-open > .isdm-nav-link::after, .isdm-site .isdm-nav-link[aria-current="page"]::after { transform: scaleX(1); }
.isdm-site .isdm-caret { flex: 0 0 auto; color: var(--subtle); transition: transform .2s; }
.isdm-site .isdm-nav-item.is-open .isdm-caret, .isdm-site .isdm-acc-toggle[aria-expanded="true"] .isdm-caret { transform: rotate(180deg); }
.isdm-site .isdm-new {
  display: inline-block; margin-left: 2px; padding: 3px 7px; border-radius: var(--radius-pill);
  background: var(--brand-green); color: #fff; font-size: 10px; font-weight: 800; line-height: 1; letter-spacing: .3px;
}

/* Dropdown panels */
.isdm-site .isdm-drop {
  position: absolute; z-index: 1010; top: calc(100% + 6px); left: -16px; min-width: 240px; padding: 10px;
  display: grid; gap: 2px; background: #fff; border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-pop);
  opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .18s, transform .18s, visibility .18s;
}
.isdm-site .isdm-drop::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; } /* hover bridge */
.isdm-site .isdm-has-drop:hover > .isdm-drop, .isdm-site .isdm-has-drop:focus-within > .isdm-drop,
.isdm-site .isdm-nav-item.is-open > .isdm-drop, .isdm-site .isdm-login.is-open > .isdm-drop { opacity: 1; visibility: visible; transform: translateY(0); }
.isdm-site .isdm-has-drop.is-suppressed > .isdm-drop { opacity: 0; visibility: hidden; transform: translateY(8px); }
.isdm-site .isdm-drop a {
  display: block; padding: 9px 12px; border-radius: 10px; color: var(--ink); font-size: 14px; font-weight: 500;
  line-height: 1.35; text-decoration: none; white-space: nowrap;
}
.isdm-site .isdm-drop a:hover, .isdm-site .isdm-drop a:focus-visible { background: var(--bg-hover); color: var(--brand-primary); }
.isdm-site .isdm-drop-wide { grid-template-columns: repeat(2, minmax(0, 1fr)); width: 500px; gap: 4px 16px; }
.isdm-site .isdm-drop-col { display: grid; align-content: start; gap: 2px; }
.isdm-site .isdm-drop-heading { margin: 4px 12px 6px; color: var(--subtle); font-size: 11.5px; font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase; }
.isdm-site .isdm-drop a.isdm-more-call {
  grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; margin: 0 0 6px; padding: 10px 12px;
  border-radius: 10px; background: var(--brand-yellow-soft); color: var(--brand-primary-dark); text-decoration: none;
}
.isdm-site .isdm-drop a.isdm-more-call:hover, .isdm-site .isdm-drop a.isdm-more-call:focus-visible { background: #FBE7A6; color: var(--brand-primary-dark); }
.isdm-site .isdm-more-call .isdm-call-icon { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--brand-primary); color: var(--brand-yellow); }
.isdm-site .isdm-more-call small { display: block; color: var(--muted); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; line-height: 1.3; }
.isdm-site .isdm-more-call b { display: block; font-size: 16px; font-weight: 700; line-height: 1.3; }
.isdm-site .isdm-mega { grid-template-columns: repeat(2, minmax(0, 1fr)); width: 520px; left: auto; right: -40px; gap: 4px 16px; padding: 16px; }
.isdm-site .isdm-drop-right { left: auto; right: 0; }

/* Actions */
.isdm-site .isdm-actions { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; margin-left: auto; }
.isdm-site .isdm-call {
  display: inline-flex; align-items: center; gap: 7px; padding: 10px 15px; border-radius: var(--radius-pill);
  background: var(--brand-primary); color: #fff; border: 1px solid rgba(240,184,17,.5);
  font-size: 13px; font-weight: 600; line-height: 1; white-space: nowrap; text-decoration: none; transition: background-color .2s, color .2s;
}
.isdm-site .isdm-call-icon { display: inline-flex; color: var(--brand-yellow); }
.isdm-site .isdm-call:hover { background: var(--brand-primary-dark); color: var(--brand-yellow); text-decoration: none; }
.isdm-site .isdm-login { position: relative; }
.isdm-site .isdm-login-toggle {
  display: inline-flex; align-items: center; gap: 5px; padding: 9px 4px; border: 0; border-radius: var(--radius-sm);
  background: transparent; color: var(--muted); font-size: 14px; font-weight: 500; line-height: 1.2; cursor: pointer; white-space: nowrap;
}
.isdm-site .isdm-login-toggle:hover, .isdm-site .isdm-login.is-open .isdm-login-toggle { color: var(--brand-primary); }
.isdm-site .isdm-cta {
  display: inline-flex; align-items: center; justify-content: center; padding: 12px 22px; border-radius: var(--radius-sm);
  background: var(--brand-yellow); color: var(--brand-primary-dark); box-shadow: var(--shadow-yellow);
  font-size: 15px; font-weight: 600; line-height: 1.2; white-space: nowrap; text-decoration: none; transition: background-color .2s, transform .2s;
}
.isdm-site .isdm-cta:hover { background: var(--brand-yellow-hover); color: var(--brand-primary-dark); transform: translateY(-1px); text-decoration: none; }
.isdm-site .isdm-burger {
  display: none; flex-direction: column; justify-content: center; align-items: center; gap: 5px; width: 42px; height: 42px; padding: 0;
  border: 0; border-radius: var(--radius-sm); background: var(--bg-hover); cursor: pointer;
}
.isdm-site .isdm-burger span { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--brand-primary); transition: transform .2s, opacity .2s; }
.isdm-site .isdm-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.isdm-site .isdm-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.isdm-site .isdm-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* 4c. NXT stripe */
.isdm-site .isdm-stripe { height: 3px; background: var(--stripe-nxt); }

/* ---------- 5. Mobile drawer ---------- */
.isdm-site .isdm-drawer {
  position: fixed; z-index: 999; left: 0; right: 0; bottom: 0; top: var(--isdm-drawer-top, 109px);
  overflow-y: auto; overscroll-behavior: contain; background: #fff;
}
.isdm-site .isdm-drawer[hidden] { display: none; }
.isdm-site .isdm-drawer-inner { display: flex; flex-direction: column; padding: 16px 20px 32px; }
.isdm-site .isdm-drawer-courses {
  display: block; margin-bottom: 8px; padding: 14px 18px; border-radius: var(--radius); background: var(--brand-primary); color: #fff;
  font-size: 15.5px; font-weight: 600; text-align: center; text-decoration: none;
}
.isdm-site .isdm-drawer-courses:hover { color: #fff; background: var(--brand-primary-dark); }
.isdm-site .isdm-drawer-link, .isdm-site .isdm-acc-toggle {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; padding: 14px 4px;
  border: 0; border-bottom: 1px solid var(--border-soft); background: none; color: var(--ink); font-size: 15.5px; font-weight: 500;
  line-height: 1.4; text-align: left; text-decoration: none; cursor: pointer;
}
.isdm-site .isdm-acc-toggle[aria-expanded="true"] { color: var(--brand-primary); }
.isdm-site .isdm-acc-panel { display: grid; padding: 6px 0 10px 12px; border-bottom: 1px solid var(--border-soft); }
.isdm-site .isdm-acc-panel[hidden] { display: none; }
.isdm-site .isdm-acc-panel a { padding: 9px 4px; color: var(--muted); font-size: 15px; text-decoration: none; }
.isdm-site .isdm-acc-panel a:hover { color: var(--brand-primary); }
.isdm-site .isdm-drawer-call { justify-content: flex-start; color: var(--brand-primary); font-weight: 600; }
.isdm-site .isdm-drawer-cta { margin-top: 18px; padding: 14px; font-size: 15.5px; }
.isdm-site.isdm-scroll-lock { overflow: hidden; }

/* ---------- 6. Footer ---------- */
.isdm-site .isdm-footer { margin: 0; padding: 0; background: var(--brand-primary-dark); color: var(--on-dark); font-size: 14.5px; line-height: 1.6; }
.isdm-site .isdm-footer p { margin: 0; }
.isdm-site .isdm-footer-grid { display: grid; grid-template-columns: 1.6fr repeat(5, minmax(0, 1fr)); gap: 32px; padding-top: 56px; padding-bottom: 40px; }
.isdm-site .isdm-footer-logo { display: inline-block; margin-bottom: 16px; padding: 10px 14px; border-radius: var(--radius); background: #fff; }
.isdm-site .isdm-footer-logo img { display: block; width: auto; height: 40px; max-width: 100%; }
.isdm-site .isdm-footer-brand p { max-width: 280px; margin-bottom: 18px; color: var(--on-dark); }
.isdm-site .isdm-footer-col h2 { margin: 0 0 14px; color: #fff; font-size: 15px; font-weight: 600; letter-spacing: 0; line-height: 1.3; }
.isdm-site .isdm-footer-col a { display: block; margin-bottom: 9px; color: var(--on-dark); text-decoration: none; line-height: 1.45; }
.isdm-site .isdm-footer a:hover { color: var(--brand-yellow); text-decoration: none; }
.isdm-site .isdm-socials { display: flex; gap: 8px; }
.isdm-site .isdm-socials a { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.08); color: #fff; }
.isdm-site .isdm-socials a:hover { background: var(--brand-yellow); color: var(--brand-primary-dark); }
.isdm-site .isdm-footer-legal { border-top: 1px solid rgba(255,255,255,.1); font-size: 13px; }
.isdm-site .isdm-footer-legal-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; min-height: 56px; padding-block: 12px; }
.isdm-site .isdm-footer-legal nav { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.isdm-site .isdm-footer-legal a { color: var(--on-dark); text-decoration: none; }
.isdm-site .isdm-footer-policy { background: rgba(0,0,0,.14); font-size: 13px; }
.isdm-site .isdm-footer-policy summary { display: block; padding: 12px 0; cursor: pointer; list-style: none; color: var(--on-dark); }
.isdm-site .isdm-footer-policy summary::-webkit-details-marker { display: none; }
.isdm-site .isdm-footer-policy p { margin: 4px 0; }
.isdm-site .isdm-footer-policy > .isdm-container { padding-bottom: 14px; }
.isdm-site .isdm-footer-policy a { color: var(--brand-yellow); }

/* ---------- 7. Legacy page theming (inner pages built on style.css + Bootstrap 4) ---------- */
/* Links in page content: teal (AA on white); sky underline as the info accent. */
.isdm-site .entry a, .isdm-site .content-area a:not(.btn):not([class*="isdm-"]) {
  color: var(--brand-primary); text-decoration: underline; text-decoration-color: var(--brand-sky); text-underline-offset: 3px;
}
.isdm-site .entry a:hover, .isdm-site .content-area a:not(.btn):not([class*="isdm-"]):hover { color: var(--brand-primary-dark); text-decoration-color: var(--brand-yellow); }

/* Page and section titles */
.isdm-site .pageTitle, .isdm-site .secTitle {
  position: relative; margin: 0 0 18px; padding-bottom: 12px; color: var(--brand-primary);
  font-size: clamp(26px, 3vw, 38px); font-weight: 700; line-height: 1.2; letter-spacing: -.4px; text-transform: none;
}
.isdm-site .pageTitle::after, .isdm-site .secTitle::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 56px; height: 4px; border-radius: 4px; background: var(--brand-yellow);
}
.isdm-site .pageTitle > span, .isdm-site .secTitle > span { color: inherit; }
.isdm-site .entry { color: var(--ink); font-size: 16px; line-height: 1.7; }
.isdm-site .entry h1 { color: var(--brand-primary); font-weight: 700; text-transform: none; }
.isdm-site .entry h2 { color: var(--brand-primary); font-weight: 700; }
.isdm-site .entry h3, .isdm-site .entry h4 { color: var(--ink-strong); font-weight: 600; }
.isdm-site .gray-bg { background-color: var(--bg-alt); }
.isdm-site form label { color: var(--ink); font-weight: 500; letter-spacing: 0; }
.isdm-site .form-control:focus, .isdm-site .custom-select:focus {
  border-color: var(--brand-primary-light); box-shadow: 0 0 0 3px rgba(8,81,110,.15);
}

/* Bootstrap buttons */
.isdm-site .btn { border-radius: var(--radius); font-weight: 600; }
.isdm-site .btn-primary, .isdm-site .btn-info {
  background-color: var(--brand-primary); border-color: var(--brand-primary); color: #fff;
}
.isdm-site .btn-primary:hover, .isdm-site .btn-primary:focus, .isdm-site .btn-primary:active,
.isdm-site .btn-info:hover, .isdm-site .btn-info:focus, .isdm-site .btn-info:active {
  background-color: var(--brand-primary-dark) !important; border-color: var(--brand-primary-dark) !important; color: #fff !important;
}
.isdm-site .btn-warning { background-color: var(--brand-yellow); border-color: var(--brand-yellow); color: var(--brand-primary-dark); }
.isdm-site .btn-warning:hover { background-color: var(--brand-yellow-hover); border-color: var(--brand-yellow-hover); color: var(--brand-primary-dark); }
.isdm-site .btn-success { background-color: var(--brand-green); border-color: var(--brand-green); }
.isdm-site .btn-outline-primary { color: var(--brand-primary); border-color: var(--brand-primary); }
.isdm-site .btn-outline-primary:hover { background-color: var(--brand-primary); border-color: var(--brand-primary); color: #fff; }
/* Legacy decorated button (.btn-default > span) */
.isdm-site .btn-default::before, .isdm-site .btn-default::after,
.isdm-site .btn-default > span::before, .isdm-site .btn-default > span::after { background: var(--brand-yellow); }
.isdm-site .btn-default > span { background: var(--brand-primary); color: #fff; }
.isdm-site .btn-default > span > span::before { background: var(--brand-primary-dark); }

/* Legacy widgets, tables and boxes (formerly orange #f7931d / #ca6d00 / teal #13637d) */
.isdm-site .widget { border-color: var(--border); border-radius: var(--radius-lg); background: var(--bg-alt); overflow: hidden; }
.isdm-site .widgetTitle { background: var(--brand-primary); color: #fff; font-weight: 600; letter-spacing: .5px; }
.isdm-site .widget-sideNav .nav-item:hover > a, .isdm-site .widget-sideNav .nav-item a:hover { background: var(--brand-primary-light); color: #fff; }
.isdm-site .table thead { background: var(--brand-primary); color: #fff; }
.isdm-site .table tfoot { background: var(--brand-primary-dark); color: #fff; }
.isdm-site .bx-controls a { background: var(--brand-primary); }
.isdm-site .serviceBox h3, .isdm-site .serviceBox h3 a, .isdm-site .serviceBox h3 a:hover,
.isdm-site .principal-Desk .title, .isdm-site .quotebox .author span { color: var(--brand-primary); }
.isdm-site .serviceBox .icon:hover { background-color: var(--brand-yellow); border-color: var(--brand-yellow); }
.isdm-site .serviceBox .icon:hover i { color: var(--brand-primary-dark); }
.isdm-site .courseBox:hover .overlay { color: var(--brand-yellow); }
.isdm-site .courseBox:hover .overlay h3 { border-color: var(--brand-yellow); }
.isdm-site .latestnews-wrap .title { background: var(--brand-yellow-soft); color: var(--brand-primary); }
.isdm-site .usefullinks-wrap { border-color: var(--brand-yellow); }
.isdm-site .usefullinks > li a:hover, .isdm-site .principal-Desk .link:hover { color: var(--brand-primary); }
.isdm-site .newsBox .date { background: var(--brand-primary-dark); }
.isdm-site .imgBox .borderBox, .isdm-site .quotebox .prflPic { border-color: var(--brand-yellow); }
.isdm-site .modal-header .close { background: var(--brand-primary-dark); }
.isdm-site .pagination .page-item.active .page-link { background-color: var(--brand-primary); border-color: var(--brand-primary); }
.isdm-site .pagination .page-link { color: var(--brand-primary); }

/* Courses listing (pages/our_course.php declares --brand/--brand-2/--accent on :root) */
.isdm-site {
  --brand:   var(--brand-primary);
  --brand-2: var(--brand-primary-light);
  --stroke:  var(--border);
}
.isdm-site .nxt-hero__eyebrow, .isdm-site .pill { background: var(--brand-yellow-soft); color: var(--brand-primary); }
.isdm-site .pill svg { color: var(--brand-primary); }
.isdm-site .nxt-filter-option:hover { background: var(--bg-hover); }
.isdm-site .nxt-filter-option.active { background: var(--bg-hover); color: var(--brand-primary); box-shadow: inset 3px 0 0 var(--brand-yellow); }
.isdm-site .nxt-btn { background: var(--brand-primary); color: #fff; }
.isdm-site .nxt-btn:hover { background: var(--brand-primary-dark); color: #fff; box-shadow: var(--shadow-primary); }
.isdm-site .nxt-search-shell input:focus { border-color: var(--brand-primary-light); box-shadow: 0 0 0 3px rgba(8,81,110,.15); }

/* Site-wide counters band (pages/our_counters.php, shown above the footer) */
.isdm-site .counters-shell { background: var(--bg-alt); box-shadow: none; border: 1px solid var(--border-soft); }
.isdm-site .counters-shell::before, .isdm-site .counters-shell::after { background: rgba(240,184,17,.18); }
.isdm-site .counters-eyebrow { background: var(--brand-yellow-soft); color: var(--brand-primary); letter-spacing: 1.4px; }
.isdm-site .counters-title { color: var(--brand-primary); }
.isdm-site .counter-card { border-color: var(--border-soft); box-shadow: var(--shadow-card); }
.isdm-site .counter-card::after { background: linear-gradient(135deg, rgba(8,81,110,.06), transparent); }
.isdm-site .counter-icon { background: var(--brand-yellow-soft); color: var(--brand-primary); }
.isdm-site .counter-value { color: var(--brand-primary); }

/* Course detail (pages/course_detail.php) */
.isdm-site .course-hero-shell { background: var(--grad-hero); }
.isdm-site .course-label-pill { background: var(--brand-yellow-soft); border-color: rgba(240,184,17,.6); color: var(--brand-primary); }
.isdm-site .course-hero-title, .isdm-site .course-section-heading, .isdm-site .brochure-copy h3 { color: var(--brand-primary); }
.isdm-site .course-hero-metric strong, .isdm-site .course-brochure-title, .isdm-site .learning-card-text,
.isdm-site .faq-neo-trigger, .isdm-site .course-brochure-form .form-label { color: var(--ink-strong); }
.isdm-site .course-hero-cta { background: var(--brand-yellow); color: var(--brand-primary-dark); box-shadow: var(--shadow-yellow); }
.isdm-site .course-hero-cta:hover { background: var(--brand-yellow-hover); color: var(--brand-primary-dark); }
.isdm-site .course-hero-cta.secondary { background: #fff; color: var(--brand-primary); border-color: var(--brand-primary); box-shadow: none; }
.isdm-site .course-hero-graphic { background: linear-gradient(160deg, #E3F0F5 0%, #CFE4EC 100%); }
.isdm-site .course-lead-form .btn-submit, .isdm-site .course-brochure-form .btn-submit { background: var(--brand-primary); color: #fff; box-shadow: var(--shadow-primary); }
.isdm-site .course-lead-form .btn-submit:hover, .isdm-site .course-brochure-form .btn-submit:hover { background: var(--brand-primary-dark); }
.isdm-site .course-meta-badge { background: var(--bg-hover); color: var(--brand-primary); border-color: var(--border); }
.isdm-site .course-meta-badge .badge-icon { background: var(--brand-yellow-soft); color: var(--brand-primary); }
.isdm-site .course-brochure-card { border-color: rgba(8,81,110,.35); }
.isdm-site .course-brochure-cta-inner { background: var(--bg-alt); }
.isdm-site .learning-card, .isdm-site .project-career-card { background: var(--bg-alt); }
.isdm-site .learning-card-icon, .isdm-site .faq-neo-icon, .isdm-site .subject-pill i { color: var(--brand-primary); }
.isdm-site .subject-pill { background: var(--bg-hover); }
.isdm-site .brochure-orb { background: linear-gradient(135deg, var(--brand-primary), var(--brand-yellow)); }
.isdm-site .course-enquiry-highlight { background: var(--grad-dark); color: var(--on-dark); }

/* ---------- 8. Responsive (header & footer) ---------- */
/* Header width tiers. The menu stays inline down to 1100px: first the call pill moves into
   More (and the drawer), then labels wrap onto two lines and gaps tighten; the burger takes over below 1100px. */
@media (min-width: 1680px) {
  .isdm-site .isdm-mainbar-inner { max-width: 1560px; }
}
@media (min-width: 1100px) {
  .isdm-site .isdm-call { display: none; } /* desktop: number lives in More > Call us (and the drawer) */
}
@media (max-width: 1679px) {
  .isdm-site .isdm-nav-list { gap: 24px; }
}
@media (max-width: 1535px) {
  .isdm-site .isdm-nav-list { gap: 20px; }
  .isdm-site .isdm-nl > span { display: block; }
  .isdm-site .isdm-nl { display: inline-block; text-align: left; }
  .isdm-site .isdm-nav-link { padding: 9px 0; line-height: 1.15; }
  .isdm-site .isdm-nav-link::after { bottom: 3px; }
}
@media (max-width: 1366px) {
  .isdm-site .isdm-nav-list { gap: 16px; }
  .isdm-site .isdm-hbadge { width: 160px; height: 50px; }
  .isdm-site .isdm-hbadge-medal { width: 40px; height: 42px; }
  .isdm-site .isdm-hbadge-text small { font-size: 10px; }
  .isdm-site .isdm-hbadge-text b { font-size: 14px; }
}
@media (min-width: 1100px) and (max-width: 1279px) {
  .isdm-site .isdm-mainbar-inner { gap: 12px; }
  .isdm-site .isdm-nav-list { gap: 10px; }
  .isdm-site .isdm-nav-link { font-size: 14px; gap: 3px; }
  .isdm-site .isdm-logo img { height: 42px; }
  .isdm-site .isdm-cta { padding: 11px 16px; font-size: 14px; }
  /* compact badge: the short two-line text card used on phones */
  .isdm-site .isdm-hbadge { width: 96px; height: 48px; margin-left: -4px; }
  .isdm-site .isdm-hbadge-face { justify-content: center; padding: 3px 6px; border-radius: 10px; }
  .isdm-site .isdm-hbadge-medal, .isdm-site .isdm-hbadge-text { display: none; }
  .isdm-site .isdm-hbadge-m { display: flex; flex-direction: column; align-items: center; text-align: center; line-height: 1.1; text-transform: uppercase; white-space: nowrap; }
  .isdm-site .isdm-hbadge-m b { color: var(--brand-yellow); font-size: 14px; font-weight: 800; }
  .isdm-site .isdm-hbadge-m small { color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .04em; }
}
@media (max-width: 1099px) {
  .isdm-site .isdm-nav, .isdm-site .isdm-login { display: none; }
  .isdm-site .isdm-burger { display: inline-flex; }
  .isdm-site .isdm-call { padding: 10px 15px; }
}
@media (max-width: 1100px) {
  .isdm-site .isdm-footer-grid { grid-template-columns: 1.4fr repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .isdm-site .isdm-container { padding-inline: 18px; }
  .isdm-site .isdm-ticker { height: 30px; }
  .isdm-site .isdm-ticker a { line-height: 30px; }
  .isdm-site .isdm-logo img { height: 40px; }
  .isdm-site .isdm-hbadge { width: 86px; height: 46px; margin-left: -4px; }
  .isdm-site .isdm-hbadge-face { justify-content: center; padding: 3px 5px; border-radius: 10px; }
  .isdm-site .isdm-hbadge-medal, .isdm-site .isdm-hbadge-text { display: none; }
  .isdm-site .isdm-hbadge-m { display: flex; flex-direction: column; align-items: center; text-align: center; line-height: 1.1; text-transform: uppercase; white-space: nowrap; }
  .isdm-site .isdm-hbadge-m b { color: var(--brand-yellow); font-size: 13px; font-weight: 800; }
  .isdm-site .isdm-hbadge-m small { color: #fff; font-size: 8.5px; font-weight: 700; letter-spacing: .04em; }
  .isdm-site .isdm-mainbar-inner { gap: 10px; min-height: 64px; }
  .isdm-site .isdm-actions { gap: 8px; }
  .isdm-site .isdm-cta { padding: 10px 13px; font-size: 13px; }
  .isdm-site .isdm-call { padding: 10px; }
  .isdm-site .isdm-call-number { display: none; } /* icon only on phones; number stays in the drawer */
  .isdm-site .isdm-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; padding-top: 44px; }
  .isdm-site .isdm-footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .isdm-site .isdm-call { display: none; }
}
@media (max-width: 360px) {
  .isdm-site .isdm-logo img { height: 34px; }
  .isdm-site .isdm-hbadge { width: 76px; height: 44px; }
  .isdm-site .isdm-hbadge-m b { font-size: 12px; }
  .isdm-site .isdm-hbadge-m small { font-size: 8px; }
  .isdm-site .isdm-cta { padding: 9px 10px; }
}
@media (max-width: 340px) {
  /* smallest phones: square card with just the medal ("19" / "1st") */
  .isdm-site .isdm-hbadge { width: 46px; height: 46px; margin-left: -6px; }
  .isdm-site .isdm-hbadge-face { padding: 2px; }
  .isdm-site .isdm-hbadge-m { display: none; }
  .isdm-site .isdm-hbadge-medal { display: block; width: 38px; height: 40px; }
}

/* ---------- 9. Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .isdm-site .isdm-ticker-track { animation: none; }
  .isdm-site .isdm-ticker-group[aria-hidden="true"] { display: none; }
  .isdm-site .isdm-btn:hover, .isdm-site .isdm-cta:hover { transform: none; }
  .isdm-site .isdm-hbadge-card, .isdm-site .isdm-hbadge-face::after { animation: none; }
}
