/*
Theme Name: Creative Arts Academy
Theme URI: https://example.com/creative-arts-academy
Author: Intechno Software
Description: Original cinematic, responsive homepage theme for film, media and performing arts schools. Inspired by iscof (New York Film Academy).
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: creative-arts-academy
*/

:root {
  /* ============================================================
     THEME DESIGN SYSTEM: CENTRALIZED CSS TOKENS & VARIABLES
     Consistent Semantic Naming Convention & Consolidated Palette
     ============================================================ */

  /* 1. Primary Brand (NYFA / ISCOF Electric Cyan) */
  --color-primary: #35BBFF;
  --color-primary-hover: #1f96cfff;
  --color-primary-dark: #0a6da6ff;
  --color-primary-light: #118bceff;
  --color-primary-glow: rgba(0, 173, 239, 0.25);
  --color-primary-subtle: rgba(0, 173, 239, 0.12);

  /* 2. Primary Yellow / Gold Accent (ISCOF Camera Icon & Badges) */
  --color-accent-gold: #f5c542;
  --color-accent-gold-hover: #e5b32f;
  --color-accent-gold-light: #fef9c3;
  --color-accent-gold-glow: rgba(245, 197, 66, 0.25);
  --color-accent-gold-subtle: rgba(245, 197, 66, 0.12);
  --color-primary-yellow: var(--color-accent-gold);
  --color-yellow-hover: var(--color-accent-gold-hover);
  --color-yellow-glow: var(--color-accent-gold-glow);
  --color-yellow-subtle: var(--color-accent-gold-subtle);

  /* 3. Secondary Brand Accent (Iconic Magenta / Pink) */
  --color-accent-pink: #e91e63;
  --color-accent-pink-hover: #d81557;
  --color-accent-pink-light: #fce7f3;
  --color-accent-pink-glow: rgba(233, 30, 99, 0.25);

  /* 4. Cinematic Dark Palette (Header, Hero & Deep Cards) */
  --color-dark-pure: #000000;
  --color-dark-topbar: #0c0c0c;
  --color-dark-surface: #111111;
  --color-dark-elevated: #1a1a1a;
  --color-dark-card: #0d171e;
  --color-dark-overlay: rgba(0, 0, 0, 0.82);
  --color-dark-overlay-light: rgba(12, 12, 12, 0.45);

  /* 5. Clean Light & Neutral Surfaces */
  --color-white: #ffffff;
  --color-paper: #f6f4ef;
  --color-light-bg: #f8fafc;
  --color-light-muted: #f1f5f9;

  /* 6. Typography / Text Hierarchy */
  --color-text-main: #111111;
  --color-text-body: #333333;
  --color-text-muted: #64748b;
  --color-text-light: #8da2b0;
  --color-text-white: #ffffff;

  /* 7. Borders, Dividers & Outlines */
  --color-border-dark: rgba(255, 255, 255, 0.18);
  --color-border-dark-subtle: rgba(255, 255, 255, 0.08);
  --color-border-light: #e2e8f0;
  --color-border-light-subtle: #cbd5e1;
  --color-border-cyan: rgba(0, 173, 239, 0.35);

  /* 8. Layout Dimensions */
  --layout-max-width: 1320px;

  /* 9. Backward-Compatible Aliases (For legacy modules & classic editor) */
  --iscof-cyan: var(--color-primary);
  --iscof-cyan-hover: var(--color-primary-hover);
  --iscof-dark: var(--color-dark-pure);
  --ink: var(--color-text-main);
  --paper: var(--color-paper);
  --accent: var(--color-accent-gold);
  --max: var(--layout-max-width);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: #ffffff;
  color: #5c5c5c;
  font-family: "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 16px;
  line-height: 24px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Bootstrap 5 Compatibility Resets */
a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Reusable Container (Bootstrap Compatible) */
.container {
  width: 100%;
  max-width: var(--layout-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(16px, 3.5vw, 36px);
  padding-right: clamp(16px, 3.5vw, 36px);
  box-sizing: border-box;
}

.container-fluid {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(20px, 5.1vw, 85px);
  padding-right: clamp(20px, 5.1vw, 85px);
  box-sizing: border-box;
}

/* ============================================================
   CORE REUSABLE BUTTON SYSTEM (Single Source of Truth)
   All buttons share identical typography, height, padding, & states
   ============================================================ */

.btn,
.button,
.header-cta,
.btn-iscof-cyan,
.btn-iscof-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  min-height: 44px;
  height: 44px;
  padding: 0 24px;
  border-radius: 0;
  border: 1px solid transparent;
  white-space: nowrap;
  box-sizing: border-box;
  text-decoration: none !important;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.btn:active,
.button:active,
.header-cta:active {
  transform: scale(0.98);
}

/* Primary Variant (Cyan - Default Site Button) */
.btn-primary,
.btn-cyan,
.btn-iscof-cyan,
.button,
.button-primary,
.header-cta-primary {
  background: var(--color-primary);
  color: #000000 !important;
  border-color: var(--color-primary);
  font-weight: 500;
  letter-spacing: 1px;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-cyan:hover,
.btn-iscof-cyan:hover,
.button:hover,
.button-primary:hover,
.header-cta-primary:hover {
  background: #000000;
  border-color: #000000;
  color: #ffffff !important;
  box-shadow: none;
}

/* Outline Light Variant */
.btn-outline,
.btn-outline-light,
.btn-iscof-outline,
.button-outline,
.header-cta-outline {
  background: transparent;
  color: #ffffff !important;
  border: 1px solid #ffffff;
  font-weight: 500;
  letter-spacing: 1px;
}

.btn-outline:hover,
.btn-outline:focus,
.btn-outline-light:hover,
.btn-iscof-outline:hover,
.button-outline:hover,
.header-cta-outline:hover {
  background: #ffffff;
  color: #000000 !important;
  border-color: #ffffff;
}

/* Outline Dark Variant */
.btn-outline-dark,
.button-outline-dark {
  background: transparent;
  color: #111111 !important;
  border: 1px solid #111111;
}

.btn-outline-dark:hover,
.btn-outline-dark:focus,
.button-outline-dark:hover {
  background: #111111;
  color: #ffffff !important;
  border-color: #111111;
}

/* Accent Gold Variant */
.btn-accent,
.button-accent {
  background: var(--color-accent-gold);
  color: #111111 !important;
  border-color: var(--color-accent-gold);
}

.btn-accent:hover,
.btn-accent:focus,
.button-accent:hover {
  background: transparent;
  color: var(--color-accent-gold) !important;
}

/* Button Sizes */
.btn-sm,
.button-sm {
  min-height: 36px;
  height: 36px;
  padding: 0 16px;
  font-size: 11px;
}

.btn-lg,
.button-lg {
  min-height: 50px;
  height: 50px;
  padding: 0 32px;
  font-size: 13px;
}

/* Arrow Link / Inline Action Link */
.arrow-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 0.1em;
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease, gap 0.2s ease;
}

.arrow-link:hover {
  color: var(--color-primary);
  gap: 10px;
}

/* ============================================================
   iscof HEADER STYLES
   ============================================================ */

/* WordPress Admin Bar Compatibility */
body.admin-bar .site-header {
  top: 32px;
}

@media screen and (max-width: 782px) {
  body.admin-bar .site-header {
    top: 46px;
  }
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 9999;
  width: 100%;
  background: #000000 !important;
  color: #ffffff;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6);
}

.site-header ul,
.site-header ol,
.site-header li {
  list-style: none !important;
  margin: 0;
  padding: 0;
}

/* --- Shared Container Architecture (Bootstrap Responsive System) --- */
.top-utility-inner,
.header-inner,
.header-search-inner {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(20px, 5.1vw, 85px);
  padding-right: clamp(20px, 5.1vw, 85px);
  box-sizing: border-box;
}

/* --- Top Utility Bar (Height: ~34px) --- */
.top-utility-bar {
  background: #000000;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  min-height: 34px;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 1001;
}

.top-utility-inner {
  padding-top: 7px;
  padding-bottom: 7px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.top-quick-links {
  display: flex;
  align-items: center;
  gap: 16px;
  white-space: nowrap;
  flex-shrink: 0;
}

.top-quick-label {
  color: #777777;
  font-weight: 500;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.top-quick-links a {
  color: #c5c5c5;
  font-weight: 500;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  transition: color 0.2s ease;
}

.top-quick-links a:hover {
  color: #ffffff;
}

.top-right-meta {
  display: flex;
  align-items: center;
  gap: 20px;
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  white-space: nowrap;
  flex-shrink: 0;
}

.top-phone {
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  letter-spacing: 0.04em;
  transition: color 0.2s ease;
}

.top-phone:hover {
  color: var(--color-primary);
}

.top-search-btn {
  background: none;
  border: none;
  color: #c5c5c5;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.05em;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  transition: color 0.2s ease;
}

.top-search-btn:hover {
  color: #ffffff;
}

.top-lang-dropdown {
  color: #c5c5c5;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  letter-spacing: 0.04em;
  transition: color 0.2s ease;
}

.top-lang-dropdown:hover {
  color: #ffffff;
}

/* --- Search Dropdown --- */
.header-search-bar {
  display: none;
  background: #111111;
  border-bottom: 1px solid #262626;
  padding: 14px 0;
}

.header-search-bar.is-active {
  display: block;
  animation: caaFadeDown 0.22s ease-out;
}

@keyframes caaFadeDown {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}

.header-search-inner .search-form {
  display: flex;
  align-items: center;
  gap: 12px;
}

.header-search-inner .search-field {
  flex: 1;
  background: #000000;
  border: 1px solid #333333;
  color: #ffffff;
  padding: 11px 16px;
  font-size: 13px;
  outline: none;
  transition: border-color 0.2s ease;
}

.header-search-inner .search-field:focus {
  border-color: var(--color-primary);
}

.header-search-inner .search-submit {
  background: var(--color-primary);
  color: #ffffff;
  border: 1px solid var(--color-primary);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 11px 22px;
  cursor: pointer;
  transition: background 0.2s ease;
}

.header-search-inner .search-submit:hover {
  background: var(--color-primary-hover);
}

.header-search-inner .search-close {
  background: transparent;
  color: #888888;
  border: 1px solid #333333;
  padding: 10px 14px;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.header-search-inner .search-close:hover {
  color: #ffffff;
  border-color: #ffffff;
}

/* --- NYFA Main Navigation Bar --- */
.main-bar {
  background: #000000 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  position: relative;
  width: 100%;
}

.header-inner {
  padding-top: 22px;
  padding-bottom: 22px;
  min-height: 94px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  box-sizing: border-box;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Brand / Logo (Matches NYFA reference) */
.brand {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
  line-height: 1;
}

.brand-logo-img,
.brand img,
.custom-logo {
  height: 40px !important;
  max-height: 40px !important;
  width: auto !important;
  max-width: 345px !important;
  object-fit: contain;
  display: block;
  transition: opacity 0.2s ease;
}

.brand-logo-img:hover,
.custom-logo:hover {
  opacity: 0.92;
}

/* Navigation Links (Uppercase, 15px, solid hover underline) */
.main-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
}

.nav-menu {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(14px, 1.8vw, 28px);
  list-style: none !important;
  margin: 0;
  padding: 0;
}

.nav-menu li {
  list-style: none !important;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
}

.nav-menu > li {
  position: relative;
}

.nav-menu > li > a {
  display: inline-flex;
  align-items: center;
  padding: 6px 8px;
  color: #ffffff !important;
  font-size: 15px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-decoration: none !important;
  white-space: nowrap;
  position: relative;
  overflow: hidden;
  transition: color 0.35s ease;
}

.nav-menu > li > a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  transform: translateX(-100%);
  transition: transform 0.35s ease;
  pointer-events: none;
}

.nav-menu > li:hover > a::after,
.nav-menu > li:focus-within > a::after,
.nav-menu > li > a:hover::after,
.nav-menu > li > a:focus-visible::after,
.nav-menu > li > a[aria-expanded="true"]::after,
.nav-menu > li > a.mega-active::after,
.nav-menu > li.current-menu-item > a::after,
.nav-menu > li.current_page_item > a::after {
  transform: translateX(0);
}

/* Repeating Solid Colors across Navbar Items: Blue (#00B9F1), Pink (#EC4899), Yellow (#FACC15) */
.nav-menu > li:nth-child(3n+1) > a::after { background-color: #00B9F1; }
.nav-menu > li:nth-child(3n+1):hover > a,
.nav-menu > li:nth-child(3n+1):focus-within > a,
.nav-menu > li:nth-child(3n+1) > a:hover,
.nav-menu > li:nth-child(3n+1) > a.mega-active,
.nav-menu > li:nth-child(3n+1).current-menu-item > a { color: #00B9F1 !important; }

.nav-menu > li:nth-child(3n+2) > a::after { background-color: #EC4899; }
.nav-menu > li:nth-child(3n+2):hover > a,
.nav-menu > li:nth-child(3n+2):focus-within > a,
.nav-menu > li:nth-child(3n+2) > a:hover,
.nav-menu > li:nth-child(3n+2) > a.mega-active,
.nav-menu > li:nth-child(3n+2).current-menu-item > a { color: #EC4899 !important; }

.nav-menu > li:nth-child(3n) > a::after { background-color: #FACC15; }
.nav-menu > li:nth-child(3n):hover > a,
.nav-menu > li:nth-child(3n):focus-within > a,
.nav-menu > li:nth-child(3n) > a:hover,
.nav-menu > li:nth-child(3n) > a.mega-active,
.nav-menu > li:nth-child(3n).current-menu-item > a { color: #FACC15 !important; }

/* Right Actions (NYFA Boxed Buttons) */
.header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

/* Cyan REQUEST INFO Button */
.header-actions .btn-iscof-cyan,
.header-actions a[href*="request-info"] {
  background: #00bdf2 !important;
  color: #000000 !important;
  border: 1px solid #00bdf2 !important;
  border-radius: 0 !important;
  padding: 14px 25px !important;
  min-height: 44px !important;
  height: 44px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  box-shadow: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.header-actions .btn-iscof-cyan:hover,
.header-actions a[href*="request-info"]:hover {
  background: #000000 !important;
  border-color: #000000 !important;
  color: #ffffff !important;
}

/* Outlined White APPLY NOW Button */
.header-actions .btn-iscof-outline,
.header-actions a[href*="apply"] {
  background: transparent !important;
  color: #ffffff !important;
  border: 1px solid #ffffff !important;
  border-radius: 0 !important;
  padding: 14px 25px !important;
  min-height: 44px !important;
  height: 44px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  box-shadow: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.header-actions .btn-iscof-outline:hover,
.header-actions a[href*="apply"]:hover {
  background: #ffffff !important;
  color: #000000 !important;
  border-color: #ffffff !important;
}

/* Submenu / Dropdown with Caret Arrows & Smooth Transitions */
.nav-menu > .menu-item-has-children > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.nav-menu > .menu-item-has-children > a::after {
  content: "";
  position: static !important;
  display: inline-block;
  width: 6px !important;
  height: 6px !important;
  background: transparent !important;
  border-right: 2px solid #ffffff;
  border-bottom: 2px solid #ffffff;
  transform: rotate(45deg) !important;
  margin-inline-start: 4px;
  margin-top: -3px;
  transition: transform 0.25s ease, border-color 0.25s ease;
}
.nav-menu > .menu-item-has-children:hover > a::after,
.nav-menu > .menu-item-has-children:focus-within > a::after {
  transform: rotate(-135deg) !important;
  border-color: var(--color-primary);
  margin-top: 3px;
}

.nav-menu .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 250px;
  background: #0f172a;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-top: 3px solid var(--color-primary);
  border-radius: 0 0 10px 10px;
  padding: 8px 0;
  margin: 0;
  list-style: none !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.9);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
  z-index: 1000;
  text-align: left;
  display: block;
}

/* Invisible hover bridge to prevent premature closing */
.nav-menu .sub-menu::before {
  content: "";
  position: absolute;
  top: -16px;
  left: 0;
  right: 0;
  height: 16px;
  background: transparent;
}

.nav-menu li:hover > .sub-menu,
.nav-menu li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.nav-menu .sub-menu li {
  display: block;
  width: 100%;
  height: auto;
  position: relative;
}

.nav-menu .sub-menu li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: auto;
  padding: 12px 20px;
  font-size: 14.5px;
  font-weight: 600;
  color: #e2e8f0;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: all 0.2s ease;
  border-left: 3px solid transparent;
  white-space: normal;
}

.nav-menu .sub-menu li a:hover {
  background: rgba(255, 255, 255, 0.06);
  color: var(--color-primary);
  border-left-color: var(--color-primary);
  padding-left: 24px;
}

/* Nested Submenu (3rd Level) */
.nav-menu .sub-menu .menu-item-has-children > a::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-right: 2px solid #94a3b8;
  border-top: 2px solid #94a3b8;
  transform: rotate(45deg);
  margin-left: auto;
}
.nav-menu .sub-menu .menu-item-has-children:hover > a::after {
  border-color: var(--color-primary);
}

.nav-menu .sub-menu .sub-menu {
  top: 0;
  left: 100%;
  margin-top: -8px;
  border-radius: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

/* ============================================================
   iscof FULL-WIDTH MEGA MENU DROPDOWN (Click & Responsive)
   ============================================================ */

.main-bar {
  position: relative;
}

/* ==========================================
   NYFA ACADEMICS MEGA MENU
   Navbar styling remains untouched
========================================== */

#nyfaAcademicsMegaMenu,
#nyfaAcademicsMegaMenu * {
    box-sizing: border-box;
}

#nyfaAcademicsMegaMenu {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99990;

    width: 100%;
    max-height: calc(100vh - 100px);
    overflow-y: auto;

    padding: 66px 0 56px;
    margin: 0;

    background: #171717;
    color: #ffffff;

    font-family: Arial, Helvetica, sans-serif;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transform: translateY(-5px);
    transition:
        opacity 180ms ease,
        transform 180ms ease,
        visibility 180ms ease;
}

#nyfaAcademicsMegaMenu.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

#nyfaAcademicsMegaMenu .nyfa-mega-container {
    display: grid;
    grid-template-columns:
        1.2fr 1.2fr 1.2fr 1.2fr;

    gap: 52px;

    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
    padding: 0 5.2%;
}

#nyfaAcademicsMegaMenu .nyfa-mega-column {
    min-width: 0;
    margin: 0;
    padding: 0;
}

/* Headings */

#nyfaAcademicsMegaMenu .nyfa-mega-column h3 {
    margin: 0 0 24px;
    padding: 0 0 20px;

    border: 0;
    border-bottom: 1px solid #00b9f1;
    border-radius: 0;

    color: #ffffff;
    background: transparent;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: 0;
    text-transform: uppercase;
}

/* Link lists */

#nyfaAcademicsMegaMenu .nyfa-mega-column ul {
    display: flex;
    flex-direction: column;
    gap: 17px;

    margin: 0;
    padding: 0;

    list-style: none;
}

#nyfaAcademicsMegaMenu .nyfa-mega-column li {
    display: block;
    margin: 0;
    padding: 0;

    list-style: none;
}

#nyfaAcademicsMegaMenu .nyfa-mega-column li::before {
    content: none;
}

#nyfaAcademicsMegaMenu .nyfa-mega-column a {
    display: inline-block;
    position: relative;
    overflow: hidden;
    margin: 0;
    padding: 0 0 3px 0;
    max-width: 100%;

    color: #ffffff;
    background: transparent;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.55;
    letter-spacing: 0.25px;
    text-transform: uppercase;
    text-decoration: none;

    overflow-wrap: anywhere;

    transition: color 0.35s ease;
}

