/* ============================================================
   DOXA AI — Design System v5.0
   O roxo real da marca, usado como a Neomed/Conexa/Afya usam a
   deles: chapado, confiante, sem glow. Produto de verdade, gente
   de verdade — não diagrama abstrato.
   ============================================================ */

:root {
  --brand:        #5400C3;
  --brand-2:      #D613D6;
  --brand-soft:   rgba(84,0,195,.07);
  --brand-mid:    rgba(84,0,195,.16);

  --white:  #FFFFFF;
  --bg-soft:#F8F5FC;
  --ink:    #170B29;
  --ink-2:  #4A3F5C;
  --muted:  #7A6F8C;
  --border: #E9E2F5;

  --signal-s: #16A34A;
  --signal-s-soft: rgba(22,163,74,.10);
  --signal-r: #DC2626;
  --signal-r-soft: rgba(220,38,38,.10);

  --text-on-ink:     #EFE8FA;
  --text-on-ink-dim: rgba(239,232,250,.62);

  --radius:      16px;
  --radius-sm:   10px;
  --radius-pill: 999px;

  --shadow-card:  0 6px 20px rgba(23,11,41,.05);
  --shadow-hover: 0 18px 40px rgba(84,0,195,.16);

  --ease: cubic-bezier(.4,0,.2,1);
  --t:  .22s var(--ease);
  --ts: .6s var(--ease);

  --font: 'Manrope', 'Segoe UI', sans-serif;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  font-family: var(--font);
  background: var(--white); color: var(--ink);
  line-height: 1.65; overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
button { font-family: inherit; cursor: pointer; }
h1,h2,h3,h4 { font-family: var(--font); }

.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* accent — solid brand weight, not a gradient clip */
.gradient-text { color: var(--brand); font-weight: 800; }

.section-label {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; letter-spacing: .3px;
  color: var(--brand); margin-bottom: 16px;
}
.section-header { text-align: center; margin-bottom: 64px; }
.section-header .section-label { justify-content: center; }
.section-header h2 {
  font-size: clamp(28px, 4vw, 46px); font-weight: 500;
  line-height: 1.18; margin: 0 auto 16px; letter-spacing: -.4px; max-width: 780px;
  color: var(--ink);
}
.section-header h2 .gradient-text { font-weight: 800; }
.section-header p { color: var(--muted); font-size: 17px; max-width: 560px; margin: 0 auto; }

.btn-primary {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 15px 28px;
  background: var(--brand); color: #fff;
  font-weight: 700; font-size: 15px;
  border-radius: var(--radius-pill); border: 1px solid var(--brand);
  transition: var(--t);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); background:#4600A3; border-color:#4600A3; }

.btn-outline {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 15px 28px; background: var(--white); color: var(--brand);
  font-weight: 700; font-size: 15px;
  border-radius: var(--radius-pill); border: 1.5px solid var(--brand-mid);
  transition: var(--t);
}
.btn-outline:hover { border-color: var(--brand); background: var(--brand-soft); transform: translateY(-2px); }

@keyframes fade-up   { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
@keyframes fade-left { from{opacity:0;transform:translateX(-36px)} to{opacity:1;transform:translateX(0)} }
@keyframes fade-right{ from{opacity:0;transform:translateX(36px)} to{opacity:1;transform:translateX(0)} }
@keyframes scale-in  { from{opacity:0;transform:scale(.92)} to{opacity:1;transform:scale(1)} }
@keyframes scroll-pulse { 0%{transform:scaleY(0);transform-origin:top;opacity:1} 50%{transform:scaleY(1);transform-origin:top;opacity:1} 51%{transform:scaleY(1);transform-origin:bottom;opacity:1} 100%{transform:scaleY(0);transform-origin:bottom;opacity:0} }

.reveal,.reveal-left,.reveal-right,.reveal-scale { opacity:0; transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal       { transform: translateY(32px); }
.reveal-left  { transform: translateX(-40px); }
.reveal-right { transform: translateX(40px); }
.reveal-scale { transform: scale(.94); }
.reveal.is-visible,.reveal-left.is-visible,.reveal-right.is-visible,.reveal-scale.is-visible { opacity:1; transform:none; }

.stagger > * { opacity:0; transform:translateY(24px); transition: opacity .55s var(--ease), transform .55s var(--ease); }
.stagger.is-visible > *:nth-child(1)  { opacity:1; transform:none; transition-delay:.00s; }
.stagger.is-visible > *:nth-child(2)  { opacity:1; transform:none; transition-delay:.08s; }
.stagger.is-visible > *:nth-child(3)  { opacity:1; transform:none; transition-delay:.16s; }
.stagger.is-visible > *:nth-child(4)  { opacity:1; transform:none; transition-delay:.24s; }
.stagger.is-visible > *:nth-child(5)  { opacity:1; transform:none; transition-delay:.32s; }
.stagger.is-visible > *:nth-child(6)  { opacity:1; transform:none; transition-delay:.40s; }

.stagger-flip > * { opacity:0; transform:translateY(22px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.stagger-flip.is-visible > *:nth-child(1) { opacity:1; transform:none; transition-delay:.00s; }
.stagger-flip.is-visible > *:nth-child(2) { opacity:1; transform:none; transition-delay:.10s; }
.stagger-flip.is-visible > *:nth-child(3) { opacity:1; transform:none; transition-delay:.20s; }
.stagger-flip.is-visible > *:nth-child(4) { opacity:1; transform:none; transition-delay:.30s; }

.stagger-bounce > * { opacity:0; transform:translateY(18px); transition: opacity .5s var(--ease), transform .5s var(--ease); }
.stagger-bounce.is-visible > *:nth-child(1) { opacity:1; transform:none; transition-delay:.00s; }
.stagger-bounce.is-visible > *:nth-child(2) { opacity:1; transform:none; transition-delay:.08s; }
.stagger-bounce.is-visible > *:nth-child(3) { opacity:1; transform:none; transition-delay:.16s; }
.stagger-bounce.is-visible > *:nth-child(4) { opacity:1; transform:none; transition-delay:.24s; }

/* NAVBAR */
.navbar { position:fixed; top:0; left:0; right:0; z-index:1000; padding:0 24px; transition:var(--t); background:var(--white); }
.navbar.scrolled { box-shadow: 0 1px 0 var(--border), 0 8px 24px rgba(23,11,41,.04); }
.nav-container { max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; height:76px; }
.nav-logo img { height:32px; width:auto; }
.nav-menu { display:flex; list-style:none; align-items:center; gap:30px; }
.nav-link { color:var(--ink-2); font-size:15px; font-weight:600; transition:var(--t); position:relative; padding:4px 0; }
.nav-link:hover { color:var(--brand); }
.nav-cta { background:var(--brand); color:#fff !important; padding:10px 20px; border-radius:var(--radius-pill); }
.nav-cta:hover { background:#4600A3; transform:translateY(-1px); }
.language-switcher { display:flex; align-items:center; gap:2px; padding:4px 10px; border:1px solid var(--border); border-radius:var(--radius-pill); }
.language-switcher .lang-link { color:var(--muted); font-size:12px; font-weight:700; padding:3px 7px; border-radius:6px; transition:var(--t); }
.language-switcher .lang-link.active,.language-switcher .lang-link:hover { color:#fff; background:var(--brand); }
.language-switcher span { color:var(--muted); font-size:12px; }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:6px; }
.hamburger span { width:22px; height:2px; background:var(--ink); border-radius:1px; transition:var(--t); display:block; }
.hamburger.active span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.active span:nth-child(2) { opacity:0; transform:scaleX(0); }
.hamburger.active span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* HERO */
.hero { position:relative; overflow:hidden; padding-top: 76px; }
.hero-glow {
  position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(ellipse 60% 55% at 82% 15%, var(--brand-soft) 0%, transparent 65%);
}
.hero-container {
  position:relative; z-index:2; max-width:1200px; margin:0 auto;
  padding:64px 24px 100px; display:grid; grid-template-columns:1fr .95fr;
  gap:56px; align-items:center;
}
.hero-title { font-size:clamp(34px,4.4vw,58px); font-weight:500; line-height:1.14; letter-spacing:-1px; margin-bottom:24px; margin-top:8px; color:var(--ink); animation:fade-up .7s .1s both; }
.hero-title .line2, .hero-title strong { font-weight:800; }
.hero-desc { font-size:18px; color:var(--muted); max-width:480px; line-height:1.65; margin-bottom:36px; animation:fade-up .6s .4s both; }
.hero-ctas { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:44px; animation:fade-up .6s .55s both; }
.hero-ctas .btn-primary { padding:18px 34px; font-size:16px; box-shadow: 0 12px 28px rgba(84,0,195,.22); }
.hero-ctas .btn-outline { padding:18px 30px; font-size:16px; }
.hero-stats {
  display:grid; grid-template-columns:1fr 1px 1fr 1px 1fr;
  padding:22px 26px; background:var(--white);
  border:1px solid var(--border); border-radius:var(--radius);
  box-shadow: var(--shadow-card);
  animation:fade-up .6s .7s both;
}
.stat { text-align:center; padding:0 10px; }
.stat-divider { background:var(--border); }
.stat-num { display:block; font-size:28px; font-weight:800; color:var(--brand); }
.stat-label { font-size:11.5px; color:var(--muted); text-transform:uppercase; letter-spacing:1px; font-weight:600; }

.hero-visual { display:flex; align-items:center; justify-content:center; animation:fade-up .8s .3s both; }

/* Signature element: honest product mock, not an abstract diagram */
.product-mock { width:100%; max-width:440px; border-radius:20px; overflow:hidden; background:var(--white); border:1px solid var(--border); box-shadow: 0 30px 70px rgba(23,11,41,.14), 0 8px 20px rgba(23,11,41,.06); }
.mock-chrome { display:flex; align-items:center; gap:8px; padding:14px 16px; background:var(--bg-soft); border-bottom:1px solid var(--border); }
.mock-dot { width:9px; height:9px; border-radius:50%; background:var(--border); }
.mock-url { margin-left:10px; font-size:11.5px; color:var(--muted); background:var(--white); border:1px solid var(--border); border-radius:var(--radius-pill); padding:4px 12px; }
.mock-body { display:flex; min-height:340px; }
.mock-sidebar { width:52px; background:var(--ink); display:flex; flex-direction:column; align-items:center; gap:18px; padding:20px 0; flex-shrink:0; }
.mock-nav-icon { width:20px; height:20px; border-radius:6px; background:rgba(255,255,255,.14); }
.mock-nav-icon.active { background:var(--brand-2); }
.mock-main { flex:1; padding:22px 20px; display:flex; flex-direction:column; gap:18px; }
.mock-patient-row { display:flex; align-items:center; gap:12px; }
.mock-avatar { width:38px; height:38px; border-radius:50%; background:var(--brand-mid); flex-shrink:0; }
.mock-line { height:9px; border-radius:5px; background:var(--border); margin-bottom:7px; }
.mock-line.w60 { width:120px; background:var(--ink-2); opacity:.35; }
.mock-line.w40 { width:80px; }
.mock-line.dim { opacity:.6; }
.mock-card { background:var(--bg-soft); border:1px solid var(--border); border-radius:var(--radius-sm); padding:16px; }
.mock-tag { display:inline-block; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--brand); background:var(--brand-soft); border-radius:var(--radius-pill); padding:3px 10px; margin-bottom:10px; }
.mock-drug { font-size:15.5px; font-weight:800; color:var(--ink); margin-bottom:12px; }
.mock-chips { display:flex; gap:6px; flex-wrap:wrap; }
.mock-chips .chip { font-size:10.5px; font-weight:700; padding:4px 9px; border-radius:var(--radius-pill); }
.mock-chips .chip.s { background:var(--signal-s-soft); color:var(--signal-s); }
.mock-chips .chip.r { background:var(--signal-r-soft); color:var(--signal-r); }
.mock-chart { display:flex; align-items:flex-end; gap:8px; height:70px; margin-top:auto; }
.mock-chart span { flex:1; height:var(--h); background:linear-gradient(180deg, var(--brand-2), var(--brand)); border-radius:5px 5px 0 0; opacity:.85; }

.hero-scroll-cue { display:none; }

/* TRUST BAR */
.trust-bar { padding:30px 0; background:var(--bg-soft); }
.trust-bar .container { display:flex; align-items:center; gap:40px; flex-wrap:wrap; justify-content:center; }
.trust-label { font-size:13px; color:var(--muted); font-weight:600; white-space:nowrap; }
.trust-logos { display:flex; align-items:center; gap:48px; flex-wrap:wrap; justify-content:center; }
.trust-logos img { height:32px; width:auto; filter:grayscale(1); opacity:.55; transition:var(--t); }
.trust-logos img:hover { opacity:1; filter:grayscale(0); }

/* ABOUT */
.about { padding:120px 0; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.about-text .section-label { justify-content:flex-start; }
.about-text h2 { font-size:clamp(28px,3.5vw,42px); font-weight:500; line-height:1.2; margin-bottom:22px; letter-spacing:-.4px; }
.about-text p { color:var(--muted); margin-bottom:18px; font-size:17px; }
.about-features { margin-top:32px; display:flex; flex-direction:column; gap:10px; }
.feature-item { position:relative; padding:14px 18px 14px 34px; border-bottom:1px solid var(--border); font-size:15.5px; color:var(--ink-2); font-weight:600; transition:var(--t); }
.feature-item:last-child { border-bottom:none; }
.feature-item::before {
  content:''; position:absolute; left:2px; top:50%; margin-top:-4px;
  width:8px; height:8px; border-radius:50%; background:var(--brand);
}
.feature-item:hover { color:var(--brand); }

/* founder photo cluster — real people, not an abstract canvas.
   Fanned with only edge overlap so all three faces stay fully visible. */
.about-visual { position:relative; display:flex; justify-content:center; align-items:center; min-height:400px; }
.founder-cluster { position:relative; width:100%; max-width:460px; height:360px; }
.founder-photo { position:absolute; top:30px; width:172px; height:216px; object-fit:cover; object-position:50% 22%; border-radius:var(--radius); border:5px solid var(--white); box-shadow:0 16px 36px rgba(23,11,41,.14); }
.founder-photo.p1 { left:0;   z-index:1; transform:rotate(-5deg); }
.founder-photo.p2 { left:144px; top:2px; z-index:2; transform:rotate(2deg); }
.founder-photo.p3 { left:288px; z-index:3; transform:rotate(-3deg); }
.founder-caption { text-align:center; margin-top:20px; font-size:14px; color:var(--muted); font-weight:600; }
.founder-caption strong { color:var(--brand); font-weight:800; }

/* SOLUTIONS */
.solutions { padding:120px 0; background:var(--bg-soft); }
.solutions-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:20px; }
.solution-card { grid-column:span 2; background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:32px 26px; transition:var(--t); box-shadow: var(--shadow-card); }
.solution-card:nth-child(4) { grid-column: 2 / span 2; }
.solution-card:nth-child(5) { grid-column: 4 / span 2; }
.solution-card:hover { border-color:var(--brand-mid); transform:translateY(-6px); box-shadow: var(--shadow-hover); }
.solution-title { font-size:19px; font-weight:800; margin-bottom:12px; color:var(--ink); }
.solution-desc { font-size:14.5px; color:var(--muted); line-height:1.7; }
.solution-tag { display:inline-flex; align-items:center; gap:6px; margin-top:20px; font-size:13px; color:var(--brand); font-weight:700; }
.solution-tag svg { transition:transform .25s var(--ease); }
.solution-card:hover .solution-tag svg { transform:translateX(4px); }

/* TECHNOLOGY */
.technology { padding:120px 0; }
.tech-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.tech-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:34px 30px; transition:var(--t); box-shadow: var(--shadow-card); }
.tech-card:hover { border-color:var(--brand-mid); transform:translateY(-6px); box-shadow: var(--shadow-hover); }
.tech-title { font-size:19px; font-weight:800; margin-bottom:12px; }
.tech-desc { color:var(--muted); font-size:15px; line-height:1.7; }

/* PROCESS */
.process { padding:120px 0; background:var(--bg-soft); }
.process-inner { max-width:800px; margin:0 auto; position:relative; }
.process-track { position:absolute; left:31px; top:50px; bottom:50px; width:2px; background:var(--border); z-index:0; }
.process-track-fill { position:absolute; top:0; left:0; right:0; height:0; background:var(--brand); transition:height .12s linear; }
.process-step { display:flex; gap:32px; align-items:flex-start; padding:32px 0; position:relative; z-index:1; }
.step-node { width:64px; height:64px; border-radius:50%; background:var(--white); border:2px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:17px; font-weight:800; color:var(--muted); flex-shrink:0; transition:.4s var(--ease); position:relative; z-index:2; }
.process-step.lit .step-node { border-color:var(--brand); color:#fff; background:var(--brand); }
.step-body { padding-top:10px; flex:1; }
.step-title { font-size:21px; font-weight:800; margin-bottom:10px; transition:color .3s; }
.process-step.lit .step-title { color:var(--brand); }
.step-desc { color:var(--muted); font-size:15px; line-height:1.7; max-width:540px; }

/* TEAM */
.team { padding:120px 0; }
.team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,320px)); gap:22px; justify-content:center; }
.team-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:34px 22px; text-align:center; transition:var(--t); box-shadow: var(--shadow-card); }
.team-card:hover { border-color:var(--brand-mid); transform:translateY(-6px); box-shadow: var(--shadow-hover); }
.member-avatar { width:96px; height:96px; border-radius:50%; overflow:hidden; margin:0 auto 18px; border:3px solid var(--bg-soft); transition:var(--t); }
.team-card:hover .member-avatar { border-color:var(--brand-mid); }
.member-avatar img { width:100%; height:100%; object-fit:cover; }
.member-name { font-size:17px; font-weight:800; margin-bottom:6px; }
.member-role { font-size:13.5px; color:var(--muted); line-height:1.5; margin-bottom:16px; font-weight:600; }
.member-linkedin { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; background:var(--brand-soft); color:var(--brand); transition:var(--t); }
.member-linkedin:hover { background:var(--brand); color:#fff; }

/* RECOGNITION */
.recognition { padding:120px 0; background:var(--bg-soft); }
.recognition-grid { display:grid; grid-template-columns:repeat(2,minmax(280px,420px)); gap:20px; justify-content:center; }
.recognition-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:32px 22px; text-align:center; transition:var(--t); box-shadow: var(--shadow-card); }
.recognition-card:hover { border-color:var(--brand-mid); transform:translateY(-6px); box-shadow: var(--shadow-hover); }
.recog-logo { height:38px; width:auto; margin:0 auto 20px; filter:grayscale(1); opacity:.6; transition:var(--t); }
.recognition-card:hover .recog-logo { opacity:1; filter:grayscale(0); }
.recog-badge { display:inline-block; padding:6px 14px; background:var(--brand-soft); border-radius:var(--radius-pill); font-size:12.5px; color:var(--brand); font-weight:800; margin-bottom:14px; }
.recog-title { font-size:16px; font-weight:800; margin-bottom:8px; line-height:1.4; }
.recog-desc { font-size:14.5px; color:var(--muted); }

/* CONTACT */
.contact { padding:120px 0; }
.contact-wrap { display:grid; grid-template-columns:1fr 1.25fr; gap:80px; align-items:start; }
.contact-info h2 { font-size:clamp(28px,3.5vw,42px); font-weight:500; line-height:1.2; margin-bottom:18px; letter-spacing:-.4px; }
.contact-info > p { color:var(--muted); margin-bottom:38px; font-size:17px; }
.contact-details { display:flex; flex-direction:column; gap:18px; margin-bottom:38px; }
.contact-detail { display:flex; align-items:flex-start; gap:16px; }
.contact-detail-icon {
  width:44px; height:44px;
  background:var(--brand-soft); border-radius:var(--radius-sm);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  font-size:10.5px; font-weight:800; letter-spacing:.3px; color:var(--brand);
}
.contact-detail-label { font-size:11.5px; color:var(--muted); text-transform:uppercase; letter-spacing:1px; margin-bottom:4px; font-weight:700; }
.contact-detail-value { font-size:15px; color:var(--ink-2); }
.contact-detail-link { display:inline-block; transition:var(--t); }
.contact-detail-link:hover { color:var(--brand); }
.contact-socials { display:flex; gap:10px; }
.contact-social-btn { width:42px; height:42px; border-radius:var(--radius-sm); background:var(--bg-soft); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; color:var(--ink-2); transition:var(--t); }
.contact-social-btn:hover { background:var(--brand-soft); border-color:var(--brand-mid); color:var(--brand); }
.contact-form-box { background:var(--bg-soft); border:1px solid var(--border); border-radius:var(--radius); padding:46px 40px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-group { margin-bottom:18px; }
.form-group label { display:block; font-size:12.5px; color:var(--ink-2); font-weight:700; margin-bottom:8px; }
.form-group input,.form-group textarea { width:100%; padding:13px 16px; background:var(--white); border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--ink); font-size:15px; font-family: var(--font); outline:none; transition:var(--t); }
.form-group input::placeholder,.form-group textarea::placeholder { color:var(--muted); }
.form-group input:focus,.form-group textarea:focus { border-color:var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.form-group textarea { resize:vertical; min-height:120px; }
.form-submit { width:100%; justify-content:center; }
#form-status { margin-top:16px; padding:12px 16px; border-radius:var(--radius-sm); font-size:14px; text-align:center; display:none; font-weight:600; }
#form-status.success { background:var(--signal-s-soft); color:var(--signal-s); display:block; }
#form-status.error { background:var(--signal-r-soft); color:var(--signal-r); display:block; }

/* NEWSLETTER — deliberately the loudest band on the page: last chance
   to capture the visitor before the footer. */
.newsletter-section { background: var(--brand); padding: 76px 0; }
.newsletter-box { max-width: 640px; margin: 0 auto; text-align: center; }
.newsletter-box .section-label { justify-content: center; color: rgba(255,255,255,.7); }
.newsletter-box h2 { color: #fff; font-size: clamp(26px,3.2vw,36px); font-weight:500; line-height:1.25; margin-bottom:14px; letter-spacing:-.3px; }
.newsletter-box h2 span:last-child { font-weight: 800; }
.newsletter-box p { color: rgba(255,255,255,.82); font-size:16.5px; margin-bottom:30px; }
.newsletter-form { display:flex; gap:12px; max-width:460px; margin:0 auto; flex-wrap:wrap; justify-content:center; }
.newsletter-form input { flex:1; min-width:240px; padding:15px 20px; border-radius: var(--radius-pill); border:none; font-size:15px; font-family:var(--font); outline:none; }
.newsletter-form input:focus { box-shadow: 0 0 0 3px rgba(255,255,255,.45); }
.btn-newsletter-submit { padding:15px 30px; background:#fff; color:var(--brand); font-weight:800; font-size:15px; border-radius:var(--radius-pill); border:none; white-space:nowrap; transition:var(--t); }
.btn-newsletter-submit:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(23,11,41,.25); }
#newsletter-status { margin-top:16px; font-size:14px; color:#fff; font-weight:700; }

/* FOOTER */
.footer { background: var(--ink); color: var(--text-on-ink-dim); padding:64px 0 32px; }
.footer-top { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:60px; margin-bottom:50px; }
.footer-brand img { height:28px; margin-bottom:18px; }
.footer-brand p { color:var(--text-on-ink-dim); font-size:14px; max-width:250px; line-height:1.7; margin-bottom:22px; }
.footer-socials { display:flex; gap:10px; }
.footer-social-icon { width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; color:var(--text-on-ink-dim); transition:var(--t); }
.footer-social-icon:hover { color:#fff; background:var(--brand); }
.footer-col h4 { font-size:13px; font-weight:800; color:#fff; margin-bottom:20px; }
.footer-col a { display:block; color:rgba(239,232,250,.75); font-size:14px; margin-bottom:12px; transition:var(--t); }
.footer-col a:hover { color:#fff; transform:translateX(3px); }
.footer-bottom { padding-top:26px; border-top:1px solid rgba(255,255,255,.1); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.footer-bottom p { color:var(--text-on-ink-dim); font-size:12.5px; }

/* MODAL */
.modal-overlay { position:fixed; inset:0; background:rgba(23,11,41,.6); backdrop-filter:blur(4px); z-index:3000; display:none; align-items:center; justify-content:center; }
.modal-overlay.open { display:flex; }
.modal-box { background:var(--white); border-radius:var(--radius); border-top:4px solid var(--signal-r); padding:40px; max-width:520px; width:90%; position:relative; animation:scale-in .3s var(--ease) both; box-shadow: 0 30px 70px rgba(23,11,41,.25); }
.modal-close { position:absolute; top:16px; right:18px; background:none; border:none; color:var(--muted); font-size:24px; line-height:1; transition:var(--t); }
.modal-close:hover { color:var(--ink); }
.modal-warning { color:var(--signal-r); font-size:17px; font-weight:800; margin-bottom:16px; }
.modal-box p { color:var(--ink-2); font-size:14px; line-height:1.7; margin-bottom:12px; }

/* WHATSAPP */
.whatsapp-float { position:fixed; bottom:30px; right:30px; width:56px; height:56px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; z-index:999; transition:opacity .25s var(--ease), transform .25s var(--ease), box-shadow var(--t); box-shadow:0 4px 18px rgba(0,0,0,.25); color:#fff; }
.whatsapp-float:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,.3); }
/* Hidden while the newsletter band (and its own WhatsApp link) or footer are
   in view, so the fixed button never sits on top of their controls. */
.whatsapp-float.is-clear { opacity:0; transform:scale(.7); pointer-events:none; }

/* RESPONSIVE */
@media (max-width:1024px) {
  .hero-container { grid-template-columns:1fr; text-align:center; gap:44px; }
  .hero-desc { margin:0 auto 36px; }
  .hero-ctas { justify-content:center; }
  .hero-visual { max-width:440px; margin:0 auto; }
  .about-grid { grid-template-columns:1fr; }
  .about-visual { order:-1; min-height:340px; }
  .solutions-grid { grid-template-columns:repeat(2,1fr); }
  .solution-card,.solution-card:nth-child(4),.solution-card:nth-child(5) { grid-column:span 1; }
  .tech-grid { grid-template-columns:1fr 1fr; }
  .team-grid { grid-template-columns:repeat(2,1fr); }
  .recognition-grid { grid-template-columns:repeat(2,1fr); }
  .contact-wrap { grid-template-columns:1fr; }
  .footer-top { grid-template-columns:1fr 1fr; }
}
@media (max-width:768px) {
  .nav-menu { position:fixed; top:76px; left:0; right:0; background:var(--white); flex-direction:column; align-items:center; padding:34px 24px; gap:22px; transform:translateY(-130%); opacity:0; transition:transform .35s var(--ease),opacity .35s var(--ease); border-bottom:1px solid var(--border); z-index:900; }
  .nav-menu.active { transform:translateY(0); opacity:1; }
  .hamburger { display:flex; }
  .language-switcher { margin-left:0; }
  .solutions-grid { grid-template-columns:1fr; }
  .tech-grid { grid-template-columns:1fr; }
  .hero-stats { grid-template-columns:1fr; gap:18px; }
  .stat-divider { display:none; }
  .recognition-grid { grid-template-columns:1fr; }
  .contact-form-box { padding:30px 22px; }
  .footer-top { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  .process-step { gap:18px; }
  .step-node { width:50px; height:50px; font-size:14px; }
  .process-track { left:24px; }
  .founder-cluster { max-width:350px; height:280px; }
  .founder-photo { top:22px; width:130px; height:163px; }
  .founder-photo.p1 { left:0; }
  .founder-photo.p2 { left:108px; top:2px; }
  .founder-photo.p3 { left:216px; }
}
@media (max-width:480px) {
  .team-grid { grid-template-columns:1fr; }
  .recognition-grid { grid-template-columns:1fr; }
  .hero-ctas { flex-direction:column; align-items:center; }
}
