 /* =========================================================
           GLOBAL VARIABLES
        ========================================================= */
 :root {
     --primary: #103f50;
     --primary-dark: #073447;
     --primary-light: #174f62;

     --accent: #f5d35c;
     --accent-dark: #efc947;

     --orange: #ef5a28;

     --cream: #f8f1df;
     --white: #ffffff;
     --black: #111111;
     --text: #174c5e;
     --muted: #5f737a;

     --border: #103f5040;
     --text-on-dark: #cfe0e6;
     --font-display: Georgia, serif;
     --font-body: Arial, Helvetica, sans-serif;

     --container-width: 1300px;
     --section-space: clamp(3rem, 8vw, 5rem);

     --radius: 0;
     --transition: .3s ease;
 }


 /* =========================================================
           BASE
        ========================================================= */
 * {
     box-sizing: border-box;
 }

 html {
     scroll-behavior: smooth;
 }

 body {
     margin: 0;
     font-family: var(--font-body);
     color: var(--text);
     background: var(--cream);
     line-height: 1.5;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
 }

 img {
     /* max-width: 100%; */
     display: block;
 }

 .me-2 {
     margin-right: .5rem !important;
 }

 a {
     color: inherit;
     text-decoration: none;
 }

 .section {
     padding-top: var(--section-space);
     padding-bottom: var(--section-space);
 }

 .section-sm {
     padding-top: clamp(3rem, 5vw, 5rem);
     padding-bottom: clamp(3rem, 5vw, 5rem);
 }

 .container-custom {
     width: min(100% - 3rem, var(--container-width));
     margin-inline: auto;
 }

 .overflow-hidden {
     overflow: hidden;
 }

 .btn-theme {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: .8rem;
     cursor: pointer;
     min-height: 62px;
     padding: .9rem 2rem;

     border: 1px solid var(--white);
     border-radius: 0;

     font-size: .9rem;
     font-weight: 700;
     letter-spacing: .08em;
     text-transform: uppercase;

     color: var(--white);
     background: transparent;

     transition:
         background var(--transition),
         color var(--transition),
         border-color var(--transition),
         transform var(--transition);
 }

 .btn-theme:hover {
     color: var(--primary);
     background: var(--white);
     border-color: var(--white);
     transform: translateY(-2px);
 }

 /* =========================================================
           HEADER
        ========================================================= */
 .site-header {
     position: sticky;
     top: 0;
     left: 0;
     width: 100%;
     z-index: 1000;
     padding: 1rem 0;
     background: var(--primary);
 }

 .header-inner {
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
 }

 .brand {
     display: inline-flex;
     align-items: center;
     gap: .55rem;
     color: var(--white);
 }

 .brand-icon {
     width: 42px;
     height: 42px;
     display: grid;
     place-items: center;
     font-size: 2rem;
     line-height: 1;
 }

 .brand-name {
     font-family: var(--font-display);
     font-size: clamp(1.7rem, 2vw, 2.35rem);
     font-weight: 600;
     line-height: 1;
     letter-spacing: -.01em;
 }



 .main-nav {
     display: flex;
     align-items: center;
     gap: clamp(1.8rem, 3vw, 3.5rem);
     padding-top: .5rem;
 }

 .main-nav a {
     position: relative;
     color: var(--white);
     font-size: 1rem;
     font-weight: 700;
     transition: color var(--transition);
 }

 .main-nav a:hover,
 .main-nav a.active {
     color: var(--accent);
 }

 .main-nav a.active::after {
     content: "";
     position: absolute;
     left: 0;
     right: 0;
     bottom: -.7rem;
     height: 2px;
     background: var(--accent);
 }

 .menu-toggle {
     display: none;
     border: 0;
     background: transparent;
     color: var(--white);
     font-size: 1.8rem;
 }


 /* =========================================================
           SIMPLE CONTENT SECTION
           Reusable for future sections
        ========================================================= */
 .dark-section {
     background: #04212c;
     color: var(--white);
 }

 .dark-section .section-label {
     color: var(--white);
 }

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

 .content-width {
     max-width: 850px;
 }

 /* =========================================================
           FOOTER
        ========================================================= */
 .site-footer {
     padding-top: 1.2rem;
     padding-bottom: 1rem;
 }



 .footer-bottom {
     text-align: center;
     font-size: .88rem;
     color: var(--text-on-dark);
 }


 /* =========================================================
           RESPONSIVE
        ========================================================= */
 @media (max-width: 991.98px) {

     .site-header {
         padding: 1.5rem 0;
     }

     .main-nav {
         display: none;
     }

     .menu-toggle {
         display: block;
         margin-top: -5px;
     }
 }


 @media (max-width: 767.98px) {

     .container-custom {
         width: min(100% - 2rem, var(--container-width));
     }

     .site-header {
         padding: 1.2rem 0;
     }

     .brand-name {
         font-size: 1.5rem;
     }

     .brand-icon {
         width: 34px;
         height: 34px;
         font-size: 1.5rem;
         margin-right: 5px;
     }
 }


 @media (max-width: 575.98px) {
     .btn-theme {
         min-height: 54px;
         padding-inline: 1.3rem;
     }
 }


 /* =========================================================
   LANDING / DETAIL PAGE (job-style posting layout)
========================================================= */
 .job-hero {
     background: var(--cream);
     padding: clamp(2.5rem, 5vw, 4rem) 0 0;
 }

 .job-hero-card {
     background: var(--white);
     border: 1px solid var(--border);
     box-shadow: 0 24px 48px rgba(16, 63, 80, .08);
     padding: clamp(2rem, 4vw, 3rem);
 }

 .job-logo {
     display: grid;
     place-items: center;
     width: 120px;
     height: 120px;
     margin: 0 auto 1rem;
     border-radius: 50%;
     background: rgba(16, 63, 80, .06);
     border: 1px solid var(--border);
     font-family: var(--font-display);
     font-weight: 600;
     font-size: 1.7rem;
     color: var(--primary);
 }

 .job-title {
     font-size: clamp(1.6rem, 2.6vw, 2.2rem);
     color: var(--primary);
 }

 .job-meta {
     margin: 0 0 .4rem;
     font-size: .98rem;
     color: var(--text);
 }

 .job-meta b {
     color: var(--primary);
 }

 .job-body {
     background: var(--white);
     border: 1px solid var(--border);
     border-top: none;
     padding: clamp(2rem, 4vw, 3rem);
 }

 .job-body h2 {
     font-family: var(--font-display);
     font-size: 1.5rem;
     font-weight: 600;
     color: var(--primary);
     margin: 0 0 1rem;
 }

 .job-body h4 {
     font-family: var(--font-display);
     font-size: 1.2rem;
     font-weight: 600;
     color: var(--primary);
     margin: 1.75rem 0 1rem;
 }

 .job-body p {
     color: var(--text);
     margin-bottom: 1.25rem;
 }

 .job-body ul {
     margin: 0 0 1.25rem;
     padding-left: 1.3rem;
 }

 .job-body ul li {
     margin-bottom: .2rem;
     color: var(--text);
 }

 .keywords-card {
     background: var(--white);
     border: 1px solid var(--border);
 }

 .keywords-heading {
     padding: 1.1rem 1.5rem 0;
     font-family: var(--font-display);
     font-size: 1.15rem;
     font-weight: 600;
     color: var(--primary);
 }

 .genz-tags {
     display: inline-block;
     margin: 0 .5rem .75rem 0;
     padding: .5rem 1.1rem;
     font-size: .82rem;
     font-weight: 700;
     letter-spacing: .04em;
     color: var(--primary);
     background: rgba(16, 63, 80, .06);
     border: 1px solid var(--border);
     transition: var(--transition);
 }

 .genz-tags:hover {
     color: var(--white);
     background: var(--primary);
     border-color: var(--primary);
 }


 /* =========================================================
   LIGHTWEIGHT GRID SYSTEM (replaces Bootstrap grid)
   Mobile-first: base = full width, then md (>=768px),
   then lg (>=992px) breakpoints, matching Bootstrap's
   col-md-* / col-lg-* behavior.
========================================================= */
 .row {
     display: grid;
     grid-template-columns: repeat(12, 1fr);
     gap: 1.5rem;
     margin: 0;
     padding: 0;
     list-style: none;
 }

 .row.g-3 {
     gap: 1rem;
 }

 .row.g-4 {
     gap: 1.5rem;
 }

 .row.gy-3 {
     row-gap: 1rem;
 }

 .row>* {
     grid-column: span 12;
     min-width: 0;
 }

 .col-12 {
     grid-column: span 12;
 }

 @media (min-width: 768px) {
     .col-md-1 {
         grid-column: span 1;
     }

     .col-md-2 {
         grid-column: span 2;
     }

     .col-md-3 {
         grid-column: span 3;
     }

     .col-md-4 {
         grid-column: span 4;
     }

     .col-md-5 {
         grid-column: span 5;
     }

     .col-md-6 {
         grid-column: span 6;
     }

     .col-md-7 {
         grid-column: span 7;
     }

     .col-md-8 {
         grid-column: span 8;
     }

     .col-md-9 {
         grid-column: span 9;
     }

     .col-md-10 {
         grid-column: span 10;
     }

     .col-md-11 {
         grid-column: span 11;
     }

     .col-md-12 {
         grid-column: span 12;
     }
 }

 @media (min-width: 992px) {
     .col-lg-1 {
         grid-column: span 1;
     }

     .col-lg-2 {
         grid-column: span 2;
     }

     .col-lg-3 {
         grid-column: span 3;
     }

     .col-lg-4 {
         grid-column: span 4;
     }

     .col-lg-5 {
         grid-column: span 5;
     }

     .col-lg-6 {
         grid-column: span 6;
     }

     .col-lg-7 {
         grid-column: span 7;
     }

     .col-lg-8 {
         grid-column: span 8;
     }

     .col-lg-9 {
         grid-column: span 9;
     }

     .col-lg-10 {
         grid-column: span 10;
     }

     .col-lg-11 {
         grid-column: span 11;
     }

     .col-lg-12 {
         grid-column: span 12;
     }
 }


 /* =========================================================
   UTILITY CLASSES (replaces Bootstrap utilities actually
   used across the site)
========================================================= */
 .d-flex {
     display: flex;
 }

 .d-block {
     display: block;
 }

 .d-inline-block {
     display: inline-block;
 }

 .justify-content-center {
     justify-content: center;
 }

 .justify-content-start {
     justify-content: flex-start;
 }

 .justify-content-end {
     justify-content: flex-end;
 }

 .align-items-center {
     align-items: center;
 }

 @media (min-width: 768px) {
     .justify-content-md-end {
         justify-content: flex-end;
     }
 }

 .text-center {
     text-align: center;
 }

 .mx-auto {
     margin-left: auto;
     margin-right: auto;
 }

 .mb-0 {
     margin-bottom: 0;
 }

 .mb-1 {
     margin-bottom: .35rem;
 }

 .mb-2 {
     margin-bottom: .7rem;
 }

 .mb-3 {
     margin-bottom: 1.1rem;
 }

 .mb-4 {
     margin-bottom: 1.6rem;
 }

 .mt-3 {
     margin-top: 1.1rem;
 }

 .mt-4 {
     margin-top: 1.6rem;
 }

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

 .p-3 {
     padding: 1.1rem;
 }

 .p-4 {
     padding: 1.6rem;
 }

 .py-1 {
     padding-top: .35rem;
     padding-bottom: .35rem;
 }

 .h-100 {
     height: 100%;
 }

 .w-100 {
     width: 100%;
 }

 .fw-bold {
     font-weight: 700;
 }

 .fs-5 {
     font-size: 1.1rem;
 }

 p.h5,
 .h5 {
     font-family: var(--font-display);
     font-size: 1.25rem;
     font-weight: 600;
     line-height: 1.3;
     margin: 0;
 }

 .img-fluid {
     max-width: 100%;
     height: auto;
 }

 .sticky-top {
     position: sticky;
     top: 0;
     z-index: 1000;
 }


 /* =========================================================
   MOBILE NAVIGATION (pure CSS + tiny JS toggle)
========================================================= */
 .site-header {
     position: sticky;
 }

 .menu-toggle {
     display: none;
     width: 44px;
     height: 44px;
     border: 0;
     background: transparent;
     color: var(--white);
     font-size: 1.6rem;
     line-height: 1;
     cursor: pointer;
 }

 @media (max-width: 991.98px) {

     .main-nav {
         display: none;
         position: absolute;
         top: 100%;
         left: 0;
         width: 100%;
         flex-direction: column;
         align-items: stretch;
         gap: 0;
         padding: .5rem 1.5rem 1.75rem;
         background: var(--primary-dark);
         box-shadow: 0 24px 48px rgba(4, 33, 44, .35);
     }

     .main-nav.nav-open {
         display: flex;
     }

     .main-nav a {
         padding: .95rem 0;
         border-bottom: 1px solid rgba(255, 255, 255, .12);
         font-size: 1.05rem;
     }

     .main-nav a.active::after {
         display: none;
     }

     .menu-toggle {
         display: block;
         margin-top: -5px;
     }
 }

 .d-block {
     display: block !important
 }

 .d-none {
     display: none !important
 }

 @media (min-width:993px) {
     .d-lg-none {
         display: none !important
     }

     .d-lg-block {
         display: block !important
     }
 }