#nyfaAcademicsMegaMenu .nyfa-mega-column a::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: #00B9F1;
    transform: translateX(-100%);
    transition: transform 0.35s ease;
    pointer-events: none;
}

#nyfaAcademicsMegaMenu .nyfa-mega-column a:hover::after,
#nyfaAcademicsMegaMenu .nyfa-mega-column a:focus-visible::after {
    transform: translateX(0);
}

#nyfaAcademicsMegaMenu .nyfa-mega-column a:hover,
#nyfaAcademicsMegaMenu .nyfa-mega-column a:focus-visible {
    color: #00B9F1;
    text-decoration: none;
}

/* Two-column Areas of Study */

#nyfaAcademicsMegaMenu .nyfa-study-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
}

#nyfaAcademicsMegaMenu .nyfa-study-links ul {
    gap: 17px;
}

/* Active navbar link indicator when Academics mega menu is open */
.nav-menu > li > a[aria-expanded="true"],
.nav-menu > li > a.mega-active {
    color: #00B9F1;
    position: relative;
}

/* Desktop: preserve four columns */

@media (min-width: 1200px) {
    #nyfaAcademicsMegaMenu .nyfa-mega-container {
        gap: 52px;
    }
}

/* Smaller desktop and laptop */

@media (min-width: 769px) and (max-width: 1199px) {
    #nyfaAcademicsMegaMenu {
        padding-top: 42px;
        padding-bottom: 42px;
    }

    #nyfaAcademicsMegaMenu .nyfa-mega-container {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 24px;
        padding-right: 3%;
        padding-left: 3%;
    }

    #nyfaAcademicsMegaMenu .nyfa-mega-column h3 {
        font-size: 16px;
        padding-bottom: 15px;
        margin-bottom: 20px;
    }

    #nyfaAcademicsMegaMenu .nyfa-mega-column a {
        font-size: 12px;
    }

    #nyfaAcademicsMegaMenu .nyfa-study-links {
        gap: 15px;
    }
}

/* Tablet and mobile:
   do not interfere with the existing mobile navbar */

@media (max-width: 768px) {
    #nyfaAcademicsMegaMenu {
        padding: 28px 0;
        max-height: 75vh;
    }

    #nyfaAcademicsMegaMenu .nyfa-mega-container {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 34px 24px;
        padding: 0 22px;
    }

    #nyfaAcademicsMegaMenu .nyfa-mega-column h3 {
        font-size: 16px;
        line-height: 1.4;
        padding-bottom: 12px;
        margin-bottom: 18px;
    }

    #nyfaAcademicsMegaMenu .nyfa-mega-column ul {
        gap: 14px;
    }

    #nyfaAcademicsMegaMenu .nyfa-mega-column a {
        font-size: 12px;
        line-height: 1.6;
    }

    #nyfaAcademicsMegaMenu .nyfa-study-links {
        grid-template-columns: 1fr;
        gap: 14px;
    }
}

@media (max-width: 480px) {
    #nyfaAcademicsMegaMenu .nyfa-mega-container {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 0 20px;
    }

    #nyfaAcademicsMegaMenu .nyfa-study-links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }
}

/* Accessibility */

@media (prefers-reduced-motion: reduce) {
    #nyfaAcademicsMegaMenu {
        transition: none;
    }
    .nav-menu > li > a,
    .nav-menu > li > a::after,
    #nyfaAcademicsMegaMenu .nyfa-mega-column a,
    #nyfaAcademicsMegaMenu .nyfa-mega-column a::after {
        transition: none !important;
    }
}

/* Header Action Buttons (Handled by Core Reusable Button System above) */
.header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.desktop-actions {
  display: flex;
  align-items: center;
}

.mobile-actions {
  display: none;
}

.btn-youth-dates {
  display: inline-flex;
  align-items: center;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.btn-youth-dates img {
  height: 38px;
  width: auto;
  display: block;
}

.btn-youth-dates:hover {
  transform: translateY(-1px);
  opacity: 0.92;
}

/* Menu Toggle Button (Mobile) */
.menu-toggle {
  display: none;
  background: #111111;
  color: #ffffff;
  border: 1px solid #444444;
  padding: 9px 13px;
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.06em;
  cursor: pointer;
  align-items: center;
  gap: 6px;
}

/* ============================================================
/* ============================================================
   iscof HERO SECTION (Official Style)
   ============================================================ */

.hero-section {
  position: relative;
  overflow: hidden;
  color: #ffffff;
  background: #000000;
  width: 100%;
}

.hero-section > .hero-container,
.hero-section > .container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: calc(50vh - 128px);
  min-height: calc(50dvh - 128px);
  padding: 80px 20px 60px;
  position: relative;
  z-index: 2;
  box-sizing: border-box;
}

.hero-section.small-height > .hero-container,
.hero-section.small-height > .container {
  min-height: 480px;
  height: 540px;
  padding: 60px 20px 50px;
}

@media screen and (min-width: 992px) {
  .hero-section > .hero-container,
  .hero-section > .container {
    min-height: 500px;
    height: 560px;
    max-height: 640px;
    padding-top: 70px;
    padding-bottom: 50px;
  }

  .hero-section.small-height > .hero-container,
  .hero-section.small-height > .container {
    min-height: 500px;
    height: 560px;
    max-height: 640px;
    padding-top: 70px;
    padding-bottom: 50px;
  }
}

.hero-section-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: #000000 url('assets/img/homepage-bg-bk.png') no-repeat center center;
  background-size: cover;
  overflow: hidden;
}

.hero-section-bg:after {
  content: "";
  position: absolute;
  inset: 0;
  background: #000000;
  opacity: 0.15;
  z-index: 1;
  pointer-events: none;
}

.hero-section-bg video {
  border: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
  transform: none;
  z-index: 0;
  pointer-events: none;
  background: #000000;
}

.hero-section-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  width: 100%;
  max-width: 1050px;
  margin: 0 auto;
  z-index: 2;
  padding: 10px 0;
}

.hero-section .h1,
.hero-section h1 {
  text-align: center;
  text-transform: uppercase;
  margin: 0 auto;
  color: #ffffff;
  font-family: inherit;
  font-size: clamp(32px, 4.4vw, 52px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: 2px;
  width: 100%;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.85);
}

/* Iconic iscof Camera Viewfinder Bracket Box */
.hero-section-text {
  margin: 32px auto 0;
  line-height: 1.5;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  max-width: 420px;
  min-height: 175px;
  padding: 32px 36px;
  font-family: inherit;
  text-transform: uppercase;
  text-align: center;
  color: #ffffff;
  border: 5px solid var(--color-primary, #00a2e8);
  border-right: none;
  box-sizing: border-box;
}

.hero-section-text:before,
.hero-section-text:after {
  content: "";
  position: absolute;
  right: 0;
  width: 5px;
  background: var(--color-primary, #00a2e8);
}

.hero-section-text:before {
  top: 0;
  height: 25px;
}

.hero-section-text:after {
  bottom: 0;
  height: 25px;
}

.hero-section-text p {
  margin: 0;
  color: #ffffff;
  line-height: 1.6;
  letter-spacing: 1.5px;
  font-size: 17px;
  font-weight: 400;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.85);
}


/* ===== iscof Style Intro + Program Cards ===== */

.iscof-style-section {
  width: 100%;
  overflow: hidden;
  background: #ffffff;
  color: #111111;
  font-family: "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* Intro Section */
.iscof-intro {
  padding: 45px 24px 30px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  background: var(--color-white, #ffffff);
}

.iscof-intro h2 {
  margin: 0 0 14px;
  font-size: 30px;
  line-height: 30px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #090909;
}

.iscof-intro p {
  max-width: 1100px;
  margin: 0 auto 24px;
  font-size: 20px;
  line-height: 30px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 400;
  color: #090909;
}

.iscof-read-more {
  width: auto;
  min-width: 170px;
  min-height: 40px;
  padding: 10px 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #00adef;
  color: #000000;
  text-decoration: none;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 1.2px;
  border-radius: 0;
  transition: background .25s ease, color .25s ease;
}

.iscof-read-more:hover {
  background: #090909;
  color: #ffffff;
}

/* ========================================
   NYFA CARD SECTION
   Scoped CSS — does not affect the navbar
======================================== */

.nyfa-cards-section,
.nyfa-cards-section * {
  box-sizing: border-box;
}

.nyfa-cards-section {
  width: 100%;
  margin: 0;
  padding: 0 0 40px 0;
  background: #fff;
  font-family: Arial, Helvetica, sans-serif;
}

.nyfa-cards-section .nyfa-cards-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
  margin: 0;
  padding: 0;
  align-items: stretch;
}

.nyfa-cards-section .nyfa-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  min-height: 284px;
  margin: 0;
  padding: 30px 26px 26px;
  background: #0b0b0b url('assets/img/nyfa-cards-bg.png') no-repeat center center;
  background-size: cover;
  color: #fff;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow-wrap: break-word;
}

/* Intro card */

.nyfa-cards-section .nyfa-card-intro {
  justify-content: center;
  padding: 26px;
}

.nyfa-cards-section .nyfa-card-intro h2 {
  margin: 0;
  padding: 0;
  color: #fff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(38px, 3.15vw, 52px);
  font-weight: 400;
  line-height: 0.91;
  letter-spacing: 1.1px;
  text-transform: uppercase;
}

/* Card headings */

.nyfa-cards-section .nyfa-card h3 {
  margin: 0 0 28px;
  padding: 0;
  color: #fff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 21px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 2.7px;
  text-transform: uppercase;
}

.nyfa-cards-section .nyfa-card h3 small {
  display: inline;
  font-size: 10px;
  font-weight: 600;
  line-height: inherit;
  letter-spacing: 2px;
  white-space: normal;
}

/* Description */

.nyfa-cards-section .nyfa-card p {
  margin: 0 0 20px;
  padding: 0;
  color: #f5f5f5;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.48;
  letter-spacing: -0.15px;
}

/* Learn more link */

.nyfa-cards-section .nyfa-card .nyfa-card-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: auto;
  padding: 0 0 0 4px;
  color: #00b9f1;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.2px;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 0.2s ease;
}

.nyfa-cards-section .nyfa-card .nyfa-card-link span {
  display: inline-block;
  font-size: 22px;
  line-height: 0.8;
  transition: transform 0.2s ease;
}

.nyfa-cards-section .nyfa-card .nyfa-card-link:hover {
  color: #fff;
  text-decoration: none;
}

.nyfa-cards-section .nyfa-card .nyfa-card-link:hover span {
  transform: translateX(4px);
}

/* Keyboard accessibility */

.nyfa-cards-section .nyfa-card .nyfa-card-link:focus-visible {
  outline: 2px solid #00b9f1;
  outline-offset: 5px;
}

/* ========================================
   TABLET
======================================== */

