/* =========================================================
   Enventra — Shared site.css
   ========================================================= */

/* ---------- Theme & sizing ---------- */
:root{
  --header-h: 64px;
  --primary-green: #34d399;
  --primary-green-dark: #10b981;

  /* Header (light) */
  --header-bg: #ffffff;
  --header-border: #e5e7eb;
  --header-text: #111111;

  /* H1 (dark body pages) */
  --h1-text: #ffffff;
  --h1-size: 2.5rem;
  --h1-weight: 800;

  /* Body (dark) */
  --body-bg: #1a1a1a;
  --body-text: #f5f5f5;
  --muted: #6b7280;

  /* Card */
  --card-bg: #111827;
  --card-border: #2d2d2d;
}
@media (min-width:640px){ :root{ --header-h: 80px; }}

/* ---------- Base ---------- */
html, body {
  height: 100%;
  margin: 0;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  background: var(--body-bg);
  color: var(--body-text);
}
/* Account for fixed header on all pages */
#root, main { padding-top: calc(var(--header-h) + 20px); }

/* ---------- Header ---------- */
.site-header {
  position: fixed; top: 0; left: 0; right: 0;
  height: var(--header-h, 64px);
  background: #ffffff;
  border-bottom: 1px solid #e5e7eb;
  color: #111827;
  z-index: 50;
}
.site-header .container { max-width: 1200px; margin: 0 auto; padding: 0 1rem; }
.site-header .row {
  height: var(--header-h, 64px);
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.brand{ display: flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--header-text); }
.brand img{ height: 60px; width: auto; }
.brand .title{ font-weight: 600; font-size: 1.125rem; color: var(--header-text); }
.brand .tagline{ font-size: .875rem; color: var(--muted); }

