﻿/* ==========================================================================
   GNF International - Core Design System & Homepage Stylesheet
   ========================================================================== */

/* 1. Design System Tokens (Variables) */
:root {
  /* Fonts */
  --font-headings: 'Montserrat', sans-serif;
  --font-body: 'Poppins', sans-serif;

  /* Official Brand Colors */
  --color-growth-green-dark: #0e562d;    /* Deep Growth Green */
  --color-growth-green-light: #45a045;   /* Fresh Leaf Green */
  --color-warm-yellow: #f9b91d;          /* Warm Yellow */
  --color-abundance-orange: #f78311;     /* Abundance Orange */
  --color-white: #ffffff;                /* Pure White */

  /* Neutral Shades */
  --color-dark-text: #111e15;            /* Rich dark green-black for readability */
  --color-medium-text: #4a5a50;          /* Soft grey-green */
  --color-light-gray: #f4f7f5;           /* Clean light grey-green background */
  --color-border: #e2e8e4;

  /* Brand Tints (from the complete manual grid) */
  --tint-green-lightest: #f0f7f3;        /* 10% tint of Deep Growth Green */
  --tint-green-hover: #e2f0e7;           /* 20% tint of Deep Growth Green */
  --tint-orange-lightest: #fef5ec;       /* 10% tint of Abundance Orange */
  --tint-orange-hover: #fdecdb;          /* 20% tint of Abundance Orange */
  --tint-yellow-lightest: #fefcf3;       /* 10% tint of Warm Yellow */

  /* Design Tokens */
  --max-width: 75rem;
  --radius-sm: 0.5rem;
  --radius-md: 1rem;
  --radius-lg: 1.5rem;
  --shadow-sm: 0 0.25rem 0.75rem rgba(14, 86, 45, 0.05);
  --shadow-md: 0 0.75rem 1.875rem rgba(14, 86, 45, 0.08);
  --shadow-lg: 0 1.25rem 3rem rgba(14, 86, 45, 0.12);
  --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* 2. Global Reset & Base Styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  font-size: clamp(13px, 8px + 0.417vw, 16px);
}

body {
  font-family: var(--font-body);
  color: var(--color-dark-text);
  background-color: var(--color-white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* Layout Container */
.section-container {
  width: 100%;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: clamp(3.125rem, 5.4vw, 5rem) 1.5rem;
}

/* Typography Base styling */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-headings);
  font-weight: 700;
  line-height: 1.2;
}

p {
  font-size: 1rem;
  color: var(--color-medium-text);
  font-weight: 300;
}

/* Typography Helper Classes */
.section-subtitle {
  display: block;
  font-family: var(--font-headings);
  color: var(--color-abundance-orange);
  text-transform: uppercase;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.125rem;
  margin-bottom: 0.75rem;
}

.section-title {
  font-size: clamp(1.8rem, 3.6vw, 2.5rem);
  color: var(--color-growth-green-dark);
  margin-bottom: 0;
  font-weight: 800;
  position: relative;
}

/* Elegant brand yellow underline under titles */
.section-title::after {
  content: '';
  display: block;
  width: 3.75rem;
  height: 0.25rem;
  background-color: var(--color-warm-yellow);
  margin-top: 0.75rem;
  margin-bottom: 2rem;
  border-radius: 0.125rem;
}

.center-text .section-title::after,
.section-header-center .section-title::after {
  margin-left: auto;
  margin-right: auto;
}

.section-desc {
  font-size: clamp(0.9375rem, 1.35vw, 1.125rem);
  line-height: 1.7;
  margin-bottom: 1.875rem;
}

.center-text {
  text-align: center;
  margin-bottom: 3.125rem;
}

/* Warm Yellow Text Highlight / Marker effect */
.text-highlight-yellow {
  background: linear-gradient(120deg, rgba(249, 185, 29, 0.25) 0%, rgba(249, 185, 29, 0.25) 100%);
  padding: 0.125rem 0.5rem;
  border-radius: var(--radius-sm);
  color: var(--color-growth-green-dark);
  display: inline-block;
}

.mt-40 { margin-top: 2.5rem; }

/* 3. Utility Button Styles */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.875rem 1.75rem;
  font-family: var(--font-headings);
  font-weight: 700;
  font-size: 0.875rem;
  text-decoration: none;
  border-radius: var(--radius-sm);
  transition: var(--transition);
  cursor: pointer;
  border: none;
}

.btn-primary {
  background-color: var(--color-abundance-orange);
  color: var(--color-white);
  box-shadow: 0 0.25rem 0.875rem rgba(247, 131, 17, 0.2);
}

.btn-primary:hover {
  background-color: var(--color-warm-yellow); /* Hover changes to Warm Yellow */
  color: var(--color-growth-green-dark);
  transform: translateY(-0.125rem);
  box-shadow: 0 0.375rem 1.25rem rgba(249, 185, 29, 0.3);
}

.btn-secondary {
  background-color: var(--color-growth-green-dark);
  color: var(--color-white);
  box-shadow: 0 0.25rem 0.875rem rgba(14, 86, 45, 0.15);
}

.btn-secondary:hover {
  background-color: var(--color-warm-yellow); /* Hover changes to Warm Yellow */
  color: var(--color-growth-green-dark);
  transform: translateY(-0.125rem);
  box-shadow: 0 0.375rem 1.25rem rgba(249, 185, 29, 0.2);
}

.btn-outline {
  background-color: transparent;
  border: 0.125rem solid var(--color-growth-green-dark);
  color: var(--color-growth-green-dark);
}

.btn-outline:hover {
  background-color: var(--color-growth-green-dark);
  color: var(--color-white);
}

.btn-block {
  display: flex;
  width: 100%;
}

.btn-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-headings);
  font-weight: 700;
  color: var(--color-abundance-orange);
  text-decoration: none;
  transition: var(--transition);
}

.btn-link:hover {
  color: #df7208;
}

.btn-link i {
  transition: var(--transition);
}

.btn-link:hover i {
  transform: translateX(0.25rem);
}

/* Grid Layouts */
.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
  align-items: center;
}

.grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.grid-5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.25rem;
}

/* ==========================================================================
   Section Specific Layout & Design
   ========================================================================== */

/* 1. Header & Navigation */
.main-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background-color: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--color-border);
  transition: var(--transition);
}

.header-container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 1rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.logo-area {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
}

.logo-text {
  font-family: var(--font-headings);
  font-weight: 800;
  font-size: 1.375rem;
  color: var(--color-growth-green-dark);
  letter-spacing: -0.031rem;
}

.logo-subtext {
  font-weight: 400;
  font-size: 1rem;
  color: var(--color-medium-text);
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.nav-links a {
  text-decoration: none;
  font-family: var(--font-headings);
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--color-medium-text);
  transition: var(--transition);
  position: relative;
  padding-bottom: 0.375rem;
}

.nav-links a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 0.125rem;
  background-color: var(--color-abundance-orange);
  transition: var(--transition);
  transform: translateX(-50%);
}

.nav-links a:hover::after, .nav-links a.active::after {
  width: 100%;
}

.nav-links a:hover {
  color: var(--color-growth-green-dark);
}

.mobile-nav-toggle {
  display: none;
  background: none;
  border: none;
  font-size: 1.5rem;
  color: var(--color-growth-green-dark);
  cursor: pointer;
}

/* Mobile overlay nav */
.mobile-menu-overlay {
  position: fixed;
  top: 4.5625rem;
  left: 0;
  width: 100%;
  height: calc(100vh - 4.5625rem);
  background-color: var(--color-white);
  z-index: 99;
  display: flex;
  flex-direction: column;
  padding: 2.5rem 1.5rem;
  transform: translateX(-100%);
  transition: var(--transition);
}

.mobile-menu-overlay.active {
  transform: translateX(0);
}

.mobile-nav-links {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.mobile-nav-links a {
  text-decoration: none;
  font-family: var(--font-headings);
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--color-dark-text);
}

.mobile-nav-links .btn {
  margin-top: 1.25rem;
}

/* =====================================================
   2. HERO SECTION — Full-width, premium, definitive
   ===================================================== */
.hero-section {
  position: relative;
  width: 100%;                /* Edge to edge - full browser width */
  height: 100vh;
  min-height: 41.25rem;
  overflow: hidden;
  display: flex;
  align-items: stretch;
}

/* ── Image: absolutely covers the ENTIRE section, floor to ceiling ── */
.hero-img-panel {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  width: 100%;
  z-index: 0;
}

.hero-img-panel img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right center; /* Keep the people visible on the right */
  display: block;
  border: none;
  outline: none;
  box-shadow: none;
}

/* WIDE gradient overlay from left to right across the ENTIRE section.
   Solid white on the left content area, fading smoothly to transparent. */
.hero-img-edge-fade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to right,
    #ffffff                  0%,
    #ffffff                  44%,
    rgba(255,255,255,0.92)   54%,
    rgba(255,255,255,0.65)   64%,
    rgba(255,255,255,0.2)    76%,
    rgba(255,255,255,0)      88%
  );
  pointer-events: none;
}

/* ── Left column: transparent background, content wrapper ── */
.hero-left-col {
  position: relative;
  z-index: 2;
  width: 60%;
  max-width: 60rem;
  background: transparent; /* The white background now comes from the gradient overlay */
  display: flex;
  flex-direction: column;
  justify-content: center;
  /* Reduced left padding for a premium full-width feel */
  padding-left: max(2.5rem, 6vw);
  padding-right: 2.5rem;
  padding-top: 6rem;    /* clears the fixed navbar (72px) + breathing room */
  padding-bottom: 3.5rem;
  box-sizing: border-box;
  /* Subtle content fade-up on load */
  animation: heroContentIn 0.9s cubic-bezier(0.25, 1, 0.5, 1) both;
}

