/* =========================================================
   Components: Hero, Marquee, Cards, Layer stack, Team grid...
   ========================================================= */

/* ---- Hero slider ---- */
.hero{
  position:relative;
  min-height:560px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:#833ca3;
}
.hero-slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity 1s var(--ease);
}
.hero-slide.is-active{ opacity:1; }
.hero-slide::after{
  content:"";
  position:absolute; inset:0;
  background:rgba(0,0,0,.5);
}
.hero-inner{
  position:relative;
  z-index:2;
  max-width:var(--container-wide);
  margin:0 auto;
  padding:150px 24px 90px;
  width:100%;
}
.hero-content{ max-width:760px; }
.hero-tag{
  display:inline-flex;
  padding:12px 28px;
  border:1px solid rgba(255,255,255,.3);
  border-radius:50px;
  color:var(--mint-bright);
  font-family:var(--font-label);
  font-size:11px;
  font-weight:600;
  letter-spacing:2px;
  margin-bottom:28px;
}
.hero-title{
  font-family:var(--font-heading);
  font-size:clamp(34px,5.5vw,64px);
  line-height:1.05;
  font-weight:700;
  color:#fff;
  margin:0 0 26px;
}
.hero-title em, .hero-title span.accent{
  font-family:var(--font-accent);
  color:var(--mint-bright);
  font-style:italic;
  font-weight:400;
}
.hero-description{
  max-width:680px;
  font-size:17px;
  line-height:1.8;
  color:rgba(255,255,255,.85);
  margin:0 0 40px;
}
.hero-buttons{ display:flex; gap:18px; flex-wrap:wrap; }