@media (max-width: 1024px) {
  .nyfa-cards-section .nyfa-cards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .nyfa-cards-section .nyfa-card {
    min-height: 270px;
    padding: 26px 24px;
  }

  .nyfa-cards-section .nyfa-card-intro h2 {
    font-size: clamp(38px, 5vw, 48px);
  }

  .nyfa-cards-section .nyfa-card h3 {
    margin-bottom: 22px;
    font-size: 20px;
  }
}

/* ========================================
   MOBILE
======================================== */

@media (max-width: 600px) {
  .nyfa-cards-section .nyfa-cards-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .nyfa-cards-section .nyfa-card {
    min-height: 240px;
    padding: 26px 22px;
  }

  .nyfa-cards-section .nyfa-card-intro {
    min-height: 230px;
  }

  .nyfa-cards-section .nyfa-card-intro h2 {
    font-size: 43px;
    line-height: 0.95;
  }

  .nyfa-cards-section .nyfa-card h3 {
    margin-bottom: 22px;
    font-size: 20px;
    line-height: 1.25;
    letter-spacing: 2px;
  }

  .nyfa-cards-section .nyfa-card p {
    font-size: 14px;
    line-height: 1.55;
  }

  .iscof-intro {
    padding: 35px 18px 24px;
  }

  .iscof-intro h2 {
    font-size: 22px;
    line-height: 26px;
    letter-spacing: 0.5px;
  }

  .iscof-intro p {
    font-size: 15px;
    line-height: 22px;
    letter-spacing: 0.5px;
  }

  .iscof-read-more {
    width: 100%;
    max-width: 260px;
  }

  .iscof-experience {
    padding: 48px 20px;
  }
}

/* Reduced motion accessibility */

@media (prefers-reduced-motion: reduce) {
  .nyfa-cards-section .nyfa-card .nyfa-card-link,
  .nyfa-cards-section .nyfa-card .nyfa-card-link span {
    transition: none;
  }
}

/* The NYFA Experience Title */
.iscof-experience-title {
  padding: 45px 24px 35px;
  text-align: center;
  background: var(--color-white, #ffffff);
}

.iscof-experience-title h2,
.iscof-experience h2 {
  margin: 0;
  color: #090909;
  font-size: clamp(28px, 2.7vw, 36px);
  line-height: 1.25;
  font-weight: 400;
  letter-spacing: 2px;
  text-transform: uppercase;
}


/* Buttons in sections use the Core Reusable Button System declared at top */

/* ============================================================
   SECTIONS & INNER BLOCKS
   ============================================================ */

.section {
  padding: 100px 26px;
}

.container {
  max-width: var(--layout-max-width);
  margin: auto;
}

.section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 38px;
}

.section-head h2,
.intro h2,
.cta-band h2 {
  font-size: clamp(34px, 5vw, 58px);
  line-height: 1;
  letter-spacing: -0.06em;
  text-transform: uppercase;
  margin: 0;
  max-width: 750px;
}

.section-head p {
  max-width: 350px;
  color: #666666;
  margin: 0;
}

.page-content {
  max-width: var(--layout-max-width);
  margin: 0 auto;
  padding: 70px 26px;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ============================================================
   RESPONSIVE MEDIA QUERIES
   ============================================================ */

@media (min-width: 1200px) and (max-width: 1550px) {
  .header-inner {
    padding-top: 16px;
    padding-bottom: 16px;
    gap: 16px;
  }
  .nav-menu {
    gap: 12px;
  }
  .nav-menu > li > a {
    font-size: 12.5px;
    padding: 6px 5px;
    letter-spacing: 0.03em;
  }
  .btn-iscof-cyan,
  .btn-iscof-outline {
    padding: 0 14px;
    font-size: 11px;
    height: 38px;
    min-height: 38px;
  }
  .brand-logo-img,
  .brand img,
  .custom-logo {
    height: 34px !important;
    max-height: 34px !important;
    max-width: 295px !important;
  }
}

@media (max-width: 1199.98px) {
  .top-utility-bar {
    display: none !important;
  }

  .header-inner {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    min-height: 70px !important;
    height: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    border-radius: 0 !important;
  }

  .brand-logo-img,
  .brand img,
  .custom-logo {
    height: 32px !important;
    max-height: 32px !important;
    max-width: 270px !important;
  }

  .desktop-actions {
    display: none !important;
  }

  /* Sleek Box Menu Toggle Button (matches NYFA screenshot) */
  .menu-toggle {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    background: #111111 !important;
    color: #ffffff !important;
    border: 1px solid #444444 !important;
    border-radius: 0 !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    padding: 8px 14px !important;
    font-weight: 500;
    font-size: 11px;
    letter-spacing: 0.08em;
    cursor: pointer;
    text-transform: uppercase;
    transition: background 0.2s ease, border-color 0.2s ease;
  }

  .menu-toggle .menu-toggle-text {
    display: inline-block !important;
  }

  .menu-toggle .menu-toggle-icon {
    font-size: 12px;
  }

  .menu-toggle:hover {
    background: #222222 !important;
    border-color: #666666 !important;
  }

  /* Full-width Responsive Drawer (matches NYFA reference) */
  .main-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: auto;
    width: 100% !important;
    background: #000000 !important;
    border-bottom: 2px solid var(--color-primary);
    border-left: none !important;
    padding: 24px 24px 28px !important;
    flex-direction: column;
    align-items: stretch;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.95);
    max-height: calc(100vh - 80px);
    overflow-y: auto;
    z-index: 1000;
    border-radius: 0 !important;
  }

  .main-nav.is-open {
    display: flex !important;
  }

  .nav-menu {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    height: auto;
    gap: 0 !important;
    width: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .nav-menu > li {
    border-bottom: 1px solid #1c1c1c;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    height: auto;
  }

  .nav-menu > li:last-child {
    border-bottom: none;
  }

  .nav-menu > li > a {
    padding: 13px 0 !important;
    width: 100%;
    font-family: inherit;
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: 0.06em;
    text-transform: uppercase !important;
    color: #ffffff !important;
    text-decoration: none;
    display: block;
    height: auto;
    border-radius: 0 !important;
    transition: color 0.15s ease;
  }

  .nav-menu > li > a:hover {
    color: var(--color-primary) !important;
    background: transparent !important;
  }

  .nav-menu > li.current-menu-item > a:after,
  .nav-menu > li.current_page_item > a:after {
    display: none;
  }

  .nav-menu .sub-menu {
    position: static;
    display: block;
    opacity: 1;
    transform: none;
    border: none;
    border-left: 2px solid var(--color-primary);
    background: #111111;
    margin: 0 0 10px 10px;
    box-shadow: none;
    padding: 8px 14px;
    list-style: none;
  }

  .nav-menu .sub-menu li a {
    color: #cccccc;
    font-size: 11.5px;
    padding: 8px 0;
  }

  /* Full-width Action Buttons (Cyan REQUEST INFO + Dark APPLY NOW) */
  .mobile-actions {
    display: flex !important;
    flex-direction: column;
    gap: 10px !important;
    margin-top: 24px;
    padding-top: 0 !important;
    border-top: none !important;
    width: 100%;
  }

  .mobile-actions .btn-iscof-cyan {
    width: 100%;
    text-align: center;
    justify-content: center;
    height: 44px;
    min-height: 44px;
    background: #00bdf2 !important;
    color: #000000 !important;
    font-family: inherit !important;
    font-weight: 500 !important;
    font-size: 11.5px !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    border-radius: 0 !important;
    border: none !important;
    display: inline-flex !important;
    align-items: center !important;
    text-decoration: none !important;
    transition: opacity 0.2s ease !important;
  }

  .mobile-actions .btn-iscof-cyan:hover {
    opacity: 0.9 !important;
    color: #000000 !important;
  }

  .mobile-actions .btn-iscof-outline {
    width: 100%;
    text-align: center;
    justify-content: center;
    height: 44px;
    min-height: 44px;
    background: #000000 !important;
    color: #ffffff !important;
    font-family: inherit !important;
    font-weight: 500 !important;
    font-size: 11.5px !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    border-radius: 0 !important;
    border: 1px solid #ffffff !important;
    display: inline-flex !important;
    align-items: center !important;
    text-decoration: none !important;
  }

  .mobile-actions .btn-iscof-outline:hover {
    background: #ffffff !important;
    color: #000000 !important;
  }
}






/* ===== iscof Experience Section ===== */

.iscof-experience-section {
  width: 100%;
  overflow: hidden;
  background: #ffffff;
  color: #171717;
  font-family: "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* Section Heading */
.iscof-experience-title {
  padding: 65px 20px 68px;
  background: #ffffff;
}

.iscof-experience-title h2 {
  margin: 0;
  font-size: clamp(26px, 2.3vw, 35px);
  line-height: 1.3;
  font-weight: 400;
  letter-spacing: 2px;
  text-transform: uppercase;
}

/* Light Blue Learning Section */
.iscof-learning {
  padding: 35px 0;
  background: #e5f7fd;
}

.iscof-learning .container {
  max-width: 1380px;
}

/* Image */
.iscof-learning-image {
  position: relative;
  z-index: 2;
  height: 250px;
  overflow: hidden;
  border-radius: 9px 0 0 9px;
}

.iscof-learning-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Overlapping White Card */
.iscof-learning-card {
  position: relative;
  z-index: 1;
  min-height: 258px;
  margin-left: -75px;
  padding: 35px 38px 32px 110px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #ffffff;
  border-radius: 9px;
  box-shadow: 9px 9px 0 rgba(71, 184, 220, .16);
}

.iscof-learning-card h3 {
  margin: 0 0 20px;
  color: #171717;
  font-size: clamp(22px, 1.7vw, 27px);
  line-height: 1.3;
  font-weight: 400;
}

.iscof-learning-card p {
  margin: 0;
  color: #686868;
  font-size: 16px;
  line-height: 1.45;
}

/* Alumni Section */
.iscof-alumni {
  padding: 26px 0 65px;
  background: #ffffff;
}

.iscof-alumni .container {
  max-width: 1380px;
}

.iscof-alumni-content {
  padding: 15px 0;
}

.iscof-alumni-content h2 {
  margin: 0 0 20px;
  color: #171717;
  font-size: clamp(25px, 2vw, 31px);
  font-weight: 400;
  text-transform: uppercase;
}

.iscof-alumni-content p {
  margin: 0 0 20px;
  color: #686868;
  font-size: 16px;
  line-height: 1.5;
}

.iscof-alumni-link {
  display: inline-block;
  color: #111111;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 1px;
  text-decoration: none;
  text-transform: uppercase;
}

.iscof-alumni-link span {
  display: inline-block;
  margin-left: 5px;
  transition: transform .2s ease;
}

.iscof-alumni-link:hover span {
  transform: translate(3px, -3px);
}

/* Alumni Image */
.iscof-alumni-image {
  width: 100%;
  overflow: hidden;
  border-radius: 8px;
}

.iscof-alumni-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

/* Tablet */
@media (max-width: 991.98px) {
  .iscof-experience-title {
    padding: 48px 20px;
  }

  .iscof-learning {
    padding: 30px 0;
  }

  .iscof-learning-image {
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: 8px;
  }

  .iscof-learning-card {
    min-height: auto;
    margin: 18px 0 0;
    padding: 28px;
    border-radius: 8px;
  }

  .iscof-learning-card h3 {
    font-size: 24px;
  }

  .iscof-learning-card p,
  .iscof-alumni-content p {
    font-size: 15px;
  }

  .iscof-alumni {
    padding: 35px 0 45px;
  }
}

/* Mobile */
@media (max-width: 575.98px) {
  .iscof-experience-title {
    padding: 38px 16px;
  }

  .iscof-experience-title h2 {
    font-size: 24px;
    letter-spacing: 2px;
  }

  .iscof-learning {
    padding: 22px 0 28px;
  }

  .iscof-learning .container,
  .iscof-alumni .container {
    padding-right: 20px;
    padding-left: 20px;
  }

  .iscof-learning-image {
    aspect-ratio: 4 / 3;
  }

  .iscof-learning-card {
    margin-top: 14px;
    padding: 24px 22px;
    box-shadow: 5px 5px 0 rgba(71, 184, 220, .16);
  }

  .iscof-learning-card h3 {
    margin-bottom: 14px;
    font-size: 22px;
  }

  .iscof-learning-card p,
  .iscof-alumni-content p {
    font-size: 14px;
    line-height: 1.6;
  }

  .iscof-alumni {
    padding: 28px 0 40px;
  }

  .iscof-alumni-content h2 {
    margin-bottom: 14px;
    font-size: 25px;
  }
}


/* ============================================================
   The Student Experience & iscof Campuses Section
   ============================================================ */

.iscof-campus {
  background: #EBF8FF;
  padding: 55px 0 65px;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.iscof-campus .container {
  max-width: 1360px;
  padding-left: 24px;
  padding-right: 24px;
  margin: 0 auto;
}

.iscof-campus-row {
  display: flex;
  align-items: center;
  position: relative;
  width: 100%;
}

.iscof-campus-image-wrap {
  width: 42%;
  flex: 0 0 42%;
  position: relative;
  z-index: 2;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

.iscof-campus-image-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 12px;
  object-fit: cover;
}

.iscof-campus-content-card {
  width: 66%;
  flex: 0 0 66%;
  margin-left: -8%;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 12px 12px 0 rgba(37, 131, 179, 0.12);
  padding: 46px 52px 42px 12%;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
}

.iscof-campus-content-card h3 {
  margin: 0 0 18px;
  color: #111111;
  font-family: inherit;
  font-size: clamp(23px, 2.1vw, 30px);
  font-weight: 400;
  line-height: 1.3;
}

.iscof-campus-content-card p {
  margin: 0 0 24px;
  color: #666666;
  font-family: inherit;
  font-size: 15.5px;
  line-height: 1.55;
}

.iscof-campus-content-card .iscof-campus-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #ff1680;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.2s ease, transform 0.2s ease;
}

.iscof-campus-content-card .iscof-campus-link:hover {
  color: #d90066;
  transform: translateX(3px);
}

@media (max-width: 991px) {
  .iscof-campus {
    padding: 38px 0 45px;
  }

  .iscof-campus-row {
    flex-direction: column;
    align-items: center;
  }

  .iscof-campus-image-wrap {
    width: 100%;
    max-width: 580px;
    margin-bottom: 24px;
  }

  .iscof-campus-content-card {
    width: 100%;
    max-width: 580px;
    margin-left: 0;
    padding: 32px 28px 30px;
    box-shadow: 8px 8px 0 rgba(37, 131, 179, 0.12);
  }

  .iscof-campus-content-card h3 {
    font-size: 24px;
  }

  .iscof-campus-content-card p {
    font-size: 14.5px;
  }
}



/* =====================================
   NYFA Press Section (Reference Design)
===================================== */

.nyfa-press-section,
.nyfa-press-section *,
.iscof-press-section,
.iscof-press-section * {
  box-sizing: border-box;
}

.nyfa-press-section,
.iscof-press-section {
  width: 100%;
  padding: 68px 13px 55px;
  background: #fff;
  color: #111;
  font-family: inherit;
}

/* Heading */
.nyfa-press-heading,
.iscof-press-heading {
  max-width: 1296px;
  margin: 0 auto 68px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 35px;
}

.nyfa-press-heading h2,
.iscof-press-heading h2 {
  flex: 1;
  margin: 0;
  padding: 0 0 0 35px;
  border-left: 4px solid #00b9f1;
  font-family: inherit;
  font-size: 60px;
  font-weight: 400;
  line-height: 1.18;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #111;
}

.nyfa-press-button,
.iscof-press-button {
  flex: 0 0 140px;
  min-height: 45px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 21px;
  background: #00b9f1;
  color: #000;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 1.4px;
  text-align: center;
  text-decoration: none;
  transition: background-color .25s ease;
  border: none;
  border-radius: 0;
}

.nyfa-press-button:hover,
.nyfa-press-button:focus-visible,
.iscof-press-button:hover,
.iscof-press-button:focus-visible {
  background: #009ed0;
  color: #000;
}

/* Four Article Cards */
.nyfa-press-grid,
.iscof-press-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 13px;
  width: 100%;
}