@keyframes heroContentIn {
  from { opacity: 0; transform: translateY(1.5rem); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Eyebrow ── */
.hero-eyebrow {
  display: inline-block;
  font-family: var(--font-headings);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.156rem;
  text-transform: uppercase;
  color: var(--color-abundance-orange);
  border-left: 0.1875rem solid var(--color-abundance-orange);
  padding-left: 0.625rem;
  margin-bottom: 1.125rem;
}

/* ── Heading ── */
.hero-title {
  font-family: var(--font-headings);
  font-size: clamp(1.8rem, 3.15vw, 3.375rem); /* Fluid — fills the column perfectly */
  font-weight: 800;
  color: var(--color-growth-green-dark) !important;
  line-height: 1.12;
  margin-bottom: 1.125rem;
  letter-spacing: -0.031rem;
  max-width: 42.5rem;
}

.text-highlight-orange { color: var(--color-abundance-orange); }

/* ── Description ── */
.hero-description {
  font-size: 0.906rem;
  color: var(--color-medium-text);
  line-height: 1.75;
  margin-bottom: 1.75rem;
  max-width: 36.25rem;
  font-weight: 400;
}

/* ── Buttons ── */
.hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.875rem;
  margin-bottom: 2.25rem;
}

.btn-hero-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  background: var(--color-abundance-orange);
  color: #fff;
  padding: 0.8125rem 1.625rem;
  font-family: var(--font-headings);
  font-size: 0.875rem;
  font-weight: 700;
  border-radius: 0.375rem;
  text-decoration: none;
  transition: all 0.28s ease;
  box-shadow: 0 0.375rem 1.125rem rgba(247,131,17,0.22);
  white-space: nowrap;
}
.btn-hero-primary:hover {
  background: var(--color-growth-green-dark);
  gap: 0.625rem; /* Don't change gap since arrow will animate itself */
  box-shadow: 0 0.5rem 1.5rem rgba(14,86,45,0.28);
}

.btn-hero-outline {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  background: transparent;
  color: var(--color-growth-green-dark);
  padding: 0.75rem 1.375rem;
  font-family: var(--font-headings);
  font-size: 0.875rem;
  font-weight: 700;
  border-radius: 0.375rem;
  border: 0.09375rem solid var(--color-growth-green-dark);
  text-decoration: none;
  transition: all 0.28s ease;
  white-space: nowrap;
}
.btn-hero-outline:hover {
  background: var(--color-growth-green-dark);
  color: #fff;
  gap: 0.875rem;
}

/* ── Trust Pillars ── */
.hero-pillars {
  display: flex;
  gap: 1.75rem;
  padding-top: 1.75rem;
  border-top: 0.0625rem solid var(--color-border);
}

.hero-pillar-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  flex: 1;
}

.hero-pillar-item i {
  font-size: 1.375rem;
  color: var(--color-abundance-orange);
  margin-top: 0.125rem;
  flex-shrink: 0;
}

.hero-pillar-item strong {
  display: block;
  font-family: var(--font-headings);
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--color-growth-green-dark);
  margin-bottom: 0.25rem;
}

.hero-pillar-item span {
  font-size: 0.844rem;
  color: var(--color-medium-text);
  line-height: 1.5;
}

/* ── Suppress all legacy hero class names ── */
.hero-bg, .hero-white-overlay, .hero-top-fade, .hero-tint,
.hero-grid, .hero-left, .hero-left-inner, .hero-right-empty,
.hero-img-wrapper, .hero-img-fade-left, .hero-img-fade-top,
.hero-img-tint, .hero-content-grid, .hero-bg-image, .hero-overlay,
.hero-center-content, .hero-bg-curves, .hero-right-bg,
.hero-right-accent, .hero-grid-new, .hero-content-new,
.hero-right-placeholder, .hero-right, .hero-img-left-fade,
.hero-description-sub { display: none; }

/* Trusted By Section */
.trusted-by {
  border-top: 1px solid var(--color-border);
  padding-top: 20px;
}

.trusted-by p {
  font-size: 14px;
  color: var(--color-growth-green-dark);
  margin-bottom: 16px;
}

.trusted-logos {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: center;
}

.trusted-logos-img {
  max-width: 100%;
  height: auto;
  max-height: 85px; /* Smaller so both rows fit cleanly without pushing everything down */
  mix-blend-mode: multiply; /* Removes the white background perfectly now */
  opacity: 0.95;
}

/* Right Visual & Pillars */
.hero-visual-new {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  /* No min-height so it doesn't inflate the row height */
}

/* Abstract Art */
.hero-abstract-art {
  position: relative;
  width: 100%;
  max-width: 420px;
  height: 380px; /* Shrunk to match the left column natural height */
  z-index: 2;
  margin-right: 80px; /* Space for the floating pillars */
}

.art-circle-1 {
  position: absolute;
  top: 10%;
  left: 5%;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-growth-green-light), var(--color-growth-green-dark));
  opacity: 0.85;
  mix-blend-mode: multiply;
  animation: floatAnim 6s ease-in-out infinite alternate;
}

.art-circle-2 {
  position: absolute;
  bottom: 10%;
  right: 10%;
  width: 250px;
  height: 250px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-warm-yellow), var(--color-abundance-orange));
  opacity: 0.9;
  mix-blend-mode: multiply;
  animation: floatAnim 5s ease-in-out infinite alternate-reverse;
}

.art-square {
  position: absolute;
  top: 35%;
  right: 25%;
  width: 180px;
  height: 180px;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.4);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.8);
  transform: rotate(15deg);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
  z-index: 2;
  animation: floatAnim 7s ease-in-out infinite;
}

.art-dots {
  position: absolute;
  left: -10%;
  bottom: 20%;
  width: 150px;
  height: 150px;
  background-image: radial-gradient(var(--color-growth-green-dark) 2px, transparent 2px);
  background-size: 20px 20px;
  opacity: 0.15;
  z-index: 1;
}

.hero-pillars-container {
  position: absolute;
  right: -30px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 16px;
  z-index: 3;
}

.pillar-line {
  position: absolute;
  left: 20px;
  top: 20px;
  bottom: 20px;
  width: 2px;
  border-left: 2px dashed var(--color-abundance-orange);
  z-index: -1;
  opacity: 0.5;
}

.hero-pillar {
  background-color: var(--color-white);
  border-radius: var(--radius-md); /* Premium rounded corners, not fully pill */
  padding: 16px 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.06);
  border: 1px solid var(--color-border);
  transition: transform 0.3s ease;
  cursor: pointer;
  min-width: 280px;
  position: relative;
}

/* Creating the orange dots on the dotted line */
.hero-pillar::before {
  content: '';
  position: absolute;
  left: -24px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 10px;
  background-color: var(--color-abundance-orange);
  border-radius: 50%;
  z-index: 4;
}

.hero-pillar:hover {
  transform: translateX(-10px) !important;
  border-color: var(--color-growth-green-dark);
}

.pillar-icon {
  width: 44px;
  height: 44px;
  background-color: var(--tint-green-lightest);
  color: var(--color-growth-green-dark);
  border-radius: 50%; /* Perfect circle */
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  transition: var(--transition);
  flex-shrink: 0;
}

.hero-pillar:hover .pillar-icon {
  background-color: var(--color-growth-green-dark);
  color: var(--color-white);
}

.pillar-text h4 {
  font-size: 14px;
  color: var(--color-growth-green-dark);
  margin-bottom: 2px;
  white-space: nowrap;
}

.pillar-text p {
  font-size: 11px;
  color: var(--color-medium-text);
  white-space: nowrap;
}

/* Animations */
@keyframes floatAnim {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-6px); }
  100% { transform: translateY(0px); }
}

.anim-1 { animation: floatAnim 6s ease-in-out infinite; }
.anim-2 { animation: floatAnim 7s ease-in-out infinite 0.5s; }
.anim-3 { animation: floatAnim 8s ease-in-out infinite 1s; }
.anim-4 { animation: floatAnim 6.5s ease-in-out infinite 1.5s; }
.anim-5 { animation: floatAnim 7.5s ease-in-out infinite 0.2s; }

/* 3. Sleek Authority Ribbon */
.stats-ribbon {
  background-color: var(--color-growth-green-dark);
  color: var(--color-white);
  padding: 1.875rem 1.5rem;
  border-bottom: 0.25rem solid var(--color-warm-yellow);
}

.ribbon-container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 1.5rem; /* Matches horizontal padding of .section-container for perfect alignment */
  display: flex;
  justify-content: space-between;
  align-items: stretch; /* ensures border extends full height */
  flex-wrap: wrap;
  gap: 0; /* Remove gap, we use padding now */
}

.stat-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  flex: 1;
  min-width: 12.5rem;
  padding: 0.625rem 0 0.625rem 3rem;
  border-left: 0.0625rem solid rgba(255, 255, 255, 0.15);
}

.stat-item:first-child {
  padding-left: 0;
  border-left: none;
}

.stat-number {
  font-family: var(--font-headings);
  font-size: 2.5rem;
  font-weight: 800;
  color: var(--color-warm-yellow);
  line-height: 1;
  margin-bottom: 0.25rem;
}

.stat-label {
  font-size: 0.875rem;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.85);
}

/* 4. Who We Are */
.who-we-are {
  background-color: var(--color-white);
}

