/* ============================================================
   APWF SOLAR ENERGY — Unified Stylesheet
   Combines theme tokens, components, and layout styling
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&family=Barlow:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap');

/* ============================================================
   1. COLOR TOKENS — Raw palette values
   ============================================================ */

:root {

  /* --- Green Ramp (from "AP" logo letters & leaf) --- */
  --green-900: #051F0E;
  --green-800: #0D3B20;   /* Deep Forest — navbars, dark sections */
  --green-700: #155C2F;
  --green-600: #1E6B38;   /* Forest Green — PRIMARY brand color */
  --green-500: #2E8C4A;
  --green-400: #3DA85C;
  --green-300: #5FC97A;   /* Leaf Green — hovers, highlights */
  --green-200: #A3E2B5;
  --green-100: #CBF0D5;
  --green-50:  #E8F3ED;   /* Mint Tint — section backgrounds */

  /* --- Blue Ramp (from "WF" logo letters) --- */
  --blue-900: #061529;
  --blue-800: #0D2B6B;
  --blue-700: #0F3A8A;
  --blue-600: #1648A0;    /* Solar Blue — SECONDARY brand color */
  --blue-500: #2460C4;
  --blue-400: #3B7FD8;
  --blue-300: #4E9FE8;    /* Sky Blue — info states, badges */
  --blue-200: #8EC4F3;
  --blue-100: #C2DFFB;
  --blue-50:  #EFF4FB;    /* Blue Tint — info panels, secondary sections */

  /* --- Orange / Amber Ramp (from sun rays) --- */
  --orange-900: #4A1E02;
  --orange-800: #7A3200;
  --orange-700: #A84400;
  --orange-600: #C05A0A;
  --orange-500: #E87A1A;  /* Solar Orange — ACCENT color, highlight CTAs */
  --orange-400: #F09030;
  --orange-300: #F5A623;  /* Sun Gold — illustrations, warm highlights */
  --orange-200: #FAC875;
  --orange-100: #FDDFAA;
  --orange-50:  #FEF4E8;  /* Orange Tint — warm panels, promo banners */

  /* --- Neutral / Panel Dark (from solar panel cells) --- */
  --neutral-900: #0E1118;
  --neutral-800: #1B2030;  /* Panel Dark — body text, dark backgrounds */
  --neutral-700: #2C3345;
  --neutral-600: #404760;
  --neutral-500: #565E7A;
  --neutral-400: #7A8299;
  --neutral-300: #A3AABD;
  --neutral-200: #CDD0DA;
  --neutral-100: #E4E6EE;
  --neutral-50:  #F4F7F1;  /* Clean White — page background, card surfaces */


  /* ============================================================
     2. SEMANTIC / ROLE-BASED TOKENS
     ============================================================ */

  /* Brand */
  --color-brand-primary:        var(--green-600);
  --color-brand-primary-dark:   var(--green-800);
  --color-brand-primary-light:  var(--green-300);
  --color-brand-secondary:      var(--blue-600);
  --color-brand-secondary-dark: var(--blue-800);
  --color-brand-secondary-light:var(--blue-300);
  --color-brand-accent:         var(--orange-500);
  --color-brand-accent-warm:    var(--orange-300);

  /* Backgrounds */
  --color-bg-page:              var(--neutral-50);
  --color-bg-surface:           #FFFFFF;
  --color-bg-surface-raised:    #FFFFFF;
  --color-bg-tint-green:        var(--green-50);
  --color-bg-tint-blue:         var(--blue-50);
  --color-bg-tint-orange:       var(--orange-50);
  --color-bg-dark:              var(--green-800);
  --color-bg-darker:            var(--neutral-800);

  /* Text */
  --color-text-primary:         var(--neutral-800);
  --color-text-secondary:       var(--neutral-600);
  --color-text-muted:           var(--neutral-400);
  --color-text-on-dark:         #FFFFFF;
  --color-text-on-dark-muted:   rgba(255, 255, 255, 0.65);
  --color-text-brand:           var(--green-600);
  --color-text-accent:          var(--orange-600);
  --color-text-link:            var(--blue-600);
  --color-text-link-hover:      var(--blue-400);

  /* Borders */
  --color-border-default:       var(--neutral-200);
  --color-border-subtle:        var(--neutral-100);
  --color-border-strong:        var(--neutral-300);
  --color-border-brand:         var(--green-600);
  --color-border-accent:        var(--orange-500);

  /* Status / Feedback */
  --color-success:              var(--green-600);
  --color-success-bg:           var(--green-50);
  --color-success-text:         var(--green-700);
  --color-info:                 var(--blue-600);
  --color-info-bg:              var(--blue-50);
  --color-info-text:            var(--blue-700);
  --color-warning:              var(--orange-500);
  --color-warning-bg:           var(--orange-50);
  --color-warning-text:         var(--orange-700);
  --color-error:                #D93025;
  --color-error-bg:             #FCECEA;
  --color-error-text:           #B31412;


  /* ============================================================
     3. GRADIENTS
     ============================================================ */

  --gradient-green:             linear-gradient(135deg, var(--green-800) 0%, var(--green-600) 60%, var(--green-300) 100%);
  --gradient-brand-blend:       linear-gradient(135deg, var(--green-600) 0%, var(--blue-600) 100%);
  --gradient-dark-hero:         linear-gradient(135deg, var(--green-800) 0%, var(--blue-800) 100%);
  --gradient-solar-glow:        linear-gradient(90deg, var(--orange-500) 0%, var(--orange-300) 100%);
  --gradient-hero-full:         linear-gradient(135deg, #0D3B20 0%, #1E6B38 50%, #1648A0 100%);
  --gradient-green-light:       linear-gradient(180deg, var(--green-50) 0%, #FFFFFF 100%);
  --gradient-panel:             linear-gradient(145deg, var(--neutral-800) 0%, #0E1118 100%);


  /* ============================================================
     4. TYPOGRAPHY
     ============================================================ */

  /* Font Families */
  --font-display:   'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-body:      'Barlow', 'Segoe UI', sans-serif;
  --font-mono:      'JetBrains Mono', 'Courier New', monospace;

  /* Font Sizes */
  --text-xs:    11px;
  --text-sm:    13px;
  --text-base:  15px;
  --text-md:    17px;
  --text-lg:    20px;
  --text-xl:    24px;
  --text-2xl:   30px;
  --text-3xl:   38px;
  --text-4xl:   48px;
  --text-5xl:   60px;

  /* Font Weights */
  --weight-regular:   400;
  --weight-medium:    500;
  --weight-semibold:  600;
  --weight-bold:      700;

  /* Line Heights */
  --leading-tight:   1.15;
  --leading-snug:    1.35;
  --leading-normal:  1.6;
  --leading-relaxed: 1.75;

  /* Letter Spacing */
  --tracking-tight:   -0.02em;
  --tracking-normal:   0em;
  --tracking-wide:     0.04em;
  --tracking-wider:    0.08em;
  --tracking-widest:   0.14em;


  /* ============================================================
     5. SPACING SCALE
     ============================================================ */

  --space-1:   4px;
  --space-2:   8px;
  --space-3:   12px;
  --space-4:   16px;
  --space-5:   20px;
  --space-6:   24px;
  --space-8:   32px;
  --space-10:  40px;
  --space-12:  48px;
  --space-16:  64px;
  --space-20:  80px;
  --space-24:  96px;


  /* ============================================================
     6. BORDER RADIUS
     ============================================================ */

  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-2xl:  24px;
  --radius-pill: 9999px;


  /* ============================================================
     7. SHADOWS
     ============================================================ */

  --shadow-sm:    0 1px 3px rgba(27, 32, 48, 0.10), 0 1px 2px rgba(27, 32, 48, 0.06);
  --shadow-md:    0 4px 12px rgba(27, 32, 48, 0.12), 0 2px 4px rgba(27, 32, 48, 0.08);
  --shadow-lg:    0 10px 28px rgba(27, 32, 48, 0.14), 0 4px 8px rgba(27, 32, 48, 0.08);
  --shadow-xl:    0 20px 48px rgba(27, 32, 48, 0.16);
  --shadow-brand: 0 6px 20px rgba(30, 107, 56, 0.30);
  --shadow-accent:0 6px 20px rgba(232, 122, 26, 0.30);


  /* ============================================================
     8. TRANSITIONS
     ============================================================ */

  --transition-fast:    150ms ease;
  --transition-base:    250ms ease;
  --transition-slow:    400ms ease;
  --transition-bounce:  300ms cubic-bezier(0.34, 1.56, 0.64, 1);


  /* ============================================================
     9. Z-INDEX SCALE
     ============================================================ */

  --z-base:     0;
  --z-raised:   10;
  --z-dropdown: 100;
  --z-sticky:   200;
  --z-overlay:  300;
  --z-modal:    400;
  --z-toast:    500;

}


/* ============================================================
   10. DARK MODE OVERRIDES
   ============================================================ */

@media (prefers-color-scheme: dark) {
  :root {
    --color-bg-page:          #0E1118;
    --color-bg-surface:       #1B2030;
    --color-bg-surface-raised:#242C42;
    --color-bg-tint-green:    rgba(30, 107, 56, 0.15);
    --color-bg-tint-blue:     rgba(22, 72, 160, 0.18);
    --color-bg-tint-orange:   rgba(232, 122, 26, 0.12);
    --color-bg-dark:          #0D3B20;

    --color-text-primary:     #E4E6EE;
    --color-text-secondary:   #A3AABD;
    --color-text-muted:       #565E7A;
    --color-text-brand:       var(--green-300);
    --color-text-accent:      var(--orange-300);
    --color-text-link:        var(--blue-300);
    --color-text-link-hover:  var(--blue-200);

    --color-border-default:   rgba(255, 255, 255, 0.10);
    --color-border-subtle:    rgba(255, 255, 255, 0.06);
    --color-border-strong:    rgba(255, 255, 255, 0.18);

    --shadow-sm:    0 1px 3px rgba(0, 0, 0, 0.30);
    --shadow-md:    0 4px 12px rgba(0, 0, 0, 0.35);
    --shadow-lg:    0 10px 28px rgba(0, 0, 0, 0.40);
    --shadow-xl:    0 20px 48px rgba(0, 0, 0, 0.50);
  }
}


/* ============================================================
   11. UTILITY CLASSES — quick use in templates
   ============================================================ */

/* Text colors */
.text-brand       { color: var(--color-brand-primary); }
.text-brand-dark  { color: var(--color-brand-primary-dark); }
.text-secondary   { color: var(--color-brand-secondary); }
.text-accent      { color: var(--color-brand-accent); }
.text-muted       { color: var(--color-text-muted); }
.text-on-dark     { color: var(--color-text-on-dark); }

/* Background colors */
.bg-brand         { background-color: var(--color-brand-primary); }
.bg-brand-dark    { background-color: var(--color-brand-primary-dark); }
.bg-secondary     { background-color: var(--color-brand-secondary); }
.bg-accent        { background-color: var(--color-brand-accent); }
.bg-tint-green    { background-color: var(--color-bg-tint-green); }
.bg-tint-blue     { background-color: var(--color-bg-tint-blue); }
.bg-tint-orange   { background-color: var(--color-bg-tint-orange); }
.bg-dark          { background-color: var(--color-bg-dark); }
.bg-surface       { background-color: var(--color-bg-surface); }

/* Gradients */
.bg-gradient-green       { background: var(--gradient-green); }
.bg-gradient-brand       { background: var(--gradient-brand-blend); }
.bg-gradient-dark        { background: var(--gradient-dark-hero); }
.bg-gradient-solar       { background: var(--gradient-solar-glow); }
.bg-gradient-hero        { background: var(--gradient-hero-full); }

/* Border */
.border-brand     { border-color: var(--color-border-brand); }
.border-accent    { border-color: var(--color-border-accent); }


/* ============================================================
   12. BASE COMPONENT STYLES
   ============================================================ */

/* --- Buttons --- */

.btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-5);
  border-radius: var(--radius-md);
  font-family: var(--font-body);
  font-weight: var(--weight-semibold);
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-wide);
  cursor: pointer;
  border: 1.5px solid transparent;
  transition: background var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
  text-decoration: none;
  white-space: nowrap;
}

