/* ========================================================================== */ /* KLC WEBSITE DESIGN SYSTEM POLICIES */ /* ========================================================================== */ /* */ /* 🎨 BACKGROUND COLOR POLICY: */ /* */ /* 🔒 WHITE BACKGROUND ONLY */ /* • #FFFFFF is the EXCLUSIVE background color for all sections */ /* • DO NOT use light blue (#F7F7FD) or any other background colors */ /* • All new sections MUST use white background */ /* */ /* ✅ APPROVED BACKGROUND USAGE: */ /* • background-color: #FFFFFF */ /* • background-color: var(--color-bg-white) */ /* • background-color: var(--color-bg-light) (now points to white) */ /* */ /* ❌ PROHIBITED BACKGROUND USAGE: */ /* • background-color: #F7F7FD (old light blue - REMOVED) */ /* • Any colored backgrounds for main sections */ /* */ /* ========================================================================== */ /* KLC WEBSITE FONT POLICY */ /* ========================================================================== */ /* */ /* ⚠️ CRITICAL FONT STANDARDIZATION POLICY: */ /* */ /* 🔒 INTER FONT ONLY - NO EXCEPTIONS */ /* • Inter is the EXCLUSIVE font for the entire KLC website */ /* • DO NOT use any other fonts unless explicitly instructed */ /* • All typography must maintain brand consistency */ /* */ /* ✅ APPROVED FONT USAGE: */ /* • font-family: var(--font-family-base) */ /* • font-family: var(--font-family-brand) */ /* • font-family: 'Inter', sans-serif (direct usage) */ /* */ /* ❌ PROHIBITED: */ /* • Any other font family declarations */ /* • Generic sans-serif without Inter */ /* • System fonts or custom font imports */ /* */ /* ========================================================================== */ /* ========== INTER FONT - EXCLUSIVE WEBSITE FONT ========== */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap'); @import "tailwindcss"; @custom-variant dark (&:is(.dark *)); :root { --font-size: 14px; --background: #ffffff; --foreground: oklch(0.145 0 0); --card: #ffffff; --card-foreground: oklch(0.145 0 0); --popover: oklch(1 0 0); --popover-foreground: oklch(0.145 0 0); --primary: #030213; --primary-foreground: oklch(1 0 0); --secondary: oklch(0.95 0.0058 264.53); --secondary-foreground: #030213; --muted: #ececf0; --muted-foreground: #717182; --accent: #e9ebef; --accent-foreground: #030213; --destructive: #d4183d; --destructive-foreground: #ffffff; --border: rgba(0, 0, 0, 0.1); --input: transparent; --input-background: #f3f3f5; --switch-background: #cbced4; --font-weight-medium: 500; --font-weight-normal: 400; --ring: oklch(0.708 0 0); --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); --chart-3: oklch(0.398 0.07 227.392); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); --radius: 0.625rem; --sidebar: oklch(0.985 0 0); --sidebar-foreground: oklch(0.145 0 0); --sidebar-primary: #030213; --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.97 0 0); --sidebar-accent-foreground: oklch(0.205 0 0); --sidebar-border: oklch(0.922 0 0); --sidebar-ring: oklch(0.708 0 0); /* ========== KLC DESIGN SYSTEM TOKENS - UPDATED ========== */ /* === BRAND COLORS === */ --color-primary: #04045B; /* Brand Blue */ --color-accent: #F8C301; /* Highlight Yellow */ --color-black: #26231A; /* Body Text */ --color-gray-muted: #6F6F6F; /* Subtext or muted content - Updated to darker gray for better readability */ --color-bg-white: #FFFFFF; /* White Background - DEFAULT FOR ALL SECTIONS */ --color-bg-light: #FFFFFF; /* Section Background - CHANGED FROM #F9F9F9 TO WHITE */ /* Legacy brand color support (maintain backward compatibility) */ --color-brand-primary: var(--color-primary); --color-brand-accent: var(--color-accent); --color-brand-black: var(--color-black); --color-brand-gray-muted: var(--color-gray-muted); --color-brand-bg-white: var(--color-bg-white); --color-brand-bg-light: var(--color-bg-light); /* === MODERN TYPOGRAPHY SYSTEM - INTER FONT ONLY === */ /* CRITICAL: Inter is the exclusive font for the entire website */ /* Use these variables for ALL font-family declarations */ --font-family-base: 'Inter', sans-serif; --font-family-brand: var(--font-family-base); /* Legacy support - always points to Inter */ /* Modern, readable font sizes */ --font-h1: 5rem; /* 80px - Hero titles */ --line-height-h1: 1.1; --font-weight-h1: 500; /* Medium */ --letter-spacing-h1: -0.02em; /* -2% */ --font-h2: 3rem; /* 48px - Main section headings */ --line-height-h2: 1.2; --font-weight-h2: 700; /* Bold */ --letter-spacing-h2: -0.01em; /* -1% */ --font-h3: 1.375rem; /* 22px - Subsection headings */ --line-height-h3: 1.3; --font-weight-h3: 600; /* Semi-bold */ --font-h4: 1.5rem; /* 24px - Card headings */ --line-height-h4: 1.4; --font-weight-h4: 600; /* Semi-bold */ /* Subheadings */ --font-subhead: 1.25rem; /* 20px */ --line-height-subhead: 1.5; --font-weight-subhead: 500; /* Medium */ /* Body Text */ --font-body: 1rem; /* 16px - Standard body */ --line-height-body: 1.6; --font-weight-body: 400; /* Regular */ --font-body-lg: 1.125rem; /* 18px - Large body text */ --line-height-body-lg: 1.6; /* Small text */ --font-small: 0.875rem; /* 14px */ --line-height-small: 1.5; --font-weight-small: 400; /* Eyebrow Text (All CAPS) */ --font-eyebrow: 0.875rem; /* 14px */ --line-height-eyebrow: 1.4; --font-weight-eyebrow: 500; /* Medium */ --letter-spacing-eyebrow: 0.05em; /* 5% letter spacing */ --text-transform-eyebrow: uppercase; /* === CONSISTENT SPACING SYSTEM === */ --spacing-xs: 8px; --spacing-sm: 16px; --spacing-md: 24px; --spacing-lg: 48px; --spacing-xl: 64px; --spacing-xxl: 80px; /* Added for larger gaps */ --section-spacing-desktop: 90px; --section-spacing-mobile: 64px; --gutter: var(--spacing-md); /* Consistent 24px gutter */ /* === LAYOUT SYSTEM === */ --section-margin-x: 100px; /* Main section horizontal margins */ --hero-margin-x: 200px; /* Hero section horizontal margins */ /* === ENHANCED SHADOW SYSTEM === */ --shadow-card-subtle: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.08); --shadow-card-base: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-card-elevated: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --shadow-card-hover: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); --shadow-card-dramatic: 0 25px 50px -12px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.05); } .dark { --background: oklch(0.145 0 0); --foreground: oklch(0.985 0 0); --card: oklch(0.145 0 0); --card-foreground: oklch(0.985 0 0); --popover: oklch(0.145 0 0); --popover-foreground: oklch(0.985 0 0); --primary: oklch(0.985 0 0); --primary-foreground: oklch(0.205 0 0); --secondary: oklch(0.269 0 0); --secondary-foreground: oklch(0.985 0 0); --muted: oklch(0.269 0 0); --muted-foreground: oklch(0.708 0 0); --accent: oklch(0.269 0 0); --accent-foreground: oklch(0.985 0 0); --destructive: oklch(0.396 0.141 25.723); --destructive-foreground: oklch(0.637 0.237 25.331); --border: oklch(0.269 0 0); --input: oklch(0.269 0 0); --ring: oklch(0.439 0 0); --font-weight-medium: 500; --font-weight-normal: 400; --chart-1: oklch(0.488 0.243 264.376); --chart-2: oklch(0.696 0.17 162.48); --chart-3: oklch(0.769 0.188 70.08); --chart-4: oklch(0.627 0.265 303.9); --chart-5: oklch(0.645 0.246 16.439); --sidebar: oklch(0.205 0 0); --sidebar-foreground: oklch(0.985 0 0); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.269 0 0); --sidebar-accent-foreground: oklch(0.985 0 0); --sidebar-border: oklch(0.269 0 0); --sidebar-ring: oklch(0.439 0 0); } @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-destructive: var(--destructive); --color-destructive-foreground: var(--destructive-foreground); --color-border: var(--border); --color-input: var(--input); --color-input-background: var(--input-background); --color-switch-background: var(--switch-background); --color-ring: var(--ring); --color-chart-1: var(--chart-1); --color-chart-2: var(--chart-2); --color-chart-3: var(--chart-3); --color-chart-4: var(--chart-4); --color-chart-5: var(--chart-5); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --color-sidebar: var(--sidebar); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); /* Brand colors for Tailwind */ --color-brand-primary: var(--color-brand-primary); --color-brand-accent: var(--color-brand-accent); --color-brand-black: var(--color-brand-black); --color-brand-gray-muted: var(--color-brand-gray-muted); --color-brand-bg-white: var(--color-brand-bg-white); --color-brand-bg-light: var(--color-brand-bg-light); /* Layout system for Tailwind */ --section-margin-x: var(--section-margin-x); --hero-margin-x: var(--hero-margin-x); } @layer base { * { @apply border-border outline-ring/50; } body { @apply bg-background text-foreground; /* IMPORTANT: Inter font applied globally */ font-family: var(--font-family-base); font-size: var(--font-body); line-height: var(--line-height-body); color: var(--color-black); /* Ensure proper stacking context for sticky elements */ position: relative; } } @layer components { /* === KLC DESIGN SYSTEM COMPONENT CLASSES === */ /* Layout margin utility classes */ .section-margin-x { margin-left: var(--section-margin-x); margin-right: var(--section-margin-x); } /* Hero margin utility class */ .hero-margin-x { margin-left: var(--hero-margin-x); margin-right: var(--hero-margin-x); } /* Brand button component using design system tokens */ .brand-button-system { display: flex; align-items: center; gap: var(--spacing-sm); padding: var(--spacing-sm) var(--spacing-lg); border-radius: 10px; font-family: var(--font-family-base); font-size: var(--font-body-lg); font-weight: var(--font-weight-h3); transition: all 0.3s ease; white-space: nowrap; border: none; cursor: pointer; background-color: var(--color-primary); color: var(--color-black); box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); } .brand-button-system:hover { background-color: #030359; color: var(--color-black); transform: translateY(-2px); box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); } .brand-button-system:active { transform: translateY(-1px); } /* Branded tag component using design system tokens */ /* NEW EYEBROW TEXT DESIGN - LIGHT BANNER STYLE */ .branded-tag-system { display: inline-flex; align-items: center; gap: var(--spacing-xs); padding: 0.625rem 1.5rem; background-color: rgba(248, 195, 1, 0.15); border-radius: 100px; margin-bottom: 20px; } .branded-tag-system .dot { width: var(--spacing-xs); height: var(--spacing-xs); border-radius: 50%; background-color: var(--color-accent); flex-shrink: 0; } .branded-tag-system .text { font-size: var(--font-eyebrow); line-height: var(--line-height-eyebrow); font-weight: var(--font-weight-eyebrow); letter-spacing: var(--letter-spacing-eyebrow); text-transform: var(--text-transform-eyebrow); font-family: var(--font-family-base); color: #26231A !important; text-shadow: none; } /* White variant for dark backgrounds */ .branded-tag-system-white { display: inline-flex; align-items: center; gap: var(--spacing-xs); padding: 0.625rem 1.5rem; background-color: rgba(248, 195, 1, 0.2); border-radius: 100px; margin-bottom: 20px; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); } .branded-tag-system-white .dot { width: var(--spacing-xs); height: var(--spacing-xs); border-radius: 50%; background-color: var(--color-accent); flex-shrink: 0; } .branded-tag-system-white .text { font-size: var(--font-eyebrow); line-height: var(--line-height-eyebrow); font-weight: var(--font-weight-eyebrow); letter-spacing: var(--letter-spacing-eyebrow); text-transform: var(--text-transform-eyebrow); font-family: var(--font-family-base); color: #ffffff !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } /* Next Steps variant with black text */ .branded-tag-system-next-steps { display: inline-flex; align-items: center; gap: var(--spacing-xs); padding: 0.625rem 1.5rem; background-color: rgba(248, 195, 1, 0.15); border-radius: 100px; margin-bottom: 20px; } .branded-tag-system-next-steps .dot { width: var(--spacing-xs); height: var(--spacing-xs); border-radius: 50%; background-color: var(--color-accent); flex-shrink: 0; } .branded-tag-system-next-steps .text { font-size: var(--font-eyebrow); line-height: var(--line-height-eyebrow); font-weight: var(--font-weight-eyebrow); letter-spacing: var(--letter-spacing-eyebrow); text-transform: var(--text-transform-eyebrow); font-family: var(--font-family-base); color: #26231A !important; text-shadow: none; } } /** * KLC Design System Base Typography * Applied to elements without Tailwind text classes to follow design system tokens */ @layer base { :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) { h1 { font-size: var(--font-h1); line-height: var(--line-height-h1); font-weight: var(--font-weight-h1); letter-spacing: var(--letter-spacing-h1); font-family: var(--font-family-base); color: var(--color-black); } h2 { font-size: var(--font-h2); line-height: var(--line-height-h2); font-weight: var(--font-weight-h2); letter-spacing: var(--letter-spacing-h2); font-family: var(--font-family-base); color: var(--color-black); } h3 { font-size: var(--font-h3); line-height: var(--line-height-h3); font-weight: var(--font-weight-h3); font-family: var(--font-family-base); color: var(--color-black); } h4 { font-size: var(--font-h4); line-height: var(--line-height-h4); font-weight: var(--font-weight-h4); font-family: var(--font-family-base); color: var(--color-black); } p { font-size: var(--font-body); line-height: var(--line-height-body); font-weight: var(--font-weight-body); font-family: var(--font-family-base); color: var(--color-black); } label { font-size: var(--font-body); font-weight: var(--font-weight-subhead); line-height: var(--line-height-body); font-family: var(--font-family-base); } button { font-size: var(--font-body); font-weight: var(--font-weight-h3); line-height: var(--line-height-body); font-family: var(--font-family-base); } input { font-size: var(--font-body); font-weight: var(--font-weight-body); line-height: var(--line-height-body); font-family: var(--font-family-base); } } } html { font-size: 16px; /* Updated to standard 16px base */ /* CRITICAL: Inter font applied to root HTML element */ font-family: var(--font-family-base); } /* === KLC DESIGN SYSTEM UTILITY CLASSES === */ @layer utilities { /* Typography utilities using design system tokens */ .text-h1 { font-size: var(--font-h1); line-height: var(--line-height-h1); font-weight: var(--font-weight-h1); letter-spacing: var(--letter-spacing-h1); font-family: var(--font-family-base); color: var(--color-black); } .text-h2 { font-size: var(--font-h2); line-height: var(--line-height-h2); font-weight: var(--font-weight-h2); letter-spacing: var(--letter-spacing-h2); font-family: var(--font-family-base); color: var(--color-black); } .text-h3 { font-size: var(--font-h3); line-height: var(--line-height-h3); font-weight: var(--font-weight-h3); font-family: var(--font-family-base); color: var(--color-black); } .text-h4 { font-size: var(--font-h4); line-height: var(--line-height-h4); font-weight: var(--font-weight-h4); font-family: var(--font-family-base); color: var(--color-black); } .text-subhead { font-size: var(--font-subhead); line-height: var(--line-height-subhead); font-weight: var(--font-weight-subhead); font-family: var(--font-family-base); color: var(--color-black); } .text-body { font-size: var(--font-body); line-height: var(--line-height-body); font-weight: var(--font-weight-body); font-family: var(--font-family-base); color: var(--color-black); } .text-body-lg { font-size: var(--font-body-lg); line-height: var(--line-height-body-lg); font-weight: var(--font-weight-body); font-family: var(--font-family-base); color: var(--color-black); } .text-small { font-size: var(--font-small); line-height: var(--line-height-small); font-weight: var(--font-weight-small); font-family: var(--font-family-base); color: var(--color-black); } .text-eyebrow { font-size: var(--font-eyebrow); line-height: var(--line-height-eyebrow); font-weight: var(--font-weight-eyebrow); letter-spacing: var(--letter-spacing-eyebrow); text-transform: var(--text-transform-eyebrow); font-family: var(--font-family-base); color: #26231A !important; text-shadow: none; } /* WHITE TEXT VARIANTS FOR DARK BACKGROUNDS */ .text-h1-white { font-size: var(--font-h1); line-height: var(--line-height-h1); font-weight: var(--font-weight-h1); letter-spacing: var(--letter-spacing-h1); font-family: var(--font-family-base); color: white !important; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); } .text-h2-white { font-size: var(--font-h2); line-height: var(--line-height-h2); font-weight: var(--font-weight-h2); letter-spacing: var(--letter-spacing-h2); font-family: var(--font-family-base); color: white !important; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); } .text-h3-white { font-size: var(--font-h3); line-height: var(--line-height-h3); font-weight: var(--font-weight-h3); font-family: var(--font-family-base); color: white !important; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); } .text-h4-white { font-size: var(--font-h4); line-height: var(--line-height-h4); font-weight: var(--font-weight-h4); font-family: var(--font-family-base); color: white !important; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); } .text-subhead-white { font-size: var(--font-subhead); line-height: var(--line-height-subhead); font-weight: var(--font-weight-subhead); font-family: var(--font-family-base); color: white !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } .text-body-white { font-size: var(--font-body); line-height: var(--line-height-body); font-weight: var(--font-weight-body); font-family: var(--font-family-base); color: white !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } .text-body-lg-white { font-size: var(--font-body-lg); line-height: var(--line-height-body-lg); font-weight: var(--font-weight-body); font-family: var(--font-family-base); color: white !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } .text-small-white { font-size: var(--font-small); line-height: var(--line-height-small); font-weight: var(--font-weight-small); font-family: var(--font-family-base); color: white !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } .text-eyebrow-white { font-size: var(--font-eyebrow); line-height: var(--line-height-eyebrow); font-weight: var(--font-weight-eyebrow); letter-spacing: var(--letter-spacing-eyebrow); text-transform: var(--text-transform-eyebrow); font-family: var(--font-family-base); color: #ffffff !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } .text-eyebrow-black { font-size: var(--font-eyebrow); line-height: var(--line-height-eyebrow); font-weight: var(--font-weight-eyebrow); letter-spacing: var(--letter-spacing-eyebrow); text-transform: var(--text-transform-eyebrow); font-family: var(--font-family-base); color: #26231A !important; text-shadow: none; } /* Color utilities */ .text-muted { color: var(--color-gray-muted) !important; } .text-muted-white { color: rgba(255, 255, 255, 0.8) !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } .text-primary { color: var(--color-primary) !important; } .text-accent { color: var(--color-accent) !important; } .text-white { color: white !important; } .text-white-shadow { color: white !important; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); } /* DARK BACKGROUND CONTAINER UTILITIES */ .dark-bg-text { color: white !important; } .dark-bg-text * { color: white !important; } .dark-bg-content h1, .dark-bg-content h2, .dark-bg-content h3, .dark-bg-content h4, .dark-bg-content h5, .dark-bg-content h6 { color: white !important; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); } .dark-bg-content p, .dark-bg-content span, .dark-bg-content div { color: white !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } .dark-bg-content .text-muted { color: rgba(255, 255, 255, 0.8) !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } /* Spacing utilities using design system tokens */ .spacing-xs { margin: var(--spacing-xs); } .spacing-sm { margin: var(--spacing-sm); } .spacing-md { margin: var(--spacing-md); } .spacing-lg { margin: var(--spacing-lg); } .spacing-xl { margin: var(--spacing-xl); } .spacing-xxl { margin: var(--spacing-xxl); } /* Padding utilities */ .p-xs { padding: var(--spacing-xs); } .p-sm { padding: var(--spacing-sm); } .p-md { padding: var(--spacing-md); } .p-lg { padding: var(--spacing-lg); } .p-xl { padding: var(--spacing-xl); } .p-xxl { padding: var(--spacing-xxl); } /* Margin utilities */ .m-xs { margin: var(--spacing-xs); } .m-sm { margin: var(--spacing-sm); } .m-md { margin: var(--spacing-md); } .m-lg { margin: var(--spacing-lg); } .m-xl { margin: var(--spacing-xl); } .m-xxl { margin: var(--spacing-xxl); } /* Gap utilities */ .gap-xs { gap: var(--spacing-xs); } .gap-sm { gap: var(--spacing-sm); } .gap-md { gap: var(--spacing-md); } .gap-lg { gap: var(--spacing-lg); } .gap-xl { gap: var(--spacing-xl); } .gap-xxl { gap: var(--spacing-xxl); } /* === ENHANCED CARD SHADOW UTILITIES === */ .card-shadow-subtle { box-shadow: var(--shadow-card-subtle); } .card-shadow-base { box-shadow: var(--shadow-card-base); } .card-shadow-elevated { box-shadow: var(--shadow-card-elevated); } .card-shadow-hover { box-shadow: var(--shadow-card-hover); } .card-shadow-dramatic { box-shadow: var(--shadow-card-dramatic); } /* Enhanced card hover effects */ .card-hover-lift { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .card-hover-lift:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); } .card-hover-dramatic { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .card-hover-dramatic:hover { transform: translateY(-6px); box-shadow: var(--shadow-card-dramatic); } /* Text clamping utilities */ .line-clamp-1 { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; } .line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; } .line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; } } /* === STICKY NAVIGATION STYLES === */ @layer components { /* Sticky Navigation Container */ .sticky-nav { position: sticky !important; top: 0 !important; z-index: 50 !important; background-color: var(--color-bg-white) !important; backdrop-filter: blur(10px) !important; -webkit-backdrop-filter: blur(10px) !important; transition: all 0.2s ease-in-out !important; } /* Enhanced dropdown menu positioning for sticky nav */ .sticky-nav [data-radix-popper-content-wrapper] { z-index: 60 !important; } /* Mobile sheet overlay should be above sticky nav */ [data-radix-dialog-overlay] { z-index: 70 !important; } [data-radix-dialog-content] { z-index: 75 !important; } /* Enhanced sticky navigation for better browser compatibility */ .navbar-sticky { position: -webkit-sticky !important; position: sticky !important; top: 0 !important; left: 0 !important; right: 0 !important; z-index: 9999 !important; width: 100% !important; background-color: var(--color-bg-white) !important; backdrop-filter: blur(10px) !important; -webkit-backdrop-filter: blur(10px) !important; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important; transition: all 0.3s ease-in-out !important; isolation: isolate !important; } /* Additional sticky support for webkit browsers */ @supports (position: -webkit-sticky) or (position: sticky) { .navbar-sticky { position: sticky !important; position: -webkit-sticky !important; } } /* Ensure content doesn't get hidden behind sticky navbar */ .main-content { padding-top: 0; position: relative; /* Ensure proper stacking context */ isolation: isolate; } /* Enhanced sticky navbar on scroll */ .navbar-sticky.scrolled { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important; backdrop-filter: blur(20px) !important; -webkit-backdrop-filter: blur(20px) !important; } } /* Z-index management for proper layering */ @layer utilities { .z-navbar { z-index: 50; } .z-dropdown { z-index: 60; } .z-modal-overlay { z-index: 70; } .z-modal-content { z-index: 75; } .z-tooltip { z-index: 80; } .z-popup-modal { z-index: 9999; } } /* === VIRTUAL SPACE MODAL STYLES === */ @layer components { /* Enhanced modal overlay with backdrop blur */ .virtual-space-modal-overlay { backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); animation: modal-fade-in 0.3s ease-out; } /* Modal container animations */ .virtual-space-modal-container { animation: modal-slide-up 0.4s cubic-bezier(0.16, 1, 0.3, 1); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); } /* Custom scrollbar for modal content */ .virtual-space-modal-scroll { scrollbar-width: thin; scrollbar-color: rgba(4, 4, 91, 0.3) transparent; } .virtual-space-modal-scroll::-webkit-scrollbar { width: 6px; } .virtual-space-modal-scroll::-webkit-scrollbar-track { background: transparent; } .virtual-space-modal-scroll::-webkit-scrollbar-thumb { background-color: rgba(4, 4, 91, 0.3); border-radius: 3px; } .virtual-space-modal-scroll::-webkit-scrollbar-thumb:hover { background-color: rgba(4, 4, 91, 0.5); } } /* Modal animations */ @keyframes modal-fade-in { from { opacity: 0; } to { opacity: 1; } } @keyframes modal-slide-up { from { opacity: 0; transform: translateY(20px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } } /* Responsive modal styles - No Scroll Version */ @media (max-width: 1024px) { .virtual-space-modal-container { max-width: 95vw; height: 85vh; } } @media (max-width: 768px) { .virtual-space-modal-container { max-width: 100vw; height: 95vh; border-radius: 0.75rem; margin: 0; } /* Stack layout on mobile with proper height management */ .virtual-space-modal-container .grid { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; height: 100%; } .virtual-space-modal-divider { border-right: none; border-bottom: 1px solid rgba(229, 231, 235, 1); } } /* Enhanced form styling - Clean UX Design */ .virtual-space-form-section { background: transparent; border-radius: 0; padding: 0; margin-bottom: 0; } .virtual-space-form-section h4 { color: var(--color-primary); font-weight: 600; margin-bottom: 1rem; font-size: var(--font-body); border-bottom: 1px solid rgba(229, 231, 235, 0.8); padding-bottom: 0.5rem; } /* Enhanced input styling with better UX */ .virtual-space-enhanced-input { height: 3rem; padding: 0.75rem 1rem; border: 2px solid #e5e7eb; border-radius: 8px; font-size: var(--font-body); font-family: var(--font-family-base); transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); background-color: #ffffff; } .virtual-space-enhanced-input::placeholder { color: rgba(107, 114, 128, 0.6); opacity: 1; } .virtual-space-enhanced-input:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(4, 4, 91, 0.1); outline: none; background-color: rgba(4, 4, 91, 0.01); } .virtual-space-enhanced-input:hover:not(:focus) { border-color: rgba(4, 4, 91, 0.4); } /* Enhanced label styling */ .virtual-space-enhanced-label { font-size: var(--font-body); font-weight: 500; color: var(--color-black); margin-bottom: 0.5rem; display: block; font-family: var(--font-family-base); } /* Enhanced textarea styling */ .virtual-space-enhanced-textarea { min-height: 5rem; padding: 0.75rem 1rem; border: 2px solid #e5e7eb; border-radius: 8px; font-size: var(--font-body); font-family: var(--font-family-base); transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); background-color: #ffffff; resize: none; } .virtual-space-enhanced-textarea::placeholder { color: rgba(107, 114, 128, 0.6); opacity: 1; } .virtual-space-enhanced-textarea:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(4, 4, 91, 0.1); outline: none; background-color: rgba(4, 4, 91, 0.01); } .virtual-space-enhanced-textarea:hover:not(:focus) { border-color: rgba(4, 4, 91, 0.4); } /* Enhanced select styling */ .virtual-space-enhanced-select { height: 3rem; border: 2px solid #e5e7eb; border-radius: 8px; font-size: var(--font-body); font-family: var(--font-family-base); transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); background-color: #ffffff; } .virtual-space-enhanced-select:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(4, 4, 91, 0.1); outline: none; } .virtual-space-enhanced-select:hover:not(:focus) { border-color: rgba(4, 4, 91, 0.4); } /* Form section dividers */ .virtual-space-form-divider { border-bottom: 1px solid rgba(229, 231, 235, 0.8); padding-bottom: 0.5rem; margin-bottom: 1rem; } /* Enhanced button styling */ .virtual-space-submit-btn { height: 3rem; padding: 0 2rem; background: linear-gradient(135deg, var(--color-primary) 0%, #030359 100%); border: none; border-radius: 8px; color: white; font-size: var(--font-body); font-weight: 600; font-family: var(--font-family-base); cursor: pointer; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 4px 14px 0 rgba(4, 4, 91, 0.15); } .virtual-space-submit-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 20px 0 rgba(4, 4, 91, 0.25); background: linear-gradient(135deg, #030359 0%, var(--color-primary) 100%); } .virtual-space-submit-btn:active { transform: translateY(0); box-shadow: 0 2px 8px 0 rgba(4, 4, 91, 0.2); } /* Cancel button styling */ .virtual-space-cancel-btn { height: 3rem; padding: 0 2rem; background: transparent; border: 2px solid #d1d5db; border-radius: 8px; color: var(--color-black); font-size: var(--font-body); font-weight: 500; font-family: var(--font-family-base); cursor: pointer; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } .virtual-space-cancel-btn:hover { border-color: #9ca3af; background-color: rgba(249, 250, 251, 0.5); } /* Form spacing improvements */ .virtual-space-form-grid { display: grid; gap: 1rem; } @media (min-width: 1024px) { .virtual-space-form-grid-cols-2 { grid-template-columns: 1fr 1fr; } } /* Disabled input styling */ .virtual-space-enhanced-input:disabled, .virtual-space-enhanced-input:read-only { background-color: #f9fafb; border-color: #e5e7eb; color: #6b7280; cursor: not-allowed; } /* Focus ring for accessibility */ .virtual-space-enhanced-input:focus-visible, .virtual-space-enhanced-textarea:focus-visible, .virtual-space-enhanced-select:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; } /* Enhanced button styling */ .virtual-space-primary-btn { background: linear-gradient(135deg, var(--color-primary) 0%, #030359 100%); transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(4, 4, 91, 0.2); } .virtual-space-primary-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(4, 4, 91, 0.3); } /* Features grid enhancement */ .virtual-space-feature-item { transition: all 0.2s ease; } .virtual-space-feature-item:hover { background-color: rgba(4, 4, 91, 0.05); transform: translateX(4px); } /* No-scroll modal specific styles */ .virtual-space-no-scroll-modal { height: 90vh; overflow: hidden; } /* Compact form styling for no-scroll version */ .virtual-space-compact-form { max-height: 100%; overflow: hidden; display: flex; flex-direction: column; } .virtual-space-compact-section { background: rgba(249, 250, 251, 0.8); border-radius: 8px; padding: 0.75rem; margin-bottom: 0.75rem; border: 1px solid rgba(229, 231, 235, 0.5); } .virtual-space-compact-input { height: 2rem; font-size: 0.75rem; padding: 0.25rem 0.75rem; border: 1px solid #e5e7eb; border-radius: 6px; } .virtual-space-compact-input:focus { border-color: var(--color-primary); box-shadow: 0 0 0 2px rgba(4, 4, 91, 0.1); outline: none; } /* Responsive adjustments for compact modal */ @media (max-width: 640px) { .virtual-space-no-scroll-modal { height: 95vh; } .virtual-space-compact-section { padding: 0.5rem; margin-bottom: 0.5rem; } .virtual-space-compact-input { height: 1.75rem; font-size: 0.7rem; } } /* CTA Popup Modal Specific Styles */ [data-radix-dialog-overlay][data-state="open"] { z-index: 9998 !important; } [data-radix-dialog-content][data-state="open"] { z-index: 9999 !important; } /* Ensure smooth scrolling when nav is sticky */ html { scroll-behavior: smooth; scroll-padding-top: 6rem; /* Account for sticky nav height */ } /* Custom animations for slide transitions */ @keyframes fade-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .animate-in { animation-fill-mode: both; } .fade-in { animation-name: fade-in; } .duration-700 { animation-duration: 700ms; } .delay-100 { animation-delay: 100ms; } .delay-200 { animation-delay: 200ms; } /* Counter animation for smooth number transitions */ @keyframes counter-pulse { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } } .counter-animating { animation: counter-pulse 0.3s ease-in-out; } /* Marquee animations for logo section */ @keyframes marquee-left { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } } @keyframes marquee-right { 0% { transform: translateX(-50%); } 100% { transform: translateX(0); } } /* Pause marquee on hover */ .animate-marquee:hover { animation-play-state: paused; } /* Clean Logo Ticker Scroll Animations */ @keyframes scroll-left { 0% { transform: translateX(0); } 100% { transform: translateX(-25%); } } @keyframes scroll-right { 0% { transform: translateX(-25%); } 100% { transform: translateX(0); } } .scroll-left { animation: scroll-left 60s linear infinite; } .scroll-right { animation: scroll-right 65s linear infinite; } /* Subtle pause on hover */ .scroll-left:hover, .scroll-right:hover { animation-play-state: paused; } /* Clean logo ticker item styling */ .logo-ticker-item { transition: all 0.3s ease; will-change: transform; } /* Performance optimization for logo animations */ .logo-ticker-item, .scroll-left, .scroll-right { backface-visibility: hidden; perspective: 1000px; } /* Logo image styling - Updated for visibility */ .logo-ticker-item-image { filter: grayscale(100%) opacity(0.7); transition: all 0.3s ease; } .logo-ticker-item:hover .logo-ticker-item-image { filter: grayscale(0%) opacity(1); transform: scale(1.05); } /* Responsive logo ticker adjustments */ @media (max-width: 1024px) { .scroll-left { animation-duration: 50s; } .scroll-right { animation-duration: 55s; } } @media (max-width: 768px) { .scroll-left { animation-duration: 40s; } .scroll-right { animation-duration: 45s; } .logo-ticker-item:hover img { transform: scale(1.03); } } @media (max-width: 480px) { .scroll-left { animation-duration: 30s; } .scroll-right { animation-duration: 35s; } } /* Scroll snapping for services section */ .scroll-smooth { scroll-behavior: smooth; } .snap-y { scroll-snap-type: y mandatory; } .snap-start { scroll-snap-align: start; } .snap-mandatory { scroll-snap-type: y mandatory; } /* Custom scroll animations for services */ @keyframes parallax-zoom { from { transform: scale(1.1); } to { transform: scale(1); } } .parallax-image { animation: parallax-zoom 1.2s ease-out forwards; } /* Enhanced animations for one-at-a-time services */ @keyframes slide-in-up { from { opacity: 0; transform: translateY(60px); } to { opacity: 1; transform: translateY(0); } } @keyframes slide-in-down { from { opacity: 0; transform: translateY(-60px); } to { opacity: 1; transform: translateY(0); } } @keyframes fade-scale-in { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } /* Prevent scrolling during service transitions */ .no-scroll { overflow: hidden; height: 100vh; } /* Service indicators hover effects */ .service-indicator { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .service-indicator:hover { transform: scale(1.1); filter: brightness(1.2); } /* Horizontal scrolling services animations - Slower */ @keyframes service-slide-in { from { opacity: 0; transform: translateX(80px); } to { opacity: 1; transform: translateX(0); } } @keyframes service-slide-out { from { opacity: 1; transform: translateX(0); } to { opacity: 0; transform: translateX(-80px); } } .service-block-active { animation: service-slide-in 1.4s ease-out; } /* Smooth horizontal scroll container - Slower */ .horizontal-services-container { transition: transform 1.0s cubic-bezier(0.25, 0.46, 0.45, 0.94); } /* Enhanced parallax effects for service images - Slower */ @keyframes service-image-parallax { from { transform: scale(1.15) translateY(30px); opacity: 0; } to { transform: scale(1) translateY(0); opacity: 1; } } .service-image-active { animation: service-image-parallax 1.8s ease-out; } /* Progress bar animation - Slower */ @keyframes progress-fill { from { width: 0; opacity: 0.5; } to { opacity: 1; } } .progress-bar-fill { animation: progress-fill 0.8s ease-out; } /* Blue section service animations */ @keyframes blue-service-fade-in { from { opacity: 0; transform: translateY(80px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } } .blue-service-block { animation: blue-service-fade-in 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); } /* Service text animations for blue background */ @keyframes blue-text-reveal { from { opacity: 0; transform: translateY(40px); filter: blur(2px); } to { opacity: 1; transform: translateY(0); filter: blur(0); } } .blue-text-element { animation: blue-text-reveal 1.0s cubic-bezier(0.25, 0.46, 0.45, 0.94); } /* Service cards grid animations */ @keyframes service-card-hover-lift { from { transform: translateY(0) scale(1); box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); } to { transform: translateY(-4px) scale(1); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); } } .service-card-hover { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .service-card-hover:hover { animation: service-card-hover-lift 0.3s ease-out forwards; } /* Service card image zoom effect */ @keyframes service-image-zoom { from { transform: scale(1); } to { transform: scale(1.05); } } .service-card-image:hover { animation: service-image-zoom 0.5s ease-out forwards; } /* Service card icon animation */ @keyframes service-icon-pulse { 0%, 100% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.1); opacity: 1; } } .service-icon { transition: all 0.3s ease; } .service-card:hover .service-icon { animation: service-icon-pulse 1s ease-in-out infinite; } /* Learn more arrow animation */ @keyframes learn-more-arrow { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } } .learn-more-button:hover .learn-more-arrow { animation: learn-more-arrow 0.6s ease-in-out infinite; } /* Grid stagger animation for service cards */ @keyframes grid-fade-in-up { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } } .grid-item-1 { animation-delay: 0.1s; } .grid-item-2 { animation-delay: 0.2s; } .grid-item-3 { animation-delay: 0.3s; } .grid-item-4 { animation-delay: 0.4s; } .grid-item-5 { animation-delay: 0.5s; } .grid-item-6 { animation-delay: 0.6s; } /* Responsive grid layout enhancements */ @media (max-width: 1024px) { .services-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } } @media (max-width: 768px) { .services-grid { grid-template-columns: 1fr; gap: 2rem; } } /* Sticky sidebar enhancements */ .sticky-sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; justify-content: center; } /* === HERO SECTION STYLES === */ /* LearningOnline & Articles Hero Section - Blog Style */ .articles-hero-stats { font-family: var(--font-family-base); text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); } /* LearningOnline Hero Header - 2 Line Control */ .text-h1-white { white-space: nowrap; /* Prevent automatic wrapping */ overflow-wrap: normal; /* Don't break words */ } /* Responsive font sizing to ensure 2-line fit */ @media (max-width: 768px) { .text-h1-white { font-size: 2.5rem !important; /* Smaller on mobile to fit 2 lines */ line-height: 1.1 !important; } } @media (max-width: 480px) { .text-h1-white { font-size: 2rem !important; /* Even smaller on very small screens */ line-height: 1.1 !important; } } .articles-hero-stats .stat-number { font-size: 3.75rem; /* 60px */ font-weight: 500; line-height: 1.1; color: white; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4); } .articles-hero-stats .stat-label { font-size: var(--font-body); font-weight: 400; color: rgba(255, 255, 255, 0.9); text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); } /* Responsive adjustments for hero stats */ @media (max-width: 1024px) { .articles-hero-stats { gap: 3rem; } .articles-hero-stats .stat-number { font-size: 3.25rem; /* 52px */ } .articles-hero-stats .stat-label { font-size: var(--font-small); } } @media (max-width: 768px) { .articles-hero-stats { gap: 2rem; grid-template-columns: 1fr; max-width: 300px !important; } .articles-hero-stats .stat-number { font-size: 2.75rem; /* 44px */ } .articles-hero-stats .stat-label { font-size: var(--font-small); } } @media (max-width: 640px) { .articles-hero-stats { gap: 1.5rem; grid-template-columns: 1fr; max-width: 280px !important; } .articles-hero-stats .stat-number { font-size: 2.5rem; /* 40px */ } .articles-hero-stats .stat-label { font-size: var(--font-small); } } @media (max-width: 480px) { .articles-hero-stats { gap: 1.25rem; grid-template-columns: 1fr; max-width: 260px !important; } .articles-hero-stats .stat-number { font-size: 2.25rem; /* 36px */ } .articles-hero-stats .stat-label { font-size: 0.75rem; } } /* Hero Section Container */ .hero-section { position: relative; height: 80vh; min-height: 790px; overflow: hidden; display: flex; flex-direction: column; } /* Hero Slide Background */ .hero-slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; background-repeat: no-repeat; opacity: 0; transition: opacity 1s ease-in-out; z-index: 1; } .hero-slide.active { opacity: 1; z-index: 2; } /* Hero Overlay - Enhanced for better text contrast */ .hero-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to right, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.75) 30%, rgba(0, 0, 0, 0.5) 60%, rgba(0, 0, 0, 0.3) 100%); z-index: 3; } /* Hero Content Container */ .hero-content { position: relative; z-index: 10; height: 100%; display: flex; align-items: center; padding-left: var(--hero-margin-x); padding-right: var(--hero-margin-x); } .hero-text-section { max-width: 1400px; width: 100%; color: white !important; margin-top: -60px; } .hero-text-section * { color: white !important; } .hero-title { font-size: var(--font-h1); font-weight: var(--font-weight-h1); line-height: var(--line-height-h1); letter-spacing: var(--letter-spacing-h1); margin-bottom: 1.5rem; margin-top: -80px; font-family: var(--font-family-base); color: white !important; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); animation: hero-fade-in-up 1s ease-out; } .hero-description { font-size: var(--font-body-lg); font-weight: var(--font-weight-body); line-height: var(--line-height-body-lg); margin-bottom: 2.5rem; opacity: 0.95; font-family: var(--font-family-base); color: white !important; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); animation: hero-fade-in-up 1s ease-out 0.2s both; max-width: 600px; } /* === PRIMARY CTA BUTTON DESIGN SYSTEM COMPONENT === */ /* === PRIMARY CTA BUTTON ALIGNMENT UTILITIES === */ /* Right alignment utilities for Primary CTA Button positioning */ .primary-cta-button-right { margin-left: auto; margin-right: 0; } .primary-cta-button-center { margin-left: auto; margin-right: auto; } .primary-cta-button-left { margin-left: 0; margin-right: auto; } /* Flex container utilities for button alignment */ .primary-cta-container-right { display: flex; justify-content: flex-end; } .primary-cta-container-center { display: flex; justify-content: center; } .primary-cta-container-left { display: flex; justify-content: flex-start; } /* === DEFAULT PRIMARY CTA BUTTON COLOR CHANGE === */ /* Change default color from yellow to blue for ALL Primary CTA buttons */ /* Individual buttons can still be customized using variant components or CSS classes */ /* Change default background from yellow to blue */ .primary-cta-button .bg-\[#F8C301\] { background-color: #04045B !important; /* Blue background instead of yellow */ } .primary-cta-button div[class*="bg-[#F8C301]"] { background-color: #04045B !important; } .primary-cta-button [class*="F8C301"] { background-color: #04045B !important; } .primary-cta-button .absolute.inset-0.bg-\[#F8C301\] { background-color: #04045B !important; } .primary-cta-button .relative.shrink-0.size-\[50px\] > div:first-child { background-color: #04045B !important; } .primary-cta-button div[style*="background-color: #F8C301"] { background-color: #04045B !important; } /* Change default text color to black for blue background */ .primary-cta-button .text-layer, .primary-cta-button .text-element, .primary-cta-button .text-layer *, .primary-cta-button .text-element * { color: #26231A !important; /* Black text for blue background */ } /* Change default hover background to darker blue */ .primary-cta-button:hover .bg-\[#F8C301\] { background-color: #030359 !important; /* Darker blue on hover */ } .primary-cta-button:hover div[class*="bg-[#F8C301]"] { background-color: #030359 !important; } .primary-cta-button:hover [class*="F8C301"] { background-color: #030359 !important; } .primary-cta-button:hover .absolute.inset-0.bg-\[#F8C301\] { background-color: #030359 !important; } .primary-cta-button:hover .relative.shrink-0.size-\[50px\] > div:first-child { background-color: #030359 !important; } .primary-cta-button:hover div[style*="background-color: #F8C301"] { background-color: #030359 !important; } /* Maintain black text on hover */ .primary-cta-button:hover .text-layer, .primary-cta-button:hover .text-element, .primary-cta-button:hover .text-layer *, .primary-cta-button:hover .text-element * { color: #26231A !important; /* Keep black text on hover */ } /* === PRIMARY CTA BUTTON VARIANT STYLES === */ /* Explicit black text variant that overrides any context (including hero-slide-button) */ .primary-cta-button.cta-text-black .text-layer, .primary-cta-button.cta-text-black .text-element, .primary-cta-button.cta-text-black .text-layer *, .primary-cta-button.cta-text-black .text-element * { color: #26231A !important; /* Brand black */ text-shadow: none !important; } /* Ensure black text wins even inside hero-slide-button wrappers */ .hero-slide-button .primary-cta-button.cta-text-black .text-layer, .hero-slide-button .primary-cta-button.cta-text-black .text-element, .hero-slide-button .primary-cta-button.cta-text-black .text-layer *, .hero-slide-button .primary-cta-button.cta-text-black .text-element * { color: #26231A !important; text-shadow: none !important; } /* Explicit white text variant */ .primary-cta-button.cta-text-white .text-layer, .primary-cta-button.cta-text-white .text-element, .primary-cta-button.cta-text-white .text-layer *, .primary-cta-button.cta-text-white .text-element * { color: #FFFFFF !important; /* White text */ text-shadow: 0 1px 2px rgba(0,0,0,0.35) !important; /* subtle for contrast on dark */ } /* Ensure white text also wins in hero-slide-button wrappers */ .hero-slide-button .primary-cta-button.cta-text-white .text-layer, .hero-slide-button .primary-cta-button.cta-text-white .text-element, .hero-slide-button .primary-cta-button.cta-text-white .text-layer *, .hero-slide-button .primary-cta-button.cta-text-white .text-element * { color: #FFFFFF !important; text-shadow: 0 1px 2px rgba(0,0,0,0.35) !important; } /* Explicit black text variant that overrides any context (including hero-slide-button) */ .primary-cta-button.cta-text-black .text-layer, .primary-cta-button.cta-text-black .text-element, .primary-cta-button.cta-text-black .text-layer *, .primary-cta-button.cta-text-black .text-element * { color: #26231A !important; /* Brand black */ text-shadow: none !important; } /* Ensure black text wins even inside hero-slide-button wrappers */ .hero-slide-button .primary-cta-button.cta-text-black .text-layer, .hero-slide-button .primary-cta-button.cta-text-black .text-element, .hero-slide-button .primary-cta-button.cta-text-black .text-layer *, .hero-slide-button .primary-cta-button.cta-text-black .text-element * { color: #26231A !important; text-shadow: none !important; } /* Blue Primary CTA Button Variant */ .primary-cta-button-blue .bg-\[#F8C301\] { background-color: #04045B !important; /* Brand Blue instead of Yellow */ } .primary-cta-button-blue div[class*="bg-[#F8C301]"] { background-color: #04045B !important; } .primary-cta-button-blue [class*="F8C301"] { background-color: #04045B !important; } .primary-cta-button-blue .absolute.inset-0.bg-\[#F8C301\] { background-color: #04045B !important; } .primary-cta-button-blue .relative.shrink-0.size-\[50px\] > div:first-child { background-color: #04045B !important; } .primary-cta-button-blue div[style*="background-color: #F8C301"] { background-color: #04045B !important; } /* Blue variant text color overrides */ .primary-cta-button-blue .text-layer, .primary-cta-button-blue .text-element, .primary-cta-button-blue .text-layer *, .primary-cta-button-blue .text-element * { color: #26231A !important; /* Black text for blue background */ } /* Blue variant hover states */ .primary-cta-button-blue:hover .bg-\[#F8C301\] { background-color: #030359 !important; /* Darker blue on hover */ } .primary-cta-button-blue:hover div[class*="bg-[#F8C301]"] { background-color: #030359 !important; } .primary-cta-button-blue:hover [class*="F8C301"] { background-color: #030359 !important; } .primary-cta-button-blue:hover .absolute.inset-0.bg-\[#F8C301\] { background-color: #030359 !important; } .primary-cta-button-blue:hover .relative.shrink-0.size-\[50px\] > div:first-child { background-color: #030359 !important; } .primary-cta-button-blue:hover div[style*="background-color: #F8C301"] { background-color: #030359 !important; } /* Blue variant hover text color - maintain black text */ .primary-cta-button-blue:hover .text-layer, .primary-cta-button-blue:hover .text-element, .primary-cta-button-blue:hover .text-layer *, .primary-cta-button-blue:hover .text-element * { color: #26231A !important; /* Keep black text on hover */ } /* Yellow Primary CTA Button Variant (Default - No overrides needed) */ .primary-cta-button-yellow { /* Preserves original yellow styling from main component */ } /* Custom Primary CTA Button Variant */ .primary-cta-button-custom .bg-\[#F8C301\] { background-color: var(--custom-bg-color, #F8C301) !important; } .primary-cta-button-custom div[class*="bg-[#F8C301]"] { background-color: var(--custom-bg-color, #F8C301) !important; } .primary-cta-button-custom [class*="F8C301"] { background-color: var(--custom-bg-color, #F8C301) !important; } .primary-cta-button-custom .absolute.inset-0.bg-\[#F8C301\] { background-color: var(--custom-bg-color, #F8C301) !important; } .primary-cta-button-custom .relative.shrink-0.size-\[50px\] > div:first-child { background-color: var(--custom-bg-color, #F8C301) !important; } .primary-cta-button-custom div[style*="background-color: #F8C301"] { background-color: var(--custom-bg-color, #F8C301) !important; } /* Custom variant text color overrides */ .primary-cta-button-custom .text-layer, .primary-cta-button-custom .text-element, .primary-cta-button-custom .text-layer *, .primary-cta-button-custom .text-element * { color: var(--custom-text-color, #FFFFFF) !important; } /* Custom variant hover states */ .primary-cta-button-custom:hover .bg-\[#F8C301\] { background-color: var(--custom-hover-bg-color, var(--custom-bg-color, #F8C301)) !important; } .primary-cta-button-custom:hover div[class*="bg-[#F8C301]"] { background-color: var(--custom-hover-bg-color, var(--custom-bg-color, #F8C301)) !important; } .primary-cta-button-custom:hover [class*="F8C301"] { background-color: var(--custom-hover-bg-color, var(--custom-bg-color, #F8C301)) !important; } .primary-cta-button-custom:hover .absolute.inset-0.bg-\[#F8C301\] { background-color: var(--custom-hover-bg-color, var(--custom-bg-color, #F8C301)) !important; } .primary-cta-button-custom:hover .relative.shrink-0.size-\[50px\] > div:first-child { background-color: var(--custom-hover-bg-color, var(--custom-bg-color, #F8C301)) !important; } .primary-cta-button-custom:hover div[style*="background-color: #F8C301"] { background-color: var(--custom-hover-bg-color, var(--custom-bg-color, #F8C301)) !important; } /* Custom variant hover text color */ .primary-cta-button-custom:hover .text-layer, .primary-cta-button-custom:hover .text-element, .primary-cta-button-custom:hover .text-layer *, .primary-cta-button-custom:hover .text-element * { color: var(--custom-text-color, #FFFFFF) !important; } /* Primary CTA Button - Sophisticated Slide Animation Component */ .primary-cta-button { will-change: transform; backface-visibility: hidden; perspective: 1000px; } .primary-cta-button:focus { outline: none !important; box-shadow: 0 0 0 3px rgba(248, 195, 1, 0.3) !important; border-radius: 4px; } /* Enhanced text animation smoothness */ .primary-cta-button .text-element { will-change: transform, opacity; backface-visibility: hidden; perspective: 1000px; transform-style: preserve-3d; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Enhanced icon animation smoothness */ .primary-cta-button .icon-layer .icon { will-change: transform, opacity; backface-visibility: hidden; perspective: 1000px; transform-style: preserve-3d; } /* Ensure smooth font rendering during animation */ .primary-cta-button .text-layer { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; transform-style: preserve-3d; } /* Icon container overflow and positioning */ .primary-cta-button .icon-layer { transform-style: preserve-3d; } /* Text visibility fixes - Updated for blue background with black text */ .primary-cta-button .text-layer { color: #26231A !important; } .primary-cta-button .text-element { color: #26231A !important; font-family: 'Inter', sans-serif !important; font-size: 20px !important; font-weight: 400 !important; line-height: 28px !important; } .primary-cta-button .text-element * { color: #26231A !important; } /* Ensure text is visible in all states - Black text */ .primary-cta-button div[style*="color: #ffffff"] { color: #26231A !important; } /* Override any inherited styles that might hide text - Black text */ .primary-cta-button .text-layer div { color: #26231A !important; opacity: 1; } .primary-cta-button .text-layer div:first-child { position: relative; opacity: 1; transform: translateY(0); } /* Ensure proper z-index for text elements */ .primary-cta-button .text-element { z-index: 10; pointer-events: none; } /* Responsive adjustments for Primary CTA Button */ @media (max-width: 768px) { .primary-cta-button { gap: 8px !important; } .primary-cta-button .size-\[50px\] { width: 48px !important; height: 48px !important; } .primary-cta-button .text-layer { font-size: 18px !important; height: 24px !important; } .primary-cta-button .text-element { font-size: 18px !important; line-height: 24px !important; height: 24px !important; } } @media (max-width: 480px) { .primary-cta-button { gap: 6px !important; } .primary-cta-button .size-\[50px\] { width: 46px !important; height: 46px !important; } .primary-cta-button .text-layer { font-size: 16px !important; height: 22px !important; } .primary-cta-button .text-element { font-size: 16px !important; line-height: 22px !important; height: 22px !important; } } /* Remove text shadow for clean black text */ .primary-cta-button .text-element { font-display: swap; } /* Ensure text is always visible during animations */ .primary-cta-button .text-layer { position: relative; z-index: 10; } .primary-cta-button .text-element { display: flex !important; align-items: center !important; justify-content: flex-start !important; width: 100% !important; height: 100% !important; color: #26231A !important; } /* Fix any potential inheritance issues */ .primary-cta-button * { color: inherit; } .primary-cta-button .text-layer * { color: #26231A !important; } /* === INDEPENDENT BUTTON STYLING SYSTEM === */ /* Create unique CSS classes for independent button styling */ /* Each button instance can use different CSS class modifiers */ /* === INDIVIDUAL BUTTON STYLING CLASSES === */ /* Use these classes to style specific Primary CTA button instances */ /* Management Development Section - Primary CTA Button on Dark Background */ .primary-cta-button.management-dev-primary-cta .bg-\[#F8C301\] { background-color: #F8C301 !important; /* Yellow background for dark background */ } .primary-cta-button.management-dev-primary-cta div[class*="bg-[#F8C301]"] { background-color: #F8C301 !important; } .primary-cta-button.management-dev-primary-cta [class*="F8C301"] { background-color: #F8C301 !important; } .primary-cta-button.management-dev-primary-cta .absolute.inset-0.bg-\[#F8C301\] { background-color: #F8C301 !important; } .primary-cta-button.management-dev-primary-cta .relative.shrink-0.size-\[50px\] > div:first-child { background-color: #F8C301 !important; } .primary-cta-button.management-dev-primary-cta div[style*="background-color: #F8C301"] { background-color: #F8C301 !important; } .primary-cta-button.management-dev-primary-cta div[style*="background-color: #04045B"] { background-color: #F8C301 !important; } /* Management Development Section - White text for yellow background */ .primary-cta-button.management-dev-primary-cta .text-layer, .primary-cta-button.management-dev-primary-cta .text-element, .primary-cta-button.management-dev-primary-cta .text-layer *, .primary-cta-button.management-dev-primary-cta .text-element * { color: #FFFFFF !important; /* White text for yellow background */ } /* Management Development Section - Hover states */ .primary-cta-button.management-dev-primary-cta:hover .bg-\[#F8C301\] { background-color: #E6AF01 !important; /* Darker yellow on hover */ } .primary-cta-button.management-dev-primary-cta:hover div[class*="bg-[#F8C301]"] { background-color: #E6AF01 !important; } .primary-cta-button.management-dev-primary-cta:hover [class*="F8C301"] { background-color: #E6AF01 !important; } .primary-cta-button.management-dev-primary-cta:hover .absolute.inset-0.bg-\[#F8C301\] { background-color: #E6AF01 !important; } .primary-cta-button.management-dev-primary-cta:hover .relative.shrink-0.size-\[50px\] > div:first-child { background-color: #E6AF01 !important; } .primary-cta-button.management-dev-primary-cta:hover div[style*="background-color: #F8C301"] { background-color: #E6AF01 !important; } .primary-cta-button.management-dev-primary-cta:hover div[style*="background-color: #04045B"] { background-color: #E6AF01 !important; } .primary-cta-button.management-dev-primary-cta:hover .text-layer, .primary-cta-button.management-dev-primary-cta:hover .text-element, .primary-cta-button.management-dev-primary-cta:hover .text-layer *, .primary-cta-button.management-dev-primary-cta:hover .text-element * { color: #FFFFFF !important; /* Keep white text on hover */ } /* Management Development Section - Glassmorphic Download Button */ .management-dev-glassmorphic-btn { background: rgba(4, 4, 91, 0.15) !important; /* Semi-transparent blue */ backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important; border: 1px solid rgba(255, 255, 255, 0.2) !important; border-radius: 10px !important; box-shadow: 0 8px 32px rgba(4, 4, 91, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.1) !important; color: white !important; position: relative; overflow: hidden; } /* Glassmorphic button inner glow */ .management-dev-glassmorphic-btn::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 50%, rgba(4, 4, 91, 0.1) 100%); border-radius: 10px; pointer-events: none; z-index: 0; } /* Ensure content is above the pseudo-element */ .management-dev-glassmorphic-btn > * { position: relative; z-index: 1; } /* Enhanced hover effect with glassmorphism */ .management-dev-glassmorphic-btn:hover { background: rgba(4, 4, 91, 0.25) !important; border-color: rgba(255, 255, 255, 0.3) !important; box-shadow: 0 12px 40px rgba(4, 4, 91, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 0 20px rgba(4, 4, 91, 0.3) !important; transform: translateY(-2px) !important; backdrop-filter: blur(16px) !important; -webkit-backdrop-filter: blur(16px) !important; } /* Enhanced hover glow */ .management-dev-glassmorphic-btn:hover::before { background: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0.08) 50%, rgba(4, 4, 91, 0.15) 100%); } /* Focus state for accessibility */ .management-dev-glassmorphic-btn:focus { outline: none !important; border-color: rgba(248, 195, 1, 0.5) !important; box-shadow: 0 0 0 3px rgba(248, 195, 1, 0.2), 0 8px 32px rgba(4, 4, 91, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.1) !important; } /* Active state */ .management-dev-glassmorphic-btn:active { transform: translateY(-1px) !important; box-shadow: 0 6px 24px rgba(4, 4, 91, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.1) !important; } /* Icon styling */ .management-dev-glassmorphic-btn svg { color: white !important; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1)); } /* Text styling with subtle shadow */ .management-dev-glassmorphic-btn { text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) !important; } /* CTA Banner Section - Unique Yellow Button */ .primary-cta-button.cta-banner-yellow .bg-\[#F8C301\] { background-color: #F8C301 !important; /* Yellow background */ } .primary-cta-button.cta-banner-yellow div[class*="bg-[#F8C301]"] { background-color: #F8C301 !important; } .primary-cta-button.cta-banner-yellow [class*="F8C301"] { background-color: #F8C301 !important; } .primary-cta-button.cta-banner-yellow .absolute.inset-0.bg-\[#F8C301\] { background-color: #F8C301 !important; } .primary-cta-button.cta-banner-yellow .relative.shrink-0.size-\[50px\] > div:first-child { background-color: #F8C301 !important; } .primary-cta-button.cta-banner-yellow div[style*="background-color: #F8C301"] { background-color: #F8C301 !important; } .primary-cta-button.cta-banner-yellow div[style*="background-color: #04045B"] { background-color: #F8C301 !important; } /* CTA Banner Section - White text for yellow background */ .primary-cta-button.cta-banner-yellow .text-layer, .primary-cta-button.cta-banner-yellow .text-element, .primary-cta-button.cta-banner-yellow .text-layer *, .primary-cta-button.cta-banner-yellow .text-element * { color: #FFFFFF !important; /* White text for yellow background */ } /* CTA Banner Section - Yellow hover states */ .primary-cta-button.cta-banner-yellow:hover .bg-\[#F8C301\] { background-color: #E6AF01 !important; /* Darker yellow on hover */ } .primary-cta-button.cta-banner-yellow:hover div[class*="bg-[#F8C301]"] { background-color: #E6AF01 !important; } .primary-cta-button.cta-banner-yellow:hover [class*="F8C301"] { background-color: #E6AF01 !important; } .primary-cta-button.cta-banner-yellow:hover .absolute.inset-0.bg-\[#F8C301\] { background-color: #E6AF01 !important; } .primary-cta-button.cta-banner-yellow:hover .relative.shrink-0.size-\[50px\] > div:first-child { background-color: #E6AF01 !important; } .primary-cta-button.cta-banner-yellow:hover div[style*="background-color: #F8C301"] { background-color: #E6AF01 !important; } .primary-cta-button.cta-banner-yellow:hover div[style*="background-color: #04045B"] { background-color: #E6AF01 !important; } .primary-cta-button.cta-banner-yellow:hover .text-layer, .primary-cta-button.cta-banner-yellow:hover .text-element, .primary-cta-button.cta-banner-yellow:hover .text-layer *, .primary-cta-button.cta-banner-yellow:hover .text-element * { color: #FFFFFF !important; /* Keep white text on hover */ } /* === LANDING PAGE SPECIFIC CTA BUTTON OVERRIDES === */ /* Override for specific Primary CTA buttons on landing page only */ /* Changes: Text color → Black (#26231A), Background → Blue (#04045B) */ /* Landing Page Navbar CTA Button Override */ .primary-cta-button.navbar-cta-override { background-color: transparent !important; } .primary-cta-button.navbar-cta-override .bg-\[#F8C301\] { background-color: #04045B !important; } .primary-cta-button.navbar-cta-override .text-layer, .primary-cta-button.navbar-cta-override .text-element, .primary-cta-button.navbar-cta-override .text-layer *, .primary-cta-button.navbar-cta-override .text-element * { color: #26231A !important; } /* Landing Page About Us CTA Button Override */ .primary-cta-button.about-us-cta-override { background-color: transparent !important; } .primary-cta-button.about-us-cta-override .bg-\[#F8C301\] { background-color: #04045B !important; } .primary-cta-button.about-us-cta-override .text-layer, .primary-cta-button.about-us-cta-override .text-element, .primary-cta-button.about-us-cta-override .text-layer *, .primary-cta-button.about-us-cta-override .text-element * { color: #26231A !important; } /* Landing Page Get Started Today CTA Button Override */ .primary-cta-button.get-started-cta-override { background-color: transparent !important; } .primary-cta-button.get-started-cta-override .bg-\[#F8C301\] { background-color: #04045B !important; } .primary-cta-button.get-started-cta-override .text-layer, .primary-cta-button.get-started-cta-override .text-element, .primary-cta-button.get-started-cta-override .text-layer *, .primary-cta-button.get-started-cta-override .text-element * { color: #26231A !important; } /* Landing Page Explore All CTA Button Override */ .primary-cta-button.explore-all-cta-override { background-color: transparent !important; } .primary-cta-button.explore-all-cta-override .bg-\[#F8C301\] { background-color: #04045B !important; } .primary-cta-button.explore-all-cta-override .text-layer, .primary-cta-button.explore-all-cta-override .text-element, .primary-cta-button.explore-all-cta-override .text-layer *, .primary-cta-button.explore-all-cta-override .text-element * { color: #26231A !important; } /* Landing Page Browse All Resources CTA Button Override */ .primary-cta-button.browse-resources-cta-override { background-color: transparent !important; } .primary-cta-button.browse-resources-cta-override .bg-\[#F8C301\] { background-color: #04045B !important; } .primary-cta-button.browse-resources-cta-override .text-layer, .primary-cta-button.browse-resources-cta-override .text-element, .primary-cta-button.browse-resources-cta-override .text-layer *, .primary-cta-button.browse-resources-cta-override .text-element * { color: #26231A !important; } /* Hover states for landing page CTA overrides - maintain blue background, black text */ .primary-cta-button.navbar-cta-override:hover .bg-\[#F8C301\], .primary-cta-button.about-us-cta-override:hover .bg-\[#F8C301\], .primary-cta-button.get-started-cta-override:hover .bg-\[#F8C301\], .primary-cta-button.explore-all-cta-override:hover .bg-\[#F8C301\], .primary-cta-button.browse-resources-cta-override:hover .bg-\[#F8C301\] { background-color: #030359 !important; /* Slightly darker blue on hover */ } .primary-cta-button.navbar-cta-override:hover .text-layer, .primary-cta-button.navbar-cta-override:hover .text-element, .primary-cta-button.navbar-cta-override:hover .text-layer *, .primary-cta-button.navbar-cta-override:hover .text-element *, .primary-cta-button.about-us-cta-override:hover .text-layer, .primary-cta-button.about-us-cta-override:hover .text-element, .primary-cta-button.about-us-cta-override:hover .text-layer *, .primary-cta-button.about-us-cta-override:hover .text-element *, .primary-cta-button.get-started-cta-override:hover .text-layer, .primary-cta-button.get-started-cta-override:hover .text-element, .primary-cta-button.get-started-cta-override:hover .text-layer *, .primary-cta-button.get-started-cta-override:hover .text-element *, .primary-cta-button.explore-all-cta-override:hover .text-layer, .primary-cta-button.explore-all-cta-override:hover .text-element, .primary-cta-button.explore-all-cta-override:hover .text-layer *, .primary-cta-button.explore-all-cta-override:hover .text-element *, .primary-cta-button.browse-resources-cta-override:hover .text-layer, .primary-cta-button.browse-resources-cta-override:hover .text-element, .primary-cta-button.browse-resources-cta-override:hover .text-layer *, .primary-cta-button.browse-resources-cta-override:hover .text-element * { color: #26231A !important; } /* === HERO PRIMARY CTA BUTTON STYLES WITH SOPHISTICATED ANIMATIONS (LEGACY SUPPORT) === */ /* Enhanced button focus state for accessibility */ .hero-section button:focus { outline: none !important; box-shadow: 0 0 0 3px rgba(248, 195, 1, 0.3), 0 20px 25px -5px rgba(4, 4, 91, 0.3), 0 10px 10px -5px rgba(4, 4, 91, 0.2) !important; } /* Hero CTA Button Animation */ .hero-description + button { animation: hero-fade-in-up 1s ease-out 0.4s both; margin-top: 0; } /* Hero Slide Button - Enhanced Animation Styles */ .hero-slide-button { will-change: transform; backface-visibility: hidden; perspective: 1000px; } .hero-slide-button:focus { outline: none !important; box-shadow: 0 0 0 3px rgba(248, 195, 1, 0.3) !important; border-radius: 4px; } /* Enhanced text animation smoothness */ .hero-slide-button .text-element { will-change: transform, opacity; backface-visibility: hidden; perspective: 1000px; transform-style: preserve-3d; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Enhanced icon animation smoothness */ .hero-slide-button .icon-layer .icon { will-change: transform, opacity; backface-visibility: hidden; perspective: 1000px; transform-style: preserve-3d; } /* Ensure smooth font rendering during animation */ .hero-slide-button .text-layer { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; transform-style: preserve-3d; } /* Icon container overflow and positioning */ .hero-slide-button .icon-layer { transform-style: preserve-3d; } /* Text visibility fixes */ .hero-slide-button .text-layer { color: #ffffff !important; } .hero-slide-button .text-element { color: #ffffff !important; font-family: 'Inter', sans-serif !important; font-size: 20px !important; font-weight: 400 !important; line-height: 28px !important; } .hero-slide-button .text-element * { color: #ffffff !important; } /* Ensure text is visible in all states */ .hero-slide-button div[style*="color: #ffffff"] { color: #ffffff !important; } /* Force text visibility in hero context */ .hero-section .hero-slide-button .text-layer, .hero-section .hero-slide-button .text-element { color: #ffffff !important; } /* Override any inherited styles that might hide text */ .hero-slide-button .text-layer div { color: #ffffff !important; opacity: 1; } .hero-slide-button .text-layer div:first-child { position: relative; opacity: 1; transform: translateY(0); } /* Ensure proper z-index for text elements */ .hero-slide-button .text-element { z-index: 10; pointer-events: none; } /* Custom transition classes for smooth animations */ .duration-400 { transition-duration: 400ms; } .ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } /* Responsive adjustments for slide button */ @media (max-width: 768px) { .hero-slide-button { gap: 8px !important; } .hero-slide-button .size-\[50px\] { width: 48px !important; height: 48px !important; } .hero-slide-button .text-layer { font-size: 18px !important; height: 24px !important; } .hero-slide-button .text-element { font-size: 18px !important; line-height: 24px !important; height: 24px !important; } } @media (max-width: 480px) { .hero-slide-button { gap: 6px !important; } .hero-slide-button .size-\[50px\] { width: 46px !important; height: 46px !important; } .hero-slide-button .text-layer { font-size: 16px !important; height: 22px !important; } .hero-slide-button .text-element { font-size: 16px !important; line-height: 22px !important; height: 22px !important; } } /* Force white text color in hero context */ .hero-content .hero-slide-button .text-element, .hero-content .hero-slide-button .text-layer { color: #ffffff !important; } /* Additional text shadow for better visibility */ .hero-slide-button .text-element { text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5) !important; font-display: swap; } /* Ensure text is always visible during animations */ .hero-slide-button .text-layer { position: relative; z-index: 10; } .hero-slide-button .text-element { display: flex !important; align-items: center !important; justify-content: flex-start !important; width: 100% !important; height: 100% !important; color: #ffffff !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5) !important; } /* Fix any potential inheritance issues */ .hero-slide-button * { color: inherit; } .hero-slide-button .text-layer * { color: #ffffff !important; } /* Hero Navigation Section */ .hero-navigation { position: absolute; bottom: 40px; left: 0; right: 0; z-index: 10; background: transparent; padding: 2rem var(--hero-margin-x); display: flex; justify-content: space-between; align-items: center; } /* Progress Container */ .hero-progress-container { display: flex; gap: 2rem; width: 70%; } .hero-progress-item { cursor: pointer; transition: all 0.3s ease; flex: 1; } .hero-progress-item:hover { transform: translateY(-2px); } /* Progress Segment (Progress Bar) */ .hero-progress-segment { height: 4px; background: rgba(255, 255, 255, 0.2); border-radius: 2px; margin-bottom: 1rem; overflow: hidden; position: relative; } .hero-progress-segment.active { background: rgba(248, 195, 1, 0.3); } .hero-progress-fill { height: 100%; background: var(--color-brand-accent); border-radius: 2px; transition: width 0.1s linear; } /* Progress Number */ .hero-progress-number { font-size: var(--font-body-lg); font-weight: var(--font-weight-h3); color: rgba(255, 255, 255, 0.7) !important; margin-bottom: 0.5rem; font-family: var(--font-family-base); transition: color 0.3s ease; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } .hero-progress-number.active { color: var(--color-brand-accent) !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); } /* Progress Text */ .hero-progress-text { font-size: var(--font-small); color: rgba(255, 255, 255, 0.8) !important; font-family: var(--font-family-base); line-height: 1.4; transition: color 0.3s ease; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } .hero-progress-text.active { color: white !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); } /* Hero Controls */ .hero-controls { display: flex; gap: 0.5rem; margin-left: 2rem; } .hero-nav-button { width: 48px; height: 48px; background: white; border: 2px solid #E5E7EB; border-radius: 0.5rem; display: flex; align-items: center; justify-content: center; color: black !important; cursor: pointer; transition: all 0.3s ease; } .hero-nav-button:hover { background: var(--color-brand-primary); border-color: var(--color-brand-primary); color: white !important; } .hero-nav-button:active { transform: none; } .hero-nav-button svg { color: inherit !important; } .hero-nav-button:disabled { background: white; border-color: #E5E7EB; color: black !important; cursor: not-allowed; opacity: 0.5; } .hero-nav-button:disabled:hover { background: white; color: black !important; } /* Hero Animations */ @keyframes hero-fade-in-up { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } /* Responsive Design for Hero Section */ @media (max-width: 1024px) { .hero-content { padding-left: 2rem; padding-right: 2rem; } .hero-navigation { padding-left: 2rem; padding-right: 2rem; } /* Responsive hero margins */ .hero-margin-x { margin-left: 2rem; margin-right: 2rem; } .hero-text-section { max-width: 900px; } .hero-title { font-size: 2.75rem; /* Smaller than 5rem for tablet */ } .hero-description { font-size: var(--font-body); max-width: 500px; } .hero-progress-container { gap: 1.5rem; width: 70%; } } @media (max-width: 768px) { .hero-section { height: 75vh; min-height: 690px; } .hero-content { padding-left: 1.5rem; padding-right: 1.5rem; } .hero-text-section { max-width: 100%; } .hero-title { font-size: 2.25rem; /* Further reduced for mobile */ margin-bottom: 1rem; } .hero-description { font-size: var(--font-body); margin-bottom: 2rem; max-width: 400px; } .hero-navigation { flex-direction: column; gap: 1.5rem; padding: 1.5rem; } /* Responsive hero margins for mobile */ .hero-margin-x { margin-left: 1.5rem; margin-right: 1.5rem; } .hero-progress-container { gap: 1rem; order: 2; width: 70%; } .hero-controls { margin-left: 0; justify-content: center; order: 1; } .hero-progress-item { text-align: center; } .hero-progress-text { font-size: 0.75rem; } } @media (max-width: 480px) { .hero-content { padding-left: 1rem; padding-right: 1rem; } .hero-text-section { max-width: 100%; } .hero-title { font-size: 1.875rem; /* Mobile optimized */ } .hero-description { max-width: 320px; } .hero-progress-container { flex-direction: column; gap: 1rem; } .hero-progress-item { display: flex; align-items: center; gap: 1rem; } .hero-progress-segment { margin-bottom: 0; flex: 1; } .hero-progress-number { margin-bottom: 0; min-width: 2rem; } .hero-progress-text { flex: 1; text-align: left; } } /* Hero CTA Button */ .hero-cta-button { display: flex; align-items: center; justify-content: center; gap: 0.25rem; height: 50px; width: 324px; background: var(--color-brand-primary); color: white; border: none; border-radius: 10px; font-family: var(--font-family-brand); font-size: var(--font-body-lg); font-weight: var(--font-weight-subhead); cursor: pointer; transition: all 0.3s ease-in-out; position: relative; overflow: hidden; } .hero-cta-button:hover { background: #030359; transform: translateY(-2px); box-shadow: 0 8px 25px rgba(4, 4, 91, 0.3); } .hero-cta-button:active { transform: translateY(-1px); } .hero-cta-icon { display: flex; align-items: center; justify-content: center; width: 50px; height: 50px; background: var(--color-brand-primary); border-radius: 10px 0 0 10px; position: absolute; left: 0; top: 0; } .hero-cta-text { flex: 1; text-align: center; margin-left: 44px; color: white; transition: all 0.3s ease-in-out; } /* Responsive Hero CTA Button */ @media (max-width: 768px) { .hero-cta-button { width: 280px; height: 48px; font-size: var(--font-body); } .hero-cta-icon { width: 48px; height: 48px; } .hero-cta-text { margin-left: 42px; } } @media (max-width: 480px) { .hero-cta-button { width: 100%; max-width: 280px; height: 46px; font-size: var(--font-small); } .hero-cta-icon { width: 46px; height: 46px; } .hero-cta-text { margin-left: 40px; } } /* === MODERN SERVICES SECTION STYLES === */ /* Services Grid Layout - Clean Reference Style */ .services-modern-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5rem 4rem; margin-top: 4rem; } /* Individual Service Item - Minimal Clean Design */ .service-item { display: flex; flex-direction: column; align-items: flex-start; padding: 0; background: none; border: none; box-shadow: none; text-align: left; } /* Service Icon Container - Blue Background Style */ .service-icon-container { margin-bottom: 1.5rem; display: flex; align-items: center; justify-content: flex-start; } /* Service Icon Background - Blue Square */ .service-icon-background { width: 3.5rem; height: 3.5rem; border-radius: 0.5rem; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; } .service-item:hover .service-icon-background { transform: translateY(-2px); filter: brightness(1.1); box-shadow: 0 4px 12px rgba(4, 4, 91, 0.2); } /* Service Icon - White Icon in Blue Square */ .service-icon { width: 1.75rem; height: 1.75rem; stroke-width: 1.5; color: white; } /* Stroke Line Below Icon */ .service-stroke-line { width: 100%; height: 1px; background-color: var(--color-brand-primary); margin-bottom: 1.5rem; border-radius: 0; transition: all 0.3s ease; } .service-item:hover .service-stroke-line { background-color: var(--color-brand-accent); } /* Service Heading - Bold & Clean */ .service-heading { font-size: var(--font-h4); font-weight: var(--font-weight-h4); line-height: var(--line-height-h4); margin-bottom: 1.5rem; color: var(--color-black); font-family: var(--font-family-base); } /* Additional Description Lines */ .service-additional-descriptions { margin-top: 0; } .service-additional-line { font-size: var(--font-small); line-height: var(--line-height-small); color: var(--color-gray-muted); font-family: var(--font-family-base); font-weight: var(--font-weight-body); margin: 0 0 0.5rem 0; max-width: 100%; } .service-additional-line:last-child { margin-bottom: 0; } /* Responsive Design for Services with Blue Icons */ @media (max-width: 1200px) { .services-modern-grid { gap: 4rem 3rem; } .service-icon-background { width: 3.25rem; height: 3.25rem; } .service-icon { width: 1.625rem; height: 1.625rem; } } @media (max-width: 1024px) { .services-modern-grid { grid-template-columns: repeat(2, 1fr); gap: 4rem 3rem; } .service-heading { font-size: var(--font-h3); margin-bottom: 1.25rem; } .service-additional-line { font-size: var(--font-small); } .service-icon-background { width: 3rem; height: 3rem; } .service-icon { width: 1.5rem; height: 1.5rem; } .service-stroke-line { width: 100%; margin-bottom: 1.25rem; } } @media (max-width: 768px) { .services-modern-grid { grid-template-columns: 1fr; gap: 3.5rem; margin-top: 3rem; } .service-icon-container { margin-bottom: 1.25rem; } .service-icon-background { width: 2.75rem; height: 2.75rem; } .service-icon { width: 1.375rem; height: 1.375rem; } .service-stroke-line { width: 100%; margin-bottom: 1.125rem; } .service-heading { font-size: var(--font-subhead); margin-bottom: 1.125rem; } .service-additional-line { font-size: 0.8rem; line-height: 1.4; } } @media (max-width: 480px) { .services-modern-grid { gap: 3rem; margin-top: 2.5rem; } .service-icon-container { margin-bottom: 1rem; } .service-icon-background { width: 2.5rem; height: 2.5rem; } .service-icon { width: 1.25rem; height: 1.25rem; } .service-stroke-line { width: 100%; height: 1px; margin-bottom: 1rem; } .service-heading { font-size: var(--font-subhead); margin-bottom: 1rem; } .service-additional-line { font-size: 0.75rem; line-height: 1.3; margin-bottom: 0.375rem; } } /* Yellow Notification Strip Styles */ .notification-strip { padding-left: 200px; padding-right: 200px; padding-top: 0.75rem; padding-bottom: 0.75rem; display: flex; align-items: center; justify-content: center; background-color: var(--color-brand-accent); gap: 1rem; position: relative; z-index: 9998; } .notification-text { font-size: var(--font-body); font-weight: var(--font-weight-subhead); color: var(--color-brand-black); font-family: var(--font-family-base); text-align: center; } .notification-button { display: flex; align-items: center; font-size: var(--font-body); font-weight: var(--font-weight-subhead); color: var(--color-brand-black); font-family: var(--font-family-base); height: auto; padding: 0.25rem 0.75rem; transition: background-color 0.3s ease; } .notification-button:hover { background-color: rgba(255, 255, 255, 0.2); } /* Responsive Yellow Strip */ @media (max-width: 1280px) { .notification-strip { padding-left: 100px; padding-right: 100px; } } @media (max-width: 1024px) { .notification-strip { padding-left: 2rem; padding-right: 2rem; gap: 0.75rem; } .notification-text { font-size: var(--font-small); } .notification-button { font-size: var(--font-small); padding: 0.25rem 0.5rem; } } @media (max-width: 768px) { .notification-strip { padding-left: 1rem; padding-right: 1rem; flex-direction: column; gap: 0.5rem; padding-top: 0.5rem; padding-bottom: 0.5rem; } .notification-text { font-size: var(--font-small); text-align: center; } .notification-button { font-size: var(--font-small); } } @media (max-width: 480px) { .notification-strip { padding-left: 0.75rem; padding-right: 0.75rem; } .notification-text { font-size: 0.8rem; } .notification-button { font-size: 0.8rem; padding: 0.2rem 0.5rem; } } /* === SERVICES CTA SECTION STYLES === */ /* Services CTA Button */ .services-cta-button { display: flex; align-items: center; justify-content: center; gap: 0.25rem; height: 50px; width: 324px; background: var(--color-brand-primary); color: white; border: none; border-radius: 10px; font-family: var(--font-family-base); font-size: var(--font-body-lg); font-weight: var(--font-weight-subhead); cursor: pointer; transition: all 0.3s ease-in-out; position: relative; overflow: hidden; margin: 0 auto; } .services-cta-button:hover { background: #030359; transform: translateY(-2px); box-shadow: 0 8px 25px rgba(4, 4, 91, 0.3); } .services-cta-button:active { transform: translateY(-1px); } .services-cta-icon { display: flex; align-items: center; justify-content: center; width: 50px; height: 50px; background: var(--color-brand-primary); border-radius: 10px 0 0 10px; position: absolute; left: 0; top: 0; } .services-cta-text { flex: 1; text-align: center; margin-left: 44px; color: white; transition: all 0.3s ease-in-out; } /* Responsive Services CTA Button */ @media (max-width: 768px) { .services-cta-button { width: 280px; height: 48px; font-size: var(--font-body); } .services-cta-icon { width: 48px; height: 48px; } .services-cta-text { margin-left: 42px; } } @media (max-width: 480px) { .services-cta-button { width: 100%; max-width: 280px; height: 46px; font-size: var(--font-small); } .services-cta-icon { width: 46px; height: 46px; } .services-cta-text { margin-left: 40px; } } /* === STATS SECTION CUSTOM STYLING === */ /* Custom font sizes for statistics numbers */ .stats-number { font-size: 3.5rem; /* Base mobile/tablet size - using token equivalent */ font-weight: var(--font-weight-h1); line-height: 1.1; color: var(--color-primary); } @media (min-width: 1024px) { .stats-number { font-size: 4.5rem; /* Desktop size - larger but reasonable */ } } /* === CONSISTENT BUTTON STYLING === */ /* Universal Button Style for Brand Consistency */ .brand-button { display: flex; align-items: center; gap: 0.5rem; padding: 1rem 2rem; border-radius: 10px; font-family: var(--font-family-base); font-size: var(--font-body-lg); font-weight: var(--font-weight-h3); transition: all 0.3s ease; white-space: nowrap; border: none; cursor: pointer; background-color: var(--color-brand-primary); color: var(--color-brand-black); box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); } .brand-button:hover { background-color: #030359; color: var(--color-brand-black); transform: translateY(-2px); box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); } .brand-button:active { transform: translateY(-1px); } /* Responsive Brand Button */ @media (max-width: 768px) { .brand-button { font-size: var(--font-body); padding: 0.875rem 1.75rem; } } @media (max-width: 480px) { .brand-button { font-size: var(--font-small); padding: 0.75rem 1.5rem; } } /* === SERVICES SECTION STYLES === */ /* Services Container */ .services-container { padding: 0; } .services-header { text-align: center; margin-bottom: 4rem; } .services-title { font-size: var(--font-h2); font-weight: var(--font-weight-h2); line-height: var(--line-height-h2); letter-spacing: var(--letter-spacing-h2); margin-bottom: 1.5rem; color: var(--color-black); font-family: var(--font-family-base); } .services-description { font-size: var(--font-body-lg); line-height: var(--line-height-body-lg); color: var(--color-black); font-family: var(--font-family-base); max-width: 800px; margin: 0 auto; } /* Services Cards Container */ .services-cards-container { position: relative; } /* Desktop: Vertical Grid Layout */ .services-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem 2rem; list-style: none; padding: 0; margin: 0; } /* Individual Service Card */ .services-card { display: flex; flex-direction: column; padding: 2rem; background: white; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 12px; transition: all 0.3s ease; cursor: pointer; text-align: center; box-shadow: var(--shadow-card-base); } .services-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); border-color: var(--color-brand-primary); } .services-card:focus { outline: 2px solid var(--color-brand-primary); outline-offset: 2px; } /* Service Card Icon */ .services-card-icon { display: flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; background-color: var(--color-brand-primary); border-radius: 12px; margin: 0 auto 1.5rem; color: white; transition: all 0.3s ease; } .services-card:hover .services-card-icon { background-color: var(--color-brand-accent); color: var(--color-brand-black); transform: scale(1.1); } /* Service Card Content */ .services-card-content { display: flex; flex-direction: column; flex: 1; } .services-card-content .h3 { font-size: var(--font-h4); font-weight: var(--font-weight-h4); line-height: var(--line-height-h4); margin-bottom: 1rem; color: var(--color-black); font-family: var(--font-family-base); } .services-card-description { font-size: var(--font-small); line-height: var(--line-height-small); color: var(--color-gray-muted); font-family: var(--font-family-base); margin-bottom: 1.5rem; flex: 1; } /* Service Card Badge */ .services-card-badge { display: inline-flex; align-items: center; padding: 0.375rem 0.75rem; background-color: rgba(248, 195, 1, 0.1); color: var(--color-brand-black); font-size: 0.75rem; font-weight: 600; border-radius: 20px; margin-top: auto; align-self: center; font-family: var(--font-family-base); } /* Mobile/Tablet: Horizontal Carousel */ .services-carousel-wrapper { position: relative; } .services-nav-controls { display: flex; gap: 0.5rem; justify-content: center; margin-bottom: 2rem; } .services-nav-btn { display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; background: white; color: black; border: 2px solid #E5E7EB; border-radius: 0.5rem; cursor: pointer; transition: all 0.3s ease; font-size: 0; } .services-nav-btn:hover { background: var(--color-brand-primary); color: white; border-color: var(--color-brand-primary); } .services-nav-btn:disabled { background: white; color: black; border-color: #E5E7EB; cursor: not-allowed; opacity: 0.5; } .services-nav-btn:disabled:hover { background: white; color: black; } .services-cards-carousel { display: flex; overflow-x: auto; scroll-behavior: smooth; gap: 1.5rem; padding: 0 1rem 1rem; scrollbar-width: none; -ms-overflow-style: none; } .services-cards-carousel::-webkit-scrollbar { display: none; } /* Mobile Service Card */ .services-card-mobile { flex: 0 0 280px; display: flex; flex-direction: column; padding: 1.5rem; background: white; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 12px; transition: all 0.3s ease; cursor: pointer; text-align: center; box-shadow: var(--shadow-card-base); } .services-card-mobile:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); border-color: var(--color-brand-primary); } .services-card-mobile:focus { outline: 2px solid var(--color-brand-primary); outline-offset: 2px; } /* Focus ring utility */ .focus-ring { transition: all 0.2s ease; } .focus-ring:focus { outline: 2px solid var(--color-brand-primary); outline-offset: 2px; } /* === ENHANCED WEBINAR NAVIGATION STYLES === */ /* Webinar navigation container */ .webinars-strip-nav-controls { position: relative; z-index: 30; display: flex; gap: 0.75rem; margin-bottom: 2rem; } /* Enhanced webinar navigation buttons */ .webinars-strip-nav-btn { position: relative; z-index: 31; display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; background-color: white; border: 2px solid #E5E7EB; border-radius: 0.5rem; cursor: pointer; transition: all 0.3s ease; font-family: var(--font-family-base); } /* Enhanced hover state */ .webinars-strip-nav-btn:not(:disabled):hover { border-color: var(--color-brand-primary); background-color: var(--color-brand-primary); color: white; } .webinars-strip-nav-btn:not(:disabled):hover svg { color: white !important; } /* Active state */ .webinars-strip-nav-btn:not(:disabled):active { transform: none; } /* Disabled state */ .webinars-strip-nav-btn:disabled { background-color: white; border-color: #E5E7EB; cursor: not-allowed; opacity: 0.5; } .webinars-strip-nav-btn:disabled:hover { background-color: white; color: black; } /* Focus state for accessibility */ .webinars-strip-nav-btn:focus { outline: none; } /* Enhanced glow effect on hover */ .webinars-strip-nav-btn::before { content: ''; position: absolute; top: -2px; left: -2px; right: -2px; bottom: -2px; background: linear-gradient(45deg, rgba(4, 4, 91, 0.1), rgba(248, 195, 1, 0.1)); border-radius: 0.75rem; z-index: -1; opacity: 0; transition: opacity 0.3s ease; } .webinars-strip-nav-btn:not(:disabled):hover::before { opacity: 1; } /* === LEADERSHIP FRAMEWORK RADIAL LAYOUT ANIMATIONS === */ /* Fade and scale in animation for framework cards */ @keyframes fade-scale-in { from { opacity: 0; transform: scale(0.95) translateY(20px); } to { opacity: 1; transform: scale(1) translateY(0); } } /* Slide in from right animation for sidebar items */ @keyframes slide-in-right { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } } /* Pulse animation for central hub */ @keyframes hub-pulse { 0%, 100% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } } /* Framework container hover effects */ .framework-radial-container:hover .central-hub { animation: hub-pulse 2s ease-in-out infinite; } /* Connection line glow animation */ @keyframes connection-glow { 0%, 100% { opacity: 0.3; filter: blur(0px); } 50% { opacity: 0.6; filter: blur(1px) brightness(1.2); } } /* Framework dimension hover state enhancements */ .framework-dimension:hover ~ .connection-lines .horizontal-line, .framework-dimension:hover ~ .connection-lines .vertical-line { animation: connection-glow 1.5s ease-in-out infinite; background: linear-gradient( 90deg, transparent, var(--color-accent), var(--color-primary), var(--color-accent), transparent ); } /* Enhanced framework card interactions */ .framework-dimension { position: relative; overflow: hidden; } .framework-dimension::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient( circle, rgba(4, 4, 91, 0.05) 0%, transparent 70% ); opacity: 0; transition: opacity 0.5s ease; pointer-events: none; z-index: 0; } .framework-dimension:hover::before { opacity: 1; } /* Ensure content stays above the pseudo-element */ .framework-dimension > * { position: relative; z-index: 1; } /* Staggered reveal animation utility */ .stagger-reveal-1 { animation-delay: 0.1s; } .stagger-reveal-2 { animation-delay: 0.2s; } .stagger-reveal-3 { animation-delay: 0.3s; } .stagger-reveal-4 { animation-delay: 0.4s; } .stagger-reveal-5 { animation-delay: 0.5s; } .stagger-reveal-6 { animation-delay: 0.6s; } /* Framework responsive enhancements */ @media (max-width: 1024px) { .framework-radial-container .connection-lines { display: none; } .framework-radial-container .central-hub { display: none; } .framework-dimension { margin-bottom: 1rem; } } @media (max-width: 768px) { .framework-radial-container { grid-template-columns: 1fr; gap: 1.5rem; } .framework-dimension .corner-accent { display: none; } } /* Enhanced sidebar connection styling */ .sidebar-connection-line { background: linear-gradient( to bottom, rgba(4, 4, 91, 0.3), rgba(248, 195, 1, 0.2), rgba(4, 4, 91, 0.3) ); filter: blur(0.5px); } /* Sidebar theme card enhancements */ .sidebar-theme-card { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .sidebar-theme-card:hover { transform: translateX(4px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } /* Connection dot pulse animation */ @keyframes dot-pulse { 0%, 100% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.2); opacity: 1; } } .connection-dot { animation: dot-pulse 3s ease-in-out infinite; } /* Enhanced CTA contrast block styling */ .framework-cta-block { background: linear-gradient( 135deg, var(--color-primary) 0%, #030359 50%, var(--color-primary) 100% ); position: relative; overflow: hidden; } .framework-cta-block::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.1), transparent ); animation: cta-shimmer 3s ease-in-out infinite; } @keyframes cta-shimmer { 0% { left: -100%; } 50%, 100% { left: 100%; } } /* Text readability improvements */ .max-w-readable { max-width: 65ch; /* Optimal reading width - 65 characters per line */ } .text-width-constrained { max-width: 2xl; } /* Enhanced article typography for blog detail pages */ .article-typography { max-width: 65ch; margin: 0 auto; } /* Blog article content specific styling */ .blog-article-content { /* Enhanced typography hierarchy */ font-family: var(--font-family-base); color: var(--color-black); line-height: 1.75; } .blog-article-content h2 { font-size: var(--font-h3); font-weight: var(--font-weight-h3); line-height: var(--line-height-h3); color: var(--color-black); margin-top: 3rem; margin-bottom: 1.5rem; border-bottom: 1px solid rgba(0, 0, 0, 0.08); padding-bottom: 0.5rem; } .blog-article-content h3 { font-size: var(--font-h4); font-weight: var(--font-weight-h4); line-height: var(--line-height-h4); color: var(--color-black); margin-top: 2.5rem; margin-bottom: 1.25rem; } .blog-article-content h4 { font-size: var(--font-subhead); font-weight: var(--font-weight-subhead); line-height: var(--line-height-subhead); color: var(--color-black); margin-top: 2rem; margin-bottom: 1rem; } .blog-article-content p { font-size: var(--font-body-lg); line-height: 1.75; color: var(--color-black); margin-bottom: 1.5rem; } .blog-article-content blockquote { border-left: 4px solid var(--color-primary); background: rgba(4, 4, 91, 0.03); padding: 1.5rem; margin: 2rem 0; border-radius: 8px; font-style: italic; color: var(--color-primary); } .blog-article-content blockquote p { color: var(--color-primary); margin-bottom: 0.75rem; } .blog-article-content blockquote cite { font-size: var(--font-body); color: var(--color-gray-muted); font-style: normal; font-weight: var(--font-weight-subhead); } .blog-article-content ul, .blog-article-content ol { margin: 1.5rem 0; padding-left: 1.5rem; } .blog-article-content li { font-size: var(--font-body-lg); line-height: 1.75; color: var(--color-black); margin-bottom: 0.75rem; } .blog-article-content li strong { color: var(--color-primary); font-weight: var(--font-weight-subhead); } .blog-article-content strong { color: var(--color-primary); font-weight: var(--font-weight-subhead); } .blog-article-content a { color: var(--color-primary); text-decoration: underline; text-decoration-color: rgba(4, 4, 91, 0.3); text-underline-offset: 3px; transition: all 0.2s ease; } .blog-article-content a:hover { color: #030359; text-decoration-color: #030359; } /* Responsive typography adjustments */ @media (max-width: 768px) { .max-w-readable { max-width: 100%; padding: 0 1rem; } .article-typography { max-width: 100%; padding: 0 1rem; } .blog-article-content h2 { font-size: var(--font-h4); margin-top: 2.5rem; margin-bottom: 1.25rem; } .blog-article-content h3 { font-size: var(--font-subhead); margin-top: 2rem; margin-bottom: 1rem; } .blog-article-content p { font-size: var(--font-body); line-height: 1.7; margin-bottom: 1.25rem; } .blog-article-content li { font-size: var(--font-body); line-height: 1.7; } .blog-article-content blockquote { padding: 1.25rem; margin: 1.5rem 0; } } @media (max-width: 480px) { .max-w-readable { padding: 0 0.75rem; } .article-typography { padding: 0 0.75rem; } .blog-article-content h2 { font-size: var(--font-subhead); margin-top: 2rem; margin-bottom: 1rem; } .blog-article-content h3 { font-size: var(--font-body-lg); margin-top: 1.75rem; margin-bottom: 0.875rem; } .blog-article-content p { font-size: var(--font-body); margin-bottom: 1rem; } .blog-article-content blockquote { padding: 1rem; margin: 1.25rem 0; } } /* Smooth scroll behavior for framework sections */ .framework-section { scroll-margin-top: 6rem; } /* Enhanced focus states for accessibility */ .framework-dimension:focus, .sidebar-theme-card:focus { outline: 2px solid var(--color-accent); outline-offset: 4px; border-radius: 1rem; } /* Performance optimizations */ .framework-radial-container, .framework-dimension, .sidebar-theme-card { will-change: transform; backface-visibility: hidden; } /* Reduced motion support */ @media (prefers-reduced-motion: reduce) { .framework-dimension, .sidebar-theme-card, .connection-dot, .central-hub { animation: none !important; transition: none !important; } .framework-dimension:hover { transform: none !important; } } /* Webinar cards area positioning */ .webinars-strip-cards-area { position: relative; z-index: 1; } .webinars-strip-cards-container { position: relative; z-index: 2; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; } .webinars-strip-fade-overlay { z-index: 5; pointer-events: none; } /* Enhanced pulse animation for better visual feedback */ @keyframes webinar-nav-pulse { 0% { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); } 50% { box-shadow: 0 4px 6px -1px rgba(4, 4, 91, 0.2), 0 2px 4px -1px rgba(4, 4, 91, 0.1); } 100% { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); } } /* Enhanced webinar carousel functionality */ .webinars-strip-cards-container { scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; } .webinars-strip-cards-container .webinar-strip-card { scroll-snap-align: start; scroll-snap-stop: always; } /* Smooth scrolling indicators */ .webinars-strip-cards-container::-webkit-scrollbar { height: 4px; background: transparent; } .webinars-strip-cards-container::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.1); border-radius: 2px; } .webinars-strip-cards-container::-webkit-scrollbar-thumb { background: var(--color-brand-primary); border-radius: 2px; opacity: 0; transition: opacity 0.3s ease; } .webinars-strip-cards-container:hover::-webkit-scrollbar-thumb { opacity: 0.6; } /* Card hover enhancements for carousel */ .webinar-strip-card { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; } .webinar-strip-card:hover { transform: translateY(-4px); box-shadow: 0 10px 25px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); } /* Navigation button feedback on click */ .webinars-strip-nav-btn:not(:disabled):active { animation: webinar-nav-click 0.15s ease-out; } @keyframes webinar-nav-click { 0% { transform: translateY(-2px) scale(1.05); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(-2px) scale(1.05); } } /* Responsive navigation adjustments */ @media (max-width: 1024px) { .webinars-strip-nav-controls { gap: 0.5rem; margin-bottom: 1.75rem; } .webinars-strip-nav-btn { width: 3rem; height: 3rem; } } @media (max-width: 768px) { .webinars-strip-nav-controls { gap: 0.5rem; margin-bottom: 1.5rem; justify-content: flex-start; } .webinars-strip-nav-btn { width: 3rem; height: 3rem; } } @media (max-width: 480px) { .webinars-strip-nav-controls { gap: 0.375rem; margin-bottom: 1.25rem; } .webinars-strip-nav-btn { width: 3rem; height: 3rem; } .webinars-strip-nav-btn svg { width: 1.25rem; height: 1.25rem; } } /* === OUR EXPERTISE PAGE SPECIFIC OVERRIDES === */ /* Increase CourseCard width specifically for OurExpertise page */ .our-expertise-page .flex-shrink-0.w-80 { width: 24rem !important; /* Increased from 20rem (w-80) to 24rem (w-96) */ } /* Alternative selector for CourseCard component override */ .our-expertise-page .course-card { width: 24rem !important; } /* Responsive width adjustments for OurExpertise course cards */ @media (max-width: 1024px) { .our-expertise-page .flex-shrink-0.w-80 { width: 22rem !important; /* Slightly smaller for tablet */ } .our-expertise-page .course-card { width: 22rem !important; } } @media (max-width: 768px) { .our-expertise-page .flex-shrink-0.w-80 { width: 20rem !important; /* Standard width for mobile */ } .our-expertise-page .course-card { width: 20rem !important; } } @media (max-width: 480px) { .our-expertise-page .flex-shrink-0.w-80 { width: 18rem !important; /* Smaller for very small screens */ } .our-expertise-page .course-card { width: 18rem !important; } } /* === COMPACT FILTER CARD STYLING === */ /* Filter Clear Button - Brand Blue */ .filter-clear-btn { color: var(--color-primary) !important; transition: all 0.2s ease; } .filter-clear-btn:hover { color: #030359 !important; background-color: rgba(4, 4, 91, 0.05) !important; } /* Filter Select Focus States - Brand Blue */ .filter-section [data-radix-select-trigger]:focus { border-color: var(--color-primary) !important; box-shadow: 0 0 0 2px rgba(4, 4, 91, 0.1) !important; } /* Compact Filter Card Styling */ .filter-section { position: relative; } /* Compact Select Trigger Styling */ .filter-section [data-radix-select-trigger] { background-color: #FAFAFA; transition: all 0.2s ease; height: 36px !important; font-size: var(--font-small) !important; border-radius: 6px; } .filter-section [data-radix-select-trigger]:hover { background-color: #F3F4F6; border-color: #9CA3AF; } .filter-section [data-radix-select-trigger]:focus { background-color: #FFFFFF; border-color: #3B82F6; box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1); } /* Compact Checkbox Styling */ .filter-section input[type="checkbox"] { position: relative; cursor: pointer; } .filter-section input[type="checkbox"]:checked { background-color: #3B82F6; border-color: #3B82F6; } .filter-section input[type="checkbox"]:hover { border-color: #3B82F6; } .filter-section input[type="checkbox"]:focus { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1); } /* Compact Filter Labels */ .filter-section label { transition: color 0.2s ease; font-size: var(--font-small) !important; font-weight: 500 !important; color: #374151 !important; } .filter-section:hover label { color: var(--color-primary); } /* Compact Filter Animation */ .filter-card-content { animation: filter-fade-in 0.3s ease-out; } @keyframes filter-fade-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } } /* Responsive Compact Filters */ @media (max-width: 1024px) { .filter-section { margin-bottom: 0.75rem; } } @media (max-width: 768px) { .filter-section input[type="checkbox"] { width: 14px; height: 14px; } .filter-section label { font-size: 0.75rem !important; } .filter-section [data-radix-select-trigger] { height: 32px !important; font-size: 0.75rem !important; } } /* === STICKY SCROLL SERVICES SECTION === */ /* Recognition cards animations */ .recognition-card { opacity: 0; transform: translateY(40px); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .recognition-card.animate-in { opacity: 1; transform: translateY(0); } /* Scroll animate stagger */ .scroll-animate-stagger { transition-delay: var(--stagger-delay, 0ms); } /* Recognition header sticky positioning */ .recognition-header { position: relative; } /* Recognition card content styling */ .recognition-card-content { flex: 1; } .recognition-card-description { margin-bottom: 0; } /* Enhanced hover effects for recognition cards */ .recognition-card:hover { transform: translateY(-2px); } .recognition-card:hover .recognition-card-content h3 { color: var(--color-brand-primary); transition: color 0.3s ease; } /* Responsive sticky scroll layout */ @media (max-width: 1024px) { .grid.grid-cols-12 { display: block; } .col-span-5 { position: relative; top: auto; margin-bottom: 3rem; } .col-span-7 { width: 100%; } .recognition-header { text-align: center; padding-right: 0; } .min-h-screen { min-height: auto; } } /* Responsive adjustments for section margins */ @media (max-width: 1024px) { .section-margin-x { margin-left: 2rem; margin-right: 2rem; } } @media (max-width: 768px) { .section-margin-x { margin-left: 1.5rem; margin-right: 1.5rem; } } @media (max-width: 768px) { .recognition-card { margin-bottom: 1rem; } .recognition-header h2 { font-size: 2.5rem !important; margin-bottom: 1.5rem; } .recognition-header p { font-size: var(--font-body) !important; } .recognition-card div:first-child { padding: 1.5rem; } .w-14.h-14 { width: 3rem; height: 3rem; } } /* === CHATBOT BUTTON STYLES === */ /* Chatbot button using brand blue */ .chatbot-button:hover { background-color: #030359 !important; /* Darker blue on hover */ box-shadow: 0 10px 40px rgba(4, 4, 91, 0.4) !important; } .chatbot-button:focus { box-shadow: 0 0 0 4px rgba(4, 4, 91, 0.3), 0 8px 32px rgba(4, 4, 91, 0.3) !important; } /* Responsive Design */ @media (max-width: 1200px) { .services-cards { grid-template-columns: repeat(2, 1fr); gap: 2.5rem 1.5rem; } .services-title { font-size: 2.5rem; } } @media (max-width: 768px) { .services-title { font-size: 2rem; margin-bottom: 1rem; } .services-description { font-size: var(--font-body); margin-bottom: 2rem; } .services-header { margin-bottom: 3rem; } .services-card-mobile { flex: 0 0 260px; padding: 1.25rem; } .services-card-icon { width: 3.5rem; height: 3.5rem; margin-bottom: 1.25rem; } .services-card-content .h3 { font-size: var(--font-subhead); margin-bottom: 0.875rem; } .services-card-description { font-size: var(--font-small); margin-bottom: 1.25rem; } } @media (max-width: 480px) { .services-title { font-size: 1.75rem; } .services-description { font-size: var(--font-small); } .services-card-mobile { flex: 0 0 240px; padding: 1rem; } .services-card-icon { width: 3rem; height: 3rem; margin-bottom: 1rem; } .services-card-content .h3 { font-size: var(--font-subhead); margin-bottom: 0.75rem; } .services-card-description { font-size: var(--font-small); margin-bottom: 1rem; } .services-nav-btn { width: 3rem; height: 3rem; } }