.who-pillars {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.pillar-item {
  display: flex;
  gap: 1.25rem;
  padding: 1.25rem;
  background-color: var(--tint-green-lightest);
  border-radius: var(--radius-md);
  transition: var(--transition);
}

.pillar-item:hover {
  background-color: var(--tint-green-hover);
  transform: translateX(0.3125rem);
}

.pillar-icon {
  width: 3.125rem;
  height: 3.125rem;
  background-color: var(--color-warm-yellow);
  color: var(--color-growth-green-dark);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.375rem;
  flex-shrink: 0;
}

.pillar-info h3 {
  font-size: 1.125rem;
  color: var(--color-growth-green-dark);
  margin-bottom: 0.375rem;
}

.pillar-info p {
  font-size: 0.875rem;
}

/* 5. What We Do (4 Cards) */
.what-we-do {
  background-color: var(--color-growth-green-dark);
  border-top: none;
  border-bottom: none;
}

.what-we-do .section-subtitle {
  color: var(--color-warm-yellow);
}

.what-we-do .section-title {
  color: var(--color-white);
}

.what-we-do .section-title::after {
  background-color: var(--color-warm-yellow);
}

/* Core Services title inside dark section */
.what-we-do .cs-section-title {
  color: #fff;
  font-family: var(--font-headings);
  font-size: 1.625rem;
  font-weight: 800;
  text-align: center;
  margin: 0;
  position: relative;
  display: inline-block;
}

.what-we-do .cs-section-title::after {
  content: '';
  display: block;
  width: 2.5rem;
  height: 0.1875rem;
  background: var(--color-warm-yellow);
  margin: 0.625rem auto 0;
}

/* Base card styling */
.vertical-card {
  background: #ffffff;
  border-radius: 0;
  padding: 2rem 1.5rem;
  box-shadow: 0 0.625rem 1.5625rem rgba(0, 0, 0, 0.08);
  border: 0.0625rem solid #e2e8f0;
  transition: transform 0.4s cubic-bezier(0.25,1,0.5,1), box-shadow 0.4s ease;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

.vertical-card:hover {
  transform: translateY(-0.375rem);
  box-shadow: 0 1.25rem 2.8125rem rgba(0,0,0,0.18);
}

/* Hide legacy elements */
.vertical-mesh, .card-icon-orb { display: none; }

.vertical-inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.vertical-card h3 {
  font-size: 1.1875rem;
  font-family: var(--font-headings);
  font-weight: 800;
  color: var(--color-growth-green-dark);
  margin: 0;
  line-height: 1.25;
}

/* Card header: logo + title side by side */
.card-header {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  margin-bottom: 1.5rem;
}

.card-header .g-logo {
  flex-shrink: 0;
  margin-top: 0.125rem;
}

/* G Logo: dark green L-shape, orange bottom hook — same for all cards */
.vertical-card .g-logo .g-part-1 { fill: var(--color-growth-green-dark); }
.vertical-card .g-logo .g-part-2 { fill: var(--color-abundance-orange); }

/* Bullet styling */
.card-bullets {
  list-style: none;
  padding: 0;
  margin: 0 0 2rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  flex-grow: 1;
}

.card-bullets li {
  position: relative;
  padding-left: 1rem;
  font-size: 0.844rem;
  color: #4a5568;
  line-height: 1.45;
}

.card-bullets li::before {
  content: '•';
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-growth-green-dark);
  font-weight: bold;
}

/* Bottom link — green for all cards */
.card-link {
  font-family: var(--font-headings);
  font-weight: 700;
  font-size: 0.875rem;
  text-decoration: none;
  color: var(--color-growth-green-dark);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: gap 0.3s ease, opacity 0.2s ease;
  margin-top: auto;
  align-self: flex-start;
}

.vertical-card:hover .card-link {
  gap: 0.8125rem;
  opacity: 0.75;
}

/* Core Services Grid — white cards on dark green background */
.cs-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.75rem;
  max-width: 75rem;
  margin: 0 auto;
}

.cs-chip {
  background: #ffffff;
  border: none;
  border-radius: 0;
  padding: 1.125rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.875rem;
  transition: all 0.3s ease;
  cursor: default;
  box-shadow: 0 0.5rem 1.875rem rgba(0, 0, 0, 0.08);
}

.cs-chip:hover {
  transform: translateY(-0.25rem);
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.12);
}

/* Icon circle */
.cs-icon-wrap {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: var(--color-warm-yellow);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.3s ease;
}

.cs-chip:hover .cs-icon-wrap {
  background: var(--color-growth-green-dark);
}

.cs-icon-wrap i {
  font-size: 1.125rem;
  color: var(--color-growth-green-dark);
  transition: color 0.3s ease;
}

.cs-chip:hover .cs-icon-wrap i {
  color: #fff;
}

.cs-chip span {
  font-family: var(--font-headings);
  font-weight: 700;
  font-size: 0.8125rem;
  color: var(--color-growth-green-dark);
  line-height: 1.35;
}

@media (max-width: 1024px) {
  .cs-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .cs-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .cs-grid { grid-template-columns: 1fr; }
}

/* 6. Core Services Grid */
.core-services {
  background-color: var(--color-white);
}

.services-chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-top: 2.5rem;
}

.service-chip {
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  padding: 0.875rem 1.75rem;
  border-radius: 3.125rem;
  font-family: var(--font-headings);
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--color-growth-green-dark);
  display: flex;
  align-items: center;
  gap: 0.625rem;
  transition: var(--transition);
  cursor: pointer;
  box-shadow: var(--shadow-sm);
}

.service-chip:hover {
  background-color: var(--tint-green-lightest);
  border-color: var(--color-growth-green-light);
  transform: translateY(-0.125rem);
}

.service-chip i {
  color: var(--color-growth-green-light);
}

/* 7b. Corporate Training Programmes — Uniform Premium Design */
.corporate-training {
  background: var(--color-white);
  border-top: 1px solid var(--color-border);
}

.training-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.875rem;
  max-width: 68.75rem;
  margin: 0 auto;
}

/* --- Staggered Fade-Up Animation --- */
@keyframes tp-fade-up {
  from {
    opacity: 0;
    transform: translateY(2rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.tp-anim {
  opacity: 0;
  animation: tp-fade-up 0.6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  animation-delay: var(--anim-delay, 0s);
}

/* --- Uniform Card --- */
.training-pillar {
  background: var(--color-white);
  border: 1px solid #e2e8e4;
  padding: 3rem 2.25rem;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 0.5rem 1.875rem rgba(0, 0, 0, 0.08);
}

.training-pillar:hover {
  transform: translateY(-0.5rem);
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.12);
  border-color: var(--color-growth-green-dark);
}

/* --- Icon --- */
.tp-icon-wrap {
  width: 4rem;
  height: 4rem;
  background: rgba(234, 112, 28, 0.1); /* Faded orange */
  color: var(--color-abundance-orange);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.625rem;
  margin-bottom: 1.5rem;
  transition: all 0.4s ease;
}

.training-pillar:hover .tp-icon-wrap {
  background: var(--color-abundance-orange);
  color: var(--color-white);
}

/* --- Heading --- */
.tp-heading {
  font-family: var(--font-headings);
  font-size: 1.375rem;
  font-weight: 800;
  color: var(--color-growth-green-dark);
  margin: 0 0 1rem 0;
}

.tp-divider {
  width: 2.5rem;
  height: 0.1875rem;
  background: var(--color-abundance-orange);
  margin-bottom: 1.5rem;
  transition: width 0.4s ease;
}

.training-pillar:hover .tp-divider {
  width: 3.75rem;
}

/* --- List --- */
.training-list {
  list-style: none;
  padding: 0;
  margin: 0 0 2.25rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  flex-grow: 1;
}

.training-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-family: var(--font-body);
  font-size: 0.9375rem;
  color: var(--color-dark-text);
  line-height: 1.5;
}

.training-list li i {
  color: var(--color-growth-green-light);
  font-size: 0.875rem;
  margin-top: 0.25rem;
}

.training-list li.tp-more {
  color: var(--color-medium-text);
  font-style: italic;
}

.training-list li.tp-more i {
  display: none;
}

/* --- CTA button --- */
.btn-tp {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.5rem;
  border: 1px solid var(--color-abundance-orange);
  background: var(--color-abundance-orange);
  color: var(--color-white);
  font-family: var(--font-headings);
  font-weight: 700;
  font-size: 0.875rem;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.0625rem;
  transition: all 0.3s ease;
}

.training-pillar:hover .btn-tp {
  background: #d46317; /* Darker orange on hover */
  border-color: #d46317;
  color: var(--color-white);
}

.btn-tp i {
  transition: transform 0.3s ease;
}

.training-pillar:hover .btn-tp i {
  transform: translateX(0.3125rem);
}

/* Bottom CTA Bar */
.training-cta-bar {
  margin-top: 3rem;
  background: var(--color-growth-green-dark);
  padding: 1.75rem 2.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.training-cta-bar p {
  font-family: var(--font-headings);
  font-weight: 700;
  font-size: 1rem;
  color: var(--color-white);
  margin: 0;
}

@media (max-width: 1440px) {
  .training-pillars { gap: 1.25rem; }
  .training-pillar { padding: 1.75rem 1.375rem 1.5rem; }
  .tp-heading { font-size: 1.125rem; }
}



/* 7. Signature Programs — Magazine Showcase Layout */
.signature-programs {
  background: var(--color-growth-green-dark); /* Brand deep green, not black */
  border-top: none;
  border-bottom: none;
  padding-block: 3.75rem; /* Tighter section padding */
}

.signature-programs .section-subtitle {
  color: var(--color-warm-yellow);
}

.signature-programs .section-title {
  color: var(--color-white);
}

.signature-programs .section-title::after {
  background-color: var(--color-warm-yellow);
}

.signature-programs .section-lead {
  color: rgba(255,255,255,0.65);
  font-size: 0.9375rem;
  margin-top: 0.625rem;
  max-width: 30rem;
  margin-inline: auto;
}

/* Outer showcase wrapper: big left + right 2x2 */
.prog-showcase {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-top: 2.25rem;
  align-items: stretch;
}

/* ─── HERO CARD (left) ─── */
.prog-hero-card {
  background: linear-gradient(145deg, #ffffff, #fffdf2); /* Crisp white to 5% warm yellow */
  border-radius: 1.375rem;
  padding: 2rem 1.875rem;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 28.75rem; /* Compressed from 560px */
  transition: transform 0.4s cubic-bezier(0.25,1,0.5,1), box-shadow 0.4s ease;
  box-shadow: 0 1.25rem 3.125rem rgba(0,0,0,0.3);
  cursor: pointer;
  border: 1px solid rgba(255,255,255,0.08);
}

.prog-hero-card:hover {
  transform: translateY(-0.3125rem);
  box-shadow: 0 1.875rem 4.375rem rgba(0,0,0,0.4);
}

/* Ambient glow bubble — now warm yellow brand tone */
.prog-glow {
  position: absolute;
  top: -2.5rem;
  right: -2.5rem;
  width: 13.75rem;
  height: 13.75rem;
  background: radial-gradient(circle, rgba(249,185,29,0.25) 0%, transparent 70%);
  pointer-events: none;
  animation: glowFloatAnim 5s ease-in-out infinite;
}

/* Diagonal mesh texture lines */
.prog-mesh {
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    -45deg,
    rgba(255,255,255,0.025) 0px,
    rgba(255,255,255,0.025) 1px,
    transparent 1px,
    transparent 1.25rem
  );
  pointer-events: none;
}

.prog-inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 0.625rem; /* Tighter gap */
}

.prog-most-popular {
  background: var(--color-abundance-orange);
  color: #fff;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.0625rem;
  text-transform: uppercase;
  padding: 0.25rem 0.75rem;
  border-radius: 3.125rem;
  width: fit-content;
  animation: pulseGlow 2s infinite;
}

.prog-icon-orb {
  width: 3.125rem; /* Smaller */
  height: 3.125rem;
  background: rgba(14, 86, 45, 0.1);
  border: 1px solid rgba(14, 86, 45, 0.2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  color: var(--color-growth-green-dark);
  margin-top: 0.25rem;
}

.prog-tag {
  font-size: 0.625rem;
  font-weight: 600;
  color: var(--color-medium-text);
  text-transform: uppercase;
  letter-spacing: 0.094rem;
}

.prog-title {
  font-family: var(--font-headings);
  font-size: 2rem; /* Reduced from 40px */
  font-weight: 900;
  color: var(--color-growth-green-dark);
  line-height: 1.1;
  letter-spacing: -0.031rem;
}

.prog-facilitator-hero {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--color-growth-green-dark);
  text-transform: uppercase;
  letter-spacing: 0.031rem;
}

.prog-desc-hero {
  font-size: 0.8125rem; /* Reduced */
  color: var(--color-dark-text);
  line-height: 1.6;
  max-width: 22.5rem;
}

/* Stats row */
.prog-stats {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 0.125rem;
  padding: 0.75rem 1rem; /* Tighter */
  background: rgba(14, 86, 45, 0.05);
  border-radius: 0.75rem;
  border: 1px solid rgba(14, 86, 45, 0.1);
  backdrop-filter: blur(0.375rem);
}

.prog-stat {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}

.prog-stat span {
  font-family: var(--font-headings);
  font-size: 1rem; /* Reduced */
  font-weight: 800;
  color: var(--color-abundance-orange);
  line-height: 1;
}

.prog-stat small {
  font-size: 0.5625rem;
  color: var(--color-medium-text);
  text-transform: uppercase;
  letter-spacing: 0.031rem;
}

.prog-stat-divider {
  width: 1px;
  height: 1.625rem;
  background: rgba(14, 86, 45, 0.15);
}

.prog-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--color-growth-green-dark);
  color: #fff;
  font-family: var(--font-headings);
  font-size: 0.8125rem;
  font-weight: 700;
  text-decoration: none;
  padding: 0.6875rem 1.375rem;
  border-radius: 3.125rem;
  width: fit-content;
  transition: background 0.25s, gap 0.25s, color 0.25s;
  margin-top: 0.125rem;
}

