/* Developed by: Mehdi Nikzad Semeskandi مهدی نیک‌زاد سمسکندی */
/* Email: mehdi.nikzad2@gmail.com */
/* Project: NIGEB International Landing Page */
/* Note: Tailwind Preflight removed. All utilities prefixed with 'tw-' for Bootstrap 3 safety. */

/* ==========================================================================
   1. VARIABLES & BASE OVERRIDES
   ========================================================================== */
:root {
  --nigeb-primary: #1A3C6E;
  --nigeb-darkblue: #0D1F3C;
  --nigeb-turquoise: #00B4D8;
  --nigeb-silver: #B0BEC5;
}

body.tw-antialiased {
  font-feature-settings: "ss01", "cv11";
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

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

/* Remove all click/focus artifacts from the scroll button */
.scroll-btn-clean, .scroll-btn-clean:focus, .scroll-btn-clean:active, .scroll-btn-clean:focus-visible {
  outline: none !important;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  -webkit-appearance: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

/* ==========================================================================
   2. LAYOUT & POSITIONING
   ========================================================================== */
.tw-pointer-events-none { pointer-events: none; }
.tw-static { position: static; }
.tw-fixed { position: fixed; }
.tw-absolute { position: absolute; }
.tw-relative { position: relative; }
.tw-inset-0 { inset: 0px; }
.-tw-top-10 { top: -2.5rem; }
.tw-top-0 { top: 0px; }
.tw-top-1\/2 { top: 50%; }
.tw-top-4 { top: 1rem; }
.tw-bottom-0 { bottom: 0px; }
.tw-bottom-10 { bottom: 2.5rem; }
.tw-bottom-6 { bottom: 1.5rem; }
.tw-bottom-\[-20\%\] { bottom: -20%; }
.tw-bottom-\[10\%\] { bottom: 10%; }
.tw-left-0 { left: 0px; }
.tw-left-1\/2 { left: 50%; }
.tw-left-4 { left: 1rem; }
.tw-left-6 { left: 1.5rem; }
.tw-left-\[5\%\] { left: 5%; }
.-tw-right-10 { right: -2.5rem; }
.tw-right-0 { right: 0px; }
.tw-right-6 { right: 1.5rem; }
.tw-right-\[-10\%\] { right: -10%; }
.tw-right-\[10\%\] { right: 10%; }

.-tw-z-10 { z-index: -10; }
.tw-z-0 { z-index: 0; }
.tw-z-10 { z-index: 10; }
.tw-z-20 { z-index: 20; }
.tw-z-30 { z-index: 30; }
.tw-z-40 { z-index: 40; }
.tw-z-50 { z-index: 50; }
.tw-overflow-hidden { overflow: hidden; }
.tw-scroll-smooth { scroll-behavior: smooth; }

/* ==========================================================================
   3. SIZING (WIDTH & HEIGHT)
   ========================================================================== */
.tw-w-2 { width: 0.5rem; }
.tw-w-2\.5 { width: 0.625rem; }
.tw-w-6 { width: 1.5rem; }
.tw-w-8 { width: 2rem; }
.tw-w-10 { width: 2.5rem; }
.tw-w-12 { width: 3rem; }
.tw-w-14 { width: 3.5rem; }
.tw-w-16 { width: 4rem; }
.tw-w-32 { width: 8rem; }
.tw-w-96 { width: 24rem; }
.tw-w-2\/3 { width: 66.666667%; }
.tw-w-\[25\%\] { width: 25%; }
.tw-w-\[30\%\] { width: 30%; }
.tw-w-\[100px\] { width: 100px !important; }
.tw-w-full { width: 100%; }
.tw-w-max { width: max-content; }
.tw-max-w-xs { max-width: 20rem; }
.tw-max-w-sm { max-width: 24rem; }
.tw-max-w-md { max-width: 28rem; }
.tw-max-w-lg { max-width: 32rem; }
.tw-max-w-xl { max-width: 36rem; }
.tw-max-w-2xl { max-width: 42rem; }
.tw-max-w-4xl { max-width: 56rem; }
.tw-max-w-7xl { max-width: 80rem; }

.tw-h-2 { height: 0.5rem; }
.tw-h-2\.5 { height: 0.625rem; }
.tw-h-6 { height: 1.5rem; }
.tw-h-8 { height: 2rem; }
.tw-h-10 { height: 2.5rem; }
.tw-h-12 { height: 3rem; }
.tw-h-14 { height: 3.5rem; }
.tw-h-16 { height: 4rem; }
.tw-h-32 { height: 8rem; }
.tw-h-48 { height: 12rem !important; }
.tw-h-96 { height: 24rem; }
.tw-h-\[100px\] { height: 100px !important; }
.tw-h-\[168px\] { height: 168px; }
.tw-h-\[30\%\] { height: 30%; }
.tw-h-\[40\%\] { height: 40%; }
.tw-h-\[50\%\] { height: 50%; }
.tw-h-\[60\%\] { height: 60%; }
.tw-h-\[70\%\] { height: 70%; }
.tw-h-\[85\%\] { height: 85%; }
.tw-h-\[95\%\] { height: 95%; }
.tw-h-full { height: 100%; }
.tw-h-screen { height: 100vh; }
.tw-min-h-\[4rem\] { min-height: 4rem; }
.tw-min-h-\[220px\] { min-height: 220px; }
.tw-min-h-\[268px\] { min-height: 268px; }
.tw-min-h-\[700px\] { min-height: 700px; }

/* ==========================================================================
   4. FLEXBOX & GRID
   ========================================================================== */
.tw-block { display: block; }
.tw-inline-block { display: inline-block; }
.tw-flex { display: flex; }
.tw-inline-flex { display: inline-flex; }
.tw-grid { display: grid; }
.tw-hidden { display: none; }
.tw-flex-col { flex-direction: column; }
.tw-flex-wrap { flex-wrap: wrap; }
.tw-flex-1 { flex: 1 1 0%; }
.tw-shrink-0 { flex-shrink: 0; }

.tw-content-start { align-content: flex-start; }
.tw-items-start { align-items: flex-start; }
.tw-items-end { align-items: flex-end; }
.tw-items-center { align-items: center; }
.tw-items-baseline { align-items: baseline; }
.tw-self-center { align-self: center; }
.tw-justify-end { justify-content: flex-end; }
.tw-justify-center { justify-content: center; }
.tw-justify-between { justify-content: space-between; }

.tw-grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.tw-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tw-grid-rows-2 { grid-template-rows: repeat(2, minmax(0, 1fr)); }
.tw-auto-rows-\[minmax\(280px\2c _auto\)\] { grid-auto-rows: minmax(280px, auto); }

.tw-gap-1 { gap: 0.25rem; }
.tw-gap-2 { gap: 0.5rem; }
.tw-gap-3 { gap: 0.75rem; }
.tw-gap-4 { gap: 1rem; }
.tw-gap-5 { gap: 1.25rem; }
.tw-gap-6 { gap: 1.5rem; }
.tw-gap-8 { gap: 2rem; }
.tw-gap-12 { gap: 3rem; }
.tw-space-y-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1rem * var(--tw-space-y-reverse)); }
.tw-space-y-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); }