.btn:active { transform: scale(0.98); }

.btn-primary {
  background: var(--color-brand-primary);
  color: #fff;
  border-color: var(--color-brand-primary);
}
.btn-primary:hover {
  background: var(--green-700);
  box-shadow: var(--shadow-brand);
}

.btn-secondary {
  background: var(--color-brand-secondary);
  color: #fff;
  border-color: var(--color-brand-secondary);
}
.btn-secondary:hover {
  background: var(--blue-700);
}

.btn-accent {
  background: var(--color-brand-accent);
  color: #fff;
  border-color: var(--color-brand-accent);
}
.btn-accent:hover {
  background: var(--orange-600);
  box-shadow: var(--shadow-accent);
}

.btn-outline-primary {
  background: transparent;
  color: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
}
.btn-outline-primary:hover {
  background: var(--color-bg-tint-green);
}

.btn-outline-white {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.45);
}
.btn-outline-white:hover {
  background: rgba(255, 255, 255, 0.10);
}

.btn-sm  { padding: var(--space-2) var(--space-3); font-size: var(--text-xs); }
.btn-lg  { padding: var(--space-4) var(--space-8); font-size: var(--text-md); border-radius: var(--radius-lg); }

/* --- Cards --- */

.card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}

.card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-4px);
}

.card-tint-green  { background: var(--color-bg-tint-green);  border-color: var(--green-100); }
.card-tint-blue   { background: var(--color-bg-tint-blue);   border-color: var(--blue-100); }
.card-tint-orange { background: var(--color-bg-tint-orange); border-color: var(--orange-100); }

