/* =========================
   BRAND VARIABLES
========================= */
:root{
  --green:#52C117;
  --dark:#324E22;
  --accent:#004F6F;
  --light:#F5FCE2;
  --cream:#F3F8EF;
  --white:#FFFFFF;
  --text:#2F3326;

  --radius:14px;
  --radius-sm:10px;
  --shadow-soft:0 6px 18px rgba(0,0,0,.06);
  --shadow:0 12px 30px rgba(0,0,0,.08);
  --max:1120px;
}

/* =========================
   RESET / BASE
========================= */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
  background:var(--light);
  color:var(--text);
  line-height:1.5;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:var(--green)}
a:hover{color:#3fa313}

/* =========================
   LAYOUT HELPERS
========================= */
.container{
  width:min(var(--max),calc(100% - 40px));
  margin:0 auto;
}
.section{padding:64px 0}
.bg-light{background:var(--light)}
.bg-cream{background:var(--cream)}
.bg-white{background:var(--white)}
.bg-dark{background:var(--dark);color:#fff}

/* =========================
   TYPOGRAPHY
========================= */
h1,h2,h3{
  margin:0 0 10px 0;
  letter-spacing:-.02em;
}
h1{font-size:clamp(34px,4vw,52px);color:var(--dark)}
h2{font-size:clamp(26px,3vw,36px);color:var(--dark)}
h3{font-size:20px;color:var(--green)}
p{margin:0 0 12px 0}
.lede{font-size:18px;max-width:70ch}
.kicker{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  color:rgba(50,78,34,.65);
  margin-bottom:10px;
}

/* =========================
   HEADER / NAV
========================= */
.site-header{
  background:var(--white);
  border-bottom:1px solid rgba(0,0,0,.08);
  position:sticky;
  top:0;
  z-index:100;
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 0;
  gap:16px;
}
.brand-logo{
  width:100px;
  max-height:42px;
  object-fit:contain;
}
.nav-links{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}
.nav-links a{
  font-weight:800;
  color:var(--dark);
  padding:8px 12px;
  border-radius:999px;
}
.nav-links a:hover{
  background:rgba(82,193,23,.12);
}
.nav-cta{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

/* =========================
   BUTTONS
========================= */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 18px;
  font-weight:900;
  border-radius:999px;
  border:2px solid transparent;
  cursor:pointer;
}
.btn-primary{
  background:var(--green);
  color:#fff;
  box-shadow:0 8px 16px rgba(82,193,23,.25);
}
.btn-secondary{
  border-color:var(--green);
  color:var(--green);
}
.btn-dark{
  background:var(--dark);
  color:#fff;
}

/* =========================
   GRID / CARDS
========================= */
.grid{display:grid;gap:22px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:920px){
  .grid-2,.grid-3{grid-template-columns:1fr}
}

.card{
  background:var(--white);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:var(--shadow-soft);
  border:1px solid rgba(0,0,0,.08);
  transition:.15s ease;
}
.card:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow);
}

.card-tint{
  background:rgba(82,193,23,.06);
  border-color:rgba(82,193,23,.25);
}

.card-link{
  display:inline-flex;
  gap:8px;
  font-weight:900;
  margin-top:10px;
}
.card-link::after{
  c
/* =========================
   TEAM PAGE TWEAKS: 50/50 + PORTRAIT HERO PHOTO
========================= */

/* 1) Make the two columns closer to 50/50 */
.team-layout{
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
}

/* 2) Make Jason photo portrait-style (taller, less wide-feeling) */
.team-feature-photo{
  height: 720px !important;             /* portrait feel */
  aspect-ratio: 3 / 4 !important;       /* keeps portrait proportion when possible */
}

/* Ensure the images always fill the frame cleanly */
.team-feature-photo .swap-primary,
.team-feature-photo .swap-secondary{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: 50% 20% !important;  /* slightly bias to keep head/face visible */
  display: block !important;
}

/* If the OUTSIDE photo needs a different crop, uncomment this:
.swap-secondary{ object-position: 50% 35% !important; }
*/

/* Optional: reduce the inner padding so the photo feels bigger within the card */
.team-feature{
  padding: 16px !important;
}

/* Mobile: keep it tidy */
@media (max-width: 520px){
  .team-feature-photo{
    height: 360px !important;
    aspect-ratio: auto !important;
  }
}
/* ===== TEAM: FORCE JASON PHOTO PORTRAIT (unbreakable) ===== */

/* Keep 50/50 columns */
.team-layout{
  grid-template-columns: 1fr 1fr !important;
}

/* Make the photo area portrait by limiting width + using aspect-ratio */
.team-feature-photo{
  width: min(420px, 100%) !important;   /* stops it becoming a wide banner */
  aspect-ratio: 3 / 4 !important;       /* portrait frame */
  height: auto !important;              /* let aspect-ratio drive height */
  margin: 0 auto !important;            /* center the portrait frame */
  position: relative !important;
  overflow: hidden !important;
  border-radius: 14px !important;
}

/* Ensure swap images fill the portrait frame */
.team-feature-photo .swap-primary,
.team-feature-photo .swap-secondary{
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: 50% 20% !important;  /* bias upward for faces */
  display: block !important;
}

/* Keep the hint visible */
.team-feature-photo .swap-hint{
  z-index: 3 !important;
}

/* On mobile, use full width but keep portrait feel */
@media (max-width: 920px){
  .team-feature-photo{
    width: 100% !important;
    aspect-ratio: 4 / 5 !important;     /* slightly less tall on phones */
  }
}