.nyfa-press-card,
.iscof-press-card {
  min-width: 0;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.nyfa-press-image,
.iscof-press-image {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #f2f2f2;
}

.nyfa-press-image img,
.iscof-press-image img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center;
  border: 0;
  border-radius: 0;
  transition: transform .35s ease;
}

.nyfa-press-image:hover img,
.iscof-press-image:hover img {
  transform: scale(1.025);
}

/* Publisher */
.nyfa-press-source,
.iscof-press-meta {
  margin-top: 25px;
  margin-bottom: 4px;
  color: #777;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
}

/* Article Title */
.nyfa-press-card h3,
.iscof-press-card h3 {
  margin: 0;
  padding: 0;
  font-family: inherit;
  font-size: 21px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 2px;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.nyfa-press-card h3 a,
.iscof-press-card h3 a {
  color: #111;
  text-decoration: none;
}

.nyfa-press-card h3 a:hover,
.nyfa-press-card h3 a:focus-visible,
.iscof-press-card h3 a:hover,
.iscof-press-card h3 a:focus-visible {
  color: #111;
  text-decoration: underline;
  text-decoration-color: #00b9f1;
  text-underline-offset: 5px;
}

/* Tablet */
@media (max-width: 1024px) {
  .nyfa-press-section,
  .iscof-press-section {
    padding-top: 55px;
  }

  .nyfa-press-heading,
  .iscof-press-heading {
    max-width: 100%;
    margin-bottom: 45px;
    gap: 25px;
  }

  .nyfa-press-heading h2,
  .iscof-press-heading h2 {
    font-size: 38px;
    padding-left: 24px;
  }

  .nyfa-press-grid,
  .iscof-press-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 35px 16px;
  }

  .nyfa-press-card h3,
  .iscof-press-card h3 {
    font-size: 19px;
  }

  .nyfa-press-source,
  .iscof-press-meta {
    margin-top: 16px;
  }
}

/* Mobile */
@media (max-width: 600px) {
  .nyfa-press-section,
  .iscof-press-section {
    padding: 38px 15px;
  }

  .nyfa-press-heading,
  .iscof-press-heading {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 30px;
  }

  .nyfa-press-heading h2,
  .iscof-press-heading h2 {
    padding-left: 17px;
    font-size: 29px;
    line-height: 1.2;
    letter-spacing: 1.2px;
  }

  .nyfa-press-button,
  .iscof-press-button {
    flex-basis: auto;
    width: 140px;
    min-height: 43px;
    margin-top: 0;
  }

  .nyfa-press-grid,
  .iscof-press-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .nyfa-press-card h3,
  .iscof-press-card h3 {
    font-size: 19px;
    line-height: 1.35;
    letter-spacing: 1.5px;
  }

  .nyfa-press-source,
  .iscof-press-meta {
    margin-top: 13px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nyfa-press-section *,
  .nyfa-press-section *::before,
  .nyfa-press-section *::after,
  .iscof-press-section *,
  .iscof-press-section *::before,
  .iscof-press-section *::after {
    transition-duration: 0.01ms;
    animation-duration: 0.01ms;
  }
}



/* =========================================
   FIND WHAT'S NEXT
========================================= */

.iscof-next-section {
    padding: 65px 20px 170px;
    background: #fff;
    color: #111;
}

.iscof-next-container {
    max-width: 1095px;
    margin: 0 auto;
}

.iscof-next-heading {
    margin: 0 0 14px;
    text-align: center;
    font-size: clamp(27px, 2.5vw, 36px);
    line-height: 1.25;
    font-weight: 400;
    letter-spacing: 1.2px;
}

/* Tabs row */
.iscof-next-tabs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: stretch;
    border-bottom: 3px solid #f5d51c;
}

.iscof-next-tab {
    min-height: 64px;
    padding: 12px 10px;
    border: 0;
    border-bottom: 3px solid transparent;
    margin-bottom: -3px;
    background: transparent;
    color: #999;
    font-family: inherit;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.7px;
    text-align: center;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}

.iscof-next-tab:hover {
    color: #111;
}

.iscof-next-tab.is-active {
    background: #f5d51c;
    color: #111;
    border-radius: 9px 9px 0 0;
    border-bottom-color: #111;
}

.iscof-next-tab:focus-visible {
    outline: 2px solid #08b9f4;
    outline-offset: -4px;
}

/* Yellow content panel */
.iscof-next-panel {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
    padding: 27px 27px 25px;
    min-height: 175px;
    background: #fff2b5;
    border-left: 3px solid #f5d51c;
}

.iscof-next-column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
}

.iscof-next-column h3 {
    margin: 0 0 18px;
    color: #111;
    font-size: 21px;
    line-height: 1.3;
    font-weight: 400;
}

.iscof-next-column a {
    display: inline-block;
    margin-bottom: 18px;
    color: #ff3280;
    font-size: 13px;
    line-height: 1.4;
    text-decoration: none;
    transition: color 0.2s ease;
}

.iscof-next-column a:hover {
    color: #c90058;
    text-decoration: underline;
}

.iscof-next-divider {
    width: 100%;
    height: 1px;
    margin-top: auto;
    background: rgba(255, 255, 255, 0.9);
}

/* =========================================
   BOTTOM CTA STRIP
========================================= */

.iscof-bottom-cta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    background: #080808;
}

.iscof-bottom-cta-item {
    min-height: 104px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    border-right: 1px solid #222;
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 1.4px;
    text-decoration: none;
    transition: background 0.25s ease;
}

.iscof-bottom-cta-item:last-child {
    border-right: 0;
}

.iscof-bottom-cta-item:hover {
    background: #171717;
    color: #fff;
}

.iscof-cta-icon {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 2px solid currentColor;
    border-radius: 50%;
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
}

.iscof-cta-blue {
    color: #08b9f4;
}

.iscof-cta-yellow {
    color: #f5d51c;
}

.iscof-cta-pink {
    color: #ff1680;
}

/* Tablet */
@media (max-width: 991.98px) {
    .iscof-next-section {
        padding: 55px 20px 100px;
    }

    .iscof-next-container {
        max-width: 760px;
    }

    .iscof-next-tabs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .iscof-next-tab {
        min-height: 58px;
        font-size: 10px;
    }

    .iscof-next-panel {
        gap: 22px;
        padding: 25px 20px;
    }

    .iscof-next-column h3 {
        font-size: 18px;
    }

    .iscof-bottom-cta-item {
        gap: 12px;
        font-size: 12px;
    }
}

/* Mobile */
@media (max-width: 575.98px) {
    .iscof-next-section {
        padding: 40px 15px 70px;
    }

    .iscof-next-heading {
        margin-bottom: 22px;
        font-size: 28px;
    }

    .iscof-next-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .iscof-next-tab {
        min-height: 54px;
        padding: 10px 6px;
        font-size: 10px;
        letter-spacing: 0.3px;
    }

    .iscof-next-panel {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 24px 20px;
    }

    .iscof-next-column h3 {
        margin-bottom: 13px;
        font-size: 20px;
    }

    .iscof-next-column a {
        margin-bottom: 12px;
    }

    .iscof-next-divider {
        margin-top: 5px;
    }

    .iscof-bottom-cta {
        grid-template-columns: 1fr;
    }

    .iscof-bottom-cta-item {
        min-height: 76px;
        justify-content: space-between;
        padding: 16px 25px;
        border-right: 0;
        border-bottom: 1px solid #222;
    }
}

/* ============================================================
   PAGE TEMPLATES & INNER CONTENT STYLES
   Full Page Template & Default Page Layouts
   ============================================================ */

/* --- Page Hero Header Banner --- */
.page-hero-banner {
  position: relative;
  background-color: var(--color-dark-pure);
  color: #ffffff;
  padding-top: clamp(48px, 7vw, 90px);
  padding-bottom: clamp(44px, 6.5vw, 80px);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  overflow: hidden;
}

.page-hero-banner.no-hero-image {
  background: radial-gradient(circle at 85% 15%, rgba(0, 162, 232, 0.16) 0%, transparent 45%),
              radial-gradient(circle at 15% 85%, rgba(245, 197, 66, 0.08) 0%, transparent 40%),
              linear-gradient(135deg, #090909 0%, #141414 50%, #050505 100%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.page-hero-banner.has-hero-image {
  background-attachment: scroll;
}

.page-hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.82) 100%);
  pointer-events: none;
  z-index: 1;
}

.page-hero-container {
  position: relative;
  z-index: 2;
}

/* Breadcrumbs */
.page-breadcrumbs {
  margin-bottom: clamp(16px, 2.5vw, 24px);
}

.breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  list-style: none !important;
  margin: 0;
  padding: 0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.breadcrumb-item {
  display: inline-flex;
  align-items: center;
  color: #949494;
}

.breadcrumb-item + .breadcrumb-item::before {
  content: "/";
  display: inline-block;
  margin-right: 8px;
  color: #555555;
  font-weight: 400;
}

.breadcrumb-item a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #b5b5b5;
  transition: color 0.2s ease;
}

.breadcrumb-item a:hover {
  color: var(--color-primary);
}

.breadcrumb-icon {
  flex-shrink: 0;
}

.breadcrumb-item.active span {
  color: #ffffff;
}

/* Hero Typography */
.page-hero-header-content {
  max-width: 960px;
}

.page-hero-tagline {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.page-hero-tagline::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 2px;
  background-color: var(--color-primary);
}

.page-hero-title {
  font-size: clamp(30px, 4.8vw, 56px);
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: #ffffff;
  margin: 0 0 16px 0;
  word-break: break-word;
}

.page-hero-subtitle {
  font-size: clamp(16px, 2.2vw, 20px);
  line-height: 1.6;
  color: #cccccc;
  margin: 0;
  max-width: 780px;
}

.page-hero-accent-strip {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-accent-gold) 55%, #e02424 100%);
  z-index: 3;
}

/* ============================================================
   SHARED PAGE TEMPLATE SYSTEM (Centralized Architecture)
   Unifies page.php and template-full-page.php
   ============================================================ */

.caa-page-main,
.full-page-main {
  min-height: 50vh;
  background-color: var(--color-paper);
  color: var(--color-text-main);
  overflow-x: hidden;
}

/* Shared Fluid Container Rules across page templates */
.caa-page-container.container-fluid,
.full-page-container.container-fluid,
.nyfa-body-container.container-fluid,
.page-body-container.container-fluid {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(16px, 3vw, 42px);
  padding-right: clamp(16px, 3vw, 42px);
  box-sizing: border-box;
}

/* Shared Page Body Vertical Spacing */
.caa-page-body {
  background-color: #ffffff;
  color: #111111;
  padding-top: clamp(28px, 3.5vw, 48px);
  padding-bottom: clamp(36px, 4.5vw, 60px);
}

.full-page-article {
  padding-top: clamp(24px, 3vw, 42px);
  padding-bottom: clamp(32px, 4vw, 55px);
}

/* Standard Page Layout (page.php) */
.default-page-main {
  min-height: 50vh;
  background-color: var(--color-paper);
  color: var(--color-text-main);
}

.page-body-container {
  padding-top: clamp(28px, 3.5vw, 48px);
  padding-bottom: clamp(36px, 4.5vw, 60px);
}

/* --- Entry Content Gutenberg & Responsive Grid System --- */
.caa-page-article {
  width: 100%;
}

.caa-page-content.entry-content,
.full-page-content.entry-content,
.page-content-wrapper.entry-content {
  width: 100%;
  max-width: 100%;
}

.full-page-content.entry-content > :not(.alignwide):not(.alignfull),
.page-content-wrapper.entry-content > :not(.alignwide):not(.alignfull) {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Wide Alignment (alignwide) */
.full-page-content.entry-content > .alignwide,
.page-content-wrapper.entry-content > .alignwide {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Full Width Alignment (alignfull: 100% Edge-to-Edge Bleed) */
.full-page-content.entry-content > .alignfull,
.page-content-wrapper.entry-content > .alignfull {
  max-width: 100vw;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}

/* --- Typography & Elements inside .entry-content --- */
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
  font-family: Arial, Helvetica, "Noto Sans", sans-serif;
  color: var(--color-text-main);
  font-weight: 800;
  line-height: 1.25;
  margin-top: 1.6em;
  margin-bottom: 0.6em;
  letter-spacing: -0.01em;
}

.entry-content h1:first-child,
.entry-content h2:first-child,
.entry-content h3:first-child {
  margin-top: 0;
}

.entry-content h1 { font-size: clamp(28px, 3.8vw, 42px); }
.entry-content h2 { font-size: clamp(24px, 3.2vw, 34px); }
.entry-content h3 { font-size: clamp(20px, 2.5vw, 28px); }
.entry-content h4 { font-size: clamp(18px, 2.0vw, 24px); }
.entry-content h5 { font-size: clamp(16px, 1.6vw, 20px); }
.entry-content h6 { font-size: clamp(14px, 1.4vw, 16px); text-transform: uppercase; letter-spacing: 0.05em; }

.entry-content p {
  font-size: 17px;
  line-height: 1.8;
  color: #2b2b2b;
  margin-top: 0;
  margin-bottom: 1.5em;
}

.entry-content p:last-child {
  margin-bottom: 0;
}

.entry-content a {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.entry-content a:hover {
  color: var(--color-primary-hover);
  text-decoration-color: var(--color-primary-hover);
}

.entry-content .btn,
.entry-content .button,
.entry-content .wp-block-button__link {
  text-decoration: none !important;
}

/* Lead text class */
.entry-content .lead {
  font-size: clamp(18px, 2.2vw, 22px);
  line-height: 1.65;
  color: #1a1a1a;
  font-weight: 500;
}

/* Blockquotes */
.entry-content blockquote,
.entry-content .wp-block-quote {
  position: relative;
  margin: 2em auto;
  padding: 24px 30px;
  background-color: #ffffff;
  border-left: 4px solid var(--color-primary);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.04);
}

.entry-content blockquote p,
.entry-content .wp-block-quote p {
  font-size: clamp(17px, 2vw, 20px);
  line-height: 1.65;
  font-style: italic;
  color: #1c1c1c;
  margin-bottom: 10px;
}

.entry-content blockquote cite,
.entry-content .wp-block-quote cite {
  display: block;
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #777777;
}

/* Lists */
.entry-content ul,
.entry-content ol {
  margin-top: 0;
  margin-bottom: 1.5em;
  padding-left: 28px;
}

.entry-content li {
  margin-bottom: 8px;
  line-height: 1.7;
  color: #2b2b2b;
}

.entry-content ul {
  list-style-type: square;
}

/* Tables */
.entry-content table,
.entry-content .wp-block-table table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.8em 0;
  background: #ffffff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
  overflow: hidden;
}