.card-dark {
  background: var(--color-bg-dark);
  border-color: rgba(255, 255, 255, 0.08);
  color: var(--color-text-on-dark);
}

/* --- Badges --- */

.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 3px var(--space-3);
  border-radius: var(--radius-pill);
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide);
  white-space: nowrap;
}

.badge-green  { background: var(--green-50);   color: var(--green-700); }
.badge-blue   { background: var(--blue-50);    color: var(--blue-700); }
.badge-orange { background: var(--orange-50);  color: var(--orange-700); }
.badge-dark   { background: var(--green-800);  color: var(--green-300); }
.badge-solid-primary   { background: var(--green-600);  color: #fff; }
.badge-solid-secondary { background: var(--blue-600);   color: #fff; }
.badge-solid-accent    { background: var(--orange-500); color: #fff; }

/* --- Navbar --- */

header {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  background: var(--color-bg-surface);
  box-shadow: var(--shadow-sm);
  border-bottom: 1px solid var(--color-border-default);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.navbar-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: calc(var(--space-3) + 5px) var(--space-6);
}

.navbar-logo {
  text-decoration: none;
  display: flex;
  align-items: center;
}

.navbar-logo-img {
  height: 68px;
  width: auto;
  display: block;
  background: #FFFFFF;
  padding: 4px 10px;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}

@media (max-width: 576px) {
  .navbar-logo-img {
    height: 58px;
    padding: 3px 8px;
  }
}

.navbar-links {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  list-style: none;
}

.navbar-link {
  font-size: 14px;
  font-weight: var(--weight-semibold);
  color: var(--color-text-secondary);
  text-decoration: none;
  transition: color var(--transition-fast);
  padding: var(--space-2) 0;
  position: relative;
}

#nav-cta {
  font-size: 14px;
  padding: 8px 16px;
}

.navbar-link:hover,
.navbar-link.active {
  color: var(--color-brand-primary);
}

.navbar-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--color-brand-accent);
  transition: width var(--transition-base);
}

