@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('assets/fonts/plus-jakarta-sans-latin.woff2') format('woff2');
}

:root {
  --navy: #161647; --deep: #161647; --green: #578113; --lime: #86b52a;
  --blue: #161647; --cyan: #00a1d7; --paper: #f4f5f1; --ink: #171c2e;
}
* { box-sizing: border-box; }
html { max-width: 100%; overflow-x: clip; scroll-behavior: smooth; }
body { max-width: 100%; margin: 0; overflow-x: clip; background: var(--paper); color: var(--ink); font-family: 'Plus Jakarta Sans', Arial, sans-serif; }
a { color: inherit; text-decoration: none; }
.wrap { width: min(1080px, calc(100% - 80px)); margin: auto; }
.service-rail { display: none; }
.whatsapp-float { position: fixed; z-index: 90; right: 26px; bottom: 26px; height: 58px; min-width: 58px; padding: 0 18px; border-radius: 29px; display: flex; align-items: center; justify-content: center; gap: 0; overflow: hidden; background: #25d366; color: white; box-shadow: 0 12px 30px rgba(9, 61, 28, .28); transition: gap .3s ease, padding .3s ease, transform .25s ease, box-shadow .25s ease, background-color .25s ease; }
.whatsapp-float svg { width: 27px; height: 27px; flex: 0 0 27px; fill: currentColor; }
.whatsapp-float span { max-width: 0; opacity: 0; overflow: hidden; white-space: nowrap; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; transition: max-width .32s ease, opacity .2s ease; }
.whatsapp-float:hover, .whatsapp-float:focus-visible { gap: 11px; padding: 0 21px; transform: translateY(-3px); background: #20bd5a; box-shadow: 0 16px 36px rgba(9, 61, 28, .36); }
.whatsapp-float:hover span, .whatsapp-float:focus-visible span { max-width: 110px; opacity: 1; }
.site-header { position: fixed; top: 0; left: 0; width: 100%; height: 94px; z-index: 100; color: white; border-bottom: 1px solid #ffffff24; transition: background-color .28s ease, box-shadow .28s ease, border-color .28s ease; }
.site-header::before { content: ''; position: absolute; inset: 0 auto 0 0; width: min(52vw, 760px); background: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(255,255,255,.98) 62%, rgba(255,255,255,.72) 78%, rgba(255,255,255,0) 100%); pointer-events: none; transition: width .58s cubic-bezier(.22,.75,.2,1); }
.site-header.is-sticky { background: transparent; color: var(--navy); border-color: #dfe3dc; box-shadow: 0 12px 32px rgba(11, 17, 21, .13); backdrop-filter: blur(9px); }
.site-header.is-sticky::before { width: 162vw; }
.site-header.is-sticky .menu-toggle { color: var(--navy); }
.site-header.is-sticky .menu-toggle span,
.site-header.is-sticky .menu-toggle span::before,
.site-header.is-sticky .menu-toggle span::after { background: var(--navy); }
.topbar { position: relative; z-index: 4; height: 94px; display: flex; justify-content: space-between; align-items: center; pointer-events: none; }
.brand { position: relative; display: flex; align-items: center; align-self: stretch; min-width: 258px; padding: 7px 15px 7px 8px; pointer-events: auto; }
.brand img { display: block; width: 235px; height: 72px; object-fit: contain; object-position: left center; }
.footer-logo { width: 160px; height: auto; }
.topbar-right { display: none; }
.topbar-right svg { width: 21px; height: 21px; fill: none; stroke: white; stroke-width: 1.7; }
.topbar-right .dot { fill: white; stroke: none; }
.nav { position: absolute; z-index: 3; top: 0; left: 50%; transform: translateX(-50%); height: 94px; display: flex; align-items: center; justify-content: flex-end; gap: 30px; padding-left: 295px; }
.nav > ul, .nav-cta, .menu-toggle { pointer-events: auto; }
.nav > ul { display: flex; align-items: center; height: 100%; gap: 29px; list-style: none; margin: 0; padding: 0; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .035em; }
.nav li { position: relative; }
.nav > ul > li { display: flex; align-items: center; height: 100%; }
.nav li a { opacity: .85; }
.nav li a:hover, .nav li a:focus, .nav li a.active { color: #b1d04a; opacity: 1; }
.nav .submenu { display: block; position: absolute; top: 100%; left: -18px; width: 245px; margin: 0; padding: 12px 0; list-style: none; background: white; box-shadow: 0 14px 35px #070d2750; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease, visibility .2s ease; }
.nav .submenu li { display: block; height: auto; }
.nav .submenu li a { display: block; padding: 11px 18px; color: var(--navy); font-size: 12px; text-transform: none; letter-spacing: .02em; opacity: 1; }
.nav .submenu li a:hover, .nav .submenu li a.active { color: var(--green); background: #f2f4ef; }
.nav .has-submenu:hover > .submenu, .nav .has-submenu:focus-within > .submenu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.nav-cta, .site-header.is-sticky .nav-cta { color: white; font-size: 10px; background: var(--green); padding: 16px 18px; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; white-space: nowrap; }
.nav-cta span { color: #b4d64a; font-size: 16px; margin-left: 10px; }
.menu-toggle { display: none; }
.hero { position: relative; min-height: 810px; background: #0c1418; color: white; overflow: hidden; }
.hero-image { position: absolute; inset: 0; background: url('assets/hero-laboratorio-hd.webp') center / cover; filter: saturate(.78) contrast(1.04); }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, #071014f2 0%, #071014d9 43%, #0710149e 100%); }
.hero-content { position: relative; padding-top: 255px; }
.hero-content > .eyebrow { display: none; }
.eyebrow { font-family: 'Plus Jakarta Sans', sans-serif; text-transform: uppercase; letter-spacing: .16em; font-size: 11px; font-weight: 700; color: #d7e3b3; margin: 0 0 20px; }
.eyebrow.green { color: var(--green); }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: 'Plus Jakarta Sans', Arial, sans-serif; font-weight: 800; line-height: 1.14; text-wrap: balance; }
p { text-wrap: pretty; }
h1 { max-width: 850px; font-size: clamp(46px, 4.5vw, 58px); letter-spacing: -.04em; margin: 0 0 25px; }
h1 em, h2 span { color: inherit; font-style: normal; }
.hero-text { max-width: 650px; line-height: 1.7; color: #aeb6bc; font-size: 17px; font-weight: 600; }
.round-link { margin-top: 24px; display: inline-flex; align-items: center; gap: 18px; color: white; }
.round-link span { display: grid; place-items: center; width: 64px; height: 64px; flex: 0 0 64px; border-radius: 50%; background: var(--green); line-height: 0; }
.round-link svg { display: block; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.round-link b { font-size: 14px; }
.hero-meta { display: none; }
.intro { display: grid; grid-template-columns: 1.15fr .85fr; gap: 90px; padding-top: 125px; padding-bottom: 125px; }
.intro h2, .section-heading h2, .feature h2 { font-size: clamp(32px, 3.2vw, 44px); color: #3f454a; margin: 0; }
.intro-copy { align-self: end; max-width: 380px; color: #5e6473; line-height: 1.8; font-size: 15px; }
.text-link { display: inline-block; color: var(--navy); font-size: 12px; text-transform: uppercase; letter-spacing: .13em; border-bottom: 1px solid #a5aaaf; padding-bottom: 12px; margin-top: 20px; }
.text-link span { color: var(--green); font-size: 18px; margin-left: 10px; }
.services, .portfolio { background: white; padding: 110px 0 120px; }
.services { background: #0c171b; color: white; }
.services .section-heading h2 { color: white; }
.services .section-heading > p { color: #aeb8bd; }
.section-heading { display: block; max-width: 760px; margin: 0 auto 55px; text-align: center; }
.section-heading > p { width: auto; max-width: 650px; color: #777e84; line-height: 1.7; font-size: 14px; margin: 20px auto 0; }
.service-grid, .portfolio-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.service-card { min-height: 365px; padding: 25px; color: white; position: relative; overflow: hidden; background: #0b1115; }
.service-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 20%, #071014e8 100%); }
.service-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .8; transition: transform .35s ease; }
.service-card div { position: absolute; z-index: 2; left: 24px; right: 24px; bottom: 24px; }
.service-card h3 { font-size: 24px; margin: 0 0 10px; }
.service-card p { font-size: 12px; line-height: 1.65; color: #d3d8da; margin-bottom: 0; }
.navy, .blue, .cyan, .lime { background: #0b1115; }
.service-card:hover img { transform: scale(1.05); }
.feature { display: grid; grid-template-columns: 1fr 1fr; gap: 75px; padding-top: 120px; padding-bottom: 125px; align-items: center; background: white; box-shadow: 0 0 0 100vmax white; clip-path: inset(0 -100vmax); }
.feature-photo { order: 2; }
.feature-copy { order: 1; }
.feature-photo { height: 570px; position: relative; background: #d8ddd5; overflow: hidden; }
.feature-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 58%, rgba(6, 15, 19, .46)); pointer-events: none; }
.feature-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.photo-label { position: absolute; z-index: 1; bottom: 20px; left: 20px; padding: 9px 12px; background: white; color: var(--navy); font-size: 10px; text-transform: uppercase; letter-spacing: .14em; }
.feature-copy > p:not(.eyebrow) { max-width: 430px; color: #676e7b; line-height: 1.8; margin: 28px 0; }
.feature-points { border-top: 1px solid #c6cbc5; border-bottom: 1px solid #c6cbc5; margin: 33px 0 20px; }
.feature-points div { display: flex; gap: 28px; padding: 17px 0; border-bottom: 1px solid #d4d8d1; font-family: 'Plus Jakarta Sans'; font-size: 16px; font-weight: 600; color: var(--navy); }
.feature-points div:last-child { border-bottom: 0; }
.standards-band { position: relative; isolation: isolate; overflow: hidden; background: var(--navy); color: white; padding: 72px 0 64px; }
.standards-band::before { content: ''; position: absolute; z-index: -1; top: -90px; right: -35px; width: 430px; height: 330px; opacity: .13; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 430 330' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Cpath d='M318 31v74l58 101c18 32-5 72-42 72H184c-37 0-60-40-42-72l58-101V31'/%3E%3Cpath d='M188 164h142M176 190c41 12 75-11 111 1 23 8 39 6 63-2'/%3E%3Ccircle cx='225' cy='219' r='8'/%3E%3Ccircle cx='275' cy='237' r='5'/%3E%3Ccircle cx='315' cy='208' r='11'/%3E%3Cpath d='m51 85 39-23 39 23v45l-39 23-39-23V85Zm78 0 42-24 38 22m-119 70v48m0 0-36 21m36-21 36 21'/%3E%3Ccircle cx='51' cy='85' r='6' fill='%23ffffff'/%3E%3Ccircle cx='171' cy='61' r='6' fill='%23ffffff'/%3E%3Ccircle cx='54' cy='222' r='6' fill='%23ffffff'/%3E%3Ccircle cx='126' cy='222' r='6' fill='%23ffffff'/%3E%3C/svg%3E") center / contain no-repeat; }
.standards-layout { display: grid; grid-template-columns: 1.25fr .75fr; gap: 24px 80px; align-items: end; }
.standards-layout h2 { max-width: 650px; margin: 0; color: white; font-size: clamp(32px, 3.5vw, 46px); }
.standards-layout > p { max-width: 360px; margin: 0 0 7px; color: #b8c1d2; font-size: 14px; line-height: 1.8; }
.standards-list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(7, 1fr); border-top: 1px solid #ffffff28; margin-top: 25px; }
.standards-list span { padding: 25px 12px 0; border-left: 1px solid #ffffff1d; color: #dce6c5; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px; font-weight: 700; letter-spacing: .06em; text-align: center; }
.standards-list span:first-child { border-left: 0; }
.expertise { background: #eef0eb; padding: 110px 0 115px; }
.expertise-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 85px; }
.expertise-heading h2 { margin: 0; color: #3f454a; font-size: clamp(32px, 3.2vw, 43px); }
.expertise-grid { border-top: 1px solid #c5cac3; }
.expertise-grid article { display: grid; grid-template-columns: 190px 1fr; gap: 30px; padding: 26px 0; border-bottom: 1px solid #c5cac3; }
.expertise-grid h3 { margin: 0; color: var(--navy); font-family: 'Plus Jakarta Sans', sans-serif; font-size: 18px; font-weight: 700; }
.expertise-grid p { margin: 0; color: #626a78; font-size: 13px; line-height: 1.8; }
.portfolio { background: var(--navy); color: white; } .portfolio .section-heading h2 { color: white; } .portfolio .section-heading > p { color: #c5ccdc; }
.portfolio-grid article { min-height: 360px; position: relative; background: #27305b; overflow: hidden; }
.portfolio-grid article img { width: 100%; height: 100%; object-fit: cover; opacity: .8; }
.portfolio-grid article > div { position: absolute; inset: auto 22px 22px; color: white; }
.portfolio-grid article span, .portfolio-note span { font-size: 10px; text-transform: uppercase; letter-spacing: .15em; color: #c5df75; }
.portfolio-grid h3 { font-size: 31px; margin: 8px 0 0; }
.portfolio-note { padding: 26px; background: var(--green); display: flex; flex-direction: column; justify-content: flex-end; }
.portfolio-note h3 { font-size: 38px; } .portfolio-note a { font-size: 11px; text-transform: uppercase; letter-spacing: .14em; margin-top: 20px; }
.portfolio-note b { font-size: 20px; color: #d2ed85; margin-left: 10px; }
.contact-cta { position: relative; isolation: isolate; overflow: hidden; padding: 105px 0; background: #0d1418; color: white; }
.contact-cta::before { content: ''; position: absolute; z-index: -1; inset: 0; opacity: .17; background-image: radial-gradient(circle at 78% 26%, rgba(134,181,42,.58) 0 5px, transparent 6px), radial-gradient(circle at 88% 66%, rgba(255,255,255,.34) 0 8px, transparent 9px), radial-gradient(circle at 70% 78%, rgba(134,181,42,.42) 0 12px, transparent 13px), radial-gradient(circle at 94% 18%, rgba(255,255,255,.2) 0 3px, transparent 4px); }
.contact-cta::after { content: ''; position: absolute; z-index: -1; right: 4%; top: 50%; width: 470px; height: 300px; transform: translateY(-50%); opacity: .17; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 470 300' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Cpath d='m58 98 47-28 47 28v55l-47 28-47-28V98Zm94 0 48-28 47 28v55l-47 28-48-28m95-55 47-28 47 28v55l-47 28-47-28'/%3E%3Cpath d='m341 98 47-28 47 28v55l-47 28-47-28M105 181v54m0 0-43 25m43-25 43 25m190-79v54m0 0-43 25m43-25 43 25'/%3E%3Ccircle cx='58' cy='98' r='7' fill='%23a8c954' stroke='none'/%3E%3Ccircle cx='200' cy='70' r='7' fill='%23a8c954' stroke='none'/%3E%3Ccircle cx='388' cy='70' r='7' fill='%23a8c954' stroke='none'/%3E%3Ccircle cx='62' cy='260' r='7' fill='%23a8c954' stroke='none'/%3E%3Ccircle cx='381' cy='260' r='7' fill='%23a8c954' stroke='none'/%3E%3C/svg%3E") center / contain no-repeat; }
.contact-cta .wrap { position: relative; z-index: 1; }
.contact-cta h2 { max-width: 760px; font-size: clamp(36px, 4.1vw, 52px); margin: 0 0 38px; color: white; } .contact-cta em { color: #a8c954; font-style: normal; }
.cta-button { display: inline-flex; align-items: center; gap: 35px; background: var(--green); color: white; padding: 18px 23px; font-size: 11px; text-transform: uppercase; letter-spacing: .13em; }
.cta-button span { font-size: 22px; color: #c4df72; }
footer { position: relative; isolation: isolate; overflow: hidden; background: #161647; color: #d6dbea; }
footer::before { content: ''; position: absolute; z-index: -1; left: -120px; bottom: -165px; width: 560px; height: 430px; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; box-shadow: 0 0 0 54px rgba(255,255,255,.025), 0 0 0 108px rgba(134,181,42,.025); }
footer::after { content: ''; position: absolute; z-index: -1; right: -70px; top: 18px; width: 390px; height: 290px; opacity: .08; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 390 290' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Cpath d='m35 84 42-24 42 24v48l-42 24-42-24V84Zm84 0 42-24 42 24v48l-42 24-42-24m42 24v48m0 0 42 24m-42-24-42 24M203 84l42-24 42 24v48l-42 24-42-24m84-48 42-24 42 24v48l-42 24-42-24'/%3E%3Ccircle cx='35' cy='84' r='6' fill='%23ffffff'/%3E%3Ccircle cx='161' cy='60' r='6' fill='%23ffffff'/%3E%3Ccircle cx='245' cy='156' r='6' fill='%23ffffff'/%3E%3Ccircle cx='203' cy='228' r='6' fill='%23ffffff'/%3E%3C/svg%3E") center / contain no-repeat; }
.footer-main { width: min(1440px, calc(100% - 112px)); display: grid; grid-template-columns: 1.05fr .9fr 1fr; gap: clamp(70px, 9vw, 155px); padding-top: 96px; padding-bottom: 78px; }
.footer-main > div:first-child { max-width: 390px; }
.footer-main > div:nth-child(2) { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); align-content: start; column-gap: 42px; }
.footer-main > div:nth-child(2) .footer-title { grid-column: 1 / -1; }
.footer-logo { width: 142px; margin-bottom: 28px; filter: drop-shadow(0 8px 20px rgba(0,0,0,.2)); }
.footer-main p { font-size: 15px; line-height: 1.85; color: #abb3b8; font-weight: 500; }
.footer-main a { display: block; width: fit-content; font-size: 15px; color: #e4e8ea; margin: 0 0 20px; transition: color .2s ease, transform .2s ease; }
.footer-main a:hover { color: #a8c954; transform: translateX(3px); }
.footer-title { grid-column: 1 / -1; font-family: 'Plus Jakarta Sans'; font-size: 22px !important; font-weight: 800; color: white !important; margin-bottom: 36px; }
.footer-main > div:nth-child(3) > p:not(.footer-title),
.footer-main > div:nth-child(3) > a { position: relative; padding-left: 30px; }
.footer-main > div:nth-child(3) > p:not(.footer-title)::before,
.footer-main > div:nth-child(3) > a::before { content: ''; position: absolute; left: 0; top: 2px; width: 17px; height: 17px; background-position: center; background-repeat: no-repeat; background-size: contain; }
.footer-main > div:nth-child(3) > p:not(.footer-title)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8c954' stroke-width='1.8'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.footer-main a[href^="tel:"]::before,
.footer-main a[href*="api.whatsapp"]::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8c954' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M7 3H4a1 1 0 0 0-1 1c0 9.4 7.6 17 17 17a1 1 0 0 0 1-1v-3l-4-2-2 2c-3.5-1.5-6.5-4.5-8-8l2-2-2-4Z'/%3E%3C/svg%3E"); }
.footer-main a[href^="mailto:"]::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8c954' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='1.5'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E"); }
.footer-bottom { width: min(1440px, calc(100% - 112px)); padding: 28px 100px 48px 0; border-top: 0; display: flex; justify-content: space-between; font-size: 13px; font-weight: 600; color: #a7afb4; }
.footer-bottom span:first-child { color: white; }
.footer-bottom a { color: #a8c954; transition: color .2s ease; }
.footer-bottom a:hover { color: white; }
.back-to-top { position: absolute; right: max(32px, calc((100% - 1440px) / 2)); bottom: 104px; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--green); color: white; display: grid; place-items: center; cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .25s ease, visibility .25s ease, transform .25s ease, background .2s ease; }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:hover { background: var(--lime); }
.back-to-top svg { display: block; width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.inner-hero { min-height: 410px; padding-top: 94px; position: relative; display: flex; align-items: center; color: white; background: var(--deep); overflow: hidden; }
.inner-hero::before { content: ''; position: absolute; inset: 0; background: url('assets/hero-laboratorio-hd.webp') center / cover; }
.inner-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #071029ed, #071029a8); }
.inner-hero .wrap { position: relative; z-index: 1; padding: 36px 0 28px; }
.inner-hero h1 { font-size: clamp(36px, 3.5vw, 46px); margin-bottom: 16px; }
.breadcrumb { display: flex; gap: 12px; align-items: center; font-size: 12px; color: #d7dce6; }
.breadcrumb a { color: white; } .breadcrumb i { width: 18px; height: 1px; background: var(--lime); display: block; }
.internal-section { padding: 88px 0; }
.about-layout { display: grid; grid-template-columns: .95fr 1.05fr; gap: 90px; align-items: center; }
.about-copy h2, .internal-heading h2, .detail-content h2, .contact-form h2, .contact-panel h2 { font-size: clamp(31px, 3.2vw, 43px); color: var(--navy); margin-bottom: 26px; }
.about-copy p, .detail-content p, .team-copy p { color: #626a78; line-height: 1.9; font-size: 15px; }
.about-image { min-height: 510px; position: relative; overflow: hidden; background: #dce1dc; }
.about-image img { width: 100%; height: 100%; position: absolute; object-fit: cover; }
.about-stamp { position: absolute; left: 0; bottom: 0; background: var(--green); color: white; padding: 20px 24px; font-family: 'Plus Jakarta Sans'; font-size: 20px; font-weight: 700; }
.values-band { background: #eef0eb; color: var(--navy); padding: 64px 0; border-top: 1px solid #dfe3dc; border-bottom: 1px solid #d8ddd5; }
.values-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.values-grid > div { padding-right: 24px; border-right: 1px solid #d3d8d0; }
.values-grid > div:last-child { padding-right: 0; border-right: 0; }
.values-grid h3 { color: var(--navy); font-size: 27px; margin-bottom: 10px; }
.values-grid p { color: #626a78; font-size: 13px; line-height: 1.7; margin-bottom: 0; }
.internal-heading { text-align: center; max-width: 760px; margin: 0 auto 55px; }
.internal-heading .eyebrow { color: var(--green); }
.segments-page { background: #f7f8f5; }
.segments-page .service-grid { grid-template-columns: repeat(2, 1fr); max-width: 920px; margin: auto; }
.segments-page .service-card { min-height: 440px; }
.detail-layout { display: grid; grid-template-columns: 300px 1fr; gap: 65px; align-items: start; }
.detail-sidebar { background: #f0f2ed; padding: 28px; }
.detail-sidebar h3 { font-size: 27px; color: var(--navy); margin: 0 0 20px; }
.detail-sidebar a { display: block; border-top: 1px solid #d5d9d2; padding: 15px 0; color: #4f5868; font-size: 13px; }
.detail-sidebar a.active { color: var(--green); font-weight: 700; }
.detail-sidebar > a { cursor: pointer; }
.detail-sidebar > a.is-loading { color: var(--green); }
.sidebar-contact { margin-top: 28px; padding: 22px; background: var(--navy); color: white; }
.sidebar-contact p { font-size: 12px; line-height: 1.7; color: #bdc5d7; }
.sidebar-contact a { color: white; border-color: #ffffff22; }
.sidebar-contact a[href^="tel:"], .sidebar-contact a[href*="api.whatsapp"] { position: relative; padding-left: 27px; }
.sidebar-contact a[href^="tel:"]::before, .sidebar-contact a[href*="api.whatsapp"]::before { content: ''; position: absolute; left: 0; top: 13px; width: 17px; height: 17px; background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2386b52a' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M7 3H4a1 1 0 0 0-1 1c0 9.4 7.6 17 17 17a1 1 0 0 0 1-1v-3l-4-2-2 2c-3.5-1.5-6.5-4.5-8-8l2-2-2-4Z'/%3E%3C/svg%3E"); }
.detail-cover { height: 390px; margin-bottom: 42px; background: #dde2dc; overflow: hidden; }
.detail-cover img { width: 100%; height: 100%; object-fit: cover; }
.detail-content { transition: opacity .22s ease, transform .22s ease; }
.detail-content.is-switching { opacity: 0; transform: translateY(10px); }
.product-list { columns: 2; column-gap: 35px; padding: 0; list-style: none; margin: 30px 0; }
.product-list li { break-inside: avoid; border-bottom: 1px solid #e0e3de; padding: 10px 0; color: #4d5665; font-size: 13px; line-height: 1.5; }
.detail-note { margin-top: 30px; padding: 22px 25px; border-left: 4px solid var(--green); background: #f0f2ed; color: #4e5868; line-height: 1.7; }
.team-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 75px; align-items: center; }
.team-photo { min-height: 560px; } .team-photo img { width: 100%; height: 560px; object-fit: cover; }
.team-copy h2 { font-size: clamp(31px, 3.2vw, 43px); color: var(--navy); }
.team-pillars { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 30px; }
.team-pillars span { padding: 17px 18px; background: #edf0ea; color: var(--navy); font-family: 'Plus Jakarta Sans'; font-size: 16px; font-weight: 600; }
.contact-layout { display: grid; grid-template-columns: 1.35fr .65fr; gap: 45px; padding: 55px; background: white; box-shadow: 0 15px 50px #1015360d; }
.contact-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid #dfe3dc; padding: 16px; font: inherit; font-size: 13px; background: #fafbf8; }
.contact-form textarea { grid-column: 1 / -1; min-height: 190px; resize: vertical; }
.contact-form button { border: 0; background: var(--green); color: white; padding: 16px 22px; margin-top: 18px; font: 700 11px 'Plus Jakarta Sans'; text-transform: uppercase; letter-spacing: .12em; cursor: pointer; }
.contact-panel { align-self: start; background: var(--navy); color: white; padding: 32px 38px; }
.contact-panel h2 { color: white; font-size: 30px; margin-bottom: 20px; }
.contact-row { position: relative; padding: 14px 0 14px 32px; border-top: 1px solid #ffffff1c; }
.contact-row::before { content: ''; position: absolute; left: 0; top: 17px; width: 18px; height: 18px; background-position: center; background-repeat: no-repeat; background-size: contain; }
.contact-row:nth-of-type(1)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2386b52a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E"); }
.contact-row:nth-of-type(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2386b52a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3H4a1 1 0 0 0-1 1c0 9.4 7.6 17 17 17a1 1 0 0 0 1-1v-3l-4-2-2 2c-3.5-1.5-6.5-4.5-8-8l2-2-2-4Z'/%3E%3C/svg%3E"); }
.contact-row:nth-of-type(3)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2386b52a'%3E%3Cpath d='M12 2a10 10 0 0 0-8.55 15.18L2 22l4.95-1.3A10 10 0 1 0 12 2Zm0 18.2a8.16 8.16 0 0 1-4.16-1.14l-.3-.18-2.94.77.78-2.86-.2-.3A8.2 8.2 0 1 1 12 20.2Zm4.5-6.14c-.25-.12-1.46-.72-1.69-.8-.23-.09-.4-.13-.56.12l-.78.98c-.15.16-.3.19-.54.06a5.28 5.28 0 0 1-2.55-2.22c-.19-.32.2-.3.56-1 .06-.13.03-.25-.02-.37l-.56-1.35c-.14-.34-.29-.35-.56-.35-.48 0-.9.13-1.19.45-.28.3-.88.86-.88 2.09s.9 2.42 1.02 2.58c.13.16 1.76 2.69 4.27 3.77 1.59.68 2.21.74 3.01.62.47-.07 1.46-.6 1.67-1.18.2-.58.2-1.08.14-1.18-.07-.1-.24-.16-.5-.28Z'/%3E%3C/svg%3E"); }
.contact-row:nth-of-type(4)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2386b52a' stroke-width='1.8'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.contact-row:nth-of-type(5)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2386b52a' stroke-width='1.8'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='1' fill='%2386b52a' stroke='none'/%3E%3C/svg%3E"); }
.contact-row strong { display: block; font-family: 'Plus Jakarta Sans'; font-size: 16px; margin-bottom: 8px; }
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .65s ease var(--reveal-delay, 0ms), transform .65s cubic-bezier(.2,.7,.2,1) var(--reveal-delay, 0ms); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.hero-content > * { animation: hero-enter .72s both; }
.hero-content > *:nth-child(2) { animation-delay: .08s; }
.hero-content > *:nth-child(3) { animation-delay: .16s; }
.hero-content > *:nth-child(4) { animation-delay: .24s; }
@keyframes hero-enter { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } .reveal { opacity: 1; transform: none; } }
.contact-row a, .contact-row p { color: #cbd2e1; font-size: 13px; line-height: 1.55; margin: 0; }
.map-picture { display: block; width: 100vw; margin: 50px 0 -88px calc(50% - 50vw); overflow: hidden; }
.map-image { display: block; width: 100%; height: clamp(390px, 31.93vw, 610px); object-fit: cover; object-position: center; }

/* Política de privacidade */
.policy-layout { display: grid; grid-template-columns: 220px minmax(0, 760px); justify-content: center; align-items: start; gap: 80px; }
.policy-aside { position: sticky; top: 126px; padding-left: 18px; border-left: 2px solid var(--green); }
.policy-aside > p { margin-bottom: 13px; color: var(--green); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.policy-aside nav { display: grid; gap: 10px; }
.policy-aside a { color: #626a78; font-size: 13px; transition: color .2s ease; }
.policy-aside a:hover { color: var(--green); }
.policy-copy { color: #59616f; }
.policy-lead { margin-bottom: 52px; color: var(--navy); font-size: 19px; line-height: 1.75; }
.policy-copy section { scroll-margin-top: 125px; padding-bottom: 42px; }
.policy-copy h2 { margin-bottom: 15px; color: var(--navy); font-size: clamp(25px, 2.4vw, 32px); }
.policy-copy p { font-size: 14px; line-height: 1.85; }
.policy-copy p + p { margin-top: 13px; }
.policy-copy ul { display: grid; gap: 8px; margin: 16px 0; padding-left: 20px; font-size: 14px; line-height: 1.7; }
.policy-copy li::marker { color: var(--green); }
.policy-cookie-table { display: grid; gap: 10px; margin: 21px 0; }
.policy-cookie-table > div { display: grid; grid-template-columns: 150px 1fr; gap: 18px; padding: 17px 19px; border-left: 3px solid var(--green); background: #eef0eb; font-size: 13px; line-height: 1.65; }
.policy-cookie-table strong { color: var(--navy); }
.policy-manage-cookies, .footer-cookie-button { border: 0; color: inherit; background: transparent; font: inherit; cursor: pointer; }
.policy-manage-cookies { margin-top: 7px; padding: 0 0 7px; border-bottom: 1px solid var(--green); color: var(--green); font-weight: 700; }
.policy-contact { margin-top: 10px; padding: 34px !important; background: #eef0eb; }
.policy-contact a { color: var(--green); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.policy-updated { color: #cbd2e1; font-size: 12px; }
.footer-cookie-button { display: block; justify-self: start; width: auto; margin: 0 0 20px; padding: 0; color: #e4e8ea; font-size: 13px; line-height: inherit; text-align: left; white-space: nowrap; }

/* Consentimento de cookies */
.cookie-banner[hidden] { display: none; }
.cookie-banner { position: fixed; z-index: 240; right: 24px; bottom: 24px; width: min(720px, calc(100% - 48px)); padding: 24px; border: 1px solid rgba(86,129,19,.35); background: white; box-shadow: 0 22px 65px rgba(9,12,30,.25); }
.cookie-banner__content { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 28px; }
.cookie-banner__eyebrow { margin-bottom: 5px; color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.cookie-banner h2, .cookie-dialog h2 { margin-bottom: 0; color: var(--navy); font-size: 22px; }
.cookie-banner p:not(.cookie-banner__eyebrow) { max-width: 470px; margin: 8px 0 0; color: #626a78; font-size: 12px; line-height: 1.6; }
.cookie-banner p a { color: var(--green); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.cookie-banner__actions, .cookie-dialog__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.cookie-button { min-height: 42px; padding: 0 15px; border: 1px solid var(--green); background: var(--green); color: white; font: 800 10px 'Plus Jakarta Sans'; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.cookie-button.secondary { background: white; color: var(--green); }
.cookie-button.secondary:hover { background: #eef0eb; }
.cookie-dialog { width: min(650px, calc(100% - 32px)); max-height: min(690px, calc(100% - 32px)); margin: auto; padding: 0; border: 0; background: white; box-shadow: 0 25px 75px rgba(0,0,0,.3); }
.cookie-dialog::backdrop { background: rgba(11,12,31,.65); backdrop-filter: blur(3px); }
.cookie-dialog__head { display: flex; justify-content: space-between; gap: 20px; padding: 27px 30px 17px; border-bottom: 1px solid #e3e6df; }
.cookie-dialog__close { width: 34px; height: 34px; border: 0; color: #626a78; background: transparent; font-size: 28px; line-height: 1; cursor: pointer; }
.cookie-dialog__intro { margin: 20px 30px; color: #626a78; font-size: 13px; line-height: 1.6; }
.cookie-category { display: grid; grid-template-columns: minmax(0,1fr) 132px; align-items: center; gap: 20px; margin: 0 30px; padding: 18px 0; border-top: 1px solid #e3e6df; }
.cookie-category h3 { margin-bottom: 4px; color: var(--navy); font-size: 16px; }
.cookie-category p { margin: 0; color: #6a7180; font-size: 12px; line-height: 1.55; }
.cookie-switch { display: flex; align-items: center; justify-content: flex-end; gap: 8px; color: #565e6b; font-size: 10px; cursor: pointer; }
.cookie-switch input { position: absolute; opacity: 0; pointer-events: none; }
.cookie-switch span { position: relative; width: 40px; height: 22px; border-radius: 99px; background: #b8bdb6; transition: background .2s ease; }
.cookie-switch span::after { content: ''; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: white; transition: transform .2s ease; }
.cookie-switch input:checked + span { background: var(--green); }
.cookie-switch input:checked + span::after { transform: translateX(18px); }
.cookie-switch input:focus-visible + span { outline: 3px solid rgba(134,181,42,.4); outline-offset: 3px; }
.cookie-dialog__actions { justify-content: flex-end; margin: 22px 30px 30px; }
@media (max-width: 900px) {
  .policy-layout { grid-template-columns: 1fr; gap: 35px; } .policy-aside { display: none; }
  .cookie-banner__content { grid-template-columns: 1fr; gap: 18px; }
  .contact-cta::after { right: -180px; opacity: .1; } .standards-band::before { right: -180px; opacity: .09; }
  .wrap { width: min(100% - 42px, 640px); } .topbar-right span, .topbar-right > a:not(:last-child), .nav-cta { display: none; }
  .site-header::before { width: min(64vw, 480px); } .topbar { height: 94px; } .brand img { width: 205px; height: 66px; }
  .nav { height: 94px; padding-left: 220px; } .menu-toggle { display: flex; background: none; border: 0; color: white; text-transform: uppercase; letter-spacing: .15em; font-size: 11px; align-items: center; gap: 12px; padding: 0; }
  .menu-toggle span, .menu-toggle span:before, .menu-toggle span:after { display: block; width: 20px; height: 1px; background: white; content: ''; position: relative; }
  .menu-toggle span:before { position: absolute; top: -6px; } .menu-toggle span:after { position: absolute; top: 6px; }
  .nav > ul { display: none; position: fixed; top: 94px; left: 0; right: 0; height: auto; background: #0b1115; padding: 18px 21px; flex-direction: column; align-items: stretch; gap: 0; }
  .nav > ul.open { display: flex; } .nav li a { display: block; padding: 13px 0; }
  .nav > ul > li { display: block; height: auto; } .nav .submenu { display: block; position: static; width: auto; padding: 0 0 4px 14px; background: transparent; box-shadow: none; opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  .nav .submenu li a { color: #b7c0d3; padding: 8px 0; } .nav .submenu li a:hover, .nav .submenu li a.active { background: transparent; color: #b1d04a; }
  .hero { min-height: 700px; } .hero-content { padding-top: 215px; }
  .intro, .feature { grid-template-columns: 1fr; gap: 40px; padding-top: 80px; padding-bottom: 80px; } .section-heading { display: block; margin-bottom: 35px; }
  .section-heading > p { width: auto; max-width: 420px; margin-top: 25px; } .service-grid, .portfolio-grid { grid-template-columns: repeat(2, 1fr); }
  .service-card { min-height: 350px; } .feature-photo { height: 430px; } .footer-main { grid-template-columns: 1fr 1fr; gap: 48px; } .footer-main > div:first-child { grid-column: 1 / -1; }
  .standards-layout, .expertise-layout { grid-template-columns: 1fr; gap: 28px; }
  .standards-list { grid-template-columns: repeat(4, 1fr); }
  .standards-list span { border-bottom: 1px solid #ffffff1d; padding: 20px 10px; }
  .about-layout, .team-layout, .detail-layout, .contact-layout { grid-template-columns: 1fr; gap: 45px; }
  .about-image { min-height: 440px; } .detail-sidebar { order: 2; } .values-grid { grid-template-columns: repeat(2, 1fr); }
  .values-grid > div:nth-child(even) { padding-right: 0; border-right: 0; }
}
@media (max-width: 560px) {
  .policy-cookie-table > div { grid-template-columns: 1fr; gap: 5px; } .policy-contact { padding: 25px !important; }
  .cookie-banner { right: 16px; bottom: 16px; width: calc(100% - 32px); padding: 18px; } .cookie-banner__actions .cookie-button { flex: 1 1 135px; }
  .cookie-dialog__head { padding: 22px 20px 14px; } .cookie-dialog__intro { margin: 17px 20px; } .cookie-category { grid-template-columns: 1fr; gap: 12px; margin: 0 20px; } .cookie-switch { justify-content: flex-start; } .cookie-dialog__actions { margin: 19px 20px 22px; } .cookie-dialog__actions .cookie-button { width: 100%; }
  .contact-cta::after { width: 330px; right: -210px; opacity: .08; } footer::after { right: -230px; }
  .site-header::before { width: 82vw; } .wrap { width: calc(100% - 36px); } .service-rail { display: none; } .brand img { width: 175px; } .nav { padding-left: 175px; }
  .hero h1 { font-size: 40px; } .hero-text { font-size: 14px; } .hero-meta span:nth-child(2) { display: none; }
  .service-grid, .portfolio-grid { grid-template-columns: 1fr; } .service-card, .portfolio-grid article { min-height: 330px; }
  .standards-band { padding: 62px 0 48px; } .standards-list { grid-template-columns: repeat(2, 1fr); }
  .expertise { padding: 78px 0; } .expertise-grid article { grid-template-columns: 1fr; gap: 10px; }
  .contact-cta { padding: 75px 0; } .contact-cta h2 { font-size: 36px; } .footer-main { grid-template-columns: 1fr; } .footer-main > div:first-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; gap: 10px; padding-bottom: 100px; font-size: 9px; } .back-to-top { right: 24px; bottom: 88px; width: 40px; height: 40px; } .back-to-top svg { width: 12px; height: 12px; } .whatsapp-float { right: 18px; bottom: 18px; height: 54px; min-width: 54px; padding: 0 14px; }
  .inner-hero { min-height: 360px; } .internal-section { padding: 68px 0; } .segments-page .service-grid { grid-template-columns: 1fr; }
  .values-grid, .team-pillars, .contact-form-grid { grid-template-columns: 1fr; } .values-grid > div { padding: 0 0 20px; border-right: 0; border-bottom: 1px solid #d3d8d0; } .values-grid > div:last-child { padding-bottom: 0; border-bottom: 0; } .product-list { columns: 1; } .contact-layout { padding: 24px; } .map-picture { margin-top: 36px; margin-bottom: -68px; } .map-image { height: auto; aspect-ratio: 623 / 741; object-fit: cover; }
}