/* ==========================================================================
   5. SPACING (MARGIN & PADDING)
   ========================================================================== */
.tw-mx-auto { margin-left: auto; margin-right: auto; }
.tw-ml-1 { margin-left: 0.25rem; }
.tw-mr-4 { margin-right: 1rem; }
.-tw-mt-10 { margin-top: -2.5rem; }
.tw-mt-1 { margin-top: 0.25rem; }
.tw-mt-3 { margin-top: 0.75rem; }
.tw-mt-4 { margin-top: 1rem; }
.tw-mt-6 { margin-top: 1.5rem; }
.tw-mt-12 { margin-top: 3rem; }
.tw-mt-auto { margin-top: auto; }
.tw-mb-1 { margin-bottom: 0.25rem; }
.tw-mb-2 { margin-bottom: 0.5rem; }
.tw-mb-3 { margin-bottom: 0.75rem; }
.tw-mb-4 { margin-bottom: 1rem; }
.tw-mb-6 { margin-bottom: 1.5rem; }
.tw-mb-8 { margin-bottom: 2rem; }
.tw-mb-10 { margin-bottom: 2.5rem; }
.tw-mb-12 { margin-bottom: 3rem; }
.tw-mb-16 { margin-bottom: 4rem; }
.tw-mb-auto { margin-bottom: auto; }