.navbar-link:hover::after,
.navbar-link.active::after {
  width: 100%;
}

.navbar-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--space-2);
  z-index: var(--z-overlay);
}

.navbar-toggle-icon {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--color-text-primary);
  position: relative;
  transition: background var(--transition-fast);
}

.navbar-toggle-icon::before,
.navbar-toggle-icon::after {
  content: '';
  position: absolute;
  width: 24px;
  height: 2px;
  background: var(--color-text-primary);
  left: 0;
  transition: transform var(--transition-fast), top var(--transition-fast);
}

.navbar-toggle-icon::before { top: -6px; }
.navbar-toggle-icon::after { top: 6px; }

/* Hamburger Active State */
.navbar-toggle.active .navbar-toggle-icon {
  background: transparent;
}
.navbar-toggle.active .navbar-toggle-icon::before,
.navbar-toggle.active .navbar-toggle-icon::after {
  background: #FFFFFF;
}
.navbar-toggle.active .navbar-toggle-icon::before {
  transform: rotate(45deg);
  top: 0;
}
.navbar-toggle.active .navbar-toggle-icon::after {
  transform: rotate(-45deg);
  top: 0;
}

@media (max-width: 992px) {
  .navbar-toggle {
    display: block;
  }
  .navbar-links {
    position: fixed;
    top: 0;
    right: 0;
    transform: translateX(100%);
    height: 100vh;
    width: 280px;
    background: var(--neutral-800);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-16) var(--space-8);
    box-shadow: var(--shadow-xl);
    transition: transform var(--transition-base);
    z-index: var(--z-dropdown);
    overflow-y: auto;
  }
  .navbar-links.active {
    transform: translateX(0);
  }
  .navbar-links li {
    width: 100%;
    text-align: center;
  }
  .navbar-links .navbar-link {
    color: var(--color-text-on-dark-muted);
  }
  .navbar-links .navbar-link:hover,
  .navbar-links .navbar-link.active {
    color: #fff;
  }
  .navbar-links .btn {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
}

/* --- Section Dividers --- */

.section-label {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--color-brand-primary);
}

/* --- Stat / Metric Cards --- */

.stat-card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  box-shadow: var(--shadow-sm);
}