/* Nav */
.primary-nav{ display: flex; align-items: center; gap: 1rem; flex-wrap: nowrap; }
nav a{ margin: 0; color: var(--header-text); text-decoration: none; }
nav a:hover{ color: #34d399; }
nav a.cta{
  padding: .5rem .9rem; border-radius: 9999px;
  background: #34d399; color: #0b1111;
}
nav a.cta:hover{ background: var(--primary-green-dark); color: #0b1111; }

/* ---------- Hamburger (mobile) ---------- */
.nav-toggle{
  all: unset;
  display: none; 
  align-items: center; 
  justify-content: center;
  height: 38px;  
  width: 42px; 
  cursor: pointer;
  border: 1px solid var(--header-border); 
  border-radius: 10px; 
  background: var(--header-bg);
}
.nav-toggle .bar{ display: block; height: 2px; width: 20px; background: #111827; margin: 3px 0;
  transition: transform .2s ease, opacity .2s ease; }

@media (max-width: 768px){
  .brand img{ height: 24px; }
  .brand .title{ color: var(--header-text); font-weight: 700; }
  .brand .tagline{ color: var(--muted); }

  .nav-toggle{ display: inline-flex; }
  .primary-nav{ display: none; }

  .site-header.open .primary-nav{
    display: flex; flex-direction: column; gap: .25rem;
    position: absolute; top: var(--header-h); left: 0; right: 0;
    padding: .75rem 1rem 1rem; background: var(--header-bg);
    border-bottom: 1px solid var(--header-border);
    box-shadow: 0 8px 16px rgba(0,0,0,.2);
  }
  .site-header.open .primary-nav a{ margin-left: 0; padding: .5rem 0; color: var(--header-text); }
  .site-header.open .primary-nav a.cta{ align-self: flex-start; padding: .5rem .9rem; border-radius: 9999px; }

  .site-header.open .nav-toggle .bar:nth-child(1){ transform: translateY(3px) rotate(45deg); }
  .site-header.open .nav-toggle .bar:nth-child(2){ opacity: 0; }
  .site-header.open .nav-toggle .bar:nth-child(3){ transform: translateY(-3px) rotate(-45deg); }
}

/* ---------- Home page — Five Pillars grid ---------- */
.content-grid{
  display: grid; gap: 1rem; max-width: 90rem; margin: 1rem auto; padding: 0 1rem;
  grid-template-columns: 1fr;
}
@media (min-width:640px){  .content-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width:768px){  .content-grid{ grid-template-columns: repeat(3, 1fr); } }
@media (min-width:1024px){ .content-grid{ grid-template-columns: repeat(4, 1fr); } }
@media (min-width:1280px){ .content-grid{ grid-template-columns: repeat(5, 1fr); } }

.content-grid > div{
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  padding: 1rem; border-radius: .75rem;
}
.content-grid h2{
  font-weight: 700;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  line-height: 1.25; letter-spacing: -0.01em;
  margin: 1rem 0 .75rem; color: #f8fafc;
}

/* Utilities */
a.inline{ color: var(--primary-green); text-decoration: underline; }
ul{ padding-left: 1.25rem; }

/* --- Ensure main content starts below fixed header --- */
#root, main { padding-top: calc(var(--header-h) + 1.5rem); }

/* --- H1s visible and styled (for dark body pages) --- */
h1, h1.page-title{
  display: block;
  margin: 0 0 1.25rem;
  padding-top: calc(var(--header-h) + 2rem);
  font-family: inherit;
  font-size: var(--h1-size, 2.5rem);
  font-weight: var(--h1-weight, 800);
  line-height: 1.2;
  text-align: center;
  color: var(--h1-text, #ffffff);
}

/* ------------------------
   Team page
   ------------------------ */
.team-grid{
  display: grid; gap: 2rem; grid-template-columns: 1fr;
}
@media (min-width: 900px){ .team-grid{ grid-template-columns: 1fr 1fr; } }

.member{
  display: flex; flex-direction: column; align-items: center;
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 12px; padding: 1.25rem;
  box-shadow: 0 2px 10px rgba(0,0,0,.25);
}
.member img{
  width: clamp(180px, 22vw, 260px); aspect-ratio: 4/5; object-fit: cover;
  border-radius: 10px; margin-bottom: 1rem; box-shadow: 0 2px 8px rgba(0,0,0,.22);
}
.member h2{
  margin: 0.35rem 0 0.25rem; font-size: 1.25rem; font-weight: 700;
  color: var(--primary-green); text-align: center;
}
.member strong{
  display: block; margin-bottom: 0.75rem; font-weight: 600;
  color: var(--body-text); text-align: center;
}
.member p{
  line-height: 1.6; color: var(--body-text); text-align: left; max-width: 60ch;
}

/* Generic main wrapper for content pages */
main { max-width: 90rem; margin: 0 auto; padding: 0 1rem 3rem; }

/* ------------------------
   Global footer
   ------------------------ */
.site-footer{
  background: #1a1a1a; color: var(--muted);
  padding: 2rem 1rem; text-align: center;
  border-top: 1px solid #2d2d2d;
}
.site-footer .container{ max-width: 1200px; margin: 0 auto; }
.site-footer p{ margin: 0.5rem 0; font-size: 0.95rem; }
.site-footer a{ color: var(--primary-green); text-decoration: none; }
.site-footer a:hover{ text-decoration: underline; }
.site-footer a:visited{ color: var(--primary-green); }
.site-footer a:focus,
.site-footer a:hover{ color: var(--primary-green-dark); }

/* --- Link colors (scoped so header/brand stays black) --- */
main a, .site-footer a{ color: var(--primary-green); text-decoration: none; }
main a:visited, .site-footer a:visited{ color: var(--primary-green); }
main a:hover, main a:focus,
.site-footer a:hover, .site-footer a:focus{
  color: var(--primary-green-dark); text-decoration: underline;
}

/* ------------------------
   Contact page
   ------------------------ */
main.contact{
  padding-top: calc(var(--header-h) + 4rem);
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 3rem;
}
@media (max-width: 800px){ main.contact{ grid-template-columns: 1fr; } }

.info{ font-size: 1.1rem; line-height: 1.7; }
.info h2{
  font-size: 1.75rem; margin-bottom: 1rem;
  color: var(--h1-text, #ffffff); font-weight: 700;
}
.info-item{ margin-bottom: 1.25rem; }

form{ display: flex; flex-direction: column; gap: 1rem; text-align: left; }
label{ font-size: 0.95rem; margin-bottom: 0.25rem; }
input, textarea{
  width: 100%; padding: 0.75rem; border-radius: 6px; border: 1px solid #333;
  font-size: 1rem; background: #000; color: #fff;
}
input::placeholder, textarea::placeholder{ color: #aaa; font-style: italic; }
input:focus, textarea:focus{ outline: 2px solid var(--primary-green); background: #111; }

button{
  background: var(--primary-green); color: #0b1111; border: none;
  padding: 0.75rem 1.5rem; border-radius: 6px; font-size: 1rem;
  cursor: pointer; transition: background 0.3s;
}
button:hover{ background: var(--primary-green-dark); }

.socials{ margin-top: 2rem; display: flex; gap: 1.5rem; }
.socials a svg{ height: 24px; width: 24px; color: var(--muted); transition: color 0.3s; }
.socials a:hover svg{ color: var(--primary-green); }


/* --- Fix hamburger icon layout --- */
.nav-toggle{
  /* keep your other styles, but ensure a vertical stack */

  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;          /* space between the bars */
  height: 38px !important;
  width: 42px !important;
  padding: 6px !important;      /* some breathing room */
  border: 1px solid var(--header-border) !important;
  border-radius: 10px !important;
  background: var(--header-bg) !important;
}

.nav-toggle .bar{
  display: block !important;
  width: 22px !important;
  height: 2px !important;
  background: #111111 !important;  /* visible on white header */
  border-radius: 2px !important;
  transition: transform .25s ease, opacity .25s ease !important;
}

/* Index: make the SEO H1 clear the fixed header */
#seo-h1 {
  padding-top: calc(var(--header-h) + 1.5rem);
}

/* keep spacing tidy and visible */
#seo-h1 h1 {
  margin: 0 0 1rem;
  /* optional: ensure strong, readable size */
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  color: var(--h1-text, #ffffff);
}

/* Desktop: show nav, hide hamburger */
@media (min-width: 769px) {
  .primary-nav { display: flex; }
  .nav-toggle { display: none; }
}

/* Mobile: hide nav, show hamburger */
@media (max-width: 768px) {
  .primary-nav { display: none; }
  .nav-toggle { display: inline-flex; }
}
:where(ul, ol) > li{
  color: #ffffff !important;   /* white text */
  font-weight: 500;
}

:where(ul, ol) > li::marker{
  color: var(--primary-green) !important; /* emerald bullet */
}

/* Links inside list items */
:where(ul, ol) > li a{
  color: #ffffff !important;
  text-decoration-color: var(--primary-green);
}
:where(ul, ol) > li a:hover{
  color: var(--primary-green) !important;
}


/* --- Let components (Tailwind) control list colors --- */
:where(ul, ol) > li { color: inherit !important; }
:where(ul, ol) > li::marker { color: inherit; }

/* Opt-in helper for green bullets where desired */
.emerald-markers li::marker { color: var(--primary-green); }

/* Reusable style for external-links sections */
.externals a{
  color: var(--primary-green) !important;          /* light green by default */
  text-decoration: none;
}
.externals a:visited{
  color: var(--primary-green) !important;
}
.externals a:hover,
.externals a:focus{
  color: var(--primary-green-dark) !important;     /* darker on hover */
  text-decoration: underline;
}