.prog-cta:hover {
  background: var(--color-abundance-orange);
  color: #fff;
  gap: 0.875rem;
}

/* ─── RIGHT 2x2 GRID ─── */
.prog-grid-right {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.125rem;
}

/* Mini cards — now using brand palette */
.prog-mini-card {
  background: var(--color-white);
  border-radius: 1.125rem;
  position: relative;
  overflow: hidden;
  padding: 1.375rem 1.25rem; /* Tighter */
  display: flex;
  flex-direction: column;
  transition: transform 0.35s cubic-bezier(0.25,1,0.5,1), box-shadow 0.35s ease;
  cursor: pointer;
  min-height: 0; /* Let the grid define height naturally */
  border: 1px solid var(--color-border);
  box-shadow: 0 0.5rem 1.875rem rgba(0, 0, 0, 0.08);
}

.prog-mini-card:hover {
  transform: translateY(-0.3125rem) scale(1.01);
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.12);
}

.prog-mini-mesh {
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    -45deg,
    rgba(0,0,0,0.02) 0px,
    rgba(0,0,0,0.02) 1px,
    transparent 1px,
    transparent 1rem
  );
  pointer-events: none;
}

.prog-mini-inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  flex: 1;
}

.prog-mini-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.125rem;
}

.prog-mini-orb {
  width: 2.25rem; /* Smaller */
  height: 2.25rem;
  background: rgba(14, 86, 45, 0.1);
  border: 1px solid rgba(14, 86, 45, 0.2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9375rem;
  color: var(--color-growth-green-dark);
}

.prog-mini-tag {
  font-size: 0.5625rem;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.0625rem;
  background: var(--color-growth-green-dark);
  padding: 0.1875rem 0.5rem;
  border-radius: 3.125rem;
}

.prog-mini-title {
  font-family: var(--font-headings);
  font-size: 0.9375rem; /* Reduced */
  font-weight: 800;
  color: var(--color-abundance-orange);
  line-height: 1.2;
  margin-top: 0.125rem;
}

.prog-mini-by {
  font-size: 0.625rem;
  color: var(--color-medium-text);
  text-transform: uppercase;
  letter-spacing: 0.031rem;
  font-weight: 600;
}

.prog-mini-desc {
  font-size: 0.75rem;
  color: var(--color-dark-text);
  line-height: 1.5;
  flex-grow: 1;
}

.prog-mini-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--color-abundance-orange);
  text-decoration: none;
  margin-top: auto;
  padding-top: 0.625rem;
  border-top: 1px solid var(--color-border);
  transition: gap 0.2s ease, color 0.2s ease;
}

.prog-mini-cta:hover {
  color: var(--color-abundance-orange);
  gap: 0.625rem;
}


.signature-programs .section-subtitle {
  color: var(--color-warm-yellow);
}



/* 8. Leadership Spotlight */
.leadership-spotlight {
  background-color: var(--color-white);
}

.profile-card {
  background-color: var(--color-white);
  border-radius: var(--radius-md);
  padding: 2.5rem;
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
  transition: var(--transition);
}

.profile-card:hover {
  box-shadow: var(--shadow-md);
  border-color: var(--color-growth-green-light);
}

.profile-header {
  display: flex;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
  align-items: center;
}

.profile-avatar-placeholder {
  width: 5rem;
  height: 5rem;
  background-color: var(--tint-green-lightest);
  color: var(--color-growth-green-dark);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  flex-shrink: 0;
  border: 0.125rem solid var(--color-border);
}

.profile-meta h3 {
  font-size: 1.375rem;
  color: var(--color-growth-green-dark);
  margin-bottom: 0.25rem;
}

.profile-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-abundance-orange);
  margin-bottom: 0.25rem;
}

.profile-tags {
  font-size: 0.75rem;
  color: var(--color-medium-text);
  font-weight: 500;
}

.profile-body p {
  font-size: 0.9375rem;
  margin-bottom: 1.5rem;
  line-height: 1.6;
}

/* 9. Sector Exposure */
.sector-exposure {
  background-color: var(--color-growth-green-dark);
  border-top: none;
  border-bottom: none;
}

.sector-exposure .section-subtitle {
  color: var(--color-warm-yellow);
}

.sector-exposure .section-title {
  color: var(--color-white);
}

.sector-exposure .section-title::after {
  background-color: var(--color-warm-yellow);
}

.sectors-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-top: 2.5rem;
}

.sector-item {
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  padding: 1.25rem;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  gap: 1rem;
  transition: var(--transition);
  box-shadow: 0 0.625rem 1.875rem rgba(0, 0, 0, 0.15);
}

.sector-item:hover {
  transform: translateY(-0.3125rem);
  background-color: var(--color-white);
  border-color: var(--color-abundance-orange);
  box-shadow: 0 0.9375rem 2.5rem rgba(247, 131, 17, 0.2);
}

.sector-item i {
  font-size: 1.5rem;
  color: var(--color-abundance-orange);
  width: 2rem;
  text-align: center;
  transition: var(--transition);
}

.sector-item:hover i {
  transform: scale(1.2);
  color: var(--color-growth-green-dark);
}

.sector-item span {
  font-family: var(--font-headings);
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--color-growth-green-dark);
}

/* 10. Contact Section */
.contact-section {
  background-color: var(--color-white);
}

.contact-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.contact-desc {
  font-size: 1rem;
  margin-bottom: 1.875rem;
}