.stat-label {
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  color: var(--color-text-muted);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  margin-bottom: var(--space-2);
}

.stat-value {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: var(--weight-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-tight);
}

.stat-change-up   { font-size: var(--text-sm); color: var(--green-600); font-weight: var(--weight-semibold); }
.stat-change-down { font-size: var(--text-sm); color: #D93025;          font-weight: var(--weight-semibold); }


/* ============================================================
   13. TYPOGRAPHY CLASSES
   ============================================================ */

.heading-display {
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
  font-size: var(--text-5xl);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--color-text-primary);
}

.heading-1 {
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
  font-size: var(--text-4xl);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
}

.heading-2 {
  font-family: var(--font-body);
  font-weight: var(--weight-bold);
  font-size: var(--text-3xl);
  line-height: var(--leading-snug);
}

.heading-3 {
  font-family: var(--font-body);
  font-weight: var(--weight-semibold);
  font-size: var(--text-xl);
  line-height: var(--leading-snug);
}

.body-lg  { font-size: var(--text-md);  line-height: var(--leading-relaxed); }
.body-md  { font-size: var(--text-base); line-height: var(--leading-normal); }
.body-sm  { font-size: var(--text-sm);  line-height: var(--leading-normal); }
.caption  { font-size: var(--text-xs);  line-height: var(--leading-snug); color: var(--color-text-muted); }


/* ============================================================
   14. CUSTOM LAYOUT & STRUCTURAL CLASSES
   ============================================================ */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

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

body {
  background-color: var(--color-bg-page);
  color: var(--color-text-primary);
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  transition: background-color var(--transition-base), color var(--transition-base);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex-grow: 1;
}

.section {
  padding: var(--space-16) var(--space-6);
  max-width: 1200px;
  margin: 0 auto;
}

.section-alt {
  background-color: var(--color-bg-surface-raised);
  border-top: 1px solid var(--color-border-subtle);
  border-bottom: 1px solid var(--color-border-subtle);
}

@media (prefers-color-scheme: dark) {
  .section-alt {
    background-color: #171b29;
  }
}

.section-header {
  text-align: center;
  max-width: 680px;
  margin: 0 auto var(--space-12);
}

.section-header h2 {
  margin-top: var(--space-2);
  color: var(--color-text-primary);
}

.section-header p {
  margin-top: var(--space-4);
  color: var(--color-text-secondary);
}

.grid-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
  gap: var(--space-10);
  align-items: center;
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
  gap: var(--space-8);
}

.grid-4 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
  gap: var(--space-6);
}


/* ============================================================
   15. HERO SECTION
   ============================================================ */

.hero-section {
  background: var(--gradient-hero-full);
  color: var(--color-text-on-dark);
  padding: var(--space-20) var(--space-6);
  position: relative;
  overflow: hidden;
}

.hero-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at 80% 20%, rgba(254, 244, 232, 0.12) 0%, transparent 60%);
  pointer-events: none;
}

.hero-container {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--space-12);
  align-items: center;
  position: relative;
  z-index: var(--z-raised);
}

@media (max-width: 992px) {
  .hero-container {
    grid-template-columns: 1fr;
    text-align: center;
  }
}

.hero-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

@media (max-width: 992px) {
  .hero-content {
    align-items: center;
  }
}

.hero-content h1 {
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
  font-size: var(--text-5xl);
  line-height: var(--leading-tight);
  color: #fff;
}

@media (max-width: 576px) {
  .hero-content h1 {
    font-size: var(--text-3xl);
  }
}

.hero-content p {
  font-size: var(--text-md);
  color: var(--color-text-on-dark-muted);
  max-width: 560px;
  line-height: var(--leading-relaxed);
}

.hero-actions {
  display: flex;
  gap: var(--space-4);
  margin-top: var(--space-4);
}

@media (max-width: 576px) {
  .hero-actions {
    flex-direction: column;
    width: 100%;
  }
  .hero-actions .btn {
    width: 100%;
    justify-content: center;
  }
}

.hero-image-wrapper {
  position: relative;
  border-radius: var(--radius-2xl);
  overflow: hidden;
  box-shadow: var(--shadow-xl);
  border: 1px solid rgba(255, 255, 255, 0.1);
  aspect-ratio: 4 / 3;
}

.hero-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform var(--transition-slow);
}

.hero-image-wrapper:hover .hero-image {
  transform: scale(1.03);
}


/* ============================================================
   16. BENEFITS SECTION
   ============================================================ */

.benefit-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  height: 100%;
}

.benefit-icon-wrapper {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-xl);
  margin-bottom: var(--space-2);
  background: var(--color-bg-tint-green);
  color: var(--color-brand-primary);
}

