/* Complemento ao sistema Castellum. Fontes locais; nenhum serviço externo no carregamento. */
@font-face{font-family:Inter;src:url('../fonts/inter-400.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('../fonts/inter-600.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Montserrat;src:url('../fonts/montserrat-700.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Montserrat;src:url('../fonts/montserrat-800.ttf') format('truetype');font-style:normal;font-weight:800;font-display:swap}
:root{--ink-soft:#505a60;--line:#d8dcdd;--section-space:104px}
body{background:var(--off-white);font-size:1rem;line-height:1.75}
main{max-width:none;margin:0;padding:0;overflow-wrap:anywhere}
main:focus{outline:none}
.wrap>*{min-width:0}
[hidden]{display:none!important}
.wrap{width:min(1248px,100% - 96px);margin-inline:auto}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.2}
h2{font-size:clamp(2rem,3.2vw,2.8rem);letter-spacing:-1.4px}
h3{font-size:1.2rem;letter-spacing:-.35px}
p{color:var(--ink-soft)}
a,button{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{outline:3px solid #4b899f;outline-offset:5px}
section[id]{scroll-margin-top:110px}
.skip-link{position:fixed;top:8px;left:16px;z-index:1000;background:white;color:var(--black);padding:12px 20px;transform:translateY(-180%)}
.skip-link:focus{transform:translateY(0)}
.site-header{background:var(--black);color:white;position:sticky;top:0;z-index:20;border-bottom:1px solid #343434}
.header-inner{min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand-lockup{display:inline-flex;align-items:center;gap:12px;flex-shrink:0}
.brand-lockup img{object-fit:contain}
.brand-name{font-family:var(--font-display);font-weight:700;font-size:1rem;letter-spacing:1.6px;line-height:1.25}
.brand-name>span{display:block;font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:4.2px;margin-top:5px}
.unit-label{font-size:.8rem;letter-spacing:1.5px;border-left:1px solid #515151;padding-left:20px;margin-left:7px}
.site-nav{display:flex;align-items:center;gap:28px;font-size:.875rem}
.site-nav>a:not(.btn){padding-block:12px}
.site-nav>a:not(.btn):hover{color:#cad9df;text-decoration:underline;text-underline-offset:7px}
.btn{font-family:var(--font-body);font-weight:600;font-size:.875rem;letter-spacing:0;text-transform:none;line-height:1.5;white-space:normal;min-height:48px;gap:20px}
.btn span{font-size:1.25rem;font-weight:400;flex-shrink:0}
.header-contact{background:white;color:var(--black);padding:12px 18px}
.header-contact:hover{background:#dfe6e9}
.menu-toggle{border:1px solid #6b7275;background:transparent;color:white;border-radius:2px;font:inherit;font-size:.875rem;padding:10px 12px;min-height:44px;align-items:center;gap:12px}
.menu-icon{width:16px;height:10px;border-block:1px solid currentColor}
.hero{padding-top:72px}
.hero-grid{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:60px}
.eyebrow{font-family:var(--font-display);font-size:.75rem;line-height:1.5;letter-spacing:1.8px;font-weight:700;color:var(--petrol);margin-bottom:24px}
h1{font-size:clamp(2.8rem,4.5vw,4rem);line-height:1.075;letter-spacing:-2.6px;font-weight:800;margin-bottom:28px}
h1 span{color:var(--petrol)}
.hero-lead{font-size:1.125rem;line-height:1.65;color:var(--black);max-width:510px;margin-bottom:18px}
.hero-description{max-width:520px;font-size:1rem;line-height:1.75}
.hero-actions{display:flex;align-items:flex-start;flex-direction:column;gap:20px;margin-top:30px}
.cta{padding:17px 22px;min-height:56px}
.text-link{font-size:.875rem;font-weight:600;display:inline-flex;align-items:center;gap:22px;border-bottom:1px solid currentColor;padding-block:4px;color:var(--petrol);min-height:40px}
.text-link:hover{color:var(--black)}
.text-link span{font-size:1.1rem}
.operation-map{background:var(--petrol);color:white;min-width:0;padding:26px 28px 32px;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;border-radius:var(--r-sm)}
.map-heading{display:flex;justify-content:space-between;align-items:center;font-size:.6875rem;font-weight:600;letter-spacing:1.5px;border-bottom:1px solid #7d8b92;padding-bottom:20px}
.map-heading>span:last-child{font-size:1.4rem;font-weight:400}
.map-canvas{height:380px;position:relative;margin-block:20px;isolation:isolate}
.map-lines{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#85979f;stroke-width:1;z-index:-1}
.map-lines circle{stroke:#697e89;stroke-dasharray:3 7}
.map-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--off-white);color:var(--petrol);width:144px;height:144px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:2px}
.map-center strong{font:800 2.6rem/1 var(--font-display);letter-spacing:-1px}
.map-center>span{font-size:.75rem;line-height:1.5;text-align:center}
.map-node{position:absolute;background:var(--petrol);border:1px solid #8c9ba2;padding:10px 13px;font-size:.8125rem;line-height:1.5;text-align:center}
.node-top{top:8%;left:50%;transform:translateX(-50%)}
.node-bottom{bottom:8%;left:50%;transform:translateX(-50%);white-space:nowrap}
.node-left{top:50%;left:0;transform:translateY(-50%)}
.node-right{top:50%;right:0;transform:translateY(-50%)}
.operation-map figcaption{border-top:1px solid #7d8b92;padding-top:22px;font-size:.875rem;line-height:1.7;color:#e1e6e8}
.operation-map figcaption strong{font-weight:600;color:white}
.hero-bottom{margin-top:54px;border-top:1px solid var(--line);padding-block:22px;display:flex;justify-content:space-between;gap:20px;color:var(--ink-soft);font-size:.8125rem}
.hero-bottom>span:first-child{font-size:.6875rem;letter-spacing:1.5px;font-weight:600}
.section-space{padding-block:var(--section-space)}
.challenges{background:white}
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:40px;margin-bottom:58px}
.section-heading .eyebrow{padding-top:8px}
.section-heading h2{width:66%}
.challenge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px}
.challenge{border-top:1px solid var(--line);padding-top:22px}
.item-number{display:block;color:var(--petrol);font-family:var(--font-display);font-size:.75rem;margin-bottom:28px;font-weight:700}
.challenge h3{line-height:1.4;margin-bottom:16px}
.challenge p{font-size:1rem;line-height:1.75}
.bto-section{background:var(--black);color:white}
.bto-section .eyebrow{color:#b3c5ce}
.bto-intro{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-bottom:64px}
.bto-intro h2 span{color:#aabcc5}
.bto-copy p{color:#c7cacc;margin-bottom:18px}
.bto-copy p:last-child{margin-bottom:0;font-size:.875rem;color:#adb4b8}
.bto-copy strong{color:#fff;font-weight:600}
.example{border:1px solid #4a5358;padding:36px}
.example-heading{display:flex;gap:48px;align-items:baseline;justify-content:space-between;margin-bottom:42px}
.example-heading h3{font-size:1.3rem;line-height:1.4;width:66%}
.example-flow{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;gap:40px}
.example-flow li{position:relative}
.example-flow li:not(:last-child)::after{content:'→';position:absolute;right:0;top:0;color:#aabcc5;font-size:1.4rem}
.flow-symbol{display:block;font-size:.75rem;color:#b3c5ce;font-weight:600;border-bottom:1px solid #4a5358;padding-bottom:14px;margin-bottom:18px}
.example-flow h4{font-size:1.1rem;margin-bottom:10px}
.example-flow p{color:#c7cacc;font-size:.9375rem;max-width:260px}
.example-note{color:#adb4b8;font-size:.875rem;border-top:1px solid #4a5358;margin-top:30px;padding-top:22px}
.approach-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}
.approach-heading>p:not(.eyebrow){max-width:370px;margin-block:26px}
.approach-list{list-style:none}
.approach-list li{display:flex;gap:28px;border-top:1px solid var(--line);padding-block:28px}
.approach-list li:first-child{padding-top:0;border-top:0}
.approach-list li:last-child{padding-bottom:0}
.step-number{font-family:var(--font-display);font-size:.875rem;font-weight:700;color:var(--petrol);padding-top:3px}
.approach-list h3{margin-bottom:10px}
.approach-list p{font-size:1rem}
.about-section{background:white;border-top:1px solid var(--line)}
.about-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:100px;align-items:center}
.portrait{position:relative;max-width:460px}
.portrait>img{width:100%;height:auto;border-radius:var(--r-sm)}
.portrait figcaption{position:absolute;bottom:0;left:0;right:0;background:var(--petrol);padding:20px 24px;color:white;display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-size:.8125rem}
.portrait figcaption strong{font-size:1rem;font-weight:600}
.about-copy h2{margin-bottom:28px}
.about-copy>p:not(.eyebrow){margin-bottom:20px}
.about-copy .text-link{margin-top:10px}
.contact-section{background:var(--petrol);padding-block:80px;color:white}
.contact-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:center}
.contact-section .eyebrow{color:#d4dfe5}
.contact-section h2{font-size:clamp(2.25rem,3.6vw,3.2rem);margin-bottom:24px}
.contact-section p:not(.eyebrow){color:#e0e6e9;max-width:510px}
.contact-action{display:flex;flex-direction:column;align-items:flex-end;gap:15px}
.cta-light{background:white;color:var(--petrol)}
.cta-light:hover{background:#dfe6e9}
.contact-action>span{font-size:.8125rem;color:#d4dfe5}
.site-footer{background:var(--black);color:white;padding-top:42px}
.footer-top{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-bottom:36px}
.footer-links{display:flex;gap:30px;font-size:.875rem;flex-wrap:wrap}
.footer-links a{overflow-wrap:anywhere;padding-block:8px}
.footer-links a:hover{text-decoration:underline;text-underline-offset:5px}
.footer-bottom{border-top:1px solid #343434;padding-block:24px;display:flex;justify-content:space-between;gap:24px}
.footer-bottom p{color:#aeb4b8;font-size:.75rem}
@media(min-width:1450px){.hero{padding-top:86px}.hero-actions{flex-direction:row;align-items:center;gap:26px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.hero-grid{gap:32px}.site-nav{gap:18px}.brand-name{font-size:.875rem}.unit-label{padding-left:12px;margin-left:0}.map-center{width:116px;height:130px}.map-node{padding:8px;font-size:.75rem}.operation-map{padding-inline:20px}.about-grid,.approach-grid{gap:60px}.contact-inner{gap:32px}.contact-action .cta{font-size:.8125rem}}
@media(max-width:900px){:root{--section-space:76px}.header-inner{min-height:80px;flex-wrap:wrap;gap:0;justify-content:space-between}.menu-toggle{display:flex}.site-nav{width:100%;flex-direction:column;align-items:stretch;gap:4px;padding-block:16px 24px}.site-nav>a:not(.btn){padding:12px 0}.site-nav .btn{align-self:flex-start;margin-top:8px}.hero{padding-top:54px}.hero-grid{grid-template-columns:1.15fr 1fr;gap:28px}h1{font-size:2.8rem;letter-spacing:-1.8px}.hero-lead{font-size:1rem}.hero-description{font-size:.9375rem}.operation-map{padding:22px 18px}.map-heading{font-size:.6rem;letter-spacing:.8px}.map-canvas{height:340px;margin-block:8px}.map-node{padding:7px;font-size:.6875rem}.map-center{width:102px;height:112px}.map-center strong{font-size:2rem}.map-center>span{font-size:.6875rem}.operation-map figcaption{font-size:.8125rem}.node-left{top:43%;left:0;transform:none}.node-right{top:58%;right:0;transform:none}.map-lines{opacity:.6}.hero-actions .cta{font-size:.8125rem;padding:15px}.section-heading h2{width:62%}.challenge-grid{gap:24px}.challenge h3{font-size:1.0625rem}.bto-intro,.approach-grid{gap:40px}.bto-intro{grid-template-columns:1fr 1.1fr}.example{padding:28px}.example-heading{gap:30px}.example-heading h3{width:62%}.example-flow{gap:24px}.about-grid{gap:40px}.portrait figcaption{flex-direction:column;gap:2px;padding:16px 20px}.contact-inner{grid-template-columns:1fr}.contact-action{align-items:flex-start}.footer-top{align-items:flex-start}.footer-links{flex-direction:column;gap:6px}.footer-bottom{flex-direction:column;gap:6px}}
@media(max-width:680px){:root{--section-space:60px}.wrap{width:calc(100% - 40px)}.site-header{position:relative}.header-inner{min-height:78px}.brand-lockup{gap:8px}.brand-lockup img{width:38px;height:38px}.brand-name{font-size:.75rem;letter-spacing:1px}.brand-name>span{font-size:.5625rem;letter-spacing:3.1px}.unit-label{font-size:.6875rem;padding-left:10px;margin-left:5px}.menu-toggle{padding:9px;font-size:.8125rem;gap:8px}.hero{padding-top:40px}.hero-grid{grid-template-columns:1fr;gap:36px}h1{font-size:clamp(2.5rem,9.4vw,3.5rem);letter-spacing:-1.8px;max-width:570px}.eyebrow{font-size:.6875rem;letter-spacing:1.4px;margin-bottom:20px}.hero-lead{font-size:1.0625rem}.hero-description{font-size:1rem}.hero-actions{gap:16px;margin-top:26px}.hero-actions .cta{font-size:.875rem;padding:17px 18px}.operation-map{padding:22px 24px 24px}.map-heading{font-size:.6875rem}.map-canvas{height:300px;margin-block:12px}.map-center{width:120px;height:120px}.map-center strong{font-size:2.2rem}.map-node{font-size:.75rem;padding:8px}.node-left{top:50%;transform:translateY(-50%)}.node-right{top:50%;transform:translateY(-50%)}.node-top{top:4%}.node-bottom{bottom:4%}.operation-map figcaption{font-size:.875rem}.hero-bottom{margin-top:32px;flex-direction:column;gap:6px;padding-block:20px}.hero-bottom>span:first-child{font-size:.625rem;letter-spacing:1.1px}.section-heading{display:block;margin-bottom:32px}.section-heading h2{width:auto}h2{font-size:2rem;letter-spacing:-1px}.challenge-grid{grid-template-columns:1fr;gap:28px}.challenge{padding-top:20px}.item-number{margin-bottom:16px}.challenge h3{font-size:1.2rem;margin-bottom:12px}.challenge h3 br{display:none}.bto-intro{grid-template-columns:1fr;gap:28px;margin-bottom:36px}.example{padding:24px}.example-heading{display:block;margin-bottom:28px}.example-heading h3{width:auto;font-size:1.2rem}.example-flow{grid-template-columns:1fr;gap:28px}.example-flow li{padding-left:42px}.flow-symbol{position:absolute;left:0;top:3px;border:0;padding:0}.example-flow li:not(:last-child)::after{content:'↓';left:0;top:36px;right:auto}.example-flow p{max-width:none}.example-note{margin-top:26px}.approach-grid{grid-template-columns:1fr;gap:40px}.approach-heading>p:not(.eyebrow){margin-block:22px}.approach-list li{gap:20px;padding-block:24px}.about-grid{grid-template-columns:1fr;gap:36px}.portrait{max-width:none}.portrait>img{max-height:480px;object-fit:cover;object-position:center 28%}.about-copy h2 br:last-child{display:none}.contact-section{padding-block:56px}.contact-inner{gap:30px}.contact-section h2{font-size:2.3rem}.contact-action .cta{font-size:.875rem}.footer-top{flex-direction:column;gap:24px;padding-bottom:28px}.footer-links{font-size:.8125rem}.footer-bottom{padding-block:20px}.footer-bottom p{font-size:.6875rem}section[id]{scroll-margin-top:24px}}
@media(max-width:370px){.wrap{width:calc(100% - 32px)}.brand-lockup{gap:6px}.unit-label{padding-left:7px;margin-left:0}.operation-map{padding-inline:16px}.map-center{width:100px;height:110px}.map-node{font-size:.6875rem;padding:7px}.cta{gap:12px}.hero-actions .cta,.contact-action .cta{font-size:.8125rem;padding:15px}.brand-name{font-size:.6875rem}}
/* Refluxo do diagrama e da marca, inclusive com texto ampliado. */
.brand-lockup{max-width:100%;flex-shrink:1;min-width:0}
.brand-name{overflow-wrap:anywhere;min-width:0}
.map-center{height:auto;min-height:144px;padding:16px 8px}
@media(max-width:1100px) and (min-width:681px){.map-center{min-height:130px}}
@media(max-width:680px){
  .header-inner{padding-block:12px;row-gap:12px}
  .map-canvas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px;align-items:center;justify-items:center;height:auto;padding-block:14px}
  .map-node,.map-center{position:relative;inset:auto;transform:none;max-width:100%;white-space:normal;overflow-wrap:anywhere}
  .map-node{width:100%;font-size:.75rem}
  .node-top{grid-column:1;grid-row:1}.node-left{grid-column:2;grid-row:1}
  .map-center{grid-column:1/-1;grid-row:2;width:10rem;min-height:8rem;gap:10px}
  .map-center>span{font-size:.75rem}.map-center strong{font-size:2.2rem}
  .node-right{grid-column:1;grid-row:3}.node-bottom{grid-column:2;grid-row:3}
  .map-lines{opacity:.5}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.site-header{position:static}.menu-toggle,.hero-actions,.contact-action,.skip-link{display:none!important}.wrap{width:100%}.section-space{padding-block:30px}body{font-size:11pt}.hero{padding-top:20px}.operation-map{break-inside:avoid}.site-footer{padding-top:20px}a{overflow-wrap:anywhere}}

/* Apresentação fluida · mantém os tokens e a tipografia da Castellum. */
body { background:var(--black); }
.site-header {
  width: min(1296px, calc(100% - 48px));
  margin: 16px auto -96px;
  top: 16px;
  border: 1px solid rgba(255,255,255,.17);
  border-radius: 8px;
  background: #1c2327;
  box-shadow: 0 12px 36px rgba(0,0,0,.16);
  transition: background .3s, box-shadow .3s;
}
@supports (backdrop-filter: blur(20px)) {
  .site-header { background: rgba(20,25,28,.78); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
}
.site-header.is-scrolled { background: rgba(20,25,28,.94); box-shadow: 0 12px 36px rgba(0,0,0,.22); }
.site-header .header-inner { width:100%; min-height:80px; padding-inline:24px; }
.site-nav>a[aria-current="location"] { color:white; text-decoration:underline; text-underline-offset:7px; }
.header-contact { border:1px solid rgba(255,255,255,.7); border-radius:4px; }
.header-contact span, .cta span, .text-link span { transition: transform .25s ease; }
.btn { transition: transform .25s, background .25s, box-shadow .25s; }
.btn:active { transform: translateY(1px); }
.hero { position:relative; padding-top:176px; background:var(--black); color:white; }
.hero .eyebrow { color:#b4c8d2; }
.hero h1 { color:#f5f5f3; }
.hero h1 span { color:#a9bec9; }
.hero-lead { color:#e4e9eb; }
.hero-description { color:#b8c0c5; }
.hero .cta { background:#e3ecf0; color:#253a45; box-shadow:0 5px 20px rgba(0,0,0,.12); border-radius:4px; }
.hero .text-link { color:#d1dce2; }
.hero-bottom { border-color:#343e44; color:#b8c0c5; }
.hero-grid { padding-bottom:12px; }
.operation-map {
  position:relative;
  background:#1a2328;
  border:1px solid #3f4e56;
  border-radius:8px;
  box-shadow: 12px 18px 0 -1px #111719, 12px 18px 0 0 #35424a, 0 32px 60px rgba(0,0,0,.2);
  transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));
  transition:transform .35s ease-out;
}
.map-heading, .operation-map figcaption { border-color:#43525b; }
.map-heading { color:#cad8df; }
.map-lines { stroke:#8196a2; }
.map-lines circle { stroke:#5d747f; }
.map-center {
  color:white;
  background:var(--petrol);
  border:1px solid #8fa4b0;
  border-radius:8px;
  box-shadow:0 18px 32px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.16);
}
.map-node {
  color:#263e4a;
  background:#edf2f4;
  border:1px solid #fff;
  border-radius:4px;
  box-shadow:0 10px 24px rgba(0,0,0,.28), 0 3px 0 #a4b4be;
}
.node-top { rotate:-3deg; }
.node-left { rotate:2deg; }
.node-right { rotate:-2deg; }
.node-bottom { rotate:2deg; }
.operation-map.is-present .map-node { animation: suspended-block 4.6s ease-in-out 1; }
.operation-map.is-present .node-left { animation-delay:.12s; }
.operation-map.is-present .node-right { animation-delay:.24s; }
.operation-map.is-present .node-bottom { animation-delay:.36s; }
@keyframes suspended-block { 0%,100% { translate:0 0; } 30% { translate:0 -7px; } 65% { translate:0 3px; } }
.challenges { position:relative; z-index:1; background:var(--off-white); border-radius:24px 24px 0 0; margin-top:-1px; }
.challenge-grid { gap:24px; }
.challenge {
  background:white;
  border:1px solid #dce1e3;
  border-radius:8px;
  padding:30px;
  box-shadow:0 10px 24px rgba(35,52,62,.035);
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s;
}
.challenge:nth-child(2) { margin-top:20px; margin-bottom:-20px; }
.challenges .section-heading { margin-bottom:44px; }
.bto-section { position:relative; }
.example { background:#192126; border-color:#46555d; border-radius:8px; box-shadow:0 24px 52px rgba(0,0,0,.24); }
.approach { background:var(--off-white); }
.step-number { position:relative; display:flex; align-items:center; justify-content:center; width:38px; height:38px; flex-shrink:0; padding:0; border:1px solid #c3cfd5; border-radius:4px; background:#e8eef1; }
.approach-list li { transition:border-color .25s; }
.portrait { padding:0 18px 24px 0; }
.portrait>img { border-radius:8px; }
.portrait figcaption { left:28px; padding:22px 24px; border:1px solid #687d87; border-radius:4px; box-shadow:0 12px 30px rgba(30,48,58,.2); }
.contact-section { position:relative; }
.contact-action .cta { box-shadow:0 12px 30px rgba(20,30,35,.16); border-radius:4px; }
.cursor-halo {
  position:fixed; top:0; left:0; z-index:100;
  width:34px; height:34px; border:1px solid #b6d1dd; border-radius:50%;
  opacity:0; pointer-events:none; mix-blend-mode:difference;
  transition:opacity .2s; contain:layout style; will-change:transform;
}
.cursor-halo::after { content:''; position:absolute; inset:-1px; border:1px solid currentColor; border-radius:inherit; color:#c5dee8; opacity:0; transition:transform .2s,opacity .2s; }
.cursor-halo.is-visible { opacity:.85; }
.cursor-halo.is-link::after { opacity:1; transform:scale(1.45); }
@media(hover:hover) and (pointer:fine) {
  .btn:hover { transform:translateY(-3px); box-shadow:0 10px 22px rgba(25,45,55,.16); }
  .btn:hover span, .text-link:hover span { transform:translate(2px,-2px); }
  .hero .btn:hover { background:white; }
  .challenge:hover { transform:translateY(-8px); box-shadow:0 20px 44px rgba(35,52,62,.11); border-color:#aebec7; }
  .approach-list li:hover { border-color:#6e8896; }
}
@media(min-width:901px) {
  .approach-heading { position:sticky; top:144px; align-self:start; }
}
@media(max-width:1100px) {
  .site-header .header-inner { padding-inline:18px; }
  .site-header .site-nav { gap:16px; }
  .site-header .brand-name { font-size:.8rem; }
  .challenge { padding:24px; }
}
@media(max-width:900px) {
  .hero { padding-top:152px; }
  .site-header { max-height:calc(100svh - 32px); overflow-y:auto; }
  .site-header .site-nav { gap:4px; }
  .challenge-grid { gap:16px; }
  .challenge { padding:20px; }
  .portrait { padding:0 12px 20px 0; }
  .portrait figcaption { left:18px; padding:16px; }
}
@media(max-width:680px) {
  .site-header { position:sticky; top:10px; width:calc(100% - 24px); margin:10px auto -94px; border-radius:6px; }
  .site-header .header-inner { min-height:84px; padding-inline:12px; }
  .hero { padding-top:132px; }
  section[id] { scroll-margin-top:116px; }
  .operation-map { margin-right:8px; box-shadow:7px 10px 0 -1px #111719, 7px 10px 0 0 #35424a, 0 20px 35px rgba(0,0,0,.2); transform:none; }
  .map-node { rotate:0deg; }
  .operation-map.is-present .map-node { animation:none; }
  .challenges { border-radius:16px 16px 0 0; }
  .challenge-grid { gap:18px; }
  .challenge { padding:24px; }
  .challenge:nth-child(2) { margin:0; }
  .portrait { padding-right:14px; }
  .portrait figcaption { left:24px; }
}
@media(prefers-reduced-motion:reduce) {
  .operation-map { transform:none!important; }
  .map-node { rotate:0deg; }
  .cursor-halo { display:none!important; }
  .btn:hover,.challenge:hover,.btn:hover span,.text-link:hover span { transform:none; }
}
@media(forced-colors:active) { .cursor-halo { display:none!important; }.site-header { background:Canvas; border-color:CanvasText; color:CanvasText; } }
@media print { .site-header { position:static; width:100%; margin:0; }.hero { padding-top:24px; }.cursor-halo { display:none!important; }.approach-heading { position:static; } }

/* As seções seguintes deslizam sobre a anterior com rolagem nativa. */
@media screen and (prefers-reduced-motion:no-preference) {
  main.scroll-stack { isolation:isolate; }
  .scroll-stack>section {
    position:sticky;
    top:var(--stack-top,0px);
    z-index:var(--stack-order,1);
    min-height:100svh;
    margin-block:0;
  }
  .scroll-stack>section+section {
    border-radius:24px 24px 0 0;
    box-shadow:0 -18px 48px rgba(0,0,0,.16);
  }
  .scroll-stack>.section-space,
  .scroll-stack>.contact-section {
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .scroll-stack .approach-heading { position:static; }
}
@media screen and (max-width:680px) and (prefers-reduced-motion:no-preference) {
  .scroll-stack>section+section { border-radius:16px 16px 0 0; box-shadow:0 -10px 28px rgba(0,0,0,.14); }
}