.contact-details {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.contact-detail-item {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.contact-detail-item i {
  width: 2.8125rem;
  height: 2.8125rem;
  background-color: var(--tint-orange-lightest);
  color: var(--color-abundance-orange);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.125rem;
  flex-shrink: 0;
}

.contact-detail-item strong {
  display: block;
  font-size: 0.875rem;
  color: var(--color-dark-text);
  font-family: var(--font-headings);
}

.contact-detail-item p {
  font-size: 0.875rem;
  color: var(--color-medium-text);
}

/* Consultation Form styling */
.contact-form-container {
  background-color: var(--tint-green-lightest);
  border-radius: var(--radius-md);
  padding: 2.5rem;
  border: 1px solid var(--color-border);
}

.consultation-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.form-group label {
  font-family: var(--font-headings);
  font-weight: 700;
  font-size: 0.8125rem;
  color: var(--color-growth-green-dark);
}

.form-group input,
.form-group select,
.form-group textarea {
  padding: 0.75rem 1rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: var(--color-dark-text);
  background-color: var(--color-white);
  transition: var(--transition);
  outline: none;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--color-growth-green-light);
  box-shadow: 0 0 0 0.1875rem rgba(69, 160, 69, 0.15);
}

/* 11. Footer */
.main-footer {
  background: linear-gradient(135deg, #052c1c, #0e562d);
  color: var(--color-white);
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-container {
  max-width: var(--max-width);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 40px;
}

.footer-brand .logo-area {
  margin-bottom: 16px;
}

.footer-brand .logo-text {
  color: var(--color-white);
}

.footer-tagline {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 24px;
}

.copyright {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
}

.footer-links h4 {
  font-size: 16px;
  color: var(--color-warm-yellow);
  margin-bottom: 20px;
}

.footer-links ul {
  list-style: none;
}

.footer-links li {
  margin-bottom: 12px;
}

.footer-links a {
  text-decoration: none;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.85);
  transition: var(--transition);
}

.footer-links a:hover {
  color: var(--color-warm-yellow);
  padding-left: 4px;
}

.social-icons {
  display: flex;
  gap: 16px;
}

.social-icons a {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-sm);
  background-color: rgba(255, 255, 255, 0.08);
  color: var(--color-white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  transition: var(--transition);
}

.social-icons a:hover {
  background-color: var(--color-abundance-orange);
  color: var(--color-white);
  transform: translateY(-3px);
}

/* ==========================================================================
   Responsive Media Queries
   ========================================================================== */

@media (max-width: 1024px) {
  .hero-title {
    font-size: 44px;
  }
  .grid-4 {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
  .grid-5 {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .section-container {
    padding: 60px 20px;
  }
  .hero-grid {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 30px;
  }
  .hero-title {
    font-size: 36px;
  }
  .hero-actions {
    justify-content: center;
  }
  .grid-2 {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .grid-5 {
    grid-template-columns: repeat(2, 1fr);
  }
  .sectors-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .footer-container {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .nav-links, .header-cta {
    display: none;
  }
  .mobile-nav-toggle {
    display: block;
  }
  .stat-divider {
    display: none;
  }
  .stat-item {
    align-items: center;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .grid-4, .grid-5, .sectors-grid {
    grid-template-columns: 1fr;
  }
  .hero-actions {
    flex-direction: column;
    gap: 12px;
  }
  .btn {
    width: 100%;
  }
  .contact-form-container {
    padding: 24px 16px;
  }
}

/* ==========================================================================
   4. Scroll Reveal Animations (Professional, Stripe-like entry)
   ========================================================================== */
.reveal-hidden {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.8s cubic-bezier(0.25, 1, 0.5, 1), transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: opacity, transform;
}

.reveal-active {
  opacity: 1;
  transform: translateY(0);
}

@keyframes glowFloatAnim {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-20px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}

@keyframes pulseGlow {
  0% { box-shadow: 0 0 0 0 rgba(249, 185, 29, 0.4); }
  70% { box-shadow: 0 0 0 10px rgba(249, 185, 29, 0); }
  100% { box-shadow: 0 0 0 0 rgba(249, 185, 29, 0); }
}

/* --- EXACT DESIGN OVERRIDES (G-LOGO CARDS) --- */

/* Make all cards pristine white with subtle borders */
.vertical-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08) !important;
  padding: 32px 24px !important;
  justify-content: flex-start !important;
}

/* Card hover lift */
.vertical-card:hover {
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12) !important;
  transform: translateY(-5px) !important;
}

.card-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
  height: 60px; /* Fixed height forces all lists to start at the exact same line */
}

.g-logo {
  flex-shrink: 0;
}

.card-header h3 {
  font-size: 19px !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  text-align: left;
  font-weight: 800 !important;
}

.card-bullets {
  list-style: none;
  padding: 0;
  margin: 0 0 24px 0;
  flex-grow: 1; /* Allows the list container to expand, pushing the button down */
}

.card-bullets li {
  position: relative;
  padding-left: 14px;
  margin-bottom: 8px; /* Reduced to shorten card height */
  font-size: 13.5px;
  color: #4a5568;
  line-height: 1.3;
  text-align: left;
}

.card-bullets li::before {
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  color: inherit;
  font-weight: bold;
}

.card-link {
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  display: flex;
  width: 100%;
  border-top: 1px solid rgba(10, 79, 45, 0.15); /* Faded green line */
  padding-top: 24px;
  margin-top: auto; /* Pushes the button to the bottom */
  align-items: center;
  gap: 6px;
  transition: all 0.3s ease;
}

.card-link:hover {
  color: var(--color-abundance-orange) !important;
  border-top-color: rgba(234, 112, 28, 0.3);
}

/* --- Unified Card Styling --- */

.vertical-card h3 { color: #0a4f2d !important; }

/* The "G" Logo matching the new reference */
.vertical-card .g-part-1 { fill: #0a4f2d; } /* Dark Green for the main L-shape */
.vertical-card .g-part-2 { fill: #ea701c; } /* Orange for the bottom hook */

.vertical-card .card-bullets li::before { color: #0a4f2d; }
.vertical-card .card-link { color: #0a4f2d; }

/* --- 6. Industries We Transform (Corporate Layout) --- */
.industries-section {
  padding: 80px 0;
  background-color: #f8fafc !important; /* Extremely subtle grey for premium corporate feel */
}

.industry-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
}

.industry-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px; /* Sharper, more corporate corners */
  padding: 24px 20px;
  text-align: left;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.industry-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
}

/* Subtle left border accent for hover */
.industry-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background-color: transparent;
  transition: background-color 0.3s ease;
}

.industry-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 15px 30px rgba(0,0,0,0.06);
  border-color: #cbd5e1;
}

.industry-icon {
  width: 40px;
  height: 40px;
  background: transparent !important; /* Removing the startup-style pastel circles */
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  transition: transform 0.3s ease;
  flex-shrink: 0;
}

.industry-card:hover .industry-icon {
  transform: scale(1.1);
}

.industry-card h4 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: #1e293b;
  transition: color 0.3s ease;
}

/* Specific Hover Effects Using the Brand Palette */
.industry-card:nth-child(4n+1):hover::before { background-color: var(--color-growth-green-dark); }
.industry-card:nth-child(4n+1):hover h4 { color: var(--color-growth-green-dark); }

.industry-card:nth-child(4n+2):hover::before { background-color: var(--color-abundance-orange); }
.industry-card:nth-child(4n+2):hover h4 { color: var(--color-abundance-orange); }

.industry-card:nth-child(4n+3):hover::before { background-color: #4aa34a; }
.industry-card:nth-child(4n+3):hover h4 { color: #4aa34a; }

.industry-card:nth-child(4n+4):hover::before { background-color: var(--color-warm-yellow); }
.industry-card:nth-child(4n+4):hover h4 { color: var(--color-warm-yellow); }

/* --- MEGA MENU --- */
.nav-item-dropdown {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  cursor: pointer;
}

.nav-dropdown-trigger {
  display: flex;
  align-items: center;
}

/* Invisible bridge so the mouse doesn't fall off when moving to the menu */
.nav-item-dropdown::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 30px;
}

.mega-menu {
  position: absolute;
  top: calc(100% + 20px);
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  width: 1200px;
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 20px 50px rgba(0,0,0,0.15);
  padding: 32px;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  border: 1px solid #e2e8f0;
  z-index: 1000;
  pointer-events: none;
  cursor: default;
}

.nav-item-dropdown:hover .mega-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

.mega-menu-inner {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 30px;
}

.mega-col {
  display: flex;
  flex-direction: column;
}

.mega-col-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 2px solid #f1f5f9;
}

.mega-icon-box {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}

.mega-col h4 {
  font-family: var(--font-headings);
  font-size: 16px;
  font-weight: 800;
  color: var(--color-growth-green-dark);
  margin: 0;
  line-height: 1.2;
}

.mega-col ul {
  list-style: none;
  padding: 0;
  margin: 0 0 24px 0; /* Ensures there is ALWAYS a gap before the explore button */
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex-grow: 1;
}

.mega-col ul li a {
  color: var(--color-dark-text);
  font-size: 14px;
  font-weight: 400 !important;
  text-decoration: none;
  transition: color 0.2s ease;
  display: block;
}

.mega-col ul li a:hover {
  color: var(--color-abundance-orange);
}

.mega-explore {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--color-abundance-orange);
  background: rgba(234, 112, 28, 0.15); /* 15% visible orange bg */
  text-decoration: none;
  margin-top: auto; /* Push to bottom */
  padding: 12px; /* Equal padding from all directions */
  border-radius: 8px;
  transition: all 0.2s ease;
}

.mega-explore:hover {
  gap: 12px;
  background: rgba(234, 112, 28, 0.25);
}

/* --- Subtle 'Click Me' Nudge Animation for Explore Buttons --- */
@keyframes nudge-right {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(5px); }
}

.mega-explore i,
.prog-mini-cta i,
.btn-link i {
  animation: nudge-right 1.5s ease-in-out infinite;
  position: relative;
  top: 1px; /* Fixes the optical baseline alignment so the arrow sits perfectly centered with the text */
}

/* --- Sector Item Hover Overlay --- */
.sector-item {
  position: relative;
  overflow: hidden;
  display: block;
}

.sector-front {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  height: 100%;
  transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.4s ease;
}

.sector-tooltip {
  position: absolute;
  inset: 0;
  background: var(--color-growth-green-dark);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  text-align: center;
  opacity: 0;
  transform: translateY(100%);
  transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.4s ease;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  border-radius: inherit;
}

.sector-item:hover .sector-front {
  transform: translateY(-100%);
  opacity: 0;
}

.sector-item:hover .sector-tooltip {
  transform: translateY(0);
  opacity: 1;
}

/* --- Industry Card Hover Overlay --- */
.industry-card {
  position: relative;
  overflow: hidden;
  display: block; /* Override original flex so front container handles it */
}

.industry-front {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  height: 100%;
  transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.4s ease;
}

.industry-tooltip {
  position: absolute;
  inset: 0;
  background: var(--color-growth-green-dark);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 20px;
  text-align: center;
  opacity: 0;
  transform: translateY(100%);
  transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.4s ease;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  border-radius: inherit;
}

.industry-card:hover .industry-front {
  transform: translateY(-100%);
  opacity: 0;
}

.industry-card:hover .industry-tooltip {
  transform: translateY(0);
  opacity: 1;
}

/* --- GLOBAL SQUARE CORNERS OVERRIDE --- */
:root {
  --radius-sm: 0px !important;
  --radius-md: 0px !important;
  --radius-lg: 0px !important;
}

.industry-card,
.sector-item,
.sector-tooltip,
.industry-tooltip,
.vertical-card,
.prog-hero-card,
.prog-mini-card,
.profile-card,
.service-chip,
.contact-form-container,
.mega-menu,
.mega-icon-box,
.nav-item-dropdown > div {
  border-radius: 0 !important;
}

/* --- LAPTOP RESPONSIVE OPTIMIZATIONS --- */
@media (max-width: 1440px) {
  .vertical-card {
    padding: 24px 18px !important;
  }
  .industry-card {
    padding: 18px 14px;
  }
  .grid-2 { gap: 32px; }
  .grid-4 { gap: 16px; }
  .grid-5 { gap: 12px; }
  .industry-grid { gap: 12px; }
  
  .prog-hero-card {
    padding: 24px;
    min-height: 400px;
  }
  .prog-mini-card {
    padding: 18px 16px;
  }
  
  .sector-tooltip, .industry-tooltip {
    padding: 16px 12px;
  }
}

/* ===== NEW PREMIUM FOOTER ===== */
.main-footer {
  font-family: var(--font-body);
}

/* Top Banner */
.footer-cta-banner {
  background: linear-gradient(135deg, #052c1c, #0e562d);
}

.footer-cta-inner {
  display: flex;
  align-items: center;
  gap: 40px;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 40px 48px;
}

/* Brand + Social */
.footer-cta-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  min-width: 190px;
  flex-shrink: 0;
}

.footer-logo-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
}

.footer-brand-text {
  display: flex;
  flex-direction: column;
}

.footer-brand-name {
  font-family: var(--font-headings);
  font-size: 22px;
  font-weight: 900;
  color: #fff;
  letter-spacing: 1px;
  line-height: 1;
}

.footer-brand-sub {
  font-size: 11px;
  color: rgba(255,255,255,0.65);
  line-height: 1.4;
  margin-top: 4px;
}

.footer-socials {
  display: flex;
  gap: 10px;
}

.footer-socials a {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  text-decoration: none;
  transition: all 0.3s ease;
}