.benefit-card.blue-tint .benefit-icon-wrapper {
  background: var(--color-bg-tint-blue);
  color: var(--color-brand-secondary);
}

.benefit-card.orange-tint .benefit-icon-wrapper {
  background: var(--color-bg-tint-orange);
  color: var(--color-brand-accent);
}


/* ============================================================
   17. INTERACTIVE CALCULATOR SECTION
   ============================================================ */

.calculator-container {
  max-width: 960px;
  margin: 0 auto;
}

.calculator-card {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--space-8);
  padding: var(--space-8);
}

@media (max-width: 768px) {
  .calculator-card {
    grid-template-columns: 1fr;
    padding: var(--space-5);
  }
}

.calculator-inputs {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.calculator-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.calculator-group label {
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-text-primary);
}

.calculator-label-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-4);
  margin-bottom: var(--space-2);
}

.calculator-slider-wrap {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

.calculator-slider {
  flex-grow: 1;
  height: 6px;
  border-radius: var(--radius-pill);
  background: var(--neutral-200);
  outline: none;
  -webkit-appearance: none;
  cursor: pointer;
}

.calculator-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--color-brand-primary);
  cursor: pointer;
  transition: transform var(--transition-fast);
  border: 2px solid #fff;
  box-shadow: var(--shadow-sm);
}

.calculator-slider::-webkit-slider-thumb:hover {
  transform: scale(1.2);
  background: var(--color-brand-primary-dark);
}

@media (prefers-color-scheme: dark) {
  .calculator-slider {
    background: var(--neutral-600);
  }
  .calculator-slider::-webkit-slider-thumb {
    border-color: var(--neutral-800);
  }
}

.calculator-value-badge {
  min-width: 80px;
  text-align: right;
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
  font-size: var(--text-lg);
  color: var(--color-brand-primary);
}

.calculator-results {
  background: var(--color-bg-tint-green);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-6);
  border: 1px solid var(--green-200);
}

@media (prefers-color-scheme: dark) {
  .calculator-results {
    border-color: rgba(95, 201, 122, 0.2);
  }
}

.calculator-stat {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.calculator-stat-label {
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
}

.calculator-stat-value {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: var(--weight-bold);
  color: var(--color-brand-primary-dark);
}

@media (prefers-color-scheme: dark) {
  .calculator-stat-value {
    color: var(--green-300);
  }
}


/* ============================================================
   18. ABOUT PAGE - HISTORY & TIMELINE
   ============================================================ */

.about-split {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--space-12);
  align-items: center;
}

@media (max-width: 992px) {
  .about-split {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }
}

.about-history-content {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.about-history-content p {
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

.history-timeline {
  position: relative;
  padding-left: var(--space-8);
  border-left: 2px solid var(--color-border-brand);
  margin-top: var(--space-4);
}

.history-item {
  position: relative;
  margin-bottom: var(--space-8);
}

.history-item:last-child {
  margin-bottom: 0;
}

.history-dot {
  position: absolute;
  left: calc(-1 * var(--space-8) - 7px);
  top: 6px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--color-brand-accent);
  border: 3px solid var(--color-bg-page);
  box-shadow: 0 0 0 2px var(--color-border-brand);
}

@media (prefers-color-scheme: dark) {
  .history-dot {
    border-color: #1B2030;
  }
}

.history-year {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--weight-bold);
  color: var(--color-brand-primary);
  margin-bottom: var(--space-1);
}

.history-title {
  font-weight: var(--weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-1);
}

.history-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
}


/* ============================================================
   19. ABOUT PAGE - TEAM GRID
   ============================================================ */

.team-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  height: 100%;
}

.team-image-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: var(--radius-lg);
  margin-bottom: var(--space-4);
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--color-border-subtle);
}

.team-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}

.team-card:hover .team-image {
  transform: scale(1.05);
}

.team-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.team-name {
  font-family: var(--font-body);
  font-weight: var(--weight-bold);
  font-size: var(--text-lg);
  color: var(--color-text-primary);
}

.team-role {
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  text-transform: uppercase;
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-2);
}

.team-bio {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-normal);
  flex-grow: 1;
}

.team-socials {
  display: flex;
  gap: var(--space-4);
  margin-top: var(--space-4);
}

.team-social-link {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  text-decoration: none;
  transition: color var(--transition-fast);
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
}

.team-social-link:hover {
  color: var(--color-brand-primary);
}


/* ============================================================
   20. CONTACT PAGE LAYOUT & FORMS
   ============================================================ */