.tw-p-1 { padding: 0.25rem; }
.tw-p-2 { padding: 0.5rem; }
.tw-p-4 { padding: 1rem; }
.tw-p-5 { padding: 1.25rem; }
.tw-p-6 { padding: 1.5rem; }
.tw-p-8 { padding: 2rem; }
.tw-px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.tw-px-4 { padding-left: 1rem; padding-right: 1rem; }
.tw-px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.tw-px-8 { padding-left: 2rem; padding-right: 2rem; }
.tw-py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.tw-py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; }
.tw-py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.tw-py-2\.5 { padding-top: 0.625rem; padding-bottom: 0.625rem; }
.tw-py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.tw-py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.tw-py-20 { padding-top: 5rem; padding-bottom: 5rem; }
.tw-py-24 { padding-top: 6rem; padding-bottom: 6rem; }
.tw-pt-6 { padding-top: 1.5rem; }
.tw-pt-8 { padding-top: 2rem; }
.tw-pt-20 { padding-top: 5rem; }
.tw-pb-1 { padding-bottom: 0.25rem; }
.tw-pb-2 { padding-bottom: 0.5rem; }
.tw-pb-4 { padding-bottom: 1rem; }
.tw-pb-10 { padding-bottom: 2.5rem; }
.tw-pl-16 { padding-left: 4rem; }
.tw-pr-4 { padding-right: 1rem; }
.tw-pr-8 { padding-right: 2rem; }

/* ==========================================================================
   6. TYPOGRAPHY
   ========================================================================== */
.tw-font-heading { font-family: 'Clash Display', sans-serif; font-feature-settings: "ss01"; letter-spacing: -0.015em; }
.tw-font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.tw-text-center { text-align: center; }

.tw-text-\[10px\] { font-size: 10px; }
.tw-text-\[180px\] { font-size: 180px; }
.tw-text-xs { font-size: 0.75rem; line-height: 1rem; }
.tw-text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.tw-text-base { font-size: 1rem; line-height: 1.5rem; }
.tw-text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.tw-text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.tw-text-2xl { font-size: 1.5rem; line-height: 2rem; }
.tw-text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.tw-text-5xl { font-size: 3rem; line-height: 1; }
.tw-text-9xl { font-size: 8rem; line-height: 1; }

.tw-font-medium { font-weight: 500; }
.tw-font-bold { font-weight: 700; }
.tw-uppercase { text-transform: uppercase; }

.tw-leading-\[1\.1\] { line-height: 1.1; }
.tw-leading-tight { line-height: 1.25; }
.tw-leading-snug { line-height: 1.375; }
.tw-leading-relaxed { line-height: 1.625; }
.tw-tracking-tighter { letter-spacing: -0.04em; } /* Adjusted per guide */
.tw-tracking-tight { letter-spacing: -0.025em; }
.tw-tracking-wide { letter-spacing: 0.025em; }
.tw-tracking-wider { letter-spacing: 0.05em; }
.tw-tracking-widest { letter-spacing: 0.1em; }

.tw-line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.tw-line-clamp-3 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }

/* Text Colors */
.tw-text-white { color: rgb(255 255 255); }
.tw-text-white\/5 { color: rgb(255 255 255 / 0.05); }
.tw-text-white\/50 { color: rgb(255 255 255 / 0.5); }
.tw-text-white\/70 { color: rgb(255 255 255 / 0.7); }
.tw-text-white\/80 { color: rgb(255 255 255 / 0.8); }
.tw-text-darkblue { color: rgb(13 31 60); }
.tw-text-darkblue\/60 { color: rgb(13 31 60 / 0.6); }
.tw-text-darkblue\/70 { color: rgb(13 31 60 / 0.7); }
.tw-text-primary { color: rgb(26 60 110); }
.tw-text-turquoise { color: rgb(0 180 216); }
.tw-text-silver { color: rgb(176 190 197); }
.tw-text-silver\/50 { color: rgb(176 190 197 / 0.5); }
.tw-text-silver\/80 { color: rgb(176 190 197 / 0.8); }
.tw-text-silver\/90 { color: rgb(176 190 197 / 0.9); }
.tw-text-green-500 { color: rgb(34 197 94); }

/* ==========================================================================
   7. VISUALS (BACKGROUNDS, BORDERS, SHADOWS, BLURS)
   ========================================================================== */
/* Backgrounds */
.tw-bg-transparent { background-color: transparent; }
.tw-bg-white { background-color: rgb(255 255 255); }
.tw-bg-white\/5 { background-color: rgb(255 255 255 / 0.05); }
.tw-bg-white\/10 { background-color: rgb(255 255 255 / 0.1); }
.tw-bg-white\/20 { background-color: rgb(255 255 255 / 0.2); }
.tw-bg-white\/40 { background-color: rgb(255 255 255 / 0.4); }
.tw-bg-white\/80 { background-color: rgb(255 255 255 / 0.8); }
.tw-bg-white\/95 { background-color: rgb(255 255 255 / 0.95); }
.tw-bg-surface { background-color: rgb(248 250 252); }
.tw-bg-darkblue { background-color: rgb(13 31 60); }
.tw-bg-darkblue\/10 { background-color: #0d1f3c1a; }
.tw-bg-darkblue\/80 { background-color: rgb(13 31 60 / 0.8); }
.tw-bg-primary { background-color: rgb(26 60 110); }
.tw-bg-primary\/5 { background-color: rgb(26 60 110 / 0.05); }
.tw-bg-primary\/10 { background-color: rgb(26 60 110 / 0.1); }
.tw-bg-turquoise { background-color: rgb(0 180 216); }
.tw-bg-turquoise\/5 { background-color: rgb(0 180 216 / 0.05); }
.tw-bg-turquoise\/10 { background-color: rgb(0 180 216 / 0.1); }
.tw-bg-blue-500 { background-color: rgb(59 130 246); }
.tw-bg-green-500\/10 { background-color: rgb(34 197 94 / 0.1); }
.tw-bg-\[\#D4F1F4\] { background-color: #D4F1F4 !important; }
.tw-bg-\[\#80DEEA\] { background-color: #80DEEA !important; }
.tw-bg-\[\#1AD4FF\] { background-color: rgb(26 212 255); }
.tw-bg-\[\#2A5A9F\] { background-color: rgb(42 90 159); }

/* Gradients */
.tw-bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); }
.tw-bg-gradient-to-l { background-image: linear-gradient(to left, var(--tw-gradient-stops)); }
.tw-bg-gradient-to-t { background-image: linear-gradient(to top, var(--tw-gradient-stops)); }
.tw-from-white { --tw-gradient-from: #fff var(--tw-gradient-from-position); --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.tw-from-darkblue { --tw-gradient-from: #0D1F3C var(--tw-gradient-from-position); --tw-gradient-to: rgb(13 31 60 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.tw-from-primary\/40 { --tw-gradient-from: rgb(26 60 110 / 0.4) var(--tw-gradient-from-position); --tw-gradient-to: rgb(26 60 110 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.tw-from-turquoise\/10 { --tw-gradient-from: rgb(0 180 216 / 0.1) var(--tw-gradient-from-position); --tw-gradient-to: rgb(0 180 216 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.tw-via-darkblue\/20 { --tw-gradient-to: rgb(13 31 60 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), #0d1f3c33 var(--tw-gradient-via-position), var(--tw-gradient-to); }
.tw-via-darkblue\/40 { --tw-gradient-to: #0d1f3c00 var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), #0d1f3c66 var(--tw-gradient-via-position), var(--tw-gradient-to); }
.tw-via-darkblue\/60 { --tw-gradient-to: rgb(13 31 60 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), rgb(13 31 60 / 0.6) var(--tw-gradient-via-position), var(--tw-gradient-to); }
.tw-to-surface { --tw-gradient-to: #F8FAFC var(--tw-gradient-to-position); }
.tw-to-transparent { --tw-gradient-to: transparent var(--tw-gradient-to-position); }

/* Borders */
.tw-border-0 { border-width: 0px !important; border: none !important; }
.tw-border { border-width: 1px; }
.tw-border-2 { border-width: 2px; }
.tw-border-b { border-bottom-width: 1px; }
.tw-border-b-2 { border-bottom-width: 2px; }
.tw-border-l-4 { border-left-width: 4px; }
.tw-border-t { border-top-width: 1px; }

.tw-border-transparent { border-color: transparent; }
.tw-border-white\/10 { border-color: rgb(255 255 255 / 0.1); }
.tw-border-white\/20 { border-color: rgb(255 255 255 / 0.2); }
.tw-border-white\/30 { border-color: rgb(255 255 255 / 0.3); }
.tw-border-darkblue { border-color: rgb(13 31 60); }
.tw-border-darkblue\/10 { border-color: #0d1f3c1a; }
.tw-border-darkblue\/20 { border-color: #0d1f3c33; }
.tw-border-primary\/20 { border-color: rgb(26 60 110 / 0.2); }
.tw-border-turquoise { border-color: #80DEEA !important; }
.tw-border-turquoise\/20 { border-color: rgb(0 180 216 / 0.2); }
.tw-border-silver { border-color: rgb(176 190 197); }
.tw-border-silver\/50 { border-color: rgb(176 190 197 / 0.5); }
.tw-border-l-turquoise { border-left-color: rgb(0 180 216); }

/* Border Radius */
.tw-rounded { border-radius: 0.25rem; }
.tw-rounded-md { border-radius: 0.375rem; }
.tw-rounded-xl { border-radius: 0.75rem; }
.tw-rounded-2xl { border-radius: 1rem; }
.tw-rounded-\[15px\] { border-radius: 15px; }
.tw-rounded-modern { border-radius: 16px; }
.tw-rounded-\[2rem\] { border-radius: 2rem; }
.tw-rounded-full { border-radius: 9999px; }
.tw-rounded-t-\[40px\] { border-top-left-radius: 40px; border-top-right-radius: 40px; }
.tw-rounded-t-md { border-top-left-radius: 0.375rem; border-top-right-radius: 0.375rem; }

/* Shadows */
.tw-shadow-none { box-shadow: none !important; }
.tw-shadow-sm { box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); }
.tw-shadow-md { box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); }
.tw-shadow-soft { box-shadow: 0 4px 20px -2px rgba(13,31,60,0.05); }
.tw-shadow-card { box-shadow: 0 12px 40px 0 rgba(26,60,110,0.08); }
.tw-shadow-\[0_-10px_40px_rgba\(13\2c 31\2c 60\2c 0\.05\)\] { box-shadow: 0 -10px 40px rgba(13,31,60,0.05); }
.tw-shadow-\[0_8px_20px_-4px_rgba\(0\2c 180\2c 216\2c 0\.4\)\] { box-shadow: 0 8px 20px -4px rgba(0,180,216,0.4); }
.tw-shadow-\[0_0_15px_rgba\(26\2c 212\2c 255\2c 0\.3\)\] { box-shadow: 0 0 15px rgba(26,212,255,0.3); }
.tw-shadow-\[0_0_15px_rgba\(128\2c 222\2c 234\2c 0\.3\)\] { box-shadow: 0 0 15px rgba(128, 222, 234, 0.3) !important; }

/* Object Fit, Opacity, Blur & Blend Modes */
.tw-object-cover { object-fit: cover; }
.tw-object-contain { object-fit: contain; }
.tw-opacity-0 { opacity: 0; }
.tw-opacity-30 { opacity: 0.3; }
.tw-opacity-40 { opacity: 0.4; }
.tw-mix-blend-overlay { mix-blend-mode: overlay; }
.tw-blur-\[100px\] { filter: blur(100px); }
.tw-blur-xl { filter: blur(24px); }
.tw-backdrop-blur-md { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.tw-backdrop-blur-xl { backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); }

/* ==========================================================================
   8. ANIMATIONS, TRANSITIONS & TRANSFORMS
   ========================================================================== */
@keyframes tw-bounce {
  0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8,0,1,1); }
  50% { transform: none; animation-timing-function: cubic-bezier(0,0,0.2,1); }
}
.tw-animate-bounce { animation: tw-bounce 1s infinite; }

@keyframes tw-pulse { 50% { opacity: .5; } }
.tw-animate-pulse { animation: tw-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }

.tw-transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.tw-transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.tw-transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.tw-transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.tw-transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.tw-duration-300 { transition-duration: 300ms; }
.tw-duration-700 { transition-duration: 700ms; }

.tw-transform { transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) rotate(var(--tw-rotate, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0)) scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1)); }
.-tw-translate-x-1\/2 { --tw-translate-x: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)); }
.-tw-translate-y-1\/2 { --tw-translate-y: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)); }
.tw-translate-x-10 { --tw-translate-x: 2.5rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)); }
.tw-translate-y-10 { --tw-translate-y: 2.5rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)); }

