/* Instituto CORE — identidade visual renovada */
:root {
  --ink: #0b1724;
  --ink-2: #101f2e;
  --panel: #142638;
  --panel-light: #1b3042;
  --text: #f2f7fa;
  --muted: #aab9c7;
  --line: rgba(189, 214, 229, .17);
  --cyan: #74e3e9;
  --cyan-strong: #3ccbd7;
  --mint: #b4f0d2;
  --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body { margin: 0; background: var(--ink); color: var(--text); font-family: "DM Sans", sans-serif; font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body, button, input, textarea { font-family: "DM Sans", sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { max-width: 100%; display: block; }
.wrap { width: min(var(--max), calc(100% - 56px)); margin-inline: auto; }
.section { position: relative; padding: 112px 0; }
.site-header { height: 82px; position: fixed; inset: 0 0 auto; z-index: 100; background: rgba(8, 19, 30, .88); border-bottom: 1px solid rgba(202, 228, 239, .1); backdrop-filter: blur(18px); }
.nav { height: 100%; display: flex; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; flex-shrink: 0; }
.brand img { width: 154px; max-height: 48px; object-fit: contain; object-position: left center; }
.nav-links { display: flex; align-items: center; gap: 34px; font-size: 14px; color: #c4d0da; }
.nav-links > a:not(.nav-cta) { transition: color .2s ease; }
.nav-links > a:not(.nav-cta):hover { color: var(--cyan); }
.nav-cta { padding: 10px 16px; border: 1px solid rgba(116, 227, 233, .55); border-radius: 7px; color: var(--text); transition: background .2s, color .2s; }
.nav-cta span { margin-left: 10px; color: var(--cyan); }
.nav-cta:hover { background: var(--cyan); color: var(--ink); }
.menu-toggle { display: none; }
.hero { min-height: 730px; padding-top: 164px; padding-bottom: 36px; overflow: hidden; background: radial-gradient(ellipse at 82% 39%, rgba(37, 112, 131, .17), transparent 39%), linear-gradient(115deg, #0a1623 0%, #0c1b29 56%, #0d1c2a 100%); }
.hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .17; background-image: linear-gradient(rgba(138, 190, 211, .11) 1px, transparent 1px), linear-gradient(90deg, rgba(138, 190, 211, .11) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(to right, transparent, black 70%); }
.hero-glow { position: absolute; width: 460px; height: 460px; right: 8%; top: 120px; border-radius: 50%; background: rgba(66, 201, 213, .09); filter: blur(90px); }
.hero-grid { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: 50px; position: relative; z-index: 1; }
.hero-copy { max-width: 660px; }
.eyebrow, .section-kicker { font-size: 11px; font-weight: 700; letter-spacing: .17em; color: var(--cyan); }
.eyebrow { display: flex; align-items: center; gap: 11px; margin-bottom: 27px; }
.eyebrow-dot, .location-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 15px rgba(116, 227, 233, .75); }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: "Manrope", sans-serif; letter-spacing: -.045em; }
.hero h1 { font-size: clamp(42px, 5vw, 66px); line-height: 1.13; font-weight: 700; margin-bottom: 25px; }
.hero h1 span, .intro h2 span, .solutions h2 span, .institute h2 span, .contact h2 span { color: var(--cyan); }
.hero-lead { max-width: 585px; color: #bdcad5; font-size: 17px; line-height: 1.8; margin-bottom: 30px; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: 24px; border-radius: 7px; padding: 13px 18px; min-height: 48px; font-size: 13px; font-weight: 700; transition: transform .2s ease, background .2s ease, border-color .2s ease; cursor: pointer; }
.button:hover { transform: translateY(-2px); }
.button span { font-size: 17px; }
.button-primary { color: #071722; background: var(--cyan); border: 1px solid var(--cyan); }
.button-primary:hover { background: #a1f1f0; }
.button-quiet { border: 1px solid var(--line); color: #dce6ed; }
.button-quiet:hover { border-color: rgba(116, 227, 233, .6); }
.hero-note { display: flex; align-items: center; gap: 12px; margin-top: 48px; color: #8297a8; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.note-line { display: block; width: 32px; height: 1px; background: var(--cyan); }
.hero-art { min-height: 430px; position: relative; display: grid; place-items: center; }
.art-orbit { position: absolute; width: 340px; height: 340px; border: 1px solid rgba(116, 227, 233, .19); border-radius: 50%; transform: rotate(-25deg) scaleY(.7); }
.orbit-two { width: 420px; height: 420px; border-color: rgba(116, 227, 233, .13); transform: rotate(43deg) scaleY(.69); }
.orbit-three { width: 280px; height: 280px; border-style: dashed; border-color: rgba(116, 227, 233, .22); transform: rotate(68deg) scaleY(.7); }
.art-core { width: 174px; height: 174px; display: grid; place-items: center; position: relative; z-index: 2; border-radius: 50%; background: radial-gradient(circle at 40% 30%, #234b5b, #112b3b 70%); border: 1px solid rgba(116, 227, 233, .45); box-shadow: 0 0 80px rgba(60, 203, 215, .14), inset 0 0 35px rgba(116, 227, 233, .09); }
.art-core img { width: 108px; height: 108px; object-fit: contain; opacity: .95; }
.art-node { position: absolute; z-index: 3; display: grid; place-items: center; width: 54px; height: 54px; color: var(--cyan); background: #102434; border: 1px solid rgba(116, 227, 233, .5); border-radius: 15px; box-shadow: 0 12px 34px #07131f; font-size: 15px; font-weight: 700; }
.node-a { top: 54px; left: 21%; transform: rotate(-10deg); }.node-b { top: 47%; right: 4%; transform: rotate(12deg); }.node-c { bottom: 57px; left: 27%; transform: rotate(9deg); }
.art-caption { position: absolute; right: -2px; bottom: 5px; display: flex; gap: 12px; align-items: center; padding: 13px 17px; background: rgba(14, 32, 46, .9); border: 1px solid var(--line); border-radius: 9px; box-shadow: 0 14px 35px rgba(0,0,0,.15); }
.caption-mark { width: 8px; height: 8px; border-radius: 50%; background: var(--mint); }
.art-caption strong, .art-caption small { display: block; }.art-caption strong { font-size: 11px; }.art-caption small { font-size: 10px; color: var(--muted); margin-top: 3px; }
.hero-bottom { display: flex; align-items: center; gap: 18px; margin-top: 50px; position: relative; z-index: 1; color: #708596; font-size: 9px; letter-spacing: .16em; }
.bottom-rule { height: 1px; flex: 1; background: var(--line); }.bottom-index { color: #9eafbd; }
.intro { background: #f0f4f4; color: #102130; }
.intro-grid { display: grid; grid-template-columns: 230px 1fr; gap: 65px; }
.section-kicker { display: flex; gap: 13px; align-items: center; margin-bottom: 24px; }
.section-kicker span { color: #7b909e; font-size: 10px; letter-spacing: .05em; }
.intro .section-kicker, .solutions .section-kicker { color: #187b87; }
.intro h2, .solutions h2, .institute h2, .contact h2, .cta-band h2 { font-size: clamp(32px, 4vw, 47px); line-height: 1.2; font-weight: 700; margin-bottom: 22px; }
.intro h2 span { color: #197f8b; }
.section-lead { color: #526472; font-size: 16px; line-height: 1.85; max-width: 790px; }
.principles { margin-top: 50px; padding-top: 28px; border-top: 1px solid #d1dcdf; display: grid; grid-template-columns: repeat(3, 1fr); gap: 27px; }
.principle-number { color: #19818b; font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.principle h3 { margin: 14px 0 8px; font-size: 21px; }.principle p { color: #5c6c77; font-size: 13px; line-height: 1.75; margin-bottom: 0; }
.solutions { background: #e6edef; color: #102130; }
.solutions-heading { display: flex; justify-content: space-between; align-items: end; gap: 45px; margin-bottom: 43px; }
.solutions-heading > div { flex: 1; }.solutions-heading > p { max-width: 360px; color: #5c6d78; font-size: 14px; line-height: 1.8; margin-bottom: 28px; }
.solutions h2 { margin-bottom: 0; }.solutions h2 span { color: #197f8b; }
.solution-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.solution-card { position: relative; min-height: 260px; padding: 28px 30px; border: 1px solid #d1dcdf; border-radius: 11px; background: rgba(255,255,255,.55); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.solution-card:hover { transform: translateY(-4px); box-shadow: 0 18px 35px rgba(23, 51, 67, .08); border-color: #9bcbd0; }
.solution-featured { background: #102535; color: #f4f8fa; border-color: #102535; }
.solution-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 26px; }
.solution-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 9px; background: rgba(47, 157, 169, .12); border: 1px solid rgba(47, 157, 169, .28); color: #177f8b; font-size: 24px; }
.solution-featured .solution-icon { color: var(--cyan); background: rgba(116,227,233,.1); border-color: rgba(116,227,233,.24); }
.solution-index { color: #8ba0ad; font-size: 11px; letter-spacing: .1em; }
.solution-card h3 { font-size: 21px; margin-bottom: 11px; }.solution-card > p { color: #5b6d79; font-size: 13px; line-height: 1.75; max-width: 470px; }.solution-featured > p { color: #bdcbd4; }
.solution-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 21px; }
.solution-tags span { border: 1px solid #d3dfe2; border-radius: 4px; padding: 4px 8px; font-size: 10px; color: #617581; }
.solution-featured .solution-tags span { border-color: rgba(174, 209, 219, .22); color: #c1d5df; }
.solutions-footnote { display: flex; align-items: center; gap: 15px; margin-top: 28px; color: #61737e; font-size: 12px; }.solutions-footnote p { margin: 0; }.footnote-star { color: #17818c; font-size: 24px; }
.institute { background: #0d1b29; overflow: hidden; }
.institute-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: center; }
.institute-visual { min-width: 0; }
.visual-panel { position: relative; aspect-ratio: 1 / 1; max-width: 450px; overflow: hidden; border-radius: 13px; border: 1px solid rgba(116,227,233,.16); background: radial-gradient(circle at center, rgba(39,113,127,.2), rgba(14,32,47,.1) 60%), #102232; }
.visual-grid { position: absolute; inset: 0; opacity: .24; background-image: linear-gradient(rgba(116,227,233,.16) 1px, transparent 1px), linear-gradient(90deg, rgba(116,227,233,.16) 1px, transparent 1px); background-size: 34px 34px; mask-image: radial-gradient(circle at center, black, transparent 78%); }
.visual-ring { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(116,227,233,.32); border-radius: 50%; transform: translate(-50%,-50%); }.ring-a { width: 46%; aspect-ratio: 1; }.ring-b { width: 68%; aspect-ratio: 1; border-style: dashed; }.ring-c { width: 91%; aspect-ratio: 1; border-color: rgba(116,227,233,.16); }
.visual-center { position: absolute; inset: 0; display: grid; place-items: center; }.visual-center img { width: 145px; max-height: 90px; object-fit: contain; }
.visual-label { position: absolute; font-size: 9px; letter-spacing: .18em; color: #9ccbd0; background: #102232; padding: 5px 8px; }.label-one { top: 18%; left: 10%; }.label-two { right: 7%; top: 47%; }.label-three { bottom: 15%; left: 27%; }
.visual-caption { margin: 14px 0 0; font-size: 11px; color: #7e95a5; letter-spacing: .04em; }
.institute .section-kicker { color: var(--cyan); }.institute h2 { font-size: clamp(32px, 3.8vw, 43px); }.institute h2 span { color: var(--cyan); }
.institute-copy > p { color: #adbdc9; font-size: 14px; line-height: 1.9; }
.values-list { margin-top: 32px; border-top: 1px solid var(--line); }.values-list > div { display: flex; gap: 20px; align-items: flex-start; padding: 18px 0; border-bottom: 1px solid var(--line); }.values-list > div > span { color: var(--cyan); font-size: 10px; letter-spacing: .1em; padding-top: 3px; }.values-list p { margin: 0; }.values-list strong, .values-list small { display: block; }.values-list strong { font-size: 13px; font-weight: 600; }.values-list small { margin-top: 4px; color: #91a4b3; font-size: 12px; }
.cta-band { background: var(--cyan); color: #09202c; padding: 56px 0; }.cta-inner { display: flex; justify-content: space-between; align-items: center; gap: 30px; }.cta-band .section-kicker { color: #276d75; margin-bottom: 16px; }.cta-band .section-kicker span { color: #276d75; }.cta-band h2 { margin-bottom: 0; font-size: clamp(32px, 4vw, 44px); }.cta-band h2 span { color: #2b7580; }
.button-light { background: #0d2331; border: 1px solid #0d2331; color: white; min-width: 190px; }.button-light span { color: var(--cyan); }
.contact { background: #f0f4f4; color: #102130; }.contact-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: start; }.contact .section-kicker { color: #197f8b; }.contact h2 { margin-bottom: 20px; }.contact h2 span { color: #197f8b; }.contact-copy > p { max-width: 420px; color: #5b6d79; font-size: 14px; line-height: 1.85; margin-bottom: 30px; }
.contact-email { display: inline-flex; align-items: center; gap: 20px; padding-bottom: 7px; border-bottom: 1px solid #7caeb3; color: #147985; font-weight: 700; }.contact-location { display: flex; align-items: center; gap: 10px; margin-top: 25px; font-size: 12px; color: #70818c; }.contact-location .location-dot { width: 6px; height: 6px; background: #208a94; box-shadow: none; }
.contact-form-card { padding: 33px; background: white; border: 1px solid #dce5e7; border-radius: 12px; box-shadow: 0 20px 55px rgba(20, 50, 65, .06); }.contact-form-card h3 { font-size: 22px; margin-bottom: 7px; }.contact-form-card > p { color: #687a85; font-size: 12px; margin-bottom: 24px; }
#contactForm { display: flex; flex-direction: column; gap: 8px; }#contactForm label { margin-top: 7px; color: #304653; font-size: 12px; font-weight: 700; }#contactForm input, #contactForm textarea { width: 100%; border: 1px solid #d4dfe2; background: #f9fbfb; border-radius: 6px; padding: 12px 13px; color: #102130; outline: none; font-size: 13px; transition: border-color .2s, box-shadow .2s; }#contactForm input:focus, #contactForm textarea:focus { border-color: #4bbbc4; box-shadow: 0 0 0 3px rgba(75,187,196,.13); }#contactForm textarea { resize: vertical; min-height: 105px; }#contactForm input::placeholder, #contactForm textarea::placeholder { color: #97a5ad; }
.submit-button { align-self: flex-start; margin-top: 12px; }.submit-button:disabled { opacity: .65; cursor: wait; transform: none; }.status-message { min-height: 0; margin: 4px 0 0; font-size: 12px; }.status-message.success { color: #187b54; }.status-message.error { color: #a43b3b; }
.site-footer { padding: 25px 0; background: #08131e; border-top: 1px solid rgba(189,214,229,.12); }.footer-inner { display: flex; align-items: center; gap: 25px; flex-wrap: wrap; }.footer-brand img { width: 125px; }.footer-inner > p { margin: 0; color: #7f93a3; font-size: 11px; }.back-top { margin-left: auto; color: #a8bbc8; font-size: 11px; }.back-top:hover { color: var(--cyan); }.footer-inner small { width: 100%; padding-top: 17px; border-top: 1px solid rgba(189,214,229,.1); color: #647988; font-size: 10px; }
:focus-visible { outline: 2px solid var(--cyan-strong); outline-offset: 4px; }
@media (max-width: 980px) {
  .wrap { width: min(100% - 40px, var(--max)); }
  .section { padding: 85px 0; }
  .hero { padding-top: 140px; }
  .hero-grid { grid-template-columns: 1fr .8fr; gap: 15px; }
  .hero-art { transform: scale(.84); margin: -20px -30px; }
  .hero h1 { font-size: clamp(38px, 5vw, 54px); }
  .intro-grid { grid-template-columns: 170px 1fr; gap: 35px; }
  .institute-grid, .contact-grid { gap: 45px; }
  .solutions-heading { gap: 25px; }
}
@media (max-width: 720px) {
  html { scroll-padding-top: 74px; }
  .wrap { width: calc(100% - 36px); }
  .site-header { height: 72px; }
  .brand img { width: 132px; }
  .menu-toggle { display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 42px; height: 42px; padding: 9px; border: 1px solid var(--line); background: transparent; border-radius: 7px; }
  .menu-toggle span { display: block; width: 100%; height: 2px; background: #e7f1f5; transition: transform .2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(7px) rotate(45deg); }.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-7px) rotate(-45deg); }
  .nav-links { display: none; position: absolute; top: 71px; left: 0; right: 0; padding: 18px 22px 24px; background: #0b1926; border-bottom: 1px solid var(--line); flex-direction: column; align-items: stretch; gap: 0; }
  .nav-links.is-open { display: flex; }.nav-links > a:not(.nav-cta) { padding: 12px 3px; border-bottom: 1px solid rgba(189,214,229,.09); }.nav-cta { text-align: center; margin-top: 15px; }
  .section { padding: 68px 0; }
  .hero { padding-top: 125px; padding-bottom: 28px; min-height: auto; }
  .hero-grid { grid-template-columns: 1fr; gap: 0; }
  .hero h1 { font-size: clamp(39px, 10vw, 55px); }
  .hero-lead { font-size: 15px; }
  .hero-note { margin-top: 30px; font-size: 9px; }
  .hero-art { min-height: 330px; margin: -3px 0 0; transform: scale(.83); }
  .art-caption { right: 0; bottom: -5px; }.node-a { left: 16%; }.node-c { left: 19%; }.node-b { right: 8%; }
  .hero-bottom { margin-top: 15px; gap: 10px; font-size: 8px; }
  .intro-grid { grid-template-columns: 1fr; gap: 18px; }
  .section-kicker { margin-bottom: 19px; }
  .intro h2, .solutions h2, .institute h2, .contact h2 { font-size: clamp(31px, 8vw, 42px); }
  .principles { grid-template-columns: 1fr; gap: 22px; margin-top: 30px; }
  .principle { display: grid; grid-template-columns: 55px 1fr; column-gap: 12px; }.principle-number { grid-row: span 2; padding-top: 5px; }.principle h3 { margin: 0 0 5px; }.principle p { grid-column: 2; }
  .solutions-heading { display: block; margin-bottom: 28px; }.solutions-heading > p { margin: 20px 0 0; }
  .solution-grid { grid-template-columns: 1fr; }.solution-card { padding: 24px; min-height: 0; }.solution-top { margin-bottom: 18px; }.solution-card h3 { font-size: 20px; }
  .solutions-footnote { align-items: flex-start; line-height: 1.6; }
  .institute-grid, .contact-grid { grid-template-columns: 1fr; gap: 38px; }
  .visual-panel { max-width: 420px; margin: auto; }.visual-caption { text-align: center; }
  .institute-copy > p { font-size: 13px; }
  .cta-band { padding: 42px 0; }.cta-inner { align-items: flex-start; flex-direction: column; gap: 24px; }.cta-band h2 { font-size: 35px; }
  .contact-form-card { padding: 24px 20px; }
  .footer-inner { gap: 15px; }.footer-inner > p { width: calc(100% - 150px); }.back-top { margin-left: 0; }.footer-inner small { margin-top: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