.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: var(--space-12);
  align-items: start;
}

@media (max-width: 992px) {
  .contact-layout {
    grid-template-columns: 1fr;
    gap: var(--space-10);
  }
}

.contact-info-block {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.contact-detail-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.contact-detail-item {
  display: flex;
  gap: var(--space-4);
}

.contact-detail-icon {
  font-size: var(--text-xl);
  color: var(--color-brand-primary);
  flex-shrink: 0;
  width: 24px;
  text-align: center;
}

.contact-detail-content h4 {
  font-size: var(--text-base);
  font-weight: var(--weight-semibold);
  margin-bottom: var(--space-1);
  color: var(--color-text-primary);
}

.contact-detail-content p {
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
  line-height: var(--leading-snug);
}

.map-placeholder {
  width: 100%;
  height: 260px;
  background: var(--neutral-100);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-default);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  position: relative;
  overflow: hidden;
  text-align: center;
  padding: var(--space-4);
  gap: var(--space-2);
}

@media (prefers-color-scheme: dark) {
  .map-placeholder {
    background: #171b29;
    border-color: rgba(255, 255, 255, 0.1);
  }
}

.map-glow-dot {
  position: absolute;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--color-brand-accent);
  box-shadow: 0 0 0 4px rgba(232, 122, 26, 0.3), 0 0 20px 10px rgba(232, 122, 26, 0.2);
  top: 45%;
  left: 55%;
  animation: mapPulse 2s infinite;
}

@keyframes mapPulse {
  0% {
    box-shadow: 0 0 0 0px rgba(232, 122, 26, 0.5), 0 0 20px 10px rgba(232, 122, 26, 0.2);
  }
  100% {
    box-shadow: 0 0 0 10px rgba(232, 122, 26, 0), 0 0 20px 10px rgba(232, 122, 26, 0.2);
  }
}

.form-card {
  padding: var(--space-8);
}

@media (max-width: 576px) {
  .form-card {
    padding: var(--space-5);
  }
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-bottom: var(--space-5);
}

.form-group label {
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-text-primary);
}

.form-control {
  font-family: var(--font-body);
  font-size: var(--text-base);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  border: 1.5px solid var(--color-border-default);
  background: var(--color-bg-surface);
  color: var(--color-text-primary);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
  width: 100%;
}

@media (prefers-color-scheme: dark) {
  .form-control {
    border-color: rgba(255, 255, 255, 0.15);
    background: #141824;
  }
}

.form-control:focus {
  outline: none;
  border-color: var(--color-brand-primary);
  box-shadow: 0 0 0 3px rgba(30, 107, 56, 0.15);
}

.form-group.invalid .form-control {
  border-color: var(--color-error);
}

.form-group.invalid .form-control:focus {
  box-shadow: 0 0 0 3px rgba(217, 48, 37, 0.15);
}

.error-message {
  font-size: var(--text-xs);
  color: var(--color-error-text);
  font-weight: var(--weight-semibold);
  display: none;
  margin-top: 2px;
}

.form-group.invalid .error-message {
  display: block;
}


/* ============================================================
   21. FOOTER SECTION
   ============================================================ */

footer {
  background: var(--neutral-900);
  color: var(--color-text-on-dark-muted);
  padding: var(--space-16) var(--space-6) var(--space-8);
  border-top: 4px solid var(--color-brand-primary);
  font-family: var(--font-body);
}

.footer-container {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 0.9fr 0.9fr 1.2fr;
  gap: var(--space-10);
  margin-bottom: var(--space-12);
}

@media (max-width: 992px) {
  .footer-container {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 576px) {
  .footer-container {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }
}

.footer-column {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.footer-logo {
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
  font-size: var(--text-xl);
  color: #fff;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.footer-logo .accent {
  color: var(--orange-400);
}

.footer-logo-icon {
  width: 20px;
  height: 20px;
  fill: var(--orange-400);
}

.footer-column h3 {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-bold);
  color: #fff;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  margin-bottom: var(--space-2);
}

.footer-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.footer-link {
  color: var(--color-text-on-dark-muted);
  text-decoration: none;
  font-size: 14px;
  font-weight: var(--weight-semibold);
  transition: color var(--transition-fast);
}

.footer-link:hover {
  color: #fff;
}

.footer-column p {
  font-size: 14px;
  line-height: var(--leading-normal);
}

.footer-bottom {
  max-width: 1200px;
  margin: 0 auto;
  padding-top: var(--space-8);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--text-xs);
  color: rgba(255, 255, 255, 0.45);
}

