/* ── SELF-HOSTED FONTS ── */
@font-face {
  font-family: 'Jost';
  src: url('../fonts/jost-v20-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Jost';
  src: url('../fonts/jost-v20-latin-500.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Jost';
  src: url('../fonts/jost-v20-latin-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Jost';
  src: url('../fonts/jost-v20-latin-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Archivo';
  src: url('../fonts/archivo-v25-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Archivo';
  src: url('../fonts/archivo-v25-latin-italic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Archivo';
  src: url('../fonts/archivo-v25-latin-500.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

:root {
  --dark: #121e1a;
  --accent: #03A585;
  --light: #F8FAFC;
  --gray: #64748B;
  --border: #E2E8F0;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

/* ── IMPACT BAR ── */
.impact-bar { width:80%;height:2px;background:var(--border);border-radius:99px;margin:10px auto 16px;overflow:hidden; }
.impact-bar-fill { height:100%;width:0%;border-radius:99px;background:#6ACBDE;transition:width 1.6s cubic-bezier(0.22,1,0.36,1); }
.impact-bar-fill.animate { width:var(--pct); }
.impact-card p { font-size:0.95rem;color:var(--gray);line-height:1.65;margin:0; }

/* ── TECHNOLOGY ICONS STROKE ── */
.technology-circle svg path,.technology-circle svg line,.technology-circle svg circle,
.technology-circle svg polyline,.tech-icon-path {
  stroke:var(--accent) !important;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;
}
.technology-circle svg rect { stroke:none !important; }
.mission-card-icon::before,.mission-card-icon::after { stroke:none !important; }
.technology-circle svg { vector-effect:non-scaling-stroke; }

html, body { max-width:100%; }
body { font-family:-apple-system,BlinkMacSystemFont,"Inter",sans-serif;color:var(--dark);background:white;line-height:1.7;font-size:1.0625rem; }

.container { max-width:1200px;margin:0 auto;padding:10px 24px; }
.narrow { max-width:1100px; }

/* ── HEADER ── */
.header { position:sticky;top:0;background:white;border-bottom:1px solid var(--border);z-index:20; }
.nav { display:flex;align-items:center;justify-content:space-between; }
.nav-links { display:flex;gap:28px;align-items:center; }
.menu-toggle { display:none;width:28px;height:18px;background:none;border:none;cursor:pointer;position:relative;z-index:100; }
.menu-toggle span { position:absolute;left:0;width:100%;height:2px;background:var(--dark);transition:transform 0.3s ease,opacity 0.3s ease; }
.menu-toggle span:first-child { top:4px; }
.menu-toggle span:last-child  { bottom:4px; }
.logo img { height:45px;width:auto;display:block; }
nav a { margin-left:24px;text-decoration:none;color:var(--dark);font-weight:500; }
.nav-link.active { color:var(--accent) !important;font-weight:600; }
.nav-link { color:var(--dark);font-weight:500; }

/* ── NAV UNDERLINE SLIDE ── */
.nav-underline-rail { display:flex; align-items:center; gap:4px; position:relative; }
.nav-underline-bar {
  position:absolute; bottom:-1px; height:2px; border-radius:99px; background:var(--accent);
  pointer-events:none; opacity:0;
  transition:left 0.25s cubic-bezier(0.22,1,0.36,1), width 0.25s cubic-bezier(0.22,1,0.36,1), opacity 0.2s ease;
}

.hero { position:relative;text-align:center;padding:160px 24px;min-height:600px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--light); }
.hero-video-wrapper { position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:0; }
.hero-video { position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center 25%; }
.hero-overlay { position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.4);z-index:1; }
.hero-content { position:relative;z-index:2; }
.hero h1,.hero p { color:white;text-shadow:0 2px 4px rgba(0,0,0,0.3); }
.hero .eyebrow { text-transform:uppercase;color:#f2fffc;font-size:1rem;letter-spacing:0.1em;background:var(--dark);padding:4px 12px;border-radius:4px;white-space:nowrap; }
.hero h1 { font-size:clamp(2.4rem,4vw,3.2rem);margin:16px 0;font-family:'Jost', -apple-system, sans-serif; }
.hero p  { margin-bottom:24px; }
@media (max-width:768px) { .hero{min-height:500px;padding:120px 24px;} .hero h1{font-size:2.1rem;line-height:1.2;} .hero p{font-size:1.05rem;} .hero .eyebrow{font-size:0.82rem;letter-spacing:0.06em;padding:4px 10px;} }
@media (prefers-reduced-motion:reduce) { .hero-video{animation-play-state:paused;} }

h1, h2 { font-family:'Jost', -apple-system, sans-serif; letter-spacing:-0.5px; }
h2 { font-size:2.4rem;margin-bottom:16px;color:var(--dark); font-weight: 500; text-align:left; }
.lead { font-size:1.15rem;color:var(--gray); }
section { scroll-margin-top:80px; }
.section { padding:32px 0; }
.section.light { background:var(--light); }
#technology { background:#fff; }

/* ── MISSION ── */
.mission-section { background:var(--light); }
.mission-quote-wrap { max-width:860px;margin:0 auto;text-align:center;position:relative; }
.mission-eyebrow { display:inline-block;text-transform:uppercase;color:#6ACBDE;font-size:0.8rem;font-weight:600;letter-spacing:0.15em;margin-bottom:24px; }
.mission-heading { text-align:left;margin-bottom:32px; }
.mission-quote-text { font-size:clamp(1.15rem,2vw,1.45rem);color:var(--dark);line-height:1.75;font-weight:400;font-style:italic;margin:0 0 32px;padding:0 60px;border:none;position:relative; }
.mission-quote-text::before { content:"\201C";font-size:8rem;line-height:0;color:var(--accent);opacity:0.25;font-family:Georgia,serif;position:absolute;left:-10px;top:52px; }
.mission-quote-text::after  { content:"\201D";font-size:8rem;line-height:0;color:var(--accent);opacity:0.25;font-family:Georgia,serif;position:absolute;right:-10px;bottom:-20px; }
.mission-accent-line { width:60px;height:3px;background:#6ACBDE;border-radius:99px;margin:0 auto 28px; }
.mission-sub { font-size:1rem;color:var(--gray);line-height:1.75;max-width:640px;margin:0 auto; }
@media (max-width:600px) { .mission-quote-text{padding:0 40px;font-size:1.05rem;} .mission-quote-text::before{font-size:5rem;top:40px;left:0;} .mission-quote-text::after{font-size:5rem;right:0;} }

/* ── MISSION CARDS ── */
.mission-cards { max-width:1100px;margin:80px auto 32px;display:flex;align-items:flex-start;justify-content:center;padding:0 24px;overflow:hidden; }
.mission-card { flex:1;text-align:center;padding:32px 28px; }
.mission-card-divider { width:1px;align-self:stretch;background:var(--border);margin:16px 0; }
.mission-card .icon { width:64px;height:64px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center; }
.mission-card-icon { border-radius:50%;background:rgba(3,165,133,0.08);transition:background 0.3s ease,transform 0.3s ease;position:relative; }
.mission-card:hover .mission-card-icon { background:rgba(3,165,133,0.15);transform:translateY(-2px); }
.mission-card-icon i { font-size:30px;color:var(--accent);transition:transform 0.3s ease; }
.mission-card:hover .mission-card-icon i { transform:scale(1.12); }
.mission-card h4 { font-size:1.1rem;font-weight:600;margin-bottom:8px;color:var(--dark); }
.mission-card p  { font-size:1rem;line-height:1.65;color:var(--gray); }
@media (max-width:640px) { .mission-cards{flex-direction:column;align-items:center;} .mission-card-divider{width:60px;height:1px;align-self:auto;margin:0;} .mission-card{padding:24px 16px;} }

/* ── LICENSE BANNER ── */
.license-banner { width:100%;max-width:1100px;box-sizing:border-box;background:rgba(106,203,222,0.08);border:none;border-top:3px solid #6acbde;border-radius:0 0 12px 12px;padding:28px 40px;display:flex;margin:80px auto 32px;position:relative;opacity:0;transform:translateY(24px);transition:none; }
.license-banner.banner-visible { animation:bannerFadeUp 0.8s cubic-bezier(0.22,1,0.36,1) forwards; }
@keyframes bannerFadeUp { 0%{opacity:0;transform:translateY(24px);}100%{opacity:1;transform:translateY(0);} }
.license-banner-inner { max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:24px; }
.license-banner-icon { flex-shrink:0;width:56px;height:56px;border-radius:50%;background:rgba(106,203,222,0.18);display:flex;align-items:center;justify-content:center; }
.license-banner-icon i { font-size:28px;color:#3a9db5; }
.license-banner-text { flex:1; }
.license-banner-label { display:flex;align-items:center;gap:6px;font-size:0.82rem;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;color:#2a8fa6;margin-bottom:6px; }
.license-banner-label i { font-size:16px;color:#2a8fa6; }
.license-banner-text p { font-size:1rem;color:var(--dark);margin:0;line-height:1.6; }
.license-banner-text strong { font-weight:700;color:var(--dark); }
@media (max-width:768px) { .license-banner{width:calc(100% - 32px);margin-left:auto;margin-right:auto;padding:24px 24px;} .license-banner-inner{flex-wrap:wrap;} }

/* ── ICON BASE ── */
.icon { width:56px;height:56px;margin:0 auto 20px;border-radius:50%;background-color:rgba(0,164,133,0.12);display:flex;align-items:center;justify-content:center; }
.icon svg { width:28px;height:28px;fill:none;stroke:var(--accent);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;transition:transform 0.35s ease,stroke 0.35s ease; }
.reveal .icon svg { transform:scale(0.92);opacity:0; }
.reveal.visible .icon svg { transform:scale(1);opacity:1; }

/* ── OUR PRODUCT ── */
.our-product { margin:0;padding:50px 20px;max-width:100%;overflow:hidden;background:var(--light); }
.product-container { max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr minmax(0, 500px);gap:60px;align-items:center; }
.product-image { display:flex; justify-content:center; overflow:hidden; max-width:100%; }
.image-placeholder { display:none; }

.product-frame-wrap {
  position: relative;
  width: 540px;
  max-width: 100%;
  height: 540px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 1;
  overflow: visible;
}

/* Hexagon SVGs absolutely centred */
.prod-hex {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.prod-hex-1 { width: 476px; height: 476px; opacity: 0.6; }
.prod-hex-2 { width: 529px; height: 529px; opacity: 0.4; }
.prod-hex-3 { width: 582px; height: 582px; opacity: 0.2; }

@keyframes hexPulse {
  0%, 100% { transform: translate(-50%,-50%) scale(1)   rotate(0deg);  opacity: 1; }
  50%       { transform: translate(-50%,-50%) scale(1.05) rotate(30deg); opacity: 0.4; }
}

.product-circle-frame {
  position: relative;
  z-index: 2;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid #fff;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4), 0 2px 8px rgba(0, 0, 0, 0.10);
  background: var(--light);
  transition: transform 0.3s ease;
}
.product-img-modern {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  border-radius: 0;
  box-shadow: none;
}

/* Small secondary circle — bottom right of frame */
.product-circle-small {
  position: absolute;
  z-index: 3;
  bottom: 20px;
  right: 17px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid #fff;
  box-shadow:0 4px 5px rgba(0,0,0,0.4), 0 2px 8px rgba(0, 0, 0, 0.10);
  background: var(--light);
  transition: transform 0.3s ease;
}
.product-circle-small:hover { transform: scale(1.05); }
.product-img-small {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
@media (max-width:900px) {
  .product-circle-small { width:130px; height:130px; bottom:18px; left:8px; }
  .product-container { grid-template-columns:1fr; gap:40px; }
  .product-image { order:-1; justify-content:center; }
  .product-content { padding:0 16px; }
  .product-frame-wrap { width:340px; height:340px; overflow:hidden; }
  .product-circle-frame { width:270px; height:270px; }
  .prod-hex-1 { width:330px; height:330px; }
  .prod-hex-2 { width:373px; height:373px; }
  .prod-hex-3 { width:413px; height:413px; }
}
@media (max-width:480px) {
  .product-frame-wrap { width:280px; height:280px; overflow:hidden; }
  .product-circle-frame { width:220px; height:220px; }
  .product-circle-small { width:100px; height:100px; bottom:12px; left:4px; }
  .prod-hex-1 { width:270px; height:270px; }
  .prod-hex-2 { width:305px; height:305px; }
  .prod-hex-3 { width:338px; height:338px; }
  .our-product { padding:30px 16px; }
  .product-content { padding:0 8px; }
}
.product-content h2 { margin-bottom:36px;font-size:2.4rem;font-weight:500;text-align:left; }
.product-item { margin-bottom:28px;display:flex;align-items:flex-start;gap:16px; }
.product-item-icon { width:44px;height:44px;border-radius:12px;background:rgba(3,165,133,0.10);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background 0.3s ease,transform 0.3s ease; }
.product-item:hover .product-item-icon { background:rgba(3,165,133,0.20);transform:translateY(-2px); }
.product-item-icon i { font-size:22px;color:var(--accent); }
.product-item h4 { margin-bottom:6px;font-size:1.1rem;font-weight:600;color:#1f2a37; }
.product-item p  { margin:0;font-size:1rem;line-height:1.65;color:#5f6b7a; }
/* product container mobile handled in main 900px block above */

/* ── TECHNOLOGY SVG HINTS ── */
.hint-text { font-size:18px;fill:var(--accent);opacity:0.6;letter-spacing:1px; }

/* ── TECHNOLOGY LAYOUT ── */
.technology-layout { display:flex; gap:clamp(40px, 8vw, 220px); align-items:flex-start; margin-top:0; }
.technology-circle { width:100%; max-width:480px; flex-shrink:0; opacity:1; transition:opacity 1.2s ease, transform 1.2s ease; }
.circular-process { width:100%;height:auto;display:block; }
.circular-process .loop-spin { transform-origin:300px 300px;animation:loopRotate 15s linear infinite; }
@keyframes loopRotate { from{transform:rotate(0deg);}to{transform:rotate(360deg);} }

.tech-step { cursor:pointer;transition:transform 0.85s ease; }
.tech-step circle.bg { transition:opacity 0.35s ease, transform 0.35s ease; }
.bg { fill:#EBF2F3; }
.ring { fill:none;stroke:#2E3A46;stroke-width:0.8;stroke-dasharray:3 10;opacity:0.8; }
.center-text { font-size:28px;fill:#2E3A46;font-weight:500;letter-spacing:2px; }
.tech-step text { fill:#2E3A46;font-size:14px;letter-spacing:0.5px; }
.tech-step:hover circle.bg { transform:scale(1.05); }
.tech-step text.step-label { fill:#085041 !important; font-size:16px !important; font-weight:600 !important; font-family:-apple-system,BlinkMacSystemFont,sans-serif !important; letter-spacing:0.8px !important; }
.tech-step rect.step-pill { fill:#ffffff !important; filter:drop-shadow(0 2px 6px rgba(3,165,133,0.13)); }

/* ── RIGHT PANEL ── */
.tech-right-panel { flex:1; min-width:0; display:flex; flex-direction:column; gap:14px; min-height:300px; opacity:0; transform:translateX(24px); transition:opacity 0.6s ease 0.5s, transform 0.6s ease 0.5s; padding-top:0; justify-content:flex-start; }
.tech-right-panel.visible { opacity:1; transform:translateX(0); padding-top:70px; }
.tech-panel-eyebrow { font-size:0.65rem; font-weight:600; text-transform:uppercase; letter-spacing:0.1em; color:#03a585; }
.tech-panel-body { flex:1; position:relative; min-height:140px; }
.tech-panel-hint, .tech-panel-step { position:absolute; inset:0; display:flex; flex-direction:column; gap:10px; transition:opacity 0.4s ease; }
.tech-panel-hint { opacity:1; justify-content:center; }
.tech-panel-hint.hidden { opacity:0; pointer-events:none; }
.tech-panel-step { opacity:0; pointer-events:none; }
.tech-panel-step.visible { opacity:1; pointer-events:auto; }
.tech-panel-hint-icon { font-size:26px; color:rgba(3,165,133,0.4); }
.tech-panel-hint-text { font-size:0.95rem; color:var(--gray); line-height:1.6; max-width:240px; }
.tech-panel-step-header { display:flex; gap:10px; align-items:center; }
.tech-panel-step-icon { width:45px; height:45px; border-radius:50%; background:rgba(3,165,133,0.12); display:flex; align-items:center; justify-content:center; flex-shrink:0; padding:7px; }
.tech-panel-step-icon svg { width:100%; height:100%; }
.tech-panel-step-title { font-size:0.92rem; font-weight:600; color:#03A585; }
.tech-panel-step-body  { font-size:0.92rem; color:var(--gray); line-height:1.65; }

/* ── VERTICAL TIMELINE ── */
.tech-panel-timeline { display:flex; flex-direction:column; padding-top:14px; border-top:0.5px solid rgba(3,165,133,0.15); }
.tech-panel-timeline .tl-step { display:flex; align-items:center; gap:8px; padding:4px 0; position:relative; }
.tech-panel-timeline .tl-step:not(:last-child)::after { content:""; position:absolute; left:4px; top:calc(50% + 6px); width:2px; height:calc(100% - 4px); background:rgba(3,165,133,0.15); }
.tech-panel-timeline .tl-dot { width:9px;height:9px;border-radius:50%;background:var(--light);border:2px solid rgba(3,165,133,0.25);flex-shrink:0;transition:background 0.3s,border-color 0.3s; }
.tech-panel-timeline .tl-dot.active { background:#03A585;border-color:#03A585; }
.tech-panel-timeline .tl-dot.done   { background:rgba(3,165,133,0.35);border-color:rgba(3,165,133,0.35); }
.tech-panel-timeline .tl-label { font-size:0.85rem;color:var(--gray);transition:color 0.3s; }
.tech-panel-timeline .tl-label.active { color:#03A585;font-weight:600; }

.technology-stack { display:none !important; }

/* ── TECH CARDS ── */
.tech-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px;margin-top:48px; }
.tech-card { background:#ffffff;border-radius:16px;padding:40px 28px;text-align:center;box-shadow:0 1px 2px rgba(0,0,0,0.03);transition:border-color 0.25s ease,box-shadow 0.25s ease; }
.tech-card:hover { border-color:rgba(106,203,222,0.5);box-shadow:0 0 0 1px rgba(106,203,222,0.12),0 8px 24px rgba(0,0,0,0.04); }
.tech-card h3 { font-size:1.1rem;margin-bottom:10px;color:var(--dark);text-align:center; }
.tech-card p  { font-size:1rem;color:var(--gray);line-height:1.65;text-align:center;max-width:240px;margin:0 auto; }
.app-circle { width:88px;height:88px;border-radius:50%;background:rgba(3,165,133,0.08);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;position:relative;transition:background 0.3s ease,transform 0.3s ease; }
.app-circle::before { content:"";position:absolute;inset:-2px;border-radius:50%;border:1px solid rgba(106,203,222,0.4);opacity:0;transition:opacity 0.4s ease; }
.tech-card:hover .app-circle::before { opacity:1; }
.tech-card:hover .app-circle { background:rgba(106,203,222,0.15);transform:translateY(-3px); }
.app-ph-icon { font-size:36px;color:var(--accent);transition:transform 0.3s ease;-webkit-text-stroke:0.5px #ffffff; }
.tech-card:hover .app-ph-icon { transform:scale(1.15); }

/* ── IMPACT AREAS ── */
.applications-grid { grid-template-columns:repeat(4,1fr) !important;gap:0 !important; }
.applications-grid .tech-card { background:transparent !important;border:none !important;border-right:1px solid var(--border) !important;border-radius:0 !important;padding:48px 36px !important;text-align:left !important;position:relative !important;overflow:hidden !important;box-shadow:none !important; }
.applications-grid .tech-card:last-child { border-right:none !important; }
.applications-grid .tech-card:hover { background:rgba(3,165,133,0.04) !important;box-shadow:none !important; }
.applications-grid .tech-card::before { display:none; }
.applications-grid .tech-card h3::after { content:"";display:block;width:120px;height:3px;background:#029474;border-radius:99px;margin-top:5px; }
.applications-grid .tech-card .app-circle { position:absolute !important;width:160px !important;height:160px !important;top:-20px !important;right:-20px !important;transform:none !important;background:transparent !important;border-radius:0 !important;margin:0 !important;opacity:0.07;pointer-events:none;transition:opacity 0.3s ease; }
.applications-grid .tech-card:hover .app-circle { opacity:0.14 !important;transform:none !important; }
.applications-grid .tech-card .app-circle::before { display:none !important; }
.applications-grid .tech-card .app-ph-icon { font-size:110px !important;color:var(--accent) !important;-webkit-text-stroke:0 !important; }
.applications-grid .tech-card h3 { font-size:1.2rem !important;font-weight:700 !important;color:var(--dark) !important;text-align:left !important;margin-bottom:12px !important;position:relative;z-index:1; }
.applications-grid .tech-card p  { font-size:0.97rem !important;color:var(--gray) !important;text-align:left !important;max-width:100% !important;margin:0 !important;position:relative;z-index:1; }
@media (max-width:900px) { .applications-grid{grid-template-columns:1fr 1fr !important;} .applications-grid .tech-card{border-right:1px solid var(--border) !important;border-bottom:1px solid var(--border) !important;} .applications-grid .tech-card:nth-child(2n){border-right:none !important;} .applications-grid .tech-card:nth-last-child(-n+2){border-bottom:none !important;} }
@media (max-width:480px) { .applications-grid{grid-template-columns:1fr !important;} .applications-grid .tech-card{border-right:none !important;} .applications-grid .tech-card:last-child{border-bottom:none !important;} }

/* ── TEAM GRID ── */
#team { overflow:visible; }
.team-section { background:#fff;position:relative;overflow:hidden; }
.team-pt-bg { position:absolute;inset:0;pointer-events:none;z-index:0;opacity:0.35; }
.team-pt-bg svg { width:100%;height:100%; }
.team-section .container { position:relative;z-index:1; }
.section-intro { text-align:center;color:var(--gray);margin-bottom:56px; }
.team-grid { display:grid;grid-template-columns:repeat(12,1fr);gap:10px;margin-top:48px;max-width:1100px;margin-left:auto;margin-right:auto; }
.team-card:nth-child(1){grid-column:1 / span 2;} .team-card:nth-child(2){grid-column:3 / span 2;} .team-card:nth-child(3){grid-column:5 / span 2;} .team-card:nth-child(4){grid-column:7 / span 2;} .team-card:nth-child(5){grid-column:9 / span 2;} .team-card:nth-child(6){grid-column:11 / span 2;} .team-card:nth-child(7){grid-column:2 / span 2;} .team-card:nth-child(8){grid-column:4 / span 2;} .team-card:nth-child(9){grid-column:6 / span 2;} .team-card:nth-child(10){grid-column:8 / span 2;} .team-card:nth-child(11){grid-column:10 / span 2;}
.team-card { background:#fff;border-radius:4px;overflow:hidden;border:1.5px solid var(--border);transition:transform 0.25s ease,box-shadow 0.25s ease,border-color 0.25s ease;position:relative; }
.team-card::before { content:attr(data-symbol);position:absolute;top:6px;left:8px;font-size:0.65rem;font-weight:700;color:var(--accent);opacity:0.5;letter-spacing:0.05em;z-index:2;border:1px solid var(--accent);padding:1px 4px;border-radius:2px; }
.team-card::after { display:none; }
.team-card:hover { transform:translateY(-4px) scale(1.03);box-shadow:0 12px 32px rgba(3,165,133,0.15);border-color:var(--accent);z-index:5; }
.team-card-img { position:relative;overflow:hidden;aspect-ratio:1/1;background:var(--light); }
.team-card-img img { width:100%;height:100%;object-fit:cover;object-position:top;display:block;transition:transform 0.4s ease; }
.team-card:hover .team-card-img img { transform:scale(1.06); }
.team-linkedin { position:absolute;inset:0;background:rgba(3,165,133,0.75);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity 0.3s ease;text-decoration:none; }
.team-card:hover .team-linkedin { opacity:1; }
.team-linkedin i { font-size:32px;color:#fff; }
.team-website { background:rgba(106,203,222,0.75); }
.team-card-body { padding:10px 10px 12px;border-top:1.5px solid var(--border);background:#fff; }
.team-card-body h4 { font-size:0.72rem;font-weight:700;color:var(--dark);margin-bottom:2px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.team-card-body span { font-size:0.62rem;color:var(--accent);font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.team-card-placeholder { background:var(--light);display:flex;align-items:center;justify-content:center;opacity:0.5; }
.team-card-placeholder i { font-size:40px;color:var(--accent);opacity:0.3; }
@media (max-width:900px) { .team-grid{grid-template-columns:repeat(3,1fr);} .team-card:nth-child(n){grid-column:auto;} }
@media (max-width:520px) { .team-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:340px) { .team-grid{grid-template-columns:1fr 1fr;} }

/* ── IMPACT ── */
.impact-section { background:#fff; }
.impact-header { text-align:left;max-width:640px;margin:0 0 64px; }
.impact-header h2    { color:var(--dark); }
.impact-header .lead { color:var(--gray);margin-top:12px; }
.impact-grid { display:grid;grid-template-columns:repeat(3,1fr);margin-top:48px;border-radius:24px;overflow:hidden; }
.impact-card { padding:48px 32px;text-align:center;display:flex;flex-direction:column;align-items:center;position:relative;background:#fff;transition:background 0.3s ease; }
.impact-card:not(:last-child)::after { content:"";position:absolute;right:0;top:10%;bottom:10%;width:1px;background:var(--border); }
.impact-card:hover { background:#f9fffe; }
.impact-icon { width:56px;height:56px;border-radius:50%;background:rgba(3,165,133,0.08);display:flex;align-items:center;justify-content:center;margin-bottom:20px;transition:background 0.3s ease; }
.impact-card:hover .impact-icon { background:rgba(3,165,133,0.16); }
.impact-icon svg { width:24px;height:24px;stroke:var(--accent); }
.impact-icon i { font-size:24px;color:var(--accent); }
.impact-number { font-size:2.8rem;font-weight:700;line-height:1;color:var(--dark);letter-spacing:-1.5px;margin-bottom:10px;display:flex;align-items:baseline;justify-content:center;gap:1px; }
.impact-number--word { font-size:1rem;font-weight:600;color:var(--dark);letter-spacing:0;text-align:center;line-height:1.3; }
.impact-card h4 { font-size:1.6rem;font-weight:700;color:var(--accent);margin-bottom:8px;letter-spacing:-0.5px; }
@media (max-width:1024px) { .impact-grid{grid-template-columns:repeat(2,1fr);border-radius:20px;} .impact-card:nth-child(2)::after{display:none;} .impact-card:nth-child(1),.impact-card:nth-child(2){border-bottom:1px solid var(--border);} .impact-card:nth-child(3){grid-column:1 / -1;} }
@media (max-width:600px) { .impact-grid{grid-template-columns:1fr;} .impact-card:not(:last-child)::after{display:none;} .impact-card:not(:last-child){border-bottom:1px solid var(--border);} .impact-number{font-size:2.2rem;} .impact-header{margin-bottom:40px;} }

/* ── PARTNER CTA ── */
#partner-section { overflow:hidden;background-color:rgba(3,165,133,0.08);background-image:linear-gradient(rgba(3,165,133,0.07) 1px,transparent 1px),linear-gradient(90deg,rgba(3,165,133,0.07) 1px,transparent 1px),linear-gradient(rgba(3,165,133,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(3,165,133,0.04) 1px,transparent 1px);background-size:80px 80px,80px 80px,20px 20px,20px 20px;border-top:1.5px solid rgba(3,165,133,0.2);border-bottom:1.5px solid rgba(3,165,133,0.2);padding:96px 24px;text-align:center; }
.partner-inner { max-width:600px;margin:0 auto; }
.partner-eyebrow { font-size:0.75rem;font-weight:700;text-transform:uppercase;letter-spacing:0.18em;color:var(--accent);margin:0 0 20px; }
#partner-section h2 { font-size:clamp(2rem,4vw,3rem);font-weight:700;color:var(--dark);margin:0 0 20px;letter-spacing:-1px;line-height:1.15;text-align:center }
#partner-section p  { font-size:1.1rem;color:var(--gray);margin:0 0 48px;line-height:1.75; }
.partner-btns { display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap; }
#partner-section .btn-contact { display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff !important;padding:14px 32px;border-radius:999px;font-weight:600;font-size:0.95rem;text-decoration:none;border:2px solid var(--accent);transition:background 0.2s ease,transform 0.2s ease; }
#partner-section .btn-contact:hover { background:#029474;transform:scale(1.03); }
#partner-section .btn-contact-secondary { display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--accent) !important;padding:14px 32px;border-radius:999px;font-weight:600;font-size:0.95rem;text-decoration:none;border:2px solid rgba(3,165,133,0.4);transition:border-color 0.2s ease,background 0.2s ease; }
#partner-section .btn-contact-secondary:hover { border-color:var(--accent);background:rgba(3,165,133,0.08); }

/* ── CONTACT ── */
.contact-grid { display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;margin-top:50px;align-items:stretch;width:100%; }
.contact-photo-col { display:flex; flex-direction:column; gap:12px; height:100%; }
.contact-photo-placeholder { width:100%;flex:1;min-height:200px;border-radius:10px;background:var(--light);border:1px dashed rgba(3,165,133,0.4);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px; }
.contact-photo-placeholder i    { font-size:40px;color:var(--accent);opacity:0.5; }
.contact-photo-placeholder span { font-size:0.85rem;font-weight:500;color:var(--gray);opacity:0.7; }
.contact-photo-placeholder img  { width:100%;height:100%;object-fit:cover;border-radius:10px;display:block; }
.contact-map { height:100%; display:flex; flex-direction:column; }
.contact-photo-address { display:flex; align-items:flex-start; gap:10px; padding:12px 14px; background:var(--light); border-radius:8px; border:1px solid var(--border); }
.contact-photo-address i { font-size:18px; color:var(--accent); flex-shrink:0; margin-top:2px; }
.contact-map-address { font-size:0.9rem; color:var(--dark); line-height:1.5; margin:0; }
.contact-map iframe { width:100%;height:100%;min-height:340px;border:none;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,0.08);display:block;flex:1; }
.contact-form form { display:flex;flex-direction:column;gap:16px;height:100%; }
.form-field-group { display:flex;flex-direction:column;gap:6px; }
.form-label-optional { font-size:0.82rem;font-weight:500;color:var(--dark);display:flex;align-items:center;gap:6px; }
.form-label-optional span { font-size:0.72rem;font-weight:500;color:var(--gray);background:var(--light);border:1px solid var(--border);padding:1px 7px;border-radius:99px; }
.contact-inline-field { display:flex;align-items:center;border:1px solid #d9e1dc;border-radius:6px;overflow:hidden;background:#fff; }
.contact-inline-label { padding:0 14px;font-size:0.82rem;font-weight:700;color:#03A585;white-space:nowrap;align-self:stretch;display:flex;align-items:center;border-right:1px solid #d9e1dc;background:#fff;flex-shrink:0; }
.contact-inline-select { flex:1;padding:14px 36px 14px 14px;border:none;outline:none;font-size:14px;font-family:inherit;background:transparent;color:var(--dark);appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748B' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;cursor:pointer; }
.contact-inline-select:focus { outline:none; }
.contact-inline-field:focus-within { border-color:#03A585; }
.contact-inline-select option[value=""] { color:var(--gray); }
.contact-form input,.contact-form textarea,.contact-form select { padding:14px;border:1px solid #d9e1dc;border-radius:6px;font-size:14px;font-family:inherit;background:#fff;color:var(--dark);width:100%; }
.contact-form textarea { flex:1;resize:none; }
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus { outline:none;border-color:var(--accent); }
.contact-select { appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748B' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer; }
.contact-select:invalid,.contact-select option[value=""] { color:var(--gray); }
.contact-source::placeholder { color:var(--gray); }
@media (max-width:900px) { .contact-grid{grid-template-columns:1fr 1fr;} .contact-photo-col{grid-column:1/-1;} .contact-photo-placeholder{min-height:200px;} }
@media (max-width:600px) { .contact-grid{grid-template-columns:1fr;} .contact-map iframe{min-height:220px;} }

/* ── BUTTONS ── */
.btn { display:inline-block;padding:14px 26px;border-radius:999px;font-weight:500;transition:transform 0.2s ease,background-color 0.2s ease;text-decoration:none; }
.btn.primary { background:var(--accent);color:white;transition:transform 0.2s ease,background-color 0.2s ease,border-color 0.6s ease; }
.btn.primary:hover { background-color:rgba(0,164,133,0.85);transform:scale(1.02); }
.btn.primary.btn--dark { background:var(--dark);color:#fff; }
.btn.primary.btn--dark:hover { background:#1a3a2e;transform:scale(1.02); }
.btn.small { padding:8px 16px;font-size:0.9rem; }
button,input,textarea { outline:none; }
button:focus-visible { box-shadow:0 0 0 2px rgba(0,164,133,0.35); }
button.btn.primary { border:none; }

/* ── FOOTER ── */
.footer { background:var(--dark);border-top:1px solid rgba(255,255,255,0.08);margin-top:0; }
.footer-inner { display:flex;justify-content:space-between;align-items:flex-start;padding:60px 24px;gap:40px;max-width:1200px;margin:0 auto; }
.footer-logo    { height:36px;margin-bottom:10px; }
.footer-tagline { font-size:15px;color:#d6dedf;max-width:220px; }
.footer-heading { font-size:15px;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;color:#6ACBDE;margin-bottom:8px; }
.footer-address,.footer-contact { font-size:15px;color:#ffffff;line-height:1.6; }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.08);text-align:center;padding:18px 24px;font-size:13px;color:#cccccc; }
footer a       { color:#ffffff;text-decoration:none; }
footer a:hover { color:#cccccc; }
@media (max-width:768px) { .footer-inner{flex-direction:column;gap:30px;padding:40px 24px;} }

/* ── REVEAL ── */
.reveal { opacity:0;transform:translateY(16px);transition:opacity 0.6s ease,transform 0.6s ease;will-change:opacity,transform; }
.reveal.visible { opacity:1;transform:translateY(0); }
.reveal.delay-1 { transition-delay:0.08s; }
.reveal.delay-2 { transition-delay:0.16s; }
.reveal.delay-3 { transition-delay:0.24s; }
@media (prefers-reduced-motion:reduce) { .reveal{opacity:1;transform:none;transition:none;} }

/* ── TABLET ── */
@media (max-width:900px) {
  .technology-layout { flex-direction:column; gap:24px; }
  .technology-circle { max-width:420px; margin:0 auto; }
  .tech-right-panel { max-width:480px; margin:0 auto; }
  .tech-right-panel.visible { padding-top:8px; }
}

/* ── MOBILE NAV ── */
@media (max-width:768px) {
  .tech-grid,.applications-grid { grid-template-columns:1fr;gap:24px; }

  /* Hamburger button */
  .menu-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 44px; height: 44px;
    background: none; border: none;
    cursor: pointer;
    position: relative;
    z-index: 10002;
    padding: 0;
    gap: 0;
  }
  .menu-toggle span {
    position: absolute;
    left: 50%; top: 50%;
    width: 22px; height: 2px;
    background: var(--dark);
    border-radius: 2px;
    transition: transform 0.38s cubic-bezier(0.23,1,0.32,1),
                opacity   0.2s ease,
                background 0.2s ease;
  }
  .menu-toggle span:first-child { transform: translate(-50%, calc(-50% - 5px)); }
  .menu-toggle span:last-child  { transform: translate(-50%, calc(-50% + 5px)); }

  /* Animated X state */
  .menu-toggle[aria-expanded="true"] span:first-child {
    transform: translate(-50%, -50%) rotate(45deg);
    background: #fff;
  }
  .menu-toggle[aria-expanded="true"] span:last-child {
    transform: translate(-50%, -50%) rotate(-45deg);
    background: #fff;
  }

  /* Backdrop blur overlay */
  .mobile-nav-overlay {
    display: block;
    position: fixed; inset: 0;
    background: rgba(10,31,26,0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 9998;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
  }
  .mobile-nav-overlay.open {
    opacity: 1;
    pointer-events: auto;
  }

  /* Full-screen drawer from right */
  .nav-links {
    position: fixed;
    top: 0; right: 0;
    width: min(320px, 85vw);
    height: 100%;
    background: var(--dark);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: 80px 40px 56px;
    gap: 0;
    font-size: 1rem;
    transform: translateX(100%);
    transition: transform 0.42s cubic-bezier(0.23,1,0.32,1);
    z-index: 9999;
    border-left: 1px solid rgba(255,255,255,0.07);
    box-shadow: none;
  }
  .nav-links.open { transform: translateX(0); box-shadow: -20px 0 60px rgba(0,0,0,0.4); }

  /* Decorative accent line inside drawer */
  .nav-links::before {
    content: '';
    position: absolute;
    top: 0; left: 40px;
    width: 32px; height: 3px;
    background: var(--accent);
    border-radius: 0 0 3px 3px;
  }

  /* Nav rail acts as the link container */
  .nav-underline-rail {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    width: 100%;
    position: static;
  }
  .nav-underline-bar { display: none; }

  /* Individual links */
  .nav-link {
    display: block;
    width: 100%;
    color: rgba(255,255,255,0.6) !important;
    font-size: 1.25rem;
    font-weight: 500;
    letter-spacing: -0.01em;
    padding: 14px 0;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    transition: color 0.2s ease, padding-left 0.25s ease;
    opacity: 0;
    transform: translateX(20px);
  }
  .nav-links.open .nav-link {
    opacity: 1;
    transform: translateX(0);
  }
  /* Staggered entry animations */
  .nav-links.open .nav-link:nth-child(2) { transition-delay: 0.06s; }
  .nav-links.open .nav-link:nth-child(3) { transition-delay: 0.11s; }
  .nav-links.open .nav-link:nth-child(4) { transition-delay: 0.16s; }
  .nav-links.open .nav-link:nth-child(5) { transition-delay: 0.21s; }
  .nav-links.open .nav-link:nth-child(6) { transition-delay: 0.26s; }

  .nav-link { transition: color 0.2s ease, padding-left 0.25s ease, opacity 0.3s ease, transform 0.35s cubic-bezier(0.23,1,0.32,1); }

  .nav-link:hover, .nav-link:focus {
    color: #fff !important;
    padding-left: 8px;
    outline: none;
  }
  .nav-link.active {
    color: var(--accent) !important;
    font-weight: 600;
  }
  .nav-link:last-child { border-bottom: none; }

  /* Contact CTA at bottom */
  .nav-links::after {
    content: 'NylaNova © 2025';
    position: absolute;
    bottom: 32px; left: 40px;
    font-size: 0.72rem;
    color: rgba(255,255,255,0.18);
    letter-spacing: 0.04em;
    font-weight: 400;
  }

  body.menu-open { overflow: hidden; }
  .technology-circle { max-width:100%; }
  .technology-circle.centered { transform:none; }
  .circular-process { overflow:visible;aspect-ratio:unset;height:auto; }
  .tech-step text:not(.step-label) { font-size:1rem; }
  .tech-step text.step-label { transform:none !important; }
  .tech-step circle.bg { r:70; }
  .technology-circle { padding:0 4px; order:1; }
  .ring { stroke-width:2.5;stroke-dasharray:5 10; }
  .technology-layout { flex-direction:column; gap:0; }
  .tech-right-panel { align-items:flex-start; text-align:left; margin:0 auto; max-width:100%; width:100%; order:2; background:var(--light); border-radius:16px; padding:20px 16px; margin-top:16px; }
  .tech-right-panel.visible { padding-top:20px; }
  .tech-panel-body { min-height:80px; width:100%; padding:8px 0; }
  .tech-panel-hint { align-items:flex-start; text-align:left; position:static; }
  .tech-panel-hint.hidden { display:none; }
  .tech-panel-hint-text { max-width:100%; text-align:left; }
  .tech-panel-step { position:static; }
  .tech-panel-step-header { justify-content:flex-start; }
  .tech-panel-step-body { text-align:left; font-size:1rem; }
  .tech-panel-timeline { flex-direction:row; align-items:flex-start; justify-content:space-between; padding-top:12px; gap:0; overflow:visible; width:100%; }
  .tech-panel-timeline .tl-step { flex-direction:column; align-items:center; justify-content:flex-start; gap:6px; padding:0 2px; flex:1; position:relative; }
  .tech-panel-timeline .tl-step:not(:last-child)::after { top:5px; left:calc(50% + 7px); width:calc(100% - 7px); height:2px; transform:none; }
  .tech-panel-timeline .tl-dot { width:11px; height:11px; flex-shrink:0; }
  .tech-panel-timeline .tl-label { font-size:0.58rem; text-align:center; line-height:1.3; word-break:break-word; hyphens:auto; max-width:100%; padding:0 1px; }
}

/* ── FOOTER SOCIAL ── */
.footer-social { margin-top:16px; display:flex; gap:10px; }
.footer-social-link { width:50px; height:50px; border-radius:50%; border:1px solid #6acbde; display:flex; align-items:center; justify-content:center; color:#6acbde !important; text-decoration:none; transition:border-color 0.2s ease,color 0.2s ease,background 0.2s ease; }
.footer-social-link:hover { border-color:rgba(255,255,255,0.6); color:rgba(255,255,255,0.6); background:rgba(106,203,222,0.08); }
.footer-social-link i { font-size:22px; }

.stroke-icon { width:56px;height:56px;stroke:#414454;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.fade-in { opacity:0;transform:translateY(30px);transition:opacity 0.9s ease,transform 0.9s ease; }
.fade-in.visible { opacity:1;transform:translateY(0); }

/* ═══════════════════════════════════════════════════════
   ACCESSIBILITY SIDEBAR
   z-index stack:
     .a11y-toggle  → 10001  (FIXED: above panel 10000 + overlay 9998)
     .a11y-panel   → 10000
     .a11y-overlay →  9998
   ═══════════════════════════════════════════════════════ */
.a11y-toggle { position:fixed; right:16px; bottom:24px; width:52px; height:52px; border-radius:50%; background:var(--accent); border:none; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; box-shadow:0 4px 16px rgba(0,0,0,0.18); z-index:10010; transition:background 0.2s ease,transform 0.2s ease; }
.a11y-toggle:hover { background:#029474; transform:scale(1.08); }
.a11y-toggle i     { font-size:22px; color:#fff; }
.a11y-toggle span  { font-size:0.5rem; color:rgba(255,255,255,0.85); font-weight:600; text-transform:uppercase; letter-spacing:0.05em; line-height:1; }
.a11y-panel        { position:fixed; right:-320px; top:0; width:300px; height:100%; background:#fff; border-left:1px solid var(--border); box-shadow:-8px 0 32px rgba(0,0,0,0.1); z-index:10000; display:flex; flex-direction:column; transition:right 0.35s cubic-bezier(0.4,0,0.2,1); overflow-y:auto; }
.a11y-panel.open   { right:0; }
.a11y-overlay      { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.3); z-index:9998; }
.a11y-overlay.open { display:block; }
.a11y-header       { display:flex; align-items:center; justify-content:space-between; padding:20px 20px 16px; border-bottom:1px solid var(--border); flex-shrink:0; }
.a11y-header h3    { font-size:1rem; font-weight:600; color:var(--dark); margin:0; display:flex; align-items:center; gap:8px; }
.a11y-header h3 i  { color:var(--accent); font-size:18px; }
.a11y-close        { background:none; border:none; cursor:pointer; padding:4px; color:var(--gray); font-size:20px; display:flex; align-items:center; transition:color 0.2s; }
.a11y-close:hover  { color:var(--dark); }
.a11y-body         { padding:16px 20px; flex:1; }
.a11y-section-title { font-size:0.68rem; font-weight:700; text-transform:uppercase; letter-spacing:0.1em; color:var(--gray); margin:20px 0 10px; }
.a11y-section-title:first-child { margin-top:0; }
.a11y-btn          { width:100%; display:flex; align-items:center; gap:10px; padding:10px 14px; border-radius:10px; border:1px solid var(--border); background:#fff; color:var(--dark); font-size:0.88rem; font-weight:500; cursor:pointer; margin-bottom:8px; transition:all 0.2s ease; font-family:inherit; text-align:left; }
.a11y-btn i        { font-size:18px; color:var(--accent); flex-shrink:0; }
.a11y-btn:hover    { border-color:var(--accent); background:rgba(3,165,133,0.05); }
.a11y-btn.active   { border-color:var(--accent); background:rgba(3,165,133,0.1); color:var(--accent); font-weight:600; }
.a11y-fontsize     { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.a11y-fontsize span { flex:1; text-align:center; font-size:0.85rem; color:var(--gray); }
.a11y-fs-btn       { width:38px; height:38px; border-radius:8px; border:1px solid var(--border); background:#fff; font-size:1.1rem; font-weight:600; color:var(--dark); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all 0.2s; font-family:inherit; }
.a11y-fs-btn:hover { border-color:var(--accent); background:rgba(3,165,133,0.07); }
.a11y-reset        { width:100%; padding:10px; border-radius:10px; border:1px solid var(--border); background:#fff; color:var(--gray); font-size:0.82rem; cursor:pointer; margin-top:16px; font-family:inherit; transition:all 0.2s; }
.a11y-reset:hover  { border-color:var(--dark); color:var(--dark); }
.a11y-statement    { padding:16px 20px; border-top:1px solid var(--border); font-size:0.78rem; color:var(--gray); flex-shrink:0; }
.a11y-statement a  { color:var(--accent); text-decoration:none; }
.a11y-statement a:hover { text-decoration:underline; }
html.a11y-high-contrast  { filter:contrast(1.5); }
html.a11y-grayscale      { filter:grayscale(100%); }
body.a11y-big-cursor, body.a11y-big-cursor * { cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M8 2 L8 26 L14 20 L18 30 L21 29 L17 19 L25 19 Z' fill='black' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E") 0 0,auto !important; }
body.a11y-highlight-links a { outline:2px solid var(--accent) !important; outline-offset:2px; border-radius:2px; }
body.a11y-pause-animations *, body.a11y-pause-animations *::before, body.a11y-pause-animations *::after { animation-play-state:paused !important; transition:none !important; }
body.a11y-dyslexia   { font-family:Arial,sans-serif !important; letter-spacing:0.05em; word-spacing:0.1em; line-height:1.9 !important; }
body.a11y-dyslexia * { font-family:Arial,sans-serif !important; }
/* ── BUTTERFLY ── */
.butterfly { display: none; }
@media (prefers-reduced-motion: no-preference) and (min-width: 480px) {
  .butterfly {
    display: block;
    position: fixed;
    top: 0; left: 0;
    width: 36px; height: 36px;
    pointer-events: none;
    z-index: 9990;
    will-change: transform;
    transform: translate(200px, 300px);
  }
  .butterfly svg { width: 100%; height: 100%; overflow: visible; }
  .bf-wing-l { transform-origin: 18px 18px; animation: bfLandL 1.4s ease-in-out infinite alternate; }
  .bf-wing-r { transform-origin: 18px 18px; animation: bfLandR 1.4s ease-in-out infinite alternate; }
  .butterfly.flying .bf-wing-l { animation: bfFlyL 0.38s ease-in-out infinite alternate; }
  .butterfly.flying .bf-wing-r { animation: bfFlyR 0.38s ease-in-out infinite alternate; }
  @keyframes bfFlyL  { from { transform: rotateY(0deg);   } to { transform: rotateY(55deg);  } }
  @keyframes bfFlyR  { from { transform: rotateY(0deg);   } to { transform: rotateY(-55deg); } }
  @keyframes bfLandL { from { transform: rotateY(0deg);   } to { transform: rotateY(18deg);  } }
  @keyframes bfLandR { from { transform: rotateY(0deg);   } to { transform: rotateY(-18deg); } }
}

/* ── BACK TO TOP (floating) ── */
#backToTop {
  position: fixed;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%) translateY(80px);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: white;
  color: var(--dark);
  border: 1px solid var(--border);
  padding: 9px 20px;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(0,0,0,0.10);
  z-index: 9980;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.3s ease, border-color 0.2s, color 0.2s, box-shadow 0.2s;
}
#backToTop.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
#backToTop:hover {
  border-color: var(--accent);
  color: var(--accent);
  box-shadow: 0 6px 24px rgba(3,165,133,0.15);
}
#backToTop i { font-size: 15px; }

/* ── FEATURED NEWS SECTION ── */
.news-feature-section { background: var(--light); padding: 64px 0; }
.news-feature-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  text-decoration: none;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--border);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
  background: #fff;
  min-height: 300px;
}
.news-feature-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 48px rgba(0,0,0,0.10);
}

/* Left: photo */
.news-feature-img-side {
  position: relative;
  overflow: hidden;
  background: #c8ddd6;
  min-height: 280px;
}
.news-feature-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.5s ease;
}
.news-feature-card:hover .news-feature-img { transform: scale(1.04); }
.news-feature-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10,31,26,0.32);
}
.news-feature-badge {
  position: absolute;
  top: 18px;
  left: 18px;
  background: var(--accent);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 99px;
}
.news-feature-img-source {
  position: absolute;
  bottom: 16px;
  left: 18px;
  font-size: 0.78rem;
  font-weight: 700;
  color: rgba(255,255,255,0.85);
  letter-spacing: 0.03em;
}

/* Right: content */
.news-feature-body {
  padding: 32px 36px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: #fff;
}
.news-feature-eyebrow {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--accent);
  margin-bottom: 12px;
}
.news-feature-headline {
  font-size: clamp(1rem, 1.8vw, 1.3rem);
  font-weight: 600;
  color: var(--dark);
  line-height: 1.4;
  margin-bottom: 12px;
  font-family: 'Jost',-apple-system, sans-serif;
}
.news-feature-excerpt {
  font-size: 0.9rem;
  color: var(--gray);
  line-height: 1.65;
  flex: 1;
  margin-bottom: 20px;
}
.news-feature-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}
.news-feature-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.news-feature-also   { font-size: 0.72rem; color: var(--gray); opacity: 0.6; }
.news-feature-press  { font-size: 0.75rem; font-weight: 700; font-style: italic; color: var(--gray); opacity: 0.45; }
.news-feature-dot    { width: 3px; height: 3px; border-radius: 50%; background: var(--border); flex-shrink: 0; display: inline-block; }
.news-feature-read   { font-size: 0.82rem; font-weight: 600; color: var(--accent); white-space: nowrap; flex-shrink: 0; }
@media (max-width: 860px) {
  .news-feature-card { grid-template-columns: 1fr; }
  .news-feature-img-side { min-height: 220px; }
  .news-feature-body { padding: 24px; }
}
@media (max-width: 600px) {
  .news-feature-img-side { min-height: 180px; }
  .news-feature-footer { flex-direction: column; align-items: flex-start; gap: 8px; }
  .news-feature-press, .news-feature-also { display: none; }
}

/* ── LCA RESULTS BANNER ── */
.lca-banner{background:linear-gradient(180deg,#ffffff 0%,#FAFCFC 100%);padding:72px 24px 84px;}
.lca-card{position:relative;max-width:1160px;margin:0 auto;border-top:1px solid #E2E8F0;}
.lca-clip{position:absolute;top:0;left:50%;transform:translate(-50%,-52%);filter:drop-shadow(0 4px 7px rgba(10,31,26,0.07));z-index:2;}
.lca-card-head{display:flex;align-items:center;justify-content:center;gap:10px;padding:64px 0 0;}
.lca-card-intro{padding:26px 56px 0;}
.lca-head-badge{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#16AC95,#0C8A76);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(3,165,133,0.25);flex:0 0 auto;}
.lca-card-inner{display:flex;flex-wrap:nowrap;align-items:center;gap:32px;padding:30px 40px 52px;box-sizing:border-box;}
/* Ring */
.lca-ring-wrap{position:relative;width:230px;height:230px;flex:0 0 auto;margin:0;}
.lca-ring-track{fill:none;stroke:#EDF1F5;stroke-width:12;}
.lca-ring-fill{fill:none;stroke:url(#lcaGrad);stroke-width:12;stroke-linecap:round;stroke-dasharray:527.8;stroke-dashoffset:527.8;filter:drop-shadow(0 2px 8px rgba(22,172,149,0.3));}
.lca-banner.lca-visible .lca-ring-fill{animation:lcaRingFill 1.8s cubic-bezier(0.33,1,0.4,1) 0.2s forwards;}
@keyframes lcaRingFill{to{stroke-dashoffset:26.4;}}
.lca-ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;}
.lca-ring-num{font-family:'Jost',-apple-system,sans-serif;font-size:58px;font-weight:600;line-height:1;color:#2F6B57;letter-spacing:-1.5px;}
.lca-ring-num sup{font-size:0.45em;color:#57C4CE;}
.lca-ring-cap{font-size:16px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:#2F6B57;}
/* Text */
.lca-eyebrow{margin:0;font-size:10px;font-weight:600;letter-spacing:0.26em;text-transform:uppercase;color:#03A585;}
.lca-heading{font-family:'Jost',-apple-system,sans-serif;font-size:33px;font-weight:600;line-height:1.25;letter-spacing:-0.3px;color:#1E293B;margin:0;}
.lca-sub{margin:6px 0 0;font-size:17px;line-height:1.6;color:#64748B;}
/* Checklist */
.lca-grid{flex:1 1 auto;min-width:0;display:grid;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:16px 14px;}
.lca-item{display:flex;align-items:center;gap:12px;background:#ffffff;border:1px solid #EEF2F6;border-radius:999px;padding:8px 20px 8px 10px;box-shadow:0 2px 6px rgba(10,31,26,0.05);opacity:0;transform:translateY(10px);}
.lca-banner.lca-visible .lca-item{animation:lcaCatIn 0.55s cubic-bezier(0.22,1,0.36,1) forwards;}
.lca-banner.lca-visible .lca-item:nth-child(1){animation-delay:0.4s;}
.lca-banner.lca-visible .lca-item:nth-child(2){animation-delay:0.5s;}
.lca-banner.lca-visible .lca-item:nth-child(3){animation-delay:0.6s;}
.lca-banner.lca-visible .lca-item:nth-child(4){animation-delay:0.7s;}
.lca-banner.lca-visible .lca-item:nth-child(5){animation-delay:0.8s;}
.lca-banner.lca-visible .lca-item:nth-child(6){animation-delay:0.9s;}
.lca-banner.lca-visible .lca-item:nth-child(7){animation-delay:1s;}
.lca-banner.lca-visible .lca-item:nth-child(8){animation-delay:1.1s;}
.lca-banner.lca-visible .lca-item:nth-child(9){animation-delay:1.2s;}
@keyframes lcaCatIn{to{opacity:1;transform:translateY(0);}}
.lca-item-icon{position:relative;width:46px;height:46px;flex:0 0 auto;}
.lca-item-circle{width:46px;height:46px;border-radius:50%;background:rgba(3,165,133,0.10);box-shadow:inset 0 0 0 1px rgba(3,165,133,0.14);display:flex;align-items:center;justify-content:center;transition:background 0.25s ease,transform 0.25s ease;}
.lca-item:hover .lca-item-circle{background:rgba(3,165,133,0.17);transform:scale(1.07);}
.lca-check{position:absolute;bottom:-1px;right:-2px;width:16px;height:16px;border-radius:50%;background:#03A585;border:2px solid #ffffff;display:flex;align-items:center;justify-content:center;box-sizing:content-box;}
.lca-item-label{font-size:16px;line-height:1.4;color:#1E293B;white-space:nowrap;}
@media(max-width:1100px){
  .lca-card-inner{flex-wrap:wrap;justify-content:center;}
  .lca-grid{grid-template-columns:repeat(2,auto);justify-content:center;}
}
@media(max-width:560px){
  .lca-item-label{font-size:14px;}
  .lca-card-inner{padding:24px 28px 44px;}
  .lca-card-intro{padding:16px 28px 0;}
  .lca-grid{grid-template-columns:repeat(1,auto);justify-content:center;}
  .lca-card-head{padding:56px 28px 0;}
  .lca-ring-wrap{width:230px;height:230px;}
  .lca-ring-num{font-size:52px;}
  .lca-ring-cap{font-size:15px;}
}

/* ── V4 UPGRADES: progress bar, nav CTA pill, impact shadow ── */
:root {
  --v4-shadow-lg: 0 24px 64px -16px rgba(10, 31, 26, 0.18);
  --v4-shadow-md: 0 12px 32px -8px rgba(10, 31, 26, 0.12);
}
.v4-progress {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 0%;
  background: linear-gradient(90deg, var(--accent), #04c9a2);
  z-index: 10020;
  pointer-events: none;
  transition: width 0.08s linear;
}
@media (prefers-reduced-motion: reduce) {
  .v4-progress { display: none; }
}
.v4-nav-cta {
  padding: 9px 20px !important;
  border-radius: 999px;
  background: var(--accent);
  color: #fff !important;
  font-weight: 600;
  font-size: 0.92rem;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  box-shadow: 0 4px 14px -4px rgba(3, 165, 133, 0.5);
}
.v4-nav-cta:hover {
  background: #029474;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px -6px rgba(3, 165, 133, 0.55);
}
.v4-nav-cta.active { color: #fff !important; background: var(--accent); font-weight: 600; }
.impact-grid { box-shadow: var(--v4-shadow-md); }