.entry-content th,
.entry-content .wp-block-table th {
  background-color: var(--color-dark-pure);
  color: #ffffff;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.06em;
  padding: 14px 18px;
  text-align: left;
  border: 1px solid #333333;
}

.entry-content td,
.entry-content .wp-block-table td {
  padding: 13px 18px;
  border: 1px solid #e7e5df;
  font-size: 15px;
  color: #333333;
}

.entry-content tr:nth-child(even) td {
  background-color: #faf9f6;
}

/* Images & Captions */
.entry-content figure {
  margin: 1.2em auto;
}

.entry-content figure:first-child,
.entry-content > *:first-child {
  margin-top: 0 !important;
}

.entry-content figure:last-child,
.entry-content > *:last-child {
  margin-bottom: 0 !important;
}

/* Gutenberg Columns & Images inside columns: remove double margin */
.entry-content .wp-block-columns {
  margin-top: 0.8em;
  margin-bottom: 1.5em;
}

.entry-content .wp-block-columns:first-child {
  margin-top: 0 !important;
}

.entry-content .wp-block-column figure,
.entry-content .wp-block-column .wp-block-image {
  margin-top: 0 !important;
  margin-bottom: 0.8em;
}

.entry-content .wp-block-column > *:first-child {
  margin-top: 0 !important;
}

.entry-content .wp-block-column > *:last-child {
  margin-bottom: 0 !important;
}

.entry-content .wp-block-column p {
  margin-bottom: 1em;
}

.entry-content .wp-block-column p:last-child {
  margin-bottom: 0 !important;
}

/* Gutenberg Cover Blocks */
.entry-content .wp-block-cover {
  margin-top: 1.2em;
  margin-bottom: 1.2em;
}

.entry-content figcaption {
  font-size: 13px;
  color: #737373;
  margin-top: 8px;
  text-align: center;
  font-style: italic;
}

.entry-content img {
  border-radius: 0;
  height: auto;
}

/* Code & Preformatted */
.entry-content pre {
  background: #111111;
  color: #f1f1f1;
  padding: 20px 24px;
  font-family: Consolas, Monaco, "Courier New", monospace;
  font-size: 14px;
  line-height: 1.6;
  overflow-x: auto;
  border-left: 3px solid var(--color-primary);
  margin: 1.8em auto;
}

.entry-content code {
  background: rgba(0, 0, 0, 0.06);
  padding: 2px 6px;
  font-family: Consolas, Monaco, "Courier New", monospace;
  font-size: 0.9em;
  color: #c7254e;
}

.entry-content pre code {
  background: none;
  padding: 0;
  color: inherit;
}

/* Horizontal Rule */
.entry-content hr,
.entry-content .wp-block-separator {
  border: 0;
  height: 1px;
  background: #dedcd4;
  margin: 2.8em auto;
}

/* Multipage Pagination */
.page-links-pagination {
  margin-top: 32px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.page-links-label {
  font-weight: 800;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #555555;
  margin-right: 6px;
}

.page-number-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  background: #ffffff;
  border: 1px solid #dcdad2;
  color: var(--color-text-main);
  font-weight: 700;
  font-size: 13px;
  transition: all 0.2s ease;
}

.page-number-link:hover,
.page-links-pagination > span:not(.page-links-label) .page-number-link {
  background: var(--color-primary);
  color: #ffffff;
  border-color: var(--color-primary);
}

/* Admin Edit Link */
.page-admin-actions {
  margin-top: 36px;
  padding-top: 20px;
  border-top: 1px dashed #dcdad2;
}

.edit-link-badge a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #666666;
  background: #e9e7e1;
  padding: 6px 14px;
  text-decoration: none;
  transition: all 0.2s ease;
}

.edit-link-badge a:hover {
  background: var(--color-primary);
  color: #ffffff;
}

/* Comments Area */
.page-comments-section {
  padding-bottom: 60px;
}

.page-comments-wrap {
  background: #ffffff;
  padding: clamp(24px, 4vw, 44px);
  border: 1px solid #e6e4dc;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.03);
}

/* Responsive adjustments for inner pages */
@media (max-width: 767.98px) {
  .page-hero-banner {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .breadcrumb-list {
    font-size: 10px;
    gap: 6px;
  }

  .page-hero-title {
    font-size: 28px;
  }

  .entry-content p {
    font-size: 16px;
  }

  .entry-content blockquote,
  .entry-content .wp-block-quote {
    padding: 18px 20px;
  }
}

/* ============================================================
   NYFA / ISCOF 2-COLUMN INNER PAGE ARCHITECTURE
   Matches NYFA Acting School Screenshot Layout
   ============================================================ */

/* --- Cinematic NYFA Hero Banner --- */
.nyfa-style-banner {
  min-height: clamp(340px, 42vh, 480px);
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
  overflow: hidden;
  padding-top: clamp(60px, 8vw, 110px);
  padding-bottom: clamp(60px, 8vw, 110px);
}

.nyfa-style-banner .page-hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(180deg, rgba(10, 10, 10, 0.42) 0%, rgba(0, 0, 0, 0.84) 100%);
  pointer-events: none;
  z-index: 1;
}

.nyfa-style-banner .page-hero-container {
  position: relative;
  z-index: 2;
  width: 100%;
}

.page-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #ffffff;
  margin-bottom: 20px;
}

.page-hero-eyebrow a {
  color: #e0e0e0;
  transition: color 0.2s ease;
}

.page-hero-eyebrow a:hover {
  color: var(--color-primary);
}

.eyebrow-sep {
  color: #888888;
  font-weight: 400;
}

.nyfa-style-banner .page-hero-title {
  font-size: clamp(34px, 5.2vw, 64px);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: #ffffff;
  margin: 0;
  max-width: 1200px;
  word-break: break-word;
}

/* --- NYFA Page Body & 2-Column Grid --- */
.nyfa-page-body {
  background-color: #ffffff;
  color: #111111;
  padding-top: clamp(28px, 3.5vw, 48px);
  padding-bottom: clamp(36px, 4.5vw, 60px);
}

.nyfa-body-container {
  width: 100%;
}

/* Iconic Pink/Magenta Vertical Accent Heading */
.nyfa-intro-block {
  margin-bottom: clamp(20px, 2.5vw, 32px);
}

.nyfa-accent-heading,
.caa-page-content.entry-content > h1:first-child,
.caa-page-content.entry-content > h2:first-child {
  border-left: 5px solid #e91e63;
  padding-left: clamp(20px, 3vw, 32px);
  font-size: clamp(28px, 3.8vw, 48px);
  font-weight: 900;
  line-height: 1.15;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  color: #111111;
  margin-top: 0;
  margin-bottom: 24px;
}

.nyfa-intro-lead p {
  font-size: clamp(17px, 2vw, 19px);
  line-height: 1.75;
  color: #2b2b2b;
  margin-bottom: 0;
}

/* Two-Column Intro Row (when pasted directly into content) */
.nyfa-page-intro-row {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 40px;
  align-items: flex-start;
  margin-bottom: 45px;
}

.nyfa-related-links-card {
  background: #f7f7f7;
  border: 1px solid #ebebeb;
  padding: 28px 24px;
  border-radius: 0;
}