.footer-bottom a {
  color: rgba(255, 255, 255, 0.65);
  text-decoration: none;
  font-weight: var(--weight-semibold);
  transition: color var(--transition-fast);
}

.footer-bottom a:hover {
  color: var(--color-brand-accent);
  text-decoration: underline;
}

.footer-bottom-right {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

@media (max-width: 576px) {
  .footer-bottom {
    flex-direction: column;
    gap: var(--space-4);
    text-align: center;
  }
  
  .footer-bottom-right {
    flex-direction: column;
    gap: var(--space-2);
  }
}


/* ============================================================
   22. ANIMATIONS & MICRO-INTERACTIONS
   ============================================================ */

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--transition-slow) cubic-bezier(0.16, 1, 0.3, 1), 
              transform var(--transition-slow) cubic-bezier(0.16, 1, 0.3, 1);
}

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

/* Toast notifications */
.toast-container {
  position: fixed;
  bottom: var(--space-8);
  right: var(--space-8);
  z-index: var(--z-toast);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  max-width: 320px;
}

.toast {
  background: var(--color-success-bg);
  border: 1px solid var(--green-200);
  border-radius: var(--radius-md);
  padding: var(--space-4) var(--space-5);
  color: var(--color-success-text);
  box-shadow: var(--shadow-lg);
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  transform: translateY(100px);
  opacity: 0;
  transition: transform var(--transition-bounce), opacity var(--transition-base);
}

.toast.show {
  transform: translateY(0);
  opacity: 1;
}

.toast-icon {
  font-size: var(--text-md);
  margin-top: 1px;
}

.toast-message {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.toast-title {
  font-weight: var(--weight-bold);
}


/* ============================================================
   23. MOBILE CALL BAR & TABLE & REFINE STYLES (UP UPGRADE)
   ============================================================ */

/* Mobile Call Bar */
.mobile-call-bar {
  display: none;
}

@media (max-width: 768px) {
  footer {
    padding-bottom: calc(var(--space-8) + 56px); /* Avoid overlapping mobile call bar */
  }
  
  .mobile-call-bar {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 56px;
    background: var(--color-brand-accent);
    z-index: var(--z-sticky);
    box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.15);
    border-top: 2px solid rgba(255, 255, 255, 0.2);
  }

  .mobile-call-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #FFFFFF;
    text-decoration: none;
    font-family: var(--font-body);
    font-weight: var(--weight-bold);
    font-size: var(--text-sm);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    transition: background var(--transition-fast);
  }
  
  .mobile-call-btn:hover {
    background: var(--orange-600);
  }
  
  .mobile-call-btn:active {
    background: var(--orange-700);
  }
}

/* Subsidy Table Custom Refinements */
.table-responsive {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.subsidy-table th, 
.subsidy-table td {
  border-bottom: 1.5px solid var(--color-border-default);
  transition: background-color var(--transition-fast);
}

.subsidy-table tbody tr:hover {
  background-color: var(--color-bg-tint-blue) !important;
}

@media (max-width: 576px) {
  .subsidy-table th, 
  .subsidy-table td {
    padding: var(--space-3) var(--space-4) !important;
    font-size: var(--text-sm) !important;
  }
}

/* ============================================================
   24. GLOBAL RESPONSIVE ADJUSTMENTS & FIXES
   ============================================================ */

/* Global Typography Scaling */
@media (max-width: 992px) {
  .heading-display { font-size: var(--text-4xl); }
  .heading-1 { font-size: var(--text-3xl); }
  .heading-2 { font-size: var(--text-2xl); }
  .heading-3 { font-size: var(--text-lg); }
}

@media (max-width: 576px) {
  .heading-display { font-size: var(--text-3xl); }
  .heading-1 { font-size: var(--text-2xl); }
  .heading-2 { font-size: var(--text-xl); }
  .heading-3 { font-size: var(--text-md); }
  
  /* Section Spacing Adjustments */
  .section {
    padding: var(--space-10) var(--space-4);
  }
  .hero-section {
    padding: var(--space-12) var(--space-4) !important;
  }
  
  /* Mobile Card Spacing Optimization */
  .card, 
  [class*="card-tint-"] {
    padding: var(--space-5) !important;
  }
  
  /* Success Toast Mobile Layout */
  .toast-container {
    bottom: var(--space-4);
    left: var(--space-4);
    right: var(--space-4);
    max-width: none;
  }
}

/* Scroll Lock Helper */
body.no-scroll {
  overflow: hidden;
}

/* ============================================================
   END OF FILE
   APWF Solar Energy Unified Stylesheet
   ============================================================ */