.footer-socials a:hover {
  background: var(--color-abundance-orange);
  border-color: var(--color-abundance-orange);
}

/* Vertical Divider */
.footer-cta-divider {
  width: 1px;
  height: 100px;
  background: rgba(255,255,255,0.15);
  flex-shrink: 0;
}

/* Center Text */
.footer-cta-content {
  flex: 1;
}

.footer-cta-content h3 {
  font-family: var(--font-headings);
  font-size: 24px;
  font-weight: 800;
  color: #fff;
  margin: 0 0 10px 0;
  line-height: 1.3;
}

.footer-cta-content p {
  font-size: 13.5px;
  color: rgba(255,255,255,0.65);
  line-height: 1.6;
  margin: 0;
}

/* CTA Buttons */
.footer-cta-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex-shrink: 0;
}

.btn-footer-primary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  background: var(--color-abundance-orange);
  color: #fff;
  font-family: var(--font-headings);
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
  border-radius: 0;
  transition: all 0.3s ease;
  white-space: nowrap;
}

.btn-footer-primary:hover {
  background: #d45f0e;
  gap: 14px;
}

.btn-footer-ghost {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 28px;
  background: rgba(0, 0, 0, 0.35); /* darker green/black */
  color: #fff;
  border: 1px solid rgba(255,255,255,0.15);
  font-family: var(--font-headings);
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
  border-radius: 0;
  transition: all 0.3s ease;
  white-space: nowrap;
}

.btn-footer-ghost:hover {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.6);
}

/* Bottom Tagline Strip */
.footer-bottom-strip {
  background: rgba(0,0,0,0.25);
  text-align: center;
  padding: 12px;
  border-top: 1px solid rgba(255,255,255,0.1);
}

.footer-bottom-strip p {
  color: rgba(255,255,255,0.55);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin: 0;
}

.footer-bottom-strip p.copyright {
  margin-top: 6px;
  font-size: 11px;
  letter-spacing: 0.5px;
  text-transform: none;
  font-weight: 400;
  color: rgba(255,255,255,0.4);
}

/* ===== SERVICE CHECKBOXES ===== */
.service-checkboxes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 8px;
}

.svc-check {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  padding: 10px 14px;
  border: 1px solid var(--color-border);
  background: var(--color-white);
  transition: all 0.25s ease;
  font-size: 13.5px;
  color: var(--color-dark-text);
  font-family: var(--font-body);
  user-select: none;
}

.svc-check:hover {
  border-color: var(--color-growth-green-dark);
  background: var(--tint-green-lightest);
}

.svc-check input[type="checkbox"] {
  display: none; /* Hide native checkbox */
}

.svc-box {
  width: 20px;
  height: 20px;
  border: 2px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.2s ease;
  background: white;
}

.svc-box i {
  font-size: 10px;
  color: #fff;
  opacity: 0;
  transition: opacity 0.15s ease;
}

/* Checked state */
.svc-check input[type="checkbox"]:checked ~ .svc-box {
  background: var(--color-growth-green-dark);
  border-color: var(--color-growth-green-dark);
}

.svc-check input[type="checkbox"]:checked ~ .svc-box i {
  opacity: 1;
}

/* ==========================================================================
   9. Why Partner With GNF? — Premium Green & Yellow Section
   ========================================================================== */
.why-partner {
  padding: 90px 0;
  background: linear-gradient(135deg, #052c18 0%, #0a4f2d 100%);
  border-top: none;
  border-bottom: none;
  position: relative;
  overflow: hidden;
}

/* Diagonal mesh texture for depth */
.why-partner::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    -45deg,
    rgba(255,255,255,0.02) 0px,
    rgba(255,255,255,0.02) 1px,
    transparent 1px,
    transparent 20px
  );
  pointer-events: none;
}

/* Override section title for dark section */
.why-partner .section-title {
  color: #ffffff;
}

.why-partner .section-title::after {
  background-color: var(--color-warm-yellow);
}

.partner-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 32px;
  text-align: center;
  position: relative;
  z-index: 1;
}

.partner-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  transition: transform 0.3s ease;
  position: relative;
}

/* Faded yellow divider lines between items */
@media (min-width: 901px) {
  .partner-item:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 10%;
    bottom: 10%;
    right: -16px;
    width: 1px;
    background: linear-gradient(to bottom, rgba(249, 185, 29, 0), rgba(249, 185, 29, 0.3), rgba(249, 185, 29, 0));
  }
}

.partner-item:hover {
  transform: translateY(-6px);
}

.partner-icon {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  margin-bottom: 4px;
  background: var(--color-warm-yellow);
  border: 1px solid var(--color-warm-yellow);
  color: #052c18; /* Dark green icon on yellow */
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(249, 185, 29, 0.15); /* Subtle yellow glow */
}

/* Remove the individual green/orange icon classes since we are unifying the premium look */
.partner-icon.green,
.partner-icon.orange {
  background: var(--color-warm-yellow);
  color: #052c18;
}

.partner-item:hover .partner-icon {
  background: var(--color-abundance-orange);
  color: #ffffff; /* White icon on orange hover */
  border-color: var(--color-abundance-orange);
  box-shadow: 0 8px 30px rgba(247, 131, 17, 0.3); /* Orange glow */
  transform: scale(1.08);
}

.partner-item h4 {
  font-family: var(--font-headings);
  font-size: 15px;
  font-weight: 800;
  color: #ffffff;
  line-height: 1.3;
  margin: 0;
}

.partner-item p {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.5;
  margin: 0;
}

/* Responsive: stack on small screens */
@media (max-width: 900px) {
  .partner-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 24px;
  }
  
  .partner-item:not(:nth-child(3n))::after {
    content: '';
    position: absolute;
    top: 10%;
    bottom: 10%;
    right: -12px;
    width: 1px;
    background: linear-gradient(to bottom, rgba(249, 185, 29, 0), rgba(249, 185, 29, 0.3), rgba(249, 185, 29, 0));
  }
}

@media (max-width: 550px) {
  .partner-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 16px;
  }
  
  .partner-item:nth-child(odd)::after {
    content: '';
    position: absolute;
    top: 10%;
    bottom: 10%;
    right: -8px;
    width: 1px;
    background: linear-gradient(to bottom, rgba(249, 185, 29, 0), rgba(249, 185, 29, 0.3), rgba(249, 185, 29, 0));
  }
}

.svc-check input[type="checkbox"]:checked ~ span:last-child {
  color: var(--color-growth-green-dark);
  font-weight: 600;
}

/* Fix the checkbox order — input comes first in DOM but .svc-box is sibling */


/* ==========================================================================
   HEADER PROTECTION
   Prevents page-specific stylesheets from overriding the unified header
   ========================================================================== */

/* Protect header buttons */
.main-header .btn {
  padding: 0.875rem 1.75rem !important;
  font-family: var(--font-headings) !important;
  font-size: 0.875rem !important;
  border-radius: var(--radius-sm) !important;
  letter-spacing: normal !important;
  height: auto !important;
  line-height: 1.5 !important;
}

.main-header .btn-outline {
  background-color: transparent !important;
  border: 0.125rem solid var(--color-growth-green-dark) !important;
  color: var(--color-growth-green-dark) !important;
  box-shadow: none !important;
}

.main-header .btn-outline:hover {
  background-color: var(--color-growth-green-dark) !important;
  color: var(--color-white) !important;
}

/* Protect header nav links */
.main-header .nav-links {
  gap: clamp(1rem, -0.15rem + 1.8vw, 2rem) !important;
}

.main-header .nav-links a {
  font-family: var(--font-primary) !important;
  font-size: 0.875rem !important;
  color: var(--color-medium-text) !important;
  font-weight: 600 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
}

.main-header .nav-links a:hover {
  color: var(--color-abundance-orange) !important;
}

/* Protect header logo */
.main-header .logo-img {
  height: 3.125rem !important;
  width: auto !important;
  max-width: 100% !important;
}

/* Highlight specific menu items */
.main-header .nav-links a[href="mindset.html"],
.main-header .nav-links a[href="oneminuteguru.html"] {
  color: var(--color-abundance-orange) !important;
  font-weight: 700 !important;
  animation: pulse-10-percent 2.5s infinite ease-in-out !important;
}

@keyframes pulse-10-percent {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.85; } /* Slight 15% fade to make the 10% blink noticeable */
}

/* Global Right Arrow Nudge Animation */
@keyframes global-arrow-nudge {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}

a .fa-arrow-right, button .fa-arrow-right, .btn .fa-arrow-right {
  display: inline-block;
  animation: global-arrow-nudge 1.5s ease-in-out infinite;
}

/* --- Glowing Nav Links --- */
@keyframes navLinkGlow {
  0% { text-shadow: 0 0 5px rgba(234, 112, 28, 0.4); box-shadow: 0 0 0px rgba(234, 112, 28, 0); }
  50% { text-shadow: 0 0 15px rgba(234, 112, 28, 0.9), 0 0 5px rgba(234, 112, 28, 0.6); box-shadow: 0 0 15px rgba(234, 112, 28, 0.3); }
  100% { text-shadow: 0 0 5px rgba(234, 112, 28, 0.4); box-shadow: 0 0 0px rgba(234, 112, 28, 0); }
}

.nav-highlight-glow {
  color: var(--color-abundance-orange) !important;
  font-weight: 700 !important;
  transition: all 0.3s ease;
}
.nav-highlight-glow:hover {
  color: var(--color-warm-yellow) !important;
  transform: translateY(-2px);
}

/* --- Business Portfolio Section --- */
.portfolio-section {
  padding: 100px 24px;
  background-color: var(--color-white);
  text-align: center;
}
.portfolio-title {
  color: #317A78;
  font-family: var(--font-headings);
  font-size: 2.8rem;
  letter-spacing: 4px;
  text-transform: uppercase;
  margin-bottom: 24px;
  font-weight: 800;
}
.portfolio-desc {
  color: #317A78;
  font-size: 1.1rem;
  line-height: 1.8;
  max-width: 900px;
  margin: 0 auto 70px auto;
  opacity: 0.9;
  font-weight: 400;
}
.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 50px;
  max-width: 1100px;
  margin: 0 auto;
}
.portfolio-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.portfolio-logo {
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 30px;
}
.portfolio-item h4 {
  color: #317A78;
  font-family: var(--font-headings);
  font-size: 1.25rem;
  margin-bottom: 1.25rem;
  font-weight: 600;
}
.portfolio-item p {
  color: #317A78;
  font-size: 0.95rem;
  line-height: 1.7;
  opacity: 0.85;
}