.nyfa-related-links-card .nyfa-related-title {
  margin-top: 0;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e0e0e0;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.nyfa-related-links-card ul,
.nyfa-related-links-card .nyfa-related-menu {
  list-style: none !important;
  margin: 0;
  padding: 0;
}

.nyfa-related-links-card li {
  border-bottom: 1px solid #e5e5e5;
  margin: 0;
}

.nyfa-related-links-card li:last-child {
  border-bottom: none;
}

.nyfa-related-links-card a {
  display: block;
  padding: 14px 0;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #111111;
  text-decoration: none;
  transition: color 0.2s ease, padding-left 0.2s ease;
}

.nyfa-related-links-card a:hover {
  color: var(--color-primary);
  padding-left: 6px;
}

@media (max-width: 991px) {
  .nyfa-page-intro-row {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

/* Content Area */
.nyfa-content {
  width: 100%;
}

/* --- Right Sidebar: Related Links Card --- */
.nyfa-sidebar {
  position: sticky;
  top: 140px;
}

.nyfa-related-card {
  background: #f7f7f7;
  border: 1px solid #ebebeb;
  padding: clamp(28px, 3.5vw, 36px) clamp(22px, 3vw, 32px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}

.nyfa-related-title {
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #111111;
  margin-top: 0;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid #e0e0e0;
}

.nyfa-related-list {
  list-style: none !important;
  margin: 0;
  padding: 0;
}

.nyfa-related-list li {
  border-bottom: 1px solid #e5e5e5;
  margin: 0;
}

.nyfa-related-list li:last-child {
  border-bottom: none;
}

.nyfa-related-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 0;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #111111;
  text-decoration: none;
  transition: color 0.2s ease, padding-left 0.2s ease;
}

.nyfa-related-list a:hover {
  color: var(--color-primary);
  padding-left: 6px;
}

.nyfa-related-list .related-arrow {
  font-style: normal;
  font-size: 14px;
  color: var(--color-primary);
  transition: transform 0.2s ease;
}

.nyfa-related-list a:hover .related-arrow {
  transform: translate(2px, -2px);
}

@media (max-width: 991.98px) {
  .nyfa-sidebar {
    position: static;
    margin-top: 20px;
  }
}

/* ============================================================
   BLOG, ARCHIVE, CATEGORY, SINGLE, 404 & COMMENTS STYLES
   ============================================================ */

/* Fluid containers matching NYFA layout */
.blog-container,
.archive-container,
.category-container,
.single-post-container,
.search-results-container {
  padding-left: clamp(20px, 5.1vw, 85px);
  padding-right: clamp(20px, 5.1vw, 85px);
  width: 100%;
}

/* Category Filter Bar */
.category-filter-bar {
  background-color: #f7f7f7 !important;
  border-bottom: 1px solid #e5e5e5;
  padding: 14px 0;
}

.category-filter-bar .container-fluid {
  padding-left: clamp(20px, 5.1vw, 85px);
  padding-right: clamp(20px, 5.1vw, 85px);
}

.cat-pill-btn {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  background: #ffffff;
  border: 1px solid #d5d5d5;
  color: #222222;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 0;
  transition: all 0.2s ease;
}

.cat-pill-btn:hover {
  background: #111111;
  color: #ffffff;
  border-color: #111111;
}

.cat-pill-btn.active {
  background: var(--color-primary, #00a2e8);
  color: #000000;
  border-color: var(--color-primary, #00a2e8);
}

/* Badges for Categories */
.badge-cat-tag,
.post-badge-cat {
  display: inline-block;
  background: var(--color-primary, #00a2e8);
  color: #000000;
  font-weight: 800;
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 5px 12px;
  text-decoration: none;
  transition: all 0.2s ease;
}

.badge-cat-tag:hover,
.post-badge-cat:hover {
  background: #111111;
  color: #ffffff;
}

/* Blog Cards */
.blog-card {
  background: #ffffff;
  border: 1px solid #ebebeb;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.blog-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.08);
}

.blog-card-media {
  background: #111111;
}

.blog-card-img {
  transition: transform 0.4s ease;
}

.blog-card:hover .blog-card-img {
  transform: scale(1.04);
}

.blog-card-title a {
  color: #111111;
  text-decoration: none;
  transition: color 0.2s ease;
}

.blog-card-title a:hover {
  color: var(--color-primary, #00a2e8);
}

.arrow-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #111111;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.2s ease;
}

.arrow-link:hover {
  color: var(--color-primary, #00a2e8);
}

.arrow-link span:last-child {
  transition: transform 0.2s ease;
}

.arrow-link:hover span:last-child {
  transform: translate(3px, -3px);
}

/* Featured Blog Card (Page 1) */
.featured-blog-card {
  border: 1px solid #ebebeb;
  transition: box-shadow 0.25s ease;
}

.featured-blog-card:hover {
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.09);
}

.featured-img {
  transition: transform 0.4s ease;
}

.featured-blog-card:hover .featured-img {
  transform: scale(1.03);
}

.featured-title a {
  color: #111111;
  text-decoration: none;
  transition: color 0.2s ease;
}

.featured-title a:hover {
  color: var(--color-primary, #00a2e8);
}

/* Single Post Specifics */
.single-post-title {
  max-width: 1000px;
}

.single-post-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 13px;
  font-weight: 600;
  color: #cccccc;
  margin-top: 20px;
}

.single-post-meta .meta-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.single-post-meta .author-avatar-img {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
}

.single-post-meta .meta-sep {
  color: #666666;
}

/* Single Tags */
.single-post-tags {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.single-post-tags .tags-label {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #555555;
}

.single-post-tags .tags-list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.tag-pill {
  display: inline-block;
  padding: 4px 10px;
  background: #f1f1f1;
  border: 1px solid #e0e0e0;
  color: #333333;
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s ease;
}

.tag-pill:hover {
  background: #111111;
  color: #ffffff;
  border-color: #111111;
}

/* Author Bio Box */
.author-bio-box {
  background: #fbfbfb;
  border-left: 4px solid var(--color-primary, #00a2e8);
}

/* Post Prev / Next Navigation */
.post-pagination-nav .nav-post-card {
  display: flex;
  flex-direction: column;
  padding: 16px 20px;
  background: #f9f9f9;
  border: 1px solid #e8e8e8;
  text-decoration: none;
  transition: all 0.2s ease;
}

.post-pagination-nav .nav-post-card:hover {
  background: #ffffff;
  border-color: var(--color-primary, #00a2e8);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
}

.post-pagination-nav .nav-label {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-primary, #00a2e8);
  margin-bottom: 6px;
}

.post-pagination-nav .nav-title {
  font-size: 14px;
  font-weight: 700;
  color: #111111;
  line-height: 1.4;
}

/* Sidebar Widgets */
.post-sidebar .sidebar-widget {
  background: #ffffff;
  border: 1px solid #e8e8e8;
}

.post-sidebar .widget-title {
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #111111;
  border-bottom: 2px solid var(--color-primary, #00a2e8);
  padding-bottom: 10px;
}

.recent-post-title {
  text-decoration: none;
  font-size: 13.5px;
  line-height: 1.4;
  transition: color 0.2s ease;
}

.recent-post-title:hover {
  color: var(--color-primary, #00a2e8) !important;
}

.recent-thumb-img {
  transition: opacity 0.2s ease;
}

.recent-post-item:hover .recent-thumb-img {
  opacity: 0.85;
}

/* Comments Styling */
.comments-area {
  margin-top: 40px;
}

.comments-title,
.comment-reply-title {
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 900;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: #111111;
  margin-bottom: 24px;
}

.comment-list {
  list-style: none;
  padding: 0;
  margin: 0 0 40px;
}

.comment-list .comment {
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid #e8e8e8;
}

.comment-list .comment-body {
  position: relative;
  padding-left: 70px;
}

.comment-list .comment-author .avatar {
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 50%;
  width: 54px;
  height: 54px;
}

.comment-list .comment-meta {
  margin-bottom: 8px;
}

.comment-list .comment-author .fn {
  font-weight: 800;
  font-size: 14px;
  color: #111111;
}

.comment-list .comment-metadata a {
  font-size: 11px;
  color: #888888;
  text-decoration: none;
}

.comment-list .comment-content p {
  font-size: 14.5px;
  line-height: 1.6;
  color: #333333;
}

.comment-list .reply a {
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-primary, #00a2e8);
  text-decoration: none;
  margin-top: 4px;
}

.comment-form .comment-form-comment textarea,
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"] {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #d5d5d5;
  background: #ffffff;
  font-size: 14px;
  margin-top: 6px;
  margin-bottom: 16px;
  border-radius: 0;
}

.comment-form .comment-form-comment textarea:focus,
.comment-form input:focus {
  outline: none;
  border-color: var(--color-primary, #00a2e8);
}

.comment-form input[type="submit"] {
  background: var(--color-primary, #00a2e8);
  color: #000000;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 12px 28px;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
}

.comment-form input[type="submit"]:hover {
  background: #111111;
  color: #ffffff;
}

/* Core WordPress Pagination (nav.pagination) */
.pagination,
.nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.pagination .page-numbers,
.nav-links .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  background: #ffffff;
  border: 1px solid #dcdad2;
  color: #111111;
  font-weight: 700;
  font-size: 13px;
  text-decoration: none;
  transition: all 0.2s ease;
}

.pagination .page-numbers:hover,
.nav-links .page-numbers:hover {
  background: #111111;
  color: #ffffff;
  border-color: #111111;
}

.pagination .page-numbers.current,
.nav-links .page-numbers.current {
  background: var(--color-primary, #00a2e8);
  color: #000000;
  border-color: var(--color-primary, #00a2e8);
}

/* ============================================================
   NYFA ALUMNI & DISCIPLINE PAGE COMPONENTS (Block Editor Ready)
   Matches NYFA Alumni Design (PDF Specs)
   ============================================================ */

/* Section Headings with Vertical Accent Bars */
.entry-content .nyfa-accent-heading,
.nyfa-section-heading {
  border-left: 5px solid var(--color-accent-pink, #e91e63);
  padding-left: clamp(16px, 2.5vw, 24px);
  font-size: clamp(24px, 3.2vw, 36px);
  font-weight: 900;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-text-main, #111111);
  margin-top: 2.2em;
  margin-bottom: 1.2em;
}

.entry-content .nyfa-accent-heading.cyan-bar,
.nyfa-section-heading.cyan-bar {
  border-left-color: var(--color-primary, #00a2e8);
}

/* --- 1. Top Alumni Feature Cards (3-Column Grid) --- */
.alumni-hero-card {
  display: flex;
  flex-direction: column;
  position: relative;
  text-decoration: none;
  color: inherit;
  margin-bottom: 24px;
}

.alumni-hero-card .alumni-media {
  position: relative;
  overflow: hidden;
  background-color: #1a1a1a;
  aspect-ratio: 4 / 4.8;
  width: 100%;
}

.alumni-hero-card .alumni-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.alumni-hero-card:hover .alumni-img {
  transform: scale(1.05);
}

.alumni-hero-card .alumni-arrow-badge {
  position: absolute;
  bottom: 14px;
  left: 14px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--color-primary, #00a2e8);
  color: #000000;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 800;
  z-index: 2;
  transition: transform 0.25s ease, background 0.25s ease, color 0.25s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.alumni-hero-card:hover .alumni-arrow-badge {
  background: #ffffff;
  color: #000000;
  transform: translate(2px, -2px);
}

.alumni-hero-card .alumni-name {
  margin-top: 14px;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #111111;
  transition: color 0.2s ease;
}

.alumni-hero-card:hover .alumni-name {
  color: var(--color-primary, #00a2e8);
}

/* --- 2. Star Alumni Cards (4-Column Grid) --- */
.alumni-star-card {
  display: flex;
  flex-direction: column;
  background: #0d171e;
  border: 1px solid rgba(0, 162, 232, 0.2);
  overflow: hidden;
  text-decoration: none;
  height: 100%;
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
  margin-bottom: 24px;
}

.alumni-star-card:hover {
  transform: translateY(-4px);
  border-color: var(--color-primary, #00a2e8);
  box-shadow: 0 10px 28px rgba(0, 162, 232, 0.15);
}

.alumni-star-card .star-card-media {
  position: relative;
  width: 100%;
  height: 180px;
  overflow: hidden;
  background: #111;
}

.alumni-star-card .star-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform 0.4s ease;
}

.alumni-star-card:hover .star-card-img {
  transform: scale(1.05);
}

.alumni-star-card .star-card-body {
  padding: 16px 14px;
  text-align: center;
  background: #0d171e;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.alumni-star-card .star-badge-icon {
  font-size: 18px;
  color: var(--color-primary, #00a2e8);
  margin-bottom: 6px;
  display: inline-block;
  line-height: 1;
}

.alumni-star-card .star-card-name {
  font-size: 14.5px;
  font-weight: 800;
  color: #ffffff;
  margin: 0 0 4px;
  letter-spacing: 0.02em;
}

.alumni-star-card .star-card-role {
  font-size: 11.5px;
  font-weight: 500;
  color: #8da2b0;
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* --- 3. Browse By Discipline Cards (2 & 3 Column Grid) --- */
.discipline-card {
  position: relative;
  display: block;
  overflow: hidden;
  background: #000000;
  aspect-ratio: 16 / 10;
  text-decoration: none;
  margin-bottom: 24px;
  width: 100%;
}

.discipline-card .discipline-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0.82;
  transition: transform 0.45s ease, opacity 0.45s ease;
}

.discipline-card:hover .discipline-img {
  transform: scale(1.06);
  opacity: 0.95;
}

.discipline-card .discipline-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.78) 100%);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 18px 22px;
  box-sizing: border-box;
  z-index: 2;
}

.discipline-card .discipline-title {
  color: #ffffff;
  font-size: clamp(14px, 1.8vw, 19px);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0;
  line-height: 1.25;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
}

.discipline-card .discipline-arrow-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 2px solid var(--color-primary, #00a2e8);
  background: rgba(0, 0, 0, 0.4);
  color: var(--color-primary, #00a2e8);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 800;
  flex-shrink: 0;
  transition: transform 0.25s ease, background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.discipline-card:hover .discipline-arrow-btn {
  background: var(--color-primary, #00a2e8);
  color: #000000;
  border-color: var(--color-primary, #00a2e8);
  transform: translate(2px, -2px);
}

.alumni-hero-card .alumni-credits {
  font-size: 13.5px;
  color: #555555;
  margin: 4px 0 0;
  line-height: 1.35;
  font-weight: 500;
}

/* --- Responsive CSS Grids for Gutenberg Blocks --- */
.alumni-lead-text {
  font-size: clamp(17px, 1.8vw, 21px);
  line-height: 1.6;
  color: #333333;
  margin-bottom: 36px;
  max-width: 1080px;
}

.alumni-hero-grid,
.alumni-hero-grid > .wp-block-group__inner-container {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap: 28px !important;
  margin-bottom: 48px;
  max-width: 100% !important;
  width: 100% !important;
}

@media (min-width: 992px) {
  .alumni-hero-grid,
  .alumni-hero-grid > .wp-block-group__inner-container {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

.alumni-stars-grid,
.alumni-stars-grid > .wp-block-group__inner-container {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
  gap: 20px !important;
  margin-bottom: 56px;
  max-width: 100% !important;
  width: 100% !important;
}

@media (min-width: 992px) {
  .alumni-stars-grid,
  .alumni-stars-grid > .wp-block-group__inner-container {
    grid-template-columns: repeat(4, 1fr) !important;
  }
}

.discipline-grid,
.discipline-grid > .wp-block-group__inner-container {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) !important;
  gap: 24px !important;
  margin-bottom: 60px;
  max-width: 100% !important;
  width: 100% !important;
}

@media (min-width: 768px) {
  .discipline-grid,
  .discipline-grid > .wp-block-group__inner-container {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (min-width: 992px) {
  .discipline-grid,
  .discipline-grid > .wp-block-group__inner-container {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

.alumni-hero-card {
  text-decoration: none !important;
  color: #111111 !important;
}

.alumni-hero-card:hover {
  text-decoration: none !important;
}

/* ============================================================
   ISCOF FOOTER & FOOTER CTA STYLES
   ============================================================ */

/* Footer Top 3 CTA Buttons */
.iscof-footer-cta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: #080808;
  border-bottom: 1px solid #222222;
}

.iscof-footer-cta > a {
  min-height: 104px;
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  border-right: 1px solid #222222;
  color: #ffffff;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 1.4px;
  text-decoration: none;
  transition: background 0.25s ease;
}

.iscof-footer-cta > a:last-child {
  border-right: 0;
}

.iscof-footer-cta > a:hover {
  background: #171717;
  color: #ffffff;
}

.iscof-footer-arrow {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid currentColor;
  border-radius: 50%;
  font-size: 24px;
  font-style: normal;
  line-height: 1;
}

.arrow-blue { color: #08b9f4; }
.arrow-yellow { color: #f5d51c; }
.arrow-pink { color: #ff1680; }

/* Main Footer */
.iscof-footer {
  padding: 65px 0 0;
  background: #080808;
  color: #ffffff;
}

.iscof-footer-container {
  max-width: 1500px;
  margin: 0 auto;
  padding: 0 35px;
}

.iscof-footer-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #ffffff;
  text-decoration: none;
}

.iscof-footer-logo-img {
  height: 38px;
  max-height: 42px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  display: block;
}

.iscof-footer-tagline {
  max-width: 220px;
  margin: 22px 0;
  color: #aaaaaa;
  font-size: 13px;
  line-height: 1.7;
}

.iscof-footer h3 {
  margin: 0 0 22px;
  color: #ffffff;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.iscof-footer ul,
.iscof-footer-menu {
  margin: 0;
  padding: 0;
  list-style: none;
}

.iscof-footer li,
.iscof-footer-menu li {
  margin: 0 0 13px;
  list-style: none;
}

.iscof-footer li a,
.iscof-footer-menu li a {
  color: #aaaaaa;
  font-size: 13px;
  line-height: 1.5;
  text-decoration: none;
  transition: color 0.2s ease;
}

.iscof-footer li a:hover,
.iscof-footer-menu li a:hover,
.iscof-footer-legal a:hover,
.iscof-footer-campuses a:hover {
  color: #08b9f4;
}

.iscof-footer-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.iscof-footer-socials a {
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #444444;
  border-radius: 50%;
  color: #ffffff;
  font-size: 11px;
  font-weight: 500;
  text-decoration: none;
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.iscof-footer-socials a:hover {
  border-color: #08b9f4;
  background: #08b9f4;
  color: #080808;
}

.iscof-footer-contact-btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 12px;
  padding: 13px 15px;
  border: 1px solid #08b9f4;
  color: #ffffff;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.8px;
  text-decoration: none;
  text-transform: uppercase;
  transition: background 0.2s ease, color 0.2s ease;
}

.iscof-footer-contact-btn span {
  color: #08b9f4;
  font-size: 18px;
}

.iscof-footer-contact-btn:hover {
  background: #08b9f4;
  color: #080808;
}

.iscof-footer-contact-btn:hover span {
  color: #080808;
}

/* Campus links */
.iscof-footer-campuses {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 50px;
  padding: 24px 0;
  border-top: 1px solid #292929;
  border-bottom: 1px solid #292929;
}

.iscof-footer-campuses span {
  color: #ffffff;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.iscof-footer-campuses a {
  color: #aaaaaa;
  font-size: 11px;
  letter-spacing: 1px;
  text-decoration: none;
}

/* Legal bar */
.iscof-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 23px 0;
}

.iscof-footer-bottom p {
  margin: 0;
  color: #888888;
  font-size: 11px;
  line-height: 1.6;
}

.iscof-footer-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.iscof-footer-legal a {
  color: #aaaaaa;
  font-size: 11px;
  text-decoration: none;
}

/* Responsive Footer */
@media (max-width: 991.98px) {
  .iscof-footer {
    padding-top: 48px;
  }

  .iscof-footer-container {
    padding: 0 24px;
  }

  .iscof-footer-campuses {
    gap: 16px;
  }

  .iscof-footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 767.98px) {
  .iscof-footer-cta {
    grid-template-columns: 1fr;
  }

  .iscof-footer-cta > a {
    min-height: 75px;
    justify-content: space-between;
    padding: 18px 25px;
    border-right: 0;
    border-bottom: 1px solid #222222;
  }

  .iscof-footer-container {
    padding: 0 20px;
  }

  .iscof-footer h3 {
    margin-bottom: 17px;
    font-size: 11px;
  }

  .iscof-footer li,
  .iscof-footer-menu li {
    margin-bottom: 11px;
  }

  .iscof-footer li a,
  .iscof-footer-menu li a {
    font-size: 12px;
  }

  .iscof-footer-campuses {
    align-items: flex-start;
    flex-direction: column;
    gap: 15px;
    margin-top: 30px;
  }

  .iscof-footer-legal {
    gap: 12px 18px;
  }
}

/* ============================================================
   GLOBAL RESPONSIVENESS & BOOTSTRAP ADAPTIVE GUARDS
   Ensures 100% fluid layouts with zero overflow on all devices
   ============================================================ */

html, body {
  overflow-x: hidden !important;
  max-width: 100% !important;
}

*, *::before, *::after {
  box-sizing: border-box;
}

img, video, iframe, embed, object {
  max-width: 100% !important;
  height: auto;
}

/* Responsive tables */
table, .entry-content table {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

/* Guard against overflowing words and pasted editor blocks */
.entry-content,
.caa-page-content,
.nyfa-article,
.nyfa-content,
.site-main {
  max-width: 100% !important;
  overflow-wrap: break-word !important;
  word-wrap: break-word !important;
}

/* Pasted blocks from external sites become fully fluid */
.entry-content * {
  max-width: 100%;
}

@media (max-width: 991.98px) {
  /* Pasted multi-column blocks cleanly collapse into 1 column on tablet & mobile */
  .entry-content .wp-block-layout-two-col,
  .entry-content .wp-block-columns,
  .entry-content .columns-main,
  .entry-content .nyfa-page-intro-row,
  .entry-content .overview-section {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    gap: 24px !important;
  }

  .entry-content [style*="width: 843px"],
  .entry-content [style*="width:843px"] {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

@media (max-width: 575.98px) {
  .container,
  .container-fluid {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .page-hero-title,
  .nyfa-style-banner .page-hero-title {
    font-size: clamp(26px, 7.5vw, 38px) !important;
    line-height: 1.15 !important;
  }

  .nyfa-accent-heading,
  .caa-page-content.entry-content > h1:first-child,
  .caa-page-content.entry-content > h2:first-child {
    font-size: clamp(22px, 6.5vw, 32px) !important;
    padding-left: 16px !important;
    border-left-width: 4px !important;
  }
}

/* ============================================================
   POST GRADUATION / WHY STUDY AT AFA? (.caa-pg-*) & FAQ PAGE
   ============================================================ */
.caa-pg-wrap {
  display: flex;
  flex-direction: column;
  gap: 44px;
  margin-top: 10px;
}

.caa-pg-sec {
  border-radius: 24px;
  padding: 48px 40px;
}

.caa-pg-sec-light {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  color: #0f172a;
}

.caa-pg-sec-white {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  color: #0f172a;
}

.caa-pg-sec-dark {
  background: linear-gradient(145deg, #0b0f19 0%, #111827 100%);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.caa-pg-eyebrow {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #08b9f4;
  margin: 0 0 10px;
  display: block;
}

[dir="rtl"] .caa-pg-eyebrow {
  letter-spacing: 0.03em;
}

.caa-pg-sec-dark .caa-pg-eyebrow {
  color: #FFD329;
}

.caa-pg-h2 {
  font-size: clamp(28px, 3.5vw, 42px);
  font-weight: 800;
  line-height: 1.18;
  margin: 0 0 18px;
  color: inherit;
}

.caa-pg-sec-dark .caa-pg-h2 {
  color: #ffffff !important;
}

.caa-pg-lead {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.55;
  margin: 0 0 16px;
}

.caa-pg-p {
  font-size: 16.5px;
  line-height: 1.75;
  margin: 0 0 14px;
  opacity: 0.9;
}

.caa-pg-stat-row {
  display: grid;
  grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
  gap: 32px;
  padding: 32px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  align-items: start;
}

.caa-pg-stat-row:first-child {
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.caa-pg-stat-num {
  font-size: clamp(42px, 5vw, 68px);
  font-weight: 900;
  line-height: 1.05;
  color: #FFD329 !important;
  letter-spacing: -0.02em;
  margin: 0;
}

.caa-pg-stat-label {
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #08b9f4 !important;
  margin: 10px 0 0;
}

[dir="rtl"] .caa-pg-stat-label {
  letter-spacing: 0.02em;
}

.caa-pg-net-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 28px 0 20px !important;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  column-gap: 32px;
}

.caa-pg-net-list li {
  border-top: 1px solid #cbd5e1;
  padding: 14px 0;
  font-size: 16.5px;
  font-weight: 700;
  color: #0f172a;
  display: flex;
  align-items: center;
  gap: 10px;
}

.caa-pg-net-list li::before {
  content: "◆";
  color: #08b9f4;
  font-size: 11px;
}

.caa-pg-outcome-row {
  display: grid;
  grid-template-columns: 70px minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 24px;
  padding: 26px 0;
  border-bottom: 1px solid #e2e8f0;
  align-items: baseline;
}

.caa-pg-outcome-row:first-child {
  border-top: 1px solid #e2e8f0;
}

.caa-pg-outcome-num {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #ff1680 !important;
  margin: 0;
}

.caa-pg-outcome-title {
  font-size: 21px;
  font-weight: 800;
  color: #0f172a;
  margin: 0;
}

.caa-pg-motto-item {
  border-inline-start: 3px solid #FFD329;
  padding-inline-start: 20px;
  font-size: clamp(22px, 2.5vw, 30px);
  font-weight: 800;
  color: #ffffff !important;
  line-height: 1.25;
  margin: 0;
}

@media (max-width: 991.98px) {
  .caa-pg-sec {
    padding: 32px 24px;
  }
  .caa-pg-stat-row,
  .caa-pg-outcome-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

/* ==========================================================================
   CAA LMS FORMS DESIGN SYSTEM — UNIFIED WITH /apply/ (.caa-registration-section)
   Applies to all School Management LMS forms:
   - /student-login/            (#wlsm-login-form)
   - /student-inquiry/          (#wlsm-submit-inquiry-section)
   - /student-admission/        (#wlsm-submit-registration-section)
   - /student-fees/             (#wlsm-get-pending-invoices-students-section)
   - /student-admit-card/       (#wlsm-get-exam-admit-card-section)
   - /student-exam-time-table/  (#wlsm-get-exam-time-table-section)
   - /student-exam-result/      (#wlsm-get-exam-result-section)
   - /student-certificate/      (#wlsm-get-certificate-section)
   ========================================================================== */

.caa-lms-form-body {
  background: #f8fafc !important;
  color: #1f2937;
  padding-top: clamp(40px, 4.5vw, 64px) !important;
  padding-bottom: clamp(64px, 7.5vw, 110px) !important;
  font-family: "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.caa-lms-form-body .caa-reg-header {
  max-width: 920px;
  margin: 0 auto 36px;
}

.caa-lms-form-body .caa-reg-eyebrow {
  font-size: 16px;
  font-weight: 700;
  color: #0d9488;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 8px;
  line-height: 1.4;
}

.caa-lms-form-body .caa-reg-title {
  font-size: clamp(32px, 3.8vw, 42px);
  font-weight: 800;
  color: #111827 !important;
  margin: 0 0 14px !important;
  line-height: 1.15 !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
}

.caa-lms-form-body .caa-reg-subtitle {
  font-size: 17px;
  font-weight: 400;
  color: #4b5563 !important;
  line-height: 1.6 !important;
  max-width: 780px;
  margin: 0 !important;
}

.caa-lms-entry-content {
  max-width: 920px;
  margin: 0 auto;
}

/* Hide redundant inner WLSM main title box when wrapped in .caa-lms-form-body */
.caa-lms-form-body .wlsm .wlsm-registration-form-header {
  display: none !important;
}

/* 1. Reset outer wrapper on multi-section forms (Inquiry & Admission) so each section is its own .caa-form-card */
body .wlsm #wlsm-submit-inquiry-section,
body .wlsm #wlsm-submit-registration-section {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  max-width: 920px !important;
  margin: 0 auto !important;
}

/* Style the top School selector block in Inquiry & Admission as a clean card */
body .wlsm #wlsm-submit-inquiry-section > .wlsm-form-group.wlsm-row,
body .wlsm #wlsm-submit-registration-section > .wlsm-form-group.wlsm-row {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 24px !important;
  padding: 28px 30px !important;
  margin: 0 0 28px 0 !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03) !important;
  transition: box-shadow 0.25s ease !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
}

body .wlsm #wlsm-submit-inquiry-section > .wlsm-form-group.wlsm-row:hover,
body .wlsm #wlsm-submit-registration-section > .wlsm-form-group.wlsm-row:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05) !important;
}

/* Style each .wlsm-registration-section as an individual .caa-form-card */
body .wlsm .wlsm-registration-section,
body .wlsm .wlsm-form-section {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 24px !important;
  padding: 32px 30px !important;
  margin: 0 0 28px 0 !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03) !important;
  transition: box-shadow 0.25s ease !important;
  overflow: visible !important;
}

body .wlsm .wlsm-registration-section:hover,
body .wlsm .wlsm-form-section:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05) !important;
}

/* 2. Single-card LMS forms (Login, Fees, Admit Card, Exam Time Table, Exam Result, Certificate, Student Portal) */
body #wlsm-login-form,
body .wlsm #wlsm-login-form,
body .wlsm #wlsm-get-pending-invoices-students-section,
body .wlsm #wlsm-get-exam-admit-card-section,
body .wlsm #wlsm-get-exam-time-table-section,
body .wlsm #wlsm-get-exam-result-section,
body .wlsm #wlsm-get-certificate-section,
body .wlsm .wlsm-st-details {
  max-width: 920px !important;
  margin: 0 auto 32px !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 24px !important;
  padding: 32px 30px !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03) !important;
  transition: box-shadow 0.25s ease !important;
  overflow: visible !important;
}

body #wlsm-login-form:hover,
body .wlsm #wlsm-get-pending-invoices-students-section:hover,
body .wlsm #wlsm-get-exam-admit-card-section:hover,
body .wlsm #wlsm-get-exam-time-table-section:hover,
body .wlsm #wlsm-get-exam-result-section:hover,
body .wlsm #wlsm-get-certificate-section:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05) !important;
}

/* Add a virtual card heading to #wlsm-login-form matching .caa-card-heading */
body #wlsm-login-form::before {
  content: "Student Portal Sign In";
  display: block;
  font-size: 22px;
  font-weight: 800;
  color: #065f46;
  margin: 0 0 22px 0;
  line-height: 1.25;
}

html[dir="rtl"] body #wlsm-login-form::before {
  content: "تسجيل الدخول إلى بوابة الطالب";
  font-family: var(--caa-font-ar, 'Cairo', sans-serif);
}

/*Arrange Username & Password in a 2-column grid on desktop inside #wlsm-login-form */
@media (min-width: 768px) {
  body #wlsm-login-form {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 22px !important;
    row-gap: 6px !important;
  }
  body #wlsm-login-form::before,
  body #wlsm-login-form .login-remember,
  body #wlsm-login-form .login-submit {
    grid-column: 1 / -1 !important;
  }
}

/* 3. Card Section Headings — Match .caa-card-heading (#065f46, 22px, 800 weight) */
body .wlsm .wlsm-registration-section-header {
  background: transparent !important;
  border-bottom: none !important;
  padding: 0 !important;
  margin: 0 0 22px 0 !important;
}

body .wlsm .wlsm-registration-section-title,
body .wlsm .wlsm-header-title,
body .wlsm .wlsm-header-title span,
body .wlsm .wlsm-form-sub-heading {
  font-family: "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  color: #065f46 !important;
  margin: 0 0 22px 0 !important;
  padding: 0 !important;
  line-height: 1.25 !important;
  text-transform: none !important;
  letter-spacing: -0.01em !important;
  border: none !important;
  background: transparent !important;
  text-align: start !important;
  display: block !important;
}

body .wlsm .wlsm-registration-section-header .wlsm-registration-section-title {
  margin-bottom: 0 !important;
}

/* 3B. Standalone Toggle Section Cards (Previous School Detail & Parent Detail on Inquiry Page) */
body .wlsm .wlsm-has-prev-school-header,
body .wlsm .wlsm-has-parent-detail-header {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 24px !important;
  padding: 24px 30px !important;
  margin: 0 0 28px 0 !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03) !important;
  transition: all 0.25s ease !important;
  cursor: pointer !important;
}

body .wlsm .wlsm-has-prev-school-header:hover,
body .wlsm .wlsm-has-parent-detail-header:hover {
  border-color: #99f6e4 !important;
  box-shadow: 0 8px 24px rgba(13, 148, 136, 0.08) !important;
}

/* When checked, merge seamlessly as the top header of the expanded section card below */
body .wlsm .wlsm-has-prev-school-header:has(input:checked),
body .wlsm .wlsm-has-parent-detail-header:has(input:checked) {
  background: #f0fdfa !important;
  border-color: #0d9488 !important;
  border-bottom: 1px solid #ccfbf1 !important;
  border-radius: 24px 24px 0 0 !important;
  margin-bottom: 0 !important;
}

body .wlsm #wlsm-submit-inquiry-form:has(#wlsm_has_prev_school:checked) #wlsm_inquiry_school_details,
body .wlsm #wlsm-submit-inquiry-form:has(#wlsm_has_parent_detail:checked) #wlsm_inquiry_parent_detail {
  border-radius: 0 0 24px 24px !important;
  border-color: #0d9488 !important;
  border-top: none !important;
  margin-top: 0 !important;
}

body .wlsm .wlsm-has-prev-school-header .wlsm-registration-section-title,
body .wlsm .wlsm-has-parent-detail-header .wlsm-registration-section-title {
  margin: 0 !important;
  padding: 0 !important;
}

body .wlsm .wlsm-has-prev-school-header .wlsm-form-check,
body .wlsm .wlsm-has-parent-detail-header .wlsm-form-check {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

body .wlsm .wlsm-has-prev-school-header .wlsm-form-check-label,
body .wlsm .wlsm-has-parent-detail-header .wlsm-form-check-label {
  font-family: "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  color: #065f46 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.3 !important;
  text-transform: none !important;
  letter-spacing: -0.01em !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
}

/* 4. Stack Lookup Form Rows (Label above Input) to match /apply/ .caa-field */
body .wlsm #wlsm-get-pending-invoices-students-section .wlsm-form-group.wlsm-row,
body .wlsm #wlsm-get-exam-admit-card-section .wlsm-form-group.wlsm-row,
body .wlsm #wlsm-get-exam-time-table-section .wlsm-form-group.wlsm-row,
body .wlsm #wlsm-get-exam-result-section .wlsm-form-group.wlsm-row,
body .wlsm #wlsm-get-certificate-section .wlsm-form-group.wlsm-row,
body .wlsm #wlsm-submit-inquiry-section > .wlsm-form-group.wlsm-row,
body .wlsm #wlsm-submit-registration-section > .wlsm-form-group.wlsm-row {
  display: flex !important;
  flex-direction: column !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-bottom: 20px !important;
}

body .wlsm #wlsm-get-pending-invoices-students-section .wlsm-form-group.wlsm-row > [class*="wlsm-col-"],
body .wlsm #wlsm-get-exam-admit-card-section .wlsm-form-group.wlsm-row > [class*="wlsm-col-"],
body .wlsm #wlsm-get-exam-time-table-section .wlsm-form-group.wlsm-row > [class*="wlsm-col-"],
body .wlsm #wlsm-get-exam-result-section .wlsm-form-group.wlsm-row > [class*="wlsm-col-"],
body .wlsm #wlsm-get-certificate-section .wlsm-form-group.wlsm-row > [class*="wlsm-col-"],
body .wlsm #wlsm-submit-inquiry-section > .wlsm-form-group.wlsm-row > [class*="wlsm-col-"],
body .wlsm #wlsm-submit-registration-section > .wlsm-form-group.wlsm-row > [class*="wlsm-col-"] {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 5. Form Labels — Match .caa-label (14.5px, 600 weight, #374151) */
body .wlsm label,
body .wlsm .wlsm-font-bold,
body #wlsm-login-form label {
  display: inline-block !important;
  font-family: "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 14.5px !important;
  font-weight: 600 !important;
  color: #374151 !important;
  margin: 0 0 8px 0 !important;
  line-height: 1.4 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

body .wlsm .wlsm-important {
  color: #ef4444 !important;
  font-weight: 700 !important;
  margin-inline-start: 3px !important;
}

/* 5B. Redesigned Custom Checkboxes & Radio Buttons (WLSM & /apply/) */
body .wlsm .wlsm-form-check {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 0 !important;
  margin: 0 20px 10px 0 !important;
  cursor: pointer !important;
}

body .wlsm .wlsm-form-check-inline {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px 16px !important;
  background: #f8fafc !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 12px !important;
  margin: 0 12px 8px 0 !important;
  transition: all 0.2s ease !important;
  cursor: pointer !important;
}

body .wlsm .wlsm-form-check-inline:hover {
  border-color: #99f6e4 !important;
  background: #f0fdfa !important;
}

body .wlsm .wlsm-form-check-inline:has(input:checked) {
  border-color: #0d9488 !important;
  background: #f0fdfa !important;
  box-shadow: 0 2px 8px rgba(13, 148, 136, 0.1) !important;
}

/* Block-level checkbox cards inside Admission sections (Medical Complaint, Allow Student/Parent/Guardian Login) */
body .wlsm #registration_medical_complaint_checkbox .wlsm-form-check,
body .wlsm #registration_student_login .wlsm-form-check,
body .wlsm #registration_parent_login .wlsm-form-check,
body .wlsm #registration_guardian_login .wlsm-form-check,
body .wlsm #registration_survey .wlsm-form-check {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 12px 18px !important;
  background: #f8fafc !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 14px !important;
  margin: 0 12px 12px 0 !important;
  transition: all 0.2s ease !important;
}

body .wlsm #registration_medical_complaint_checkbox .wlsm-form-check,
body .wlsm #registration_student_login .wlsm-form-check,
body .wlsm #registration_parent_login .wlsm-form-check,
body .wlsm #registration_guardian_login .wlsm-form-check {
  display: flex !important;
  width: 100% !important;
  margin-right: 0 !important;
}

body .wlsm #registration_medical_complaint_checkbox .wlsm-form-check:has(input:checked),
body .wlsm #registration_student_login .wlsm-form-check:has(input:checked),
body .wlsm #registration_parent_login .wlsm-form-check:has(input:checked),
body .wlsm #registration_guardian_login .wlsm-form-check:has(input:checked),
body .wlsm #registration_survey .wlsm-form-check:has(input:checked) {
  background: #f0fdfa !important;
  border-color: #0d9488 !important;
  box-shadow: 0 2px 8px rgba(13, 148, 136, 0.1) !important;
}

/* Dynamic Subject & Activity Checkboxes inside Admission Form */
body .wlsm #wlsm_subjects,
body .wlsm #wlsm_activity {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-top: 4px !important;
}

body .wlsm #wlsm_subjects br,
body .wlsm #wlsm_activity br {
  display: none !important;
}

body .wlsm #wlsm_subjects label,
body .wlsm #wlsm_activity label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 16px !important;
  background: #f8fafc !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 12px !important;
  margin: 0 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #334155 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

body .wlsm #wlsm_subjects label:hover,
body .wlsm #wlsm_activity label:hover {
  border-color: #99f6e4 !important;
  background: #f0fdfa !important;
}

body .wlsm #wlsm_subjects label:has(input:checked),
body .wlsm #wlsm_activity label:has(input:checked) {
  background: #f0fdfa !important;
  border-color: #0d9488 !important;
  color: #065f46 !important;
}

body .wlsm .wlsm-form-check .wlsm-form-check-label,
body .wlsm .wlsm-form-check-inline .wlsm-form-check-label,
body #wlsm-login-form .login-remember label {
  margin: 0 !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  color: #1e293b !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  line-height: 1.4 !important;
}

/* Custom Checkbox Control */
body .wlsm input[type="checkbox"],
body #wlsm-login-form input[type="checkbox"],
body .caa-registration-section input[type="checkbox"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  min-height: 22px !important;
  flex: 0 0 22px !important;
  background-color: #ffffff !important;
  border: 2px solid #cbd5e1 !important;
  border-radius: 7px !important;
  margin: 0 !important;
  padding: 0 !important;
  cursor: pointer !important;
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05) !important;
}

body .wlsm input[type="checkbox"]:hover:not(:disabled),
body #wlsm-login-form input[type="checkbox"]:hover:not(:disabled),
body .caa-registration-section input[type="checkbox"]:hover:not(:disabled) {
  border-color: #0d9488 !important;
  background-color: #f0fdfa !important;
}

body .wlsm input[type="checkbox"]:focus-visible,
body #wlsm-login-form input[type="checkbox"]:focus-visible,
body .caa-registration-section input[type="checkbox"]:focus-visible {
  outline: none !important;
  border-color: #0d9488 !important;
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.2) !important;
}

body .wlsm input[type="checkbox"]:checked,
body #wlsm-login-form input[type="checkbox"]:checked,
body .caa-registration-section input[type="checkbox"]:checked {
  background-color: #0d9488 !important;
  border-color: #0d9488 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E") !important;
  background-size: 14px 14px !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  box-shadow: 0 3px 8px rgba(13, 148, 136, 0.28) !important;
}

body .wlsm input[type="checkbox"]:disabled {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
  background-color: #f1f5f9 !important;
}

/* Custom Radio Button Control */
body .wlsm input[type="radio"],
body .caa-registration-section input[type="radio"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  min-height: 22px !important;
  flex: 0 0 22px !important;
  background-color: #ffffff !important;
  border: 2px solid #cbd5e1 !important;
  border-radius: 9999px !important;
  margin: 0 !important;
  padding: 0 !important;
  cursor: pointer !important;
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

body .wlsm input[type="radio"]:hover:not(:disabled),
body .caa-registration-section input[type="radio"]:hover:not(:disabled) {
  border-color: #0d9488 !important;
  background-color: #f0fdfa !important;
}

body .wlsm input[type="radio"]:checked,
body .caa-registration-section input[type="radio"]:checked {
  border-color: #0d9488 !important;
  border-width: 6.5px !important;
  background-color: #ffffff !important;
  box-shadow: 0 2px 6px rgba(13, 148, 136, 0.25) !important;
}

/* 6. Inputs, Selects & Textareas — Match .caa-input, .caa-select, .caa-textarea */
body .wlsm input[type="text"],
body .wlsm input[type="email"],
body .wlsm input[type="number"],
body .wlsm input[type="password"],
body .wlsm input[type="tel"],
body .wlsm input[type="date"],
body .wlsm input[type="url"],
body .wlsm select,
body .wlsm select.wlsm-form-control,
body .wlsm .wlsm-form-control:not(textarea),
body #wlsm-login-form input[type="text"],
body #wlsm-login-form input[type="password"],
body #wlsm-login-form .input {
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  background-color: #ffffff !important;
  border: 1px solid #d1d5db !important;
  border-radius: 12px !important;
  padding: 0 16px !important;
  font-size: 15.5px !important;
  font-family: inherit !important;
  color: #1f2937 !important;
  box-shadow: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
  outline: none !important;
  box-sizing: border-box !important;
  line-height: 46px !important;
}

/* 6B. Zebra_DatePicker Input Icon & Popup Calendar Fix */
body .wlsm .Zebra_DatePicker_Icon_Wrapper {
  display: block !important;
  width: 100% !important;
  position: relative !important;
}

body .wlsm .Zebra_DatePicker_Icon_Wrapper > input.wlsm-form-control,
body .wlsm #wlsm_date_of_birth {
  padding-right: 44px !important;
}

body .wlsm button.Zebra_DatePicker_Icon,
body button.Zebra_DatePicker_Icon {
  position: absolute !important;
  top: 50% !important;
  right: 14px !important;
  left: auto !important;
  transform: translateY(-50%) !important;
  width: 22px !important;
  height: 22px !important;
  min-height: 22px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 6px !important;
  box-shadow: none !important;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230d9488' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E") no-repeat center center !important;
  background-size: 18px 18px !important;
  text-indent: -9999px !important;
  overflow: hidden !important;
  cursor: pointer !important;
  z-index: 3 !important;
  opacity: 0.85 !important;
  transition: opacity 0.2s ease !important;
}

body .wlsm button.Zebra_DatePicker_Icon:hover,
body button.Zebra_DatePicker_Icon:hover {
  opacity: 1 !important;
  transform: translateY(-50%) scale(1.06) !important;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23065f46' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E") no-repeat center center !important;
  background-size: 18px 18px !important;
  box-shadow: none !important;
}

/* Zebra_DatePicker Popup Calendar Modal Styling */
.Zebra_DatePicker {
  background: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 18px !important;
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.16) !important;
  padding: 12px !important;
  font-family: "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 13.5px !important;
  color: #1e293b !important;
  z-index: 999999 !important;
  min-width: 280px !important;
}

.Zebra_DatePicker table {
  border-collapse: separate !important;
  border-spacing: 2px !important;
  width: 100% !important;
}

.Zebra_DatePicker .dp_actions td {
  background: #f8fafc !important;
  color: #065f46 !important;
  font-weight: 800 !important;
  font-size: 14px !important;
  padding: 8px 6px !important;
  border-radius: 10px !important;
}

.Zebra_DatePicker .dp_actions .dp_hover {
  background: #ccfbf1 !important;
  color: #065f46 !important;
}

.Zebra_DatePicker .dp_daypicker th {
  background: transparent !important;
  color: #64748b !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  padding: 8px 4px !important;
}

.Zebra_DatePicker .dp_body td {
  padding: 8px 6px !important;
  border-radius: 8px !important;
  font-weight: 600 !important;
  color: #1e293b !important;
  transition: background 0.15s ease, color 0.15s ease !important;
}

.Zebra_DatePicker .dp_body .dp_not_in_month {
  color: #cbd5e1 !important;
  font-weight: 400 !important;
}

.Zebra_DatePicker .dp_body .dp_hover {
  background: #ccfbf1 !important;
  color: #065f46 !important;
}

.Zebra_DatePicker .dp_body .dp_current {
  background: #f0fdfa !important;
  color: #0d9488 !important;
  font-weight: 800 !important;
  border: 1px solid #99f6e4 !important;
}

.Zebra_DatePicker .dp_body .dp_selected {
  background: linear-gradient(135deg, #0d9488 0%, #065f46 100%) !important;
  color: #ffffff !important;
  font-weight: 700 !important;
}

.Zebra_DatePicker .dp_footer .dp_clear {
  background: #f1f5f9 !important;
  color: #334155 !important;
  font-weight: 700 !important;
  border-radius: 10px !important;
  padding: 8px !important;
}

.Zebra_DatePicker .dp_footer .dp_clear:hover {
  background: #e2e8f0 !important;
  color: #0f172a !important;
}

/* Select dropdown custom arrow matching .caa-select */
body .wlsm select,
body .wlsm select.wlsm-form-control {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 16px !important;
  padding-right: 40px !important;
  cursor: pointer !important;
}

/* SumoSelect dropdown widget override */
body .wlsm .SumoSelect {
  width: 100% !important;
}

body .wlsm .SumoSelect > .CaptionCont {
  height: 48px !important;
  min-height: 48px !important;
  background-color: #ffffff !important;
  border: 1px solid #d1d5db !important;
  border-radius: 12px !important;
  padding: 0 40px 0 16px !important;
  display: flex !important;
  align-items: center !important;
  font-size: 15.5px !important;
  color: #1f2937 !important;
  box-shadow: none !important;
}

/* Textarea matching .caa-textarea */
body .wlsm textarea,
body .wlsm textarea.wlsm-form-control {
  width: 100% !important;
  min-height: 120px !important;
  height: auto !important;
  background-color: #ffffff !important;
  border: 1px solid #d1d5db !important;
  border-radius: 12px !important;
  padding: 14px 16px !important;
  font-size: 15.5px !important;
  font-family: inherit !important;
  color: #1f2937 !important;
  line-height: 1.55 !important;
  resize: vertical !important;
  box-shadow: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
  box-sizing: border-box !important;
}

/* Focus state matching /apply/ (#0d9488 teal ring) */
body .wlsm input[type="text"]:focus,
body .wlsm input[type="email"]:focus,
body .wlsm input[type="number"]:focus,
body .wlsm input[type="password"]:focus,
body .wlsm input[type="tel"]:focus,
body .wlsm input[type="date"]:focus,
body .wlsm select:focus,
body .wlsm textarea:focus,
body .wlsm .wlsm-form-control:focus,
body .wlsm .SumoSelect.open > .CaptionCont,
body #wlsm-login-form input[type="text"]:focus,
body #wlsm-login-form input[type="password"]:focus,
body #wlsm-login-form .input:focus {
  border-color: #0d9488 !important;
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.15) !important;
  outline: none !important;
}

body .wlsm input::placeholder,
body .wlsm textarea::placeholder,
body #wlsm-login-form input::placeholder {
  color: #9ca3af !important;
}

/* File upload input (.custom-file) */
body .wlsm .custom-file {
  height: 48px !important;
}

body .wlsm .custom-file-label {
  height: 48px !important;
  border-radius: 12px !important;
  border: 1px solid #d1d5db !important;
  background-color: #ffffff !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 16px !important;
  font-size: 14.5px !important;
  color: #4b5563 !important;
  box-shadow: none !important;
}

body .wlsm .custom-file-label::after {
  height: 46px !important;
  display: flex !important;
  align-items: center !important;
  background: #f1f5f9 !important;
  color: #0f172a !important;
  font-weight: 600 !important;
  border-left: 1px solid #d1d5db !important;
  border-radius: 0 11px 11px 0 !important;
  padding: 0 16px !important;
}

/* Spacing between form groups inside cards */
body .wlsm .wlsm-form-group {
  margin-bottom: 18px !important;
}

/* 7. Submit & Action Buttons — Match .caa-btn-submit (Exclude Zebra_DatePicker_Icon!) */
body .wlsm .wlsm-border-top {
  border-top: none !important;
  padding-top: 8px !important;
  margin-top: 8px !important;
}

body .wlsm .wlsm-text-center {
  text-align: start !important;
}

body .wlsm .button:not(.Zebra_DatePicker_Icon),
body .wlsm .btn:not(.Zebra_DatePicker_Icon),
body .wlsm .wlsm-btn:not(.Zebra_DatePicker_Icon),
body .wlsm button[type="submit"],
body .wlsm button[type="button"]:not(.Zebra_DatePicker_Icon),
body .wlsm input[type="submit"],
body #wlsm-login-form input[type="submit"],
body #wlsm-login-form #wlsm-login-submit {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: linear-gradient(135deg, #0d9488 0%, #064e3b 100%) !important;
  color: #ffffff !important;
  font-family: "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  padding: 14px 38px !important;
  height: auto !important;
  min-height: 50px !important;
  border: none !important;
  border-radius: 9999px !important;
  cursor: pointer !important;
  box-shadow: 0 4px 14px rgba(13, 148, 136, 0.35) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease !important;
  text-transform: none !important;
  letter-spacing: 0.01em !important;
  line-height: 1.3 !important;
  width: auto !important;
  text-decoration: none !important;
}

body .wlsm .button:not(.Zebra_DatePicker_Icon):hover,
body .wlsm .btn:not(.Zebra_DatePicker_Icon):hover,
body .wlsm .wlsm-btn:not(.Zebra_DatePicker_Icon):hover,
body .wlsm button[type="submit"]:hover,
body .wlsm button[type="button"]:not(.Zebra_DatePicker_Icon):hover,
body .wlsm input[type="submit"]:hover,
body #wlsm-login-form input[type="submit"]:hover,
body #wlsm-login-form #wlsm-login-submit:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 22px rgba(13, 148, 136, 0.45) !important;
  background: linear-gradient(135deg, #0f766e 0%, #022c22 100%) !important;
  color: #ffffff !important;
}

/* Validation errors & alerts inside LMS forms */
body .wlsm span.wlsm-text-danger {
  display: block !important;
  color: #dc2626 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  margin-top: 6px !important;
}

@media (max-width: 639.98px) {
  body .wlsm .wlsm-registration-section,
  body .wlsm .wlsm-form-section,
  body #wlsm-login-form,
  body .wlsm #wlsm-get-pending-invoices-students-section,
  body .wlsm #wlsm-get-exam-admit-card-section,
  body .wlsm #wlsm-get-exam-time-table-section,
  body .wlsm #wlsm-get-exam-result-section,
  body .wlsm #wlsm-get-certificate-section,
  body .wlsm #wlsm-submit-inquiry-section > .wlsm-form-group.wlsm-row,
  body .wlsm #wlsm-submit-registration-section > .wlsm-form-group.wlsm-row {
    padding: 24px 20px !important;
    border-radius: 18px !important;
  }

  body .wlsm .button,
  body .wlsm .btn,
  body .wlsm .wlsm-btn,
  body .wlsm button[type="submit"],
  body #wlsm-login-form #wlsm-login-submit {
    width: 100% !important;
  }
}