.hero-dots{
  position:absolute;
  right:40px;
  bottom:30px;
  z-index:3;
  display:flex;
  gap:10px;
}
.hero-dots button{
  width:11px; height:11px;
  border-radius:50%;
  background:rgba(255,255,255,.45);
  border:none;
  padding:0;
  transition:background .25s, transform .25s;
}
.hero-dots button.is-active{ background:#fff; transform:scale(1.15); }

@media (max-width:768px){
  .hero-inner{ padding:120px 20px 60px; }
  .hero{ min-height:480px; }
  .hero-dots{ right:20px; bottom:18px; }
}

/* ---- Trusted logos marquee (verbatim from source site) ---- */
.trusted-marquee{
  display:flex;
  align-items:center;
  padding:18px 0;
  background:#fff;
  overflow:hidden;
}
.trusted-title{
  flex-shrink:0;
  padding:0 40px;
  font-family:var(--font-label);
  font-size:10px;
  font-weight:700;
  letter-spacing:2px;
  color:#50616d;
  text-transform:uppercase;
}
.trusted-slider{ overflow:hidden; width:100%; }
.trusted-track{
  display:flex;
  width:max-content;
  animation:trusted-scroll 25s linear infinite;
}
.trusted-track span{
  position:relative;
  white-space:nowrap;
  padding:0 40px;
  font-family:var(--font-body);
  font-size:13px;
  font-weight:600;
  color:#5b6770;
}
.trusted-track span::before{
  content:"•";
  color:#18a56c;
  font-size:15px;
  margin-right:12px;
}
.trusted-track span:not(:last-child)::after{
  content:"";
  position:absolute;
  right:0; top:50%;
  transform:translateY(-50%);
  width:1px; height:28px;
  background:#ddd;
}
@keyframes trusted-scroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
.trusted-slider:hover .trusted-track{ animation-play-state:paused; }
@media (max-width:767px){
  .trusted-title{ display:none; }
  .trusted-track span{ font-size:14px; padding:0 25px; }
}

/* ---- Stat / icon-box strip ---- */
.stat-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
.stat-item{
  padding:24px 36px;
  border-right:1px solid rgba(255,255,255,.07);
}
.stat-item:last-child{ border-right:none; }
.stat-value{
  font-family:var(--font-label);
  font-size:26px;
  font-weight:800;
  letter-spacing:1px;
  color:var(--mint);
  margin:0 0 6px;
}
.stat-label{
  font-family:var(--font-label);
  font-size:11px;
  font-weight:400;
  letter-spacing:1px;
  color:rgba(255,255,255,.4);
  margin:0;
}
@media (max-width:820px){
  .stat-strip{ grid-template-columns:repeat(2,1fr); }
  .stat-item{ border-right:none; border-bottom:1px solid rgba(255,255,255,.07); padding:20px; }
}

/* ---- Ecosystem / image cards (Solutions, Home) ---- */
.eco-card{
  background:#fff;
  border:1px solid rgba(28,37,38,.1);
  border-radius:var(--radius-md);
  overflow:hidden;
  border-bottom:2px solid transparent;
  transition:border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
}
.eco-card:hover{
  border-bottom-color:var(--green-800);
  transform:translateY(-6px);
  box-shadow:var(--shadow-card);
}
.eco-card-img{ aspect-ratio:4/3; overflow:hidden; }
.eco-card-img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.eco-card:hover .eco-card-img img{ transform:scale(1.06); }
.eco-card-body{ padding:20px; position:relative; }
.eco-card-body h3{
  font-family:var(--font-label);
  font-size:16px;
  font-weight:700;
  color:#000;
  margin:0 0 6px;
}
.eco-card-body p{
  font-family:var(--font-label);
  font-size:12.5px;
  color:var(--text-body);
  margin:0 0 18px;
  line-height:1.6;
}

/* ---- Icon feature grid (Platform data-sources) ---- */
.icon-feature{
  text-align:center;
  padding:28px 16px;
}
.icon-feature img{
  width:64px; height:64px;
  margin:0 auto 18px;
  object-fit:contain;
}
.icon-feature h3{
  font-family:var(--font-label);
  font-size:14px;
  font-weight:700;
  color:var(--ink);
}
.sec-dark .icon-feature h3, .sec-darker .icon-feature h3{ color:#fff; }

/* ---- Capability grid (Monitoring / Interpretation / etc.) ---- */
.cap-card{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius-md);
  padding:30px 26px;
  transition:transform .3s var(--ease), background .3s var(--ease);
}
.cap-card:hover{ transform:translateY(-6px); background:rgba(255,255,255,.06); }
.cap-card h3{
  font-family:var(--font-heading);
  font-size:18px;
  font-weight:700;
  color:#fff;
  margin-bottom:10px;
}
.cap-card p{
  font-size:13.5px;
  color:rgba(255,255,255,.55);
  line-height:1.7;
  margin:0;
}

/* ---- Layer stack (Platform page — verbatim custom CSS from source) ---- */
.layer-stack{ max-width:1200px; margin:0 auto; }
.layer-card{
  position:relative;
  display:flex;
  align-items:stretch;
  background:#1a2324;
  border:1px solid rgba(255,255,255,.06);
  border-radius:28px;
  overflow:hidden;
  margin-bottom:14px;
  transition:all .35s ease;
}
.layer-card:hover{
  transform:translateX(10px);
  box-shadow:0 15px 40px rgba(0,0,0,.25);
}
.layer-number{
  width:70px;
  min-width:70px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#6c757d;
  font-family:var(--font-label);
  font-size:20px;
  font-weight:700;
  border-right:1px solid rgba(255,255,255,.08);
  transition:color .3s;
}
.layer-card:hover .layer-number{ color:#fff; }
.layer-content{
  flex:1;
  padding:22px 28px;
  transition:padding .35s ease;
}
.layer-card:hover .layer-content{ padding-left:40px; }
.layer-tag{
  font-family:var(--font-label);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:6px;
}
.layer-content h3{
  font-family:var(--font-heading);
  font-size:19px;
  font-weight:700;
  color:#fff;
  margin-bottom:6px;
}
.layer-content p{
  font-size:13.5px;
  color:rgba(255,255,255,.45);
  line-height:1.7;
  margin:0;
}
.layer-card::after{
  content:"";
  position:absolute;
  top:18px; right:0;
  width:6px;
  height:calc(100% - 36px);
  border-radius:20px 0 0 20px;
}
.layer-green .layer-tag{ color:#55e3c0; }
.layer-green::after{ background:#55e3c0; }
.layer-blue .layer-tag{ color:#3f8cff; }
.layer-blue::after{ background:#3f8cff; }
.layer-orange .layer-tag{ color:#d58b18; }
.layer-orange::after{ background:#d58b18; }
.layer-purple .layer-tag{ color:#b05cff; }
.layer-purple::after{ background:#b05cff; }
.layer-teal .layer-tag{ color:#55e3c0; }
.layer-teal::after{ background:#55e3c0; }

@media (max-width:700px){
  .layer-card{ flex-direction:column; }
  .layer-number{ width:100%; padding:14px 0; border-right:none; border-bottom:1px solid rgba(255,255,255,.08); }
  .layer-card:hover{ transform:translateY(-4px); }
  .layer-card:hover .layer-content{ padding-left:28px; }
}

/* ---- Team grid (About — verbatim custom CSS from source) ---- */
.team-grid{
  max-width:1300px;
  margin:50px auto 0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:35px;
}
.team-card{
  background:#F5F2EE;
  border-radius:28px;
  overflow:hidden;
  border:1px solid #e8e8e8;
  box-shadow:var(--shadow-soft);
  transition:transform .35s ease;
}
.team-card:hover{ transform:translateY(-8px); }
.team-top{
  height:260px;
  position:relative;
  display:flex;
  justify-content:center;
  align-items:center;
}
.founder .team-top{ background:linear-gradient(135deg,#0f5c35,#0b4b2c); }
.cofounder .team-top{ background:linear-gradient(135deg,#0f766e,#22c55e); }
.leadership .team-top{ background:linear-gradient(135deg,#134e4a,#16a34a); }
.team-avatar{
  width:120px; height:120px;
  border-radius:50%;
  overflow:hidden;
  border:5px solid rgba(255,255,255,.3);
}
.team-avatar img{ width:100%; height:100%; object-fit:cover; }
.team-badge{
  position:absolute;
  right:20px; bottom:18px;
  padding:9px 16px;
  border-radius:12px;
  font-family:var(--font-label);
  font-size:12px;
  font-weight:700;
  color:#fff;
  background:rgba(255,255,255,.15);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.2);
}
.team-content{ padding:32px; }
.team-content h3{
  margin:0 0 6px;
  font-size:18px;
  font-weight:700;
  color:#1d2b39;
}
.team-content h4{
  margin:0 0 18px;
  font-family:var(--font-label);
  font-size:12px;
  letter-spacing:1px;
  color:#0f5c35;
  font-weight:700;
  text-transform:uppercase;
}
.team-content p{
  margin:0 0 20px;
  color:#5e6b78;
  line-height:1.8;
  font-size:13.5px;
}
.team-tags{ display:flex; flex-wrap:wrap; gap:8px; }
.team-tags span{
  padding:7px 13px;
  border-radius:10px;
  font-size:11.5px;
  font-weight:600;
}
.founder .team-tags span{ background:#e8f8ee; color:#0f5c35; }
.cofounder .team-tags span{ background:#edf2ff; color:#2f66ef; }
.leadership .team-tags span{ background:#fff3d8; color:#c67a0d; }

@media (max-width:1024px){
  .team-grid{ grid-template-columns:1fr; }
}

/* ---- Platform pill (small tag) ---- */
.platform-pill{
  display:inline-block;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  border-radius:20px;
  padding:6px 14px;
  font-family:var(--font-label);
  font-size:12px;
  color:rgba(255,255,255,.65);
  font-weight:500;
  margin:4px;
}

/* ---- Solution block (Solutions page) ---- */
.solution-block{ padding:70px 0; }
.solution-num{
  font-family:var(--font-label);
  font-size:13px;
  font-weight:700;
  letter-spacing:2px;
  color:var(--green-600);
  text-transform:uppercase;
  margin-bottom:10px;
}
.solution-title{
  font-family:var(--font-heading);
  font-size:clamp(26px,3.2vw,36px);
  font-weight:700;
  color:var(--ink);
  margin-bottom:36px;
}
.solution-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:start;
}
.solution-card{
  background:#fff;
  border-radius:var(--radius-md);
  padding:32px;
  box-shadow:var(--shadow-soft);
}
.solution-card h4{
  font-family:var(--font-label);
  font-size:12px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--green-600);
  margin-bottom:16px;
}
.solution-card ul{ display:flex; flex-direction:column; gap:12px; }
.solution-card ul li{
  position:relative;
  padding-left:24px;
  font-size:14.5px;
  color:var(--text-body);
  line-height:1.6;
}
.solution-card ul li::before{
  content:"";
  position:absolute; left:0; top:8px;
  width:8px; height:8px;
  border-radius:2px;
  background:var(--mint);
}
.solution-card.challenge{ background:var(--bg-faint-green); box-shadow:none; border:1px solid rgba(15,81,50,.08); }
.case-study-box{
  margin-top:24px;
  padding:24px;
  border-radius:var(--radius-sm);
  background:var(--bg-mint-tint);
  border:1px dashed rgba(15,81,50,.25);
  font-size:13.5px;
  color:var(--text-muted);
}
.solution-cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:28px;
  font-family:var(--font-label);
  font-weight:700;
  font-size:14px;
  color:var(--green-800);
  border-bottom:2px solid var(--green-800);
  padding-bottom:2px;
  transition:gap .25s;
}
.solution-cta:hover{ gap:14px; }

@media (max-width:820px){
  .solution-grid{ grid-template-columns:1fr; }
}

/* ---- Generic content card (Media / Contact pathway cards) ---- */
.info-card{
  background:#fff;
  border-radius:var(--radius-md);
  padding:26px;
  text-align:center;
  border:1px solid rgba(15,81,50,.08);
  box-shadow:var(--shadow-soft);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.info-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-card); }
.info-card img{
  width:64px; height:64px;
  object-fit:cover;
  border-radius:50%;
  margin:0 auto 18px;
}
.info-card h3{
  font-family:var(--font-label);
  font-size:15px;
  font-weight:700;
  color:var(--ink);
  margin-bottom:6px;
}
.info-card p{
  font-size:13px;
  color:var(--text-body);
  margin:0;
}

/* ---- Article / newsroom cards (Media) ---- */
.news-card{
  background:#fff;
  border-radius:var(--radius-md);
  overflow:hidden;
  border:1px solid var(--border-soft);
  box-shadow:var(--shadow-soft);
  transition:transform .3s var(--ease);
}
.news-card:hover{ transform:translateY(-6px); }
.news-card-img{ aspect-ratio:16/10; overflow:hidden; }
.news-card-img img{ width:100%; height:100%; object-fit:cover; }
.news-card-body{ padding:24px; }
.news-tag{
  display:inline-block;
  font-family:var(--font-label);
  font-size:11px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--green-600);
  margin-bottom:12px;
}
.news-card-body h3{
  font-size:17px;
  font-weight:700;
  line-height:1.4;
  margin-bottom:10px;
  color:var(--ink);
}
.news-card-body p{
  font-size:13.5px;
  line-height:1.65;
  color:var(--text-body);
  margin-bottom:16px;
}
.news-meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:12.5px;
  color:#8a9198;
  border-top:1px solid var(--border-soft);
  padding-top:14px;
}
.news-meta a{ color:var(--green-800); font-weight:700; }

/* ---- Filter chips (Media gallery) ---- */
.chip-row{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:34px; }
.chip{
  padding:10px 20px;
  border-radius:50px;
  border:1px solid rgba(15,81,50,.2);
  font-family:var(--font-label);
  font-size:13px;
  font-weight:600;
  color:var(--green-800);
  transition:background .2s, color .2s;
}
.chip:hover, .chip.active{ background:var(--green-800); color:#fff; }

/* ---- Partner logos grid ---- */
.partner-card{
  background:#fff;
  border-radius:var(--radius-md);
  padding:28px;
  text-align:center;
  border:1px solid var(--border-soft);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.partner-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-card); }
.partner-card img{
  height:70px;
  margin:0 auto 18px;
  object-fit:contain;
}
.partner-card h4{
  font-family:var(--font-label);
  font-size:11px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--green-600);
  margin-bottom:8px;
}
.partner-card h3{
  font-size:16px;
  font-weight:700;
  margin-bottom:8px;
}
.partner-card p{
  font-size:13px;
  color:var(--text-body);
  margin:0;
}

/* ---- Recognition list ---- */
.recognition-card{
  padding:26px;
  border-radius:var(--radius-md);
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
}
.recognition-card h3{
  font-size:16px;
  font-weight:700;
  color:#fff;
  margin-bottom:8px;
}
.recognition-card p{
  font-size:13px;
  color:rgba(255,255,255,.5);
  margin:0;
}

/* ---- App download badges & preview (Home) ---- */
.app-badges{ display:flex; gap:16px; flex-wrap:wrap; margin-top:8px; }
.app-badges img{ height:52px; width:auto; }
.app-badges a{ transition:transform .25s; }
.app-badges a:hover{ transform:translateY(-3px); }
.app-preview-img{
  width:100%;
  max-width:420px;
  margin:0 auto;
  display:block;
}
@media (max-width:768px){
  .app-preview-img{
    max-width:100%;
  }
}

/* ---- Mission / Vision cards (About) ---- */
.mv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.mv-card{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:44px;
  border:1px solid var(--border-soft);
  box-shadow:var(--shadow-soft);
}
.mv-card h3{
  font-family:var(--font-label);
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--green-600);
  margin-bottom:16px;
}
.mv-card p{
  font-family:var(--font-heading);
  font-size:clamp(19px,2.4vw,25px);
  font-weight:600;
  color:var(--ink);
  line-height:1.4;
  margin:0;
}
@media (max-width:760px){ .mv-grid{ grid-template-columns:1fr; } }

/* ---- Testimonial style quote block ---- */
.quote-block{
  background:var(--dark-750);
  border-radius:var(--radius-lg);
  padding:48px;
  border:1px solid rgba(255,255,255,.06);
}
.quote-block p{
  font-family:var(--font-accent);
  font-style:italic;
  font-size:clamp(18px,2.2vw,22px);
  line-height:1.7;
  color:#fff;
  margin:0 0 20px;
}
.quote-name{
  margin-top:24px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.12);
  font-size:12px;
  color:rgba(255,255,255,.4);
}

/* ---- Contact pathway grid ---- */
.pathway-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}
@media (max-width:900px){ .pathway-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:500px){ .pathway-grid{ grid-template-columns:1fr; } }

/* ---- Contact form ---- */
.contact-form-wrap{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:48px;
  box-shadow:var(--shadow-soft);
  border:1px solid var(--border-soft);
}
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-top:28px;
}
.form-field{ display:flex; flex-direction:column; gap:8px; }
.form-field.full{ grid-column:1 / -1; }
.form-field label{
  font-family:var(--font-label);
  font-size:12.5px;
  font-weight:600;
  color:var(--dark-800);
}
.form-field input, .form-field select, .form-field textarea{
  padding:14px 16px;
  border-radius:12px;
  border:1px solid #e0e0e0;
  background:#fafafa;
  color:var(--ink);
  transition:border-color .2s, background .2s;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:none;
  border-color:var(--green-800);
  background:#fff;
}
.form-submit{
  margin-top:8px;
  border:none;
  cursor:pointer;
}
.btn-spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-left: 8px;
  vertical-align: middle;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: btn-spin 0.8s linear infinite;
}
@keyframes btn-spin {
  to { transform: rotate(360deg); }
}
.btn-solid:disabled,
.btn-solid.is-loading {
  opacity: 0.75 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}
.form-success{
  display:none;
  margin-top:18px;
  padding:16px 18px;
  border-radius:12px;
  background:var(--bg-mint-tint);
  border:1px solid rgba(15,81,50,.2);
  color:var(--green-800);
  font-size:14px;
  font-weight:600;
}
.form-success.is-visible{ display:block; }

/* ---- Page hero title utility (matches original hero style but shorter) ---- */
.page-hero{ min-height:auto; padding-top:0; }