/* MOBILE OPTIMIZATION FOR HOMEPAGE HERO */
@media (max-width: 768px) {
  .hero-left-col {
    width: 100%;
    max-width: 100%;
    padding-left: 20px;
    padding-right: 20px;
    padding-top: 110px; /* More breathing room from header */
    padding-bottom: 50px;
    align-items: center;
    text-align: center;
  }
  
  .hero-eyebrow {
    margin-left: auto;
    margin-right: auto;
  }
  
  .hero-title {
    font-size: 38px !important;
    text-align: center;
  }
  
  .hero-description {
    text-align: center;
    font-size: 16px;
    max-width: 100%;
  }

  .hero-img-edge-fade {
    background: linear-gradient(to bottom, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.85) 60%, rgba(255,255,255,0.3) 100%);
  }

  .hero-actions {
    flex-direction: column;
    align-items: stretch !important;
    width: 100%;
  }
  
  .hero-actions .btn, .hero-actions .text-link {
    width: 100%;
    text-align: center;
    justify-content: center;
  }

  .hero-pillars {
    flex-direction: column;
    gap: 1rem;
    align-items: center;
    margin-top: 30px;
  }
  
  .hero-pillar-item {
    align-items: center;
    text-align: center;
  }
  
  .hero-pillar-item i {
    margin-bottom: 8px;
  }
}

/* --- GLOBAL MOBILE LAYOUT & SPACING FIXES --- */
@media (max-width: 768px) {
  html, body {
    overflow-x: hidden !important;
    max-width: 100vw;
    width: 100%;
  }
  
  .hero, section.hero {
    padding-top: 120px !important;
  }
  
  .hero-left-col {
    padding-top: 130px !important;
  }
}

/* --- FOOTER MOBILE/TABLET STACKING OPTIMIZATION --- */
@media (max-width: 900px) {
  .footer-cta-inner {
    flex-direction: column !important;
    text-align: center;
    gap: 32px;
    padding: 40px 24px;
  }
  
  .footer-cta-brand {
    align-items: center;
    justify-content: center;
    min-width: 100%;
  }

  .footer-cta-divider {
    display: none !important;
  }

  .footer-cta-content {
    align-items: center;
    text-align: center;
    max-width: 100%;
  }

  .footer-cta-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 16px;
  }

  .btn-footer-primary, .btn-footer-ghost {
    width: 100%;
    justify-content: center;
    text-align: center;
    max-width: 320px;
  }
}

/* --- HERO MOBILE FIXES OVERRIDE --- */
@media (max-width: 768px) {
  .hero-left-col {
    padding-left: 5% !important;
    padding-right: 5% !important;
    align-items: flex-start !important;
    text-align: left !important;
    width: 100% !important;
  }
  
  .hero-eyebrow {
    margin-left: 0 !important;
    text-align: left !important;
    display: block !important;
  }
  
  .hero-title {
    font-size: 32px !important;
    text-align: left !important;
    line-height: 1.2 !important;
    width: 100%;
    margin-left: 0 !important;
  }
  
  .hero-title br {
    display: none !important;
  }
  
  .hero-description {
    text-align: left !important;
  }
  
  .hero-actions {
    align-items: flex-start !important;
  }
  
  .hero-pillars {
    align-items: flex-start !important;
  }
  
  .hero-pillar-item {
    text-align: left !important;
    align-items: flex-start !important;
  }
}

/* --- CRITICAL MOBILE TOP-CROP FIX --- */
@media (max-width: 768px) {
  .hero-section {
    height: auto !important;
    min-height: 100vh !important;
  }
  
  .hero-left-col {
    justify-content: flex-start !important; /* Prevents center-alignment from pushing content off the top edge */
    padding-top: 140px !important;
    padding-bottom: 80px !important;
  }
}

/* --- PADDING REDUCTION FIX --- */
@media (max-width: 768px) {
  .hero-left-col {
    padding-top: 90px !important;
    padding-bottom: 40px !important;
  }
}

/* --- PADDING REDUCTION FIX V2 --- */
@media (max-width: 768px) {
  .hero-left-col {
    padding-top: 50px !important;
    padding-bottom: 20px !important;
  }
}