/* Reduced Motion Override */
@media (prefers-reduced-motion: reduce) {
  .tw-animate-bounce, .tw-animate-pulse, .tw-transition, .tw-transition-all, .tw-transition-colors, .tw-transition-opacity, .tw-transition-transform { animation: none !important; transition: none !important; }
  #overlay-menu { transition: none !important; }
}

/* ==========================================================================
   9. CUSTOM COMPONENTS & INTERACTIVE STATES
   ========================================================================== */
/* ICGEB Button */
.icgeb-custom-btn { border: 2px solid #ffffff !important; color: #ffffff !important; }
.icgeb-custom-btn:hover { background-color: #ffffff !important; border-color: #0D1F3C !important; color: #0D1F3C !important; }

/* Menu Overlay Design */
.tw-menu-overlay-bg {
  background: linear-gradient(135deg, rgba(144, 164, 183, 0.336) 0%, rgba(200, 210, 220, 0.35) 100%);
  backdrop-filter: blur(28px); -webkit-backdrop-filter: blur(28px);
}
.tw-menu-orb-1 { position: absolute; top: -10%; left: 10%; width: 40vw; height: 40vw; background-color: rgba(26, 60, 110, 0.15); border-radius: 9999px; filter: blur(120px); z-index: -10; pointer-events: none; }
.tw-menu-orb-2 { position: absolute; bottom: -10%; right: 10%; width: 40vw; height: 40vw; background-color: rgba(0, 180, 216, 0.15); border-radius: 9999px; filter: blur(120px); z-index: -10; pointer-events: none; }

/* Selection & Placeholders */
.selection\:tw-bg-turquoise *::selection, .selection\:tw-bg-turquoise::selection { background-color: rgb(0 180 216); }
.selection\:tw-text-white *::selection, .selection\:tw-text-white::selection { color: rgb(255 255 255); }
.placeholder\:tw-text-silver::placeholder { color: rgb(176 190 197); }
.focus\:tw-outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; }

/* Focus States */
.focus\:tw-border-turquoise:focus { border-color: rgb(0 180 216); }
.focus\:tw-ring-4:focus { box-shadow: var(--tw-ring-inset, ) 0 0 0 calc(4px + var(--tw-ring-offset-width, 0px)) rgb(0 180 216 / 0.2), var(--tw-shadow, 0 0 #0000); }
.tw-group:focus-within .group-focus-within\:tw-text-turquoise { color: rgb(0 180 216); }

/* Hover States (Colors & Backgrounds) */
.hover\:tw-text-white:hover { color: rgb(255 255 255); }
.hover\:tw-text-primary:hover { color: rgb(26 60 110); }
.hover\:tw-text-darkblue:hover { color: rgb(13 31 60); }
.hover\:tw-text-turquoise:hover { color: rgb(0 180 216); }
.hover\:tw-text-green-400:hover { color: rgb(74 222 128); }
.hover\:tw-text-red-400:hover { color: rgb(248 113 113); }
.hover\:tw-text-orange-400:hover { color: rgb(251 146 60); }
.hover\:tw-bg-white:hover { background-color: rgb(255 255 255); }
.hover\:tw-bg-white\/10:hover { background-color: rgb(255 255 255 / 0.1); }
.hover\:tw-bg-surface:hover { background-color: rgb(248 250 252); }
.hover\:tw-bg-turquoise:hover { background-color: rgb(0 180 216); }
.hover\:tw-bg-turquoise\/20:hover { background-color: rgb(0 180 216 / 0.2); }
.hover\:tw-bg-green-500\/20:hover { background-color: rgb(34 197 94 / 0.2); }
.hover\:tw-bg-red-500\/20:hover { background-color: rgb(239 68 68 / 0.2); }
.hover\:tw-bg-orange-500\/20:hover { background-color: rgb(249 115 22 / 0.2); }

/* Hover States (Borders & Shadows) */
.hover\:tw-border-transparent:hover { border-color: transparent !important; }
.hover\:tw-border-white:hover { border-color: rgb(255 255 255); }
.hover\:tw-border-primary:hover { border-color: rgb(26 60 110); }
.hover\:tw-border-darkblue:hover { border-color: rgb(13 31 60); }
.hover\:tw-border-silver\/50:hover { border-color: rgba(176, 190, 197, 0.5); }
.hover\:tw-border-turquoise\/30:hover { border-color: rgb(0 180 216 / 0.3); }
.hover\:tw-border-green-500\/30:hover { border-color: rgb(34 197 94 / 0.3); }
.hover\:tw-border-red-500\/30:hover { border-color: rgb(239 68 68 / 0.3); }
.hover\:tw-border-orange-500\/30:hover { border-color: rgb(249 115 22 / 0.3); }
.hover\:tw-shadow-md:hover { box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1); }

/* Group Hover Utilities */
.tw-group:hover .group-hover\:tw-text-primary { color: rgb(26 60 110); }
.tw-group:hover .group-hover\:tw-border-primary { border-color: rgb(26 60 110); }
.tw-group:hover .group-hover\:tw-bg-green-500\/20 { background-color: rgb(34 197 94 / 0.2); }
.tw-group:hover .group-hover\:tw-opacity-60 { opacity: 0.6; }
.tw-group:hover .group-hover\:tw-scale-105 { --tw-scale-x: 1.05; --tw-scale-y: 1.05; transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.tw-group:hover .group-hover\:tw-translate-x-1 { --tw-translate-x: 0.25rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y, 0)); }
.group\/btn:hover .group-hover\/btn\:tw-opacity-100 { opacity: 1; }
.group\/btn:hover .group-hover\/btn\:tw-scale-110 { --tw-scale-x: 1.1; --tw-scale-y: 1.1; transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.group\/news:hover .group-hover\/news\:tw-text-turquoise { color: rgb(0 180 216); }

/* Cursor */
.tw-cursor-pointer { cursor: pointer; }

/* ==========================================================================
   10. RESPONSIVE DESIGN & MOBILE PATCHES
   ========================================================================== */

/* SM (640px+) */
@media (min-width: 640px) {
  .sm\:tw-block { display: block; }
  .sm\:tw-w-1\/2 { width: 50%; }
  .sm\:tw-w-auto { width: auto; }
  .sm\:tw-flex-row { flex-direction: row; }
  .sm\:tw-items-center { align-items: center; }
  .sm\:tw-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* MD (768px+) */
@media (min-width: 768px) {
  .md\:tw-col-span-6 { grid-column: span 6 / span 6; }
  .md\:tw-col-span-12 { grid-column: span 12 / span 12; }
  .md\:tw-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .md\:tw-grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .md\:tw-flex-row { flex-direction: row; }
  .md\:tw-px-12 { padding-left: 3rem; padding-right: 3rem; }
  .md\:tw-text-base { font-size: 1rem; line-height: 1.5rem; }
  .md\:tw-text-xl { font-size: 1.25rem; line-height: 1.75rem; }
  .md\:tw-text-2xl { font-size: 1.5rem; line-height: 2rem; }
  .md\:tw-text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
  .md\:tw-text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
  .md\:tw-text-5xl { font-size: 3rem; line-height: 1; }
  .md\:tw-text-6xl { font-size: 3.75rem; line-height: 1; }
  .md\:tw-text-7xl { font-size: 4.5rem; line-height: 1; }
}

/* LG (1024px+) */
@media (min-width: 1024px) {
  .lg\:tw-col-span-2 { grid-column: span 2 / span 2; }
  .lg\:tw-col-span-3 { grid-column: span 3 / span 3; }
  .lg\:tw-col-span-4 { grid-column: span 4 / span 4; }
  .lg\:tw-col-span-5 { grid-column: span 5 / span 5; }
  .lg\:tw-col-span-7 { grid-column: span 7 / span 7; }
  .lg\:tw-w-1\/2 { width: 50%; }
  .lg\:tw-h-\[400px\] { height: 400px; }
  .lg\:tw-h-\[480px\] { height: 480px; }
  .lg\:tw-grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .lg\:tw-flex-row { flex-direction: row; }
  .lg\:tw-px-8 { padding-left: 2rem; padding-right: 2rem; }
  .lg\:tw-pl-4 { padding-left: 1rem; }
  .lg\:tw-text-8xl { font-size: 6rem; line-height: 1; }
}

/* --- MOBILE HERO OVERLAP PATCH (CRITICAL FIX) --- */
@media (max-width: 768px) {
  /* Dynamic height to prevent overlap on small mobile screens */
  section.tw-h-screen {
      height: auto !important;
      min-height: 100svh !important;
      padding-bottom: 5rem !important;
  }
  
  /* Ensuring background video remains full cover despite height: auto */
  section.tw-h-screen .tw-absolute.tw-inset-0.tw-z-0 video {
      width: 100% !important;
      height: 100% !important;
      object-fit: cover !important;
      object-position: center center !important;
      mix-blend-mode: normal !important;
      opacity: 0.5 !important;
  }

  /* --- MOBILE ANNOUNCEMENT BOX PATCH (CRITICAL FIX) --- */
  /* جلوگیری از مخفی شدن عنوان و لینک ثبت‌نام در باکس‌های اطلاعیه */
  .tw-h-\\[100px\\],
  .group\\/news {
      height: auto !important;
      min-height: 100px !important;
      padding-top: 1.25rem !important;
      padding-bottom: 1.25rem !important;
  }
  
 
  /* برطرف کردن محدودیت لاین-کلمپ در موبایل برای نمایش کامل متون طولانی */
  .group\\/news .tw-line-clamp-2 {
      -webkit-line-clamp: unset !important;
      line-clamp: unset !important;
  }

/* Fallback for browsers lacking 'svh' support */
@supports not (height: 100svh) {
  @media (max-width: 768px) {
      section.tw-h-screen {
          height: auto !important;
          min-height: 100vh !important;
          padding-bottom: 5rem !important;
      }
  }
}