/* Theme Variables - Jinan University */

:root {
  /* Opt out of OS-forced dark mode at the CSS level too — the meta
     tag in header.php is the primary signal, but Chrome on Android
     (and a few WebViews) only fully respect this when CSS confirms it.
     The site has an intentional light theme; preventing inversion
     keeps the brand wordmark + slider readable on phones with dark
     mode forced from system settings. */
  color-scheme: light only;


  /* ===============================
     BRAND COLORS
     =============================== */
  /* Jinan University brand palette (2026 refresh).
     Source: Jinan University — Colors brand guide PDF.
     "Deep Blue" is actually a deep teal-green; "Harta Navy" is a
     bronze / deep-gold companion. Keeping the legacy token names
     (--jinan-teal, --jinan-gold) so the 600+ var() references across
     the codebase pick up the new values automatically. */
  --jinan-teal: #00846e;               /* Brand: Deep Blue  (rgb 0,132,110)  */
  --jinan-teal-hover: #006b58;         /* Derived ~15% darker for hover      */
  --jinan-teal-light: rgba(0, 132, 110, 0.1);
  --jinan-teal-dark: #004d3f;          /* Derived deeper variant for strong  */
                                       /* contrast surfaces (sidebars etc.)  */

  --jinan-gold: #f7b243;               /* Brand: Harta Gold (rgb 247,178,67) */
  --jinan-gold-hover: #c77f2a;         /* Brand: "Harta Navy" bronze         */
  --jinan-gold-light: rgba(247, 178, 67, 0.1);
  --jinan-gold-dark: #c77f2a;          /* Same brand bronze for deepest gold */

  /* Secondary brand neutrals — available for explicit use. */
  --jinan-charcoal: #2b2d31;           /* Brand: Charcoal Black              */
  --jinan-soft-yellow: #fad18e;        /* Brand: Soft Yellow (peach accent)  */
  --jinan-neutral-bg: #f3f3f3;         /* Brand: Light Grey / White          */

  /* RGB triplets for rgba() use: rgba(var(--jinan-teal-rgb), 0.5)
     Keep these in sync with the rgb()/hex definitions above whenever
     a brand colour is retuned — a grep for the old triplet will
     surface any remaining drift. */
  --jinan-teal-rgb: 0, 132, 110;
  --jinan-teal-hover-rgb: 0, 107, 88;
  --jinan-teal-dark-rgb: 0, 77, 63;
  --jinan-gold-rgb: 247, 178, 67;
  --jinan-gold-hover-rgb: 199, 127, 42;
  --jinan-gold-dark-rgb: 199, 127, 42;
  --jinan-charcoal-rgb: 43, 45, 49;
  --jinan-soft-yellow-rgb: 250, 209, 142;

  /* Legacy Brand Color Aliases */
  --dark-teal: var(--jinan-teal);
  --dark-teal-hover: var(--jinan-teal-hover);
  --gold-accent: var(--jinan-gold);
  --gold-accent-hover: var(--jinan-gold-hover);
  --primary-color: var(--jinan-teal);
  --primary-hover: var(--jinan-teal-hover);
  --accent-color: var(--jinan-gold);
  --accent-hover: var(--jinan-gold-hover);

  /* ===============================
     NEUTRAL COLORS — 10-step teal-tinted grey scale
     =============================== */
  --white: #ffffff;
  --grey-50:  #f9fafa;  /* subtle bg */
  --grey-100: #f3f5f5;  /* cards bg */
  --grey-200: #e5e9e9;  /* dividers */
  --grey-300: #d1d7d7;  /* borders */
  --grey-400: #a5aeae;  /* disabled text */
  --grey-500: #7d8585;  /* muted text */
  --grey-600: #5c6363;  /* secondary text */
  --grey-700: #434848;  /* body text light */
  --grey-800: #2d3131;  /* body text */
  --grey-900: #1a1d1d;  /* headings */

  /* Legacy aliases — kept for backward-compat; new rules should use the scale */
  --light-grey: var(--grey-100);
  --medium-grey: var(--grey-200);
  --dark-grey: var(--grey-600);
  --dark-charcoal: var(--grey-800);
  --text-muted: var(--grey-500);
  --text-dark: var(--grey-900);
  --text-secondary: var(--grey-700);

  /* ===============================
     SEMANTIC COLORS
     =============================== */
  --success: #1cc88a;
  --info: #36b9cc;
  --warning: #f6c23e;
  --danger: #e74a3b;

  /* ===============================
     BACKGROUND COLORS
     =============================== */
  --bg-primary: #ffffff;
  --bg-secondary: #f8f9fa;
  --bg-tertiary: #f4f4f4;
  --bg-light: #f8f9fa;
  --border-light: #e9ecef;
  --bg-gradient-light: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
  --bg-gradient-teal: linear-gradient(
    135deg,
    var(--jinan-teal) 0%,
    var(--jinan-teal-dark) 100%
  );
  --bg-gradient-gold: linear-gradient(
    90deg,
    var(--jinan-teal),
    var(--jinan-gold)
  );

  /* ===============================
     TYPOGRAPHY
     =============================== */
  /* Brand fonts — self-hosted WOFF2. @font-face definitions live at
     the top of core.bundle.css (the always-loaded bundle). The old
     fonts.css was a verbatim duplicate that nothing actually loaded;
     deleted 2026-05-20.
     EN body: Google Sans (proprietary, self-hosted)
     EN headline: Zalando Sans Expanded
     AR body: Tajawal
     AR headline: RH Zak */
  --font-primary: "Google Sans", "Tajawal", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-headings: "Zalando Sans Expanded", "RH Zak", "Tajawal", Georgia, sans-serif;
  --font-arabic: "Tajawal", "Google Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;

  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Font Sizes */
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-2xl: 1.5rem;
  --font-size-3xl: 1.875rem;
  --font-size-4xl: 2.25rem;
  --font-size-5xl: 3rem;
  --font-size-h1: 2.5rem;
  --font-size-h2: 2rem;
  --font-size-h3: 1.75rem;
  --font-size-h4: 1.5rem;
  --font-size-h5: 1.25rem;
  --font-size-h6: 1rem;
  --font-size-small: 0.875rem;
  --font-size-xxs: 0.65rem;

  /* Line Heights */
  --line-height-tight: 1.25;
  --line-height-snug: 1.375;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.625;
  --line-height-loose: 2;
  --line-height-base: 1.6;
  --line-height-headings: 1.3;

  /* ===============================
     SPACING SYSTEM
     =============================== */
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 2.5rem;
  --space-3xl: 3rem;
  --space-4xl: 4rem;
  --space-5xl: 5rem;

  --spacing-xs: var(--space-xs);
  --spacing-sm: var(--space-sm);
  --spacing-md: var(--space-md);
  --spacing-lg: var(--space-lg);
  --spacing-xl: var(--space-xl);
  --spacing-xxl: var(--space-2xl);
  --spacing-xxxl: var(--space-3xl);

  --section-spacing: 5rem;
  --section-spacing-sm: 3rem;

  /* ===============================
     LAYOUT
     =============================== */
  --container-max-width: 1240px;
  --top-nav-height: 60px;
  --content-max-width: 800px;
  --navbar-height: 70px;

  /* ===============================
     BORDERS & RADIUS
     =============================== */
  --border-width: 1px;
  --border-width-thick: 2px;
  --border-color: var(--medium-grey);
  --border-color-light: var(--light-grey);

  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 20px;
  --radius-full: 50%;

  --border-radius: var(--radius-sm);
  --border-radius-sm: var(--radius-sm);
  --border-radius-md: var(--radius-md);
  --border-radius-lg: var(--radius-lg);

  /* Modernized default button radius (was 4px → 10px). Bootstrap-scoped so
     hero pill buttons (30px) and welcome square buttons (0) are unaffected. */
  --bs-btn-border-radius: 10px;
  --bs-border-radius: 10px;

  /* ===============================
     SHADOWS
     =============================== */
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 12px rgba(var(--jinan-teal-rgb), 0.15);
  --shadow-lg: 0 8px 25px rgba(var(--jinan-teal-rgb), 0.1);
  --shadow-xl: 0 12px 40px rgba(0, 0, 0, 0.15);
  --shadow-2xl: 0 20px 60px rgba(0, 0, 0, 0.1);

  --box-shadow: var(--shadow-md);
  --box-shadow-sm: var(--shadow-sm);
  --box-shadow-md: var(--shadow-md);
  --box-shadow-lg: var(--shadow-lg);
  --card-shadow: var(--shadow-sm);
  --card-shadow-hover: var(--shadow-md);
  --button-shadow: var(--shadow-sm);
  --button-shadow-hover: var(--shadow-md);
  --navbar-shadow: var(--shadow-sm);

  /* ===============================
     TRANSITIONS
     =============================== */
  --transition-fast: all 0.15s ease;
  --transition-standard: all 0.25s ease;
  --transition-slow: all 0.3s ease;
  --transition-cubic: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);

  /* ===============================
     Z-INDEX SCALE
     =============================== */
  --z-dropdown: 1000;
  --z-sticky: 1020;
  --z-fixed: 1030;
  --z-modal-backdrop: 1040;
  --z-modal: 1050;
  --z-popover: 1060;
  --z-tooltip: 1070;
  --z-overlay: 1040;

  /* ===============================
     COMPONENT SPECIFIC
     =============================== */
  --card-padding: var(--space-xl);
  --card-border-radius: var(--radius-xl);
  --card-min-height: 200px;
  --card-max-height: 260px;

  --button-padding-sm: 0.5rem 1rem;
  --button-padding-md: 0.75rem 1.5rem;
  --button-padding-lg: 1rem 2rem;

  --input-padding: 0.875rem 1.25rem;
  --input-border-radius: var(--radius-lg);

  /* Publication Card Specific */
  --publication-cover-width: 110px;
  --publication-content-padding: var(--spacing-md);
  --publication-gap: var(--spacing-sm);

  /* ===============================
     ASPECT RATIOS
     =============================== */
  --aspect-square: 1 / 1;
  --aspect-portrait: 3 / 4;
  --aspect-landscape: 4 / 3;
  --aspect-video: 16 / 9;

  /* ===============================
     ANIMATION VARIABLES
     =============================== */
  --animation-fast: 0.15s;
  --animation-normal: 0.25s;
  --animation-slow: 0.4s;
  --animation-ease: ease;
  --animation-ease-in-out: ease-in-out;
  --animation-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);

  /* ===============================
     RESPONSIVE BREAKPOINTS
     =============================== */
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 992px;
  --breakpoint-xl: 1200px;
  --breakpoint-2xl: 1400px;

  /* ===============================
     BOOTSTRAP OVERRIDE VARIABLES
     =============================== */
  --bs-primary: var(--jinan-teal);
  --bs-primary-rgb: var(--jinan-teal-rgb);
  --bs-secondary: var(--dark-grey);
  --bs-success: #28a745;
  --bs-info: #17a2b8;
  --bs-warning: var(--jinan-gold);
  --bs-danger: #dc3545;
  --bs-light: var(--light-grey);
  --bs-dark: var(--dark-charcoal);
}

/* ===============================
   PRINT VARIABLES
   =============================== */
@media print {
  :root {
    --box-shadow: none;
    --transition-standard: none;
    --animation-fast: 0s;
    --animation-normal: 0s;
    --animation-slow: 0s;
  }
}