/* Hero section refinement: fit first fold, responsive, same GNF styling */
    .hero{
      min-height:calc(100vh - 78px);
      display:flex;
      align-items:center;
      padding:42px 0 38px;
    }
    .hero-grid{
      grid-template-columns:1.02fr .98fr;
      gap:44px;
      align-items:center;
    }
    .hero h1{
      font-size:54px;
      line-height:1.01;
      letter-spacing:-1.9px;
      margin-bottom:18px;
      max-width:720px;
    }
    .hero .lead{
      font-size:16px;
      line-height:1.62;
      max-width:700px;
      margin-bottom:24px;
    }
    .hero .cta-row{
      margin-bottom:24px;
      gap:14px;
    }
    .hero .btn{
      padding:13px 20px;
    }
    .proof-strip{
      gap:12px;
      max-width:720px;
    }
    .proof-strip div{
      padding:14px 15px;
      min-height:104px;
      display:flex;
      flex-direction:column;
      justify-content:flex-start;
    }
    .proof-strip small{
      font-size:13px;
      line-height:1.35;
    }

    /* Cleaner responsive right visual, retaining original hero image and GNF styling */
    .hero-visual{
      background:transparent;
      border:none;
      border-radius:0;
      box-shadow:none;
      padding:0;
      min-height:530px;
      display:flex;
      align-items:stretch;
      justify-content:center;
      overflow:visible;
    }
    .hero-visual:before{
      display:none;
    }
    .hero-board{
      width:100%;
      min-height:530px;
      border-radius:34px;
      box-shadow:var(--shadow);
      border:1px solid var(--line);
      background-position:center;
      background-size:cover;
      position:relative;
      overflow:hidden;
      padding:0;
    }
    .hero-board:before{
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(90deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.52) 34%,rgba(255,255,255,.05) 62%),
        linear-gradient(135deg,rgba(15,95,60,.18),transparent 48%,rgba(255,107,0,.12));
      z-index:1;
      pointer-events:none;
    }
    .hero-board h3,
    .hero-board p,
    .circle-ring,
    .consult-card{
      display:none !important;
    }
    .hero-board .hero-compact-card{
      position:absolute;
      left:26px;
      bottom:26px;
      z-index:2;
      max-width:360px;
      background:rgba(255,255,255,.88);
      border:1px solid rgba(223,233,227,.95);
      border-radius:24px;
      box-shadow:var(--shadow-soft);
      backdrop-filter:blur(12px);
      padding:22px;
    }
    .hero-board .hero-compact-card b{
      display:block;
      color:var(--green-dark);
      font-size:20px;
      line-height:1.2;
      margin-bottom:7px;
    }
    .hero-board .hero-compact-card small{
      display:block;
      color:var(--muted);
      font-weight:700;
      line-height:1.45;
    }

    @media(max-width:1180px){
      .hero h1{font-size:48px}
      .hero-visual,.hero-board{min-height:500px}
    }
    @media(max-width:1050px){
      .hero{
        min-height:auto;
        padding:54px 0 48px;
      }
      .hero-grid{
        grid-template-columns:1fr;
        gap:32px;
      }
      .hero h1{
        font-size:46px;
        max-width:820px;
      }
      .hero-visual{
        display:block;
        min-height:auto;
      }
      .hero-board{
        min-height:360px;
      }
      .hero-board .hero-compact-card{
        max-width:420px;
      }
    }
    @media(max-width:720px){
      .hero{
        padding:46px 0 42px;
      }
      .hero h1{
        font-size:40px;
        line-height:1.05;
      }
      .hero .lead{
        font-size:15.5px;
        line-height:1.6;
      }
      .proof-strip{
        grid-template-columns:1fr;
      }
      .proof-strip div{
        min-height:auto;
        padding:14px;
      }
      .hero-board{
        min-height:300px;
        border-radius:26px;
      }
      .hero-board .hero-compact-card{
        left:18px;
        right:18px;
        bottom:18px;
        max-width:none;
        padding:18px;
      }
    }
    @media(max-width:480px){
      .hero h1{font-size:34px}
      .hero .cta-row{gap:10px}
      .hero-board{min-height:270px}
      .hero-board .hero-compact-card b{font-size:17px}
      .hero-board .hero-compact-card small{font-size:12.5px}
    }

  
    /* Hero visual changed: no image, clean responsive system-card design */
    .hero{
      min-height:calc(100vh - 78px);
      display:flex;
      align-items:center;
      padding:40px 0 36px;
    }
    .hero-grid{
      grid-template-columns:1.04fr .96fr;
      gap:42px;
      align-items:center;
    }
    .hero h1{
      font-size:54px;
      line-height:1.01;
      letter-spacing:-1.9px;
      margin-bottom:18px;
      max-width:720px;
    }
    .hero .lead{
      font-size:16px;
      line-height:1.62;
      max-width:700px;
      margin-bottom:24px;
    }
    .hero .cta-row{
      margin-bottom:24px;
      gap:14px;
    }
    .hero .btn{
      padding:13px 20px;
    }
    .proof-strip{
      gap:12px;
      max-width:720px;
    }
    .proof-strip div{
      padding:14px 15px;
      min-height:104px;
      display:flex;
      flex-direction:column;
      justify-content:flex-start;
    }
    .proof-strip small{
      font-size:13px;
      line-height:1.35;
    }

    .hero-visual{
      background:#fff;
      border:1px solid var(--line);
      border-radius:34px;
      box-shadow:var(--shadow);
      padding:20px;
      position:relative;
      overflow:hidden;
      min-height:auto;
      display:block;
    }
    .hero-visual:before{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(135deg,rgba(15,95,60,.08),transparent 45%,rgba(255,107,0,.10));
      pointer-events:none;
      display:block;
    }
    .hero-system-board{
      position:relative;
      min-height:500px;
      background:linear-gradient(145deg,var(--green-dark),var(--green));
      border-radius:27px;
      overflow:hidden;
      padding:28px;
      color:#fff;
      display:grid;
      grid-template-rows:auto 1fr auto;
      gap:20px;
      border:none;
      box-shadow:none;
      width:100%;
    }
    .hero-system-board:before{
      content:"";
      position:absolute;
      right:-88px;
      top:-88px;
      width:280px;
      height:280px;
      background:rgba(255,107,0,.24);
      border-radius:50%;
      z-index:0;
    }
    .hero-system-board:after{
      content:"";
      position:absolute;
      left:-95px;
      bottom:-105px;
      width:330px;
      height:330px;
      border:46px solid rgba(255,255,255,.12);
      border-radius:50%;
      z-index:0;
    }
    .hero-system-head{
      position:relative;
      z-index:1;
      text-align:left;
      max-width:460px;
    }
    .hero-system-head span{
      display:inline-flex;
      background:rgba(255,255,255,.13);
      border:1px solid rgba(255,255,255,.22);
      border-radius:999px;
      padding:8px 12px;
      color:#ffc28c;
      font-size:12px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      margin-bottom:13px;
    }
    .hero-system-head h3{
      display:block !important;
      color:#fff;
      font-size:29px;
      line-height:1.12;
      margin:0 0 8px;
      max-width:none;
    }
    .hero-system-head p{
      display:block !important;
      opacity:.84;
      color:#fff;
      font-size:14px;
      max-width:430px;
      margin:0;
    }
    .hero-system-grid{
      position:relative;
      z-index:1;
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:13px;
      align-self:center;
    }
    .system-card{
      background:rgba(255,255,255,.13);
      border:1px solid rgba(255,255,255,.22);
      border-radius:18px;
      padding:16px;
      min-height:130px;
      backdrop-filter:blur(10px);
      box-shadow:0 16px 32px rgba(0,0,0,.08);
    }
    .system-icon{
      width:38px;
      height:38px;
      border-radius:13px;
      display:grid;
      place-items:center;
      background:#fff;
      color:var(--green);
      font-size:13px;
      font-weight:900;
      margin-bottom:11px;
    }
    .system-card:nth-child(even) .system-icon{
      color:var(--orange);
    }
    .system-card b{
      display:block;
      color:#fff;
      font-size:17px;
      line-height:1.15;
      margin-bottom:6px;
    }
    .system-card small{
      display:block;
      color:rgba(255,255,255,.76);
      font-weight:600;
      line-height:1.35;
      font-size:12px;
    }
    .hero-system-bottom{
      position:relative;
      z-index:1;
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:10px;
    }
    .hero-system-bottom div{
      background:rgba(255,255,255,.11);
      border:1px solid rgba(255,255,255,.20);
      border-radius:16px;
      padding:13px 12px;
      text-align:center;
    }
    .hero-system-bottom b{
      display:block;
      color:#fff;
      font-size:14px;
      margin-bottom:3px;
    }
    .hero-system-bottom small{
      display:block;
      color:rgba(255,255,255,.72);
      font-size:11px;
      font-weight:600;
      line-height:1.25;
    }

    @media(max-width:1180px){
      .hero h1{font-size:48px}
      .hero-system-board{min-height:480px}
    }
    @media(max-width:1050px){
      .hero{
        min-height:auto;
        padding:54px 0 48px;
      }
      .hero-grid{
        grid-template-columns:1fr;
        gap:32px;
      }
      .hero h1{
        font-size:46px;
        max-width:820px;
      }
      .hero-system-board{
        min-height:auto;
      }
    }
    @media(max-width:720px){
      .hero{
        padding:46px 0 42px;
      }
      .hero h1{
        font-size:40px;
        line-height:1.05;
      }
      .hero .lead{
        font-size:15.5px;
        line-height:1.6;
      }
      .proof-strip{
        grid-template-columns:1fr;
      }
      .proof-strip div{
        min-height:auto;
        padding:14px;
      }
      .hero-system-grid,
      .hero-system-bottom{
        grid-template-columns:1fr;
      }
      .hero-system-board{
        padding:22px;
        border-radius:24px;
      }
      .hero-visual{
        padding:16px;
        border-radius:28px;
      }
    }
    @media(max-width:480px){
      .hero h1{font-size:34px}
      .hero .cta-row{gap:10px}
      .hero-system-head h3{font-size:24px}
      .system-card{min-height:auto}
    }

  
    /* Updated Hero Right Side: The GNF Way - non-repetitive framework visual */
    .hero{
      min-height:calc(100vh - 78px);
      display:flex;
      align-items:center;
      padding:40px 0 36px;
    }
    .hero-grid{
      grid-template-columns:1.04fr .96fr;
      gap:42px;
      align-items:center;
    }
    .hero h1{
      font-size:54px;
      line-height:1.01;
      letter-spacing:-1.9px;
      margin-bottom:18px;
      max-width:720px;
    }
    .hero .lead{
      font-size:16px;
      line-height:1.62;
      max-width:700px;
      margin-bottom:24px;
    }
    .hero .cta-row{
      margin-bottom:24px;
      gap:14px;
    }
    .hero .btn{
      padding:13px 20px;
    }
    .proof-strip{
      gap:12px;
      max-width:720px;
    }
    .proof-strip div{
      padding:14px 15px;
      min-height:104px;
      display:flex;
      flex-direction:column;
      justify-content:flex-start;
    }
    .proof-strip small{
      font-size:13px;
      line-height:1.35;
    }

    .hero-visual{
      background:#fff;
      border:1px solid var(--line);
      border-radius:34px;
      box-shadow:var(--shadow);
      padding:20px;
      position:relative;
      overflow:hidden;
      min-height:auto;
      display:block;
    }
    .hero-visual:before{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(135deg,rgba(15,95,60,.08),transparent 45%,rgba(255,107,0,.10));
      pointer-events:none;
      display:block;
    }
    .hero-way-board{
      position:relative;
      min-height:500px;
      background:linear-gradient(145deg,var(--green-dark),var(--green));
      border-radius:27px;
      overflow:hidden;
      padding:30px;
      color:#fff;
      display:grid;
      grid-template-rows:auto 1fr auto;
      gap:22px;
      border:none;
      box-shadow:none;
      width:100%;
    }
    .hero-way-board:before{
      content:"";
      position:absolute;
      right:-88px;
      top:-88px;
      width:280px;
      height:280px;
      background:rgba(255,107,0,.24);
      border-radius:50%;
      z-index:0;
    }
    .hero-way-board:after{
      content:"";
      position:absolute;
      left:-95px;
      bottom:-105px;
      width:330px;
      height:330px;
      border:46px solid rgba(255,255,255,.12);
      border-radius:50%;
      z-index:0;
    }
    .way-top{
      position:relative;
      z-index:1;
      max-width:440px;
    }
    .way-top span{
      display:inline-flex;
      background:rgba(255,255,255,.13);
      border:1px solid rgba(255,255,255,.22);
      border-radius:999px;
      padding:8px 12px;
      color:#ffc28c;
      font-size:12px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      margin-bottom:14px;
    }
    .way-top h3{
      display:block !important;
      color:#fff;
      font-size:34px;
      line-height:1.1;
      margin:0 0 10px;
      max-width:420px;
    }
    .way-top p{
      display:block !important;
      opacity:.84;
      color:#fff;
      font-size:14px;
      max-width:430px;
      margin:0;
    }
    .way-path{
      position:relative;
      z-index:1;
      display:flex;
      flex-direction:column;
      justify-content:center;
      gap:10px;
    }
    .way-step{
      display:grid;
      grid-template-columns:52px 1fr;
      gap:14px;
      align-items:center;
      background:rgba(255,255,255,.13);
      border:1px solid rgba(255,255,255,.22);
      border-radius:20px;
      padding:16px;
      backdrop-filter:blur(10px);
      box-shadow:0 16px 32px rgba(0,0,0,.08);
    }
    .way-no{
      width:52px;
      height:52px;
      border-radius:17px;
      display:grid;
      place-items:center;
      background:#fff;
      color:var(--green);
      font-size:14px;
      font-weight:900;
    }
    .way-step:nth-child(3) .way-no{
      color:var(--orange);
    }
    .way-step b{
      display:block;
      color:#fff;
      font-size:18px;
      line-height:1.15;
      margin-bottom:5px;
    }
    .way-step small{
      display:block;
      color:rgba(255,255,255,.76);
      font-weight:600;
      line-height:1.35;
      font-size:12.5px;
    }
    .way-connector{
      width:2px;
      height:18px;
      background:linear-gradient(180deg,rgba(255,255,255,.15),rgba(255,194,140,.75),rgba(255,255,255,.15));
      border-radius:999px;
      margin-left:41px;
    }
    .way-bottom{
      position:relative;
      z-index:1;
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:10px;
    }
    .way-bottom div{
      background:rgba(255,255,255,.11);
      border:1px solid rgba(255,255,255,.20);
      border-radius:16px;
      padding:13px 12px;
      text-align:center;
    }
    .way-bottom b{
      display:block;
      color:#fff;
      font-size:14px;
      margin-bottom:3px;
    }
    .way-bottom small{
      display:block;
      color:rgba(255,255,255,.72);
      font-size:11px;
      font-weight:600;
      line-height:1.25;
    }

    @media(max-width:1180px){
      .hero h1{font-size:48px}
      .hero-way-board{min-height:480px}
      .way-top h3{font-size:31px}
    }
    @media(max-width:1050px){
      .hero{
        min-height:auto;
        padding:54px 0 48px;
      }
      .hero-grid{
        grid-template-columns:1fr;
        gap:32px;
      }
      .hero h1{
        font-size:46px;
        max-width:820px;
      }
      .hero-way-board{
        min-height:auto;
      }
    }
    @media(max-width:720px){
      .hero{
        padding:46px 0 42px;
      }
      .hero h1{
        font-size:40px;
        line-height:1.05;
      }
      .hero .lead{
        font-size:15.5px;
        line-height:1.6;
      }
      .proof-strip{
        grid-template-columns:1fr;
      }
      .proof-strip div{
        min-height:auto;
        padding:14px;
      }
      .hero-way-board{
        padding:22px;
        border-radius:24px;
      }
      .hero-visual{
        padding:16px;
        border-radius:28px;
      }
      .way-bottom{
        grid-template-columns:1fr;
      }
    }
    @media(max-width:480px){
      .hero h1{font-size:34px}
      .hero .cta-row{gap:10px}
      .way-top h3{font-size:24px}
      .way-step{
        grid-template-columns:1fr;
      }
      .way-connector{
        margin-left:25px;
      }
    }

  


/* User requested top padding for hero section */
.hero { padding-top: 140px !important; }

/* Scroll offset for fixed header */
html { scroll-padding-top: 100px; scroll-behavior: smooth; }
