/* WM — engenharia tecnológica premium */
.hero-emergency { display:inline-flex; align-items:center; gap:9px; margin-top:18px; min-height:44px; color:#c5d3e7; font-size:.85rem; }
.hero-emergency:hover { color:#fff; }
.maintenance-home .section-heading { margin-bottom:36px; }
.maintenance-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.maintenance-card { padding:32px; border:1px solid #d7e0ed; border-radius:24px; background:linear-gradient(145deg,#fff,#eaf0f8); }
.maintenance-card > span { display:block; color:#123b92; font-size:.72rem; letter-spacing:.1em; margin-bottom:26px; }
.maintenance-card h3 { font-size:clamp(1.3rem,2vw,1.8rem); letter-spacing:-.035em; line-height:1.2; }
.maintenance-card p { color:#505760; line-height:1.7; margin:20px 0 0; }
.maintenance-card-dark { background:linear-gradient(145deg,#152c50,#0b0f14); border-color:#314a70; color:#fff; }
.maintenance-card-dark > span,.maintenance-card-dark p { color:#c3cfe0; }
.maintenance-card-dark a { display:inline-flex; align-items:center; gap:10px; min-height:44px; margin-top:18px; font-weight:600; font-size:.9rem; }
.maintenance-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-top:28px; }
.maintenance-text-link { display:inline-flex; align-items:center; min-height:44px; color:#123b92; text-decoration:underline; text-underline-offset:5px; }
.maintenance-home a:focus-visible,.hero-emergency:focus-visible { outline:3px solid #628ee0; outline-offset:5px; border-radius:8px; }
@media(max-width:900px) { .maintenance-cards { grid-template-columns:1fr; } .maintenance-card { padding:28px; } }
@media(max-width:560px) { .hero-emergency { font-size:.8rem; } .hero-service .hero-actions .button { width:100%; } .maintenance-actions .button { width:100%; } .maintenance-card { padding:24px; } }
.page-transition.is-busy { pointer-events:auto; }
.page-transition span { background:linear-gradient(90deg,#080c12,#1c2530); }
.page-transition span:last-child { background:linear-gradient(90deg,#1c2530,#080c12); border-left:1px solid #42649166; }
.hero-elevator { position:relative; z-index:2; margin:0; width:100%; max-width:520px; justify-self:end; padding:12px; border:1px solid #ffffff24; border-radius:28px; background:linear-gradient(135deg,#27313c,#080c12 55%,#202a37); box-shadow:0 32px 90px #0006; }
.elevator-scene { position:relative; isolation:isolate; aspect-ratio:4/5; overflow:hidden; border-radius:18px; background:#10151c; border:1px solid #8293ab40; }
.elevator-cabin { position:absolute; width:100%; height:100%; object-fit:cover; object-position:center; }
.elevator-services { position:absolute; z-index:1; inset:22% 15% auto; display:flex; flex-direction:column; align-items:center; gap:14px; padding:22px 12px; border:1px solid #ffffff20; border-radius:16px; background:#0b0f147d; backdrop-filter:blur(8px); color:#fff; text-align:center; }
.elevator-services img { width:62px; height:44px; object-fit:contain; }
.elevator-services span { color:#bcc9dd; font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; }
.elevator-services strong { font:500 clamp(.9rem,1.3vw,1.15rem) Montserrat,sans-serif; }
.elevator-door { position:absolute; z-index:2; top:0; bottom:0; width:50%; box-shadow:0 0 18px #0009; }
.elevator-door img { display:block; width:100%; height:100%; object-fit:cover; }
.hero-elevator.is-animating .elevator-door { will-change:transform; }
.hero-elevator.is-animating .elevator-services { will-change:opacity; }
@supports not (backdrop-filter:blur(8px)) { .elevator-services { background:#0b0f14ed; } }
.elevator-door-left { left:0; transform:translateX(-88%); border-right:1px solid #8d9aab; }
.elevator-door-right { right:0; transform:translateX(88%); border-left:1px solid #8d9aab; }
.hero-elevator figcaption { display:flex; justify-content:space-between; gap:12px; padding:16px 5px 4px; color:#b4c1d4; font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; }
.hero-elevator figcaption { align-items:center; min-height:48px; }
.elevator-replay { display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:8px 10px; border:1px solid #ffffff25; border-radius:8px; background:#ffffff06; color:#c7d5e8; font:inherit; cursor:pointer; }
.elevator-replay[hidden] { display:none; }
.elevator-replay:disabled { opacity:.45; cursor:default; }
.elevator-replay:hover:not(:disabled) { background:#ffffff12; }
.elevator-replay:focus-visible { outline:2px solid #83afff; outline-offset:3px; }
@media(max-width:900px) { .hero-elevator { justify-self:center; max-width:440px; } }
@media(max-width:560px) { .hero-elevator { max-width:360px; padding:9px; border-radius:22px; } .elevator-services { gap:12px; padding:16px 10px; } .elevator-services strong { font-size:.95rem; } }
.hero.hero-service { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:5vw; }
.hero-service .hero-copy { max-width:720px; }
.hero-service .hero-copy,.hero-elevator { min-width:0; }
.hero.hero-service h1 { font-size:clamp(3rem,5.3vw,5.7rem); line-height:1.04; letter-spacing:-.05em; }
.hero-service .hero-intro { margin-top:28px; max-width:520px; }
.hero-service .hero-actions { flex-wrap:wrap; margin-top:30px; }
.hero-signature { margin:26px 0 0; color:#a5b8d6; font-size:.875rem; letter-spacing:.04em; }
@media(max-width:900px) { .hero.hero-service { grid-template-columns:1fr; gap:36px; padding-top:140px; padding-bottom:90px; } .hero-service .hero-copy { margin-top:0; } .hero-service .hero-image { position:relative; inset:auto; width:100%; height:420px; opacity:1; justify-self:stretch; } .hero.hero-service h1 { font-size:clamp(3rem,8vw,4.7rem); } }
@media(max-width:560px) { .hero.hero-service h1 { font-size:clamp(2.7rem,11.5vw,3.8rem); } .hero-service .hero-image { height:340px; } }
@media(max-width:560px) { .hero.hero-service { padding:120px 6vw 110px; gap:30px; } .hero-service .hero-intro { margin-top:22px; font-size:1rem; } .hero-service .hero-actions { margin-top:24px; gap:12px; } .hero-signature { margin-top:20px; } .elevator-services span { letter-spacing:.07em; } .hero-elevator figcaption { font-size:.58rem; letter-spacing:.06em; } }
@media(max-width:560px) {
  .hero.hero-service h1 { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
}
:root { --motion-ease:cubic-bezier(.2,.7,.2,1); }
.reveal { transition:opacity .65s var(--motion-ease),transform .65s var(--motion-ease); }
.status-grid.visible .motion-card,.brand-gallery .motion-card.visible,.solution-list .motion-card.visible { animation:wm-rise .6s var(--motion-ease) both; animation-delay:var(--motion-delay,0ms); }
@keyframes wm-rise { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
.brand-shot img { transition:transform .7s var(--motion-ease); }
.brand-shot figcaption { transition:transform .4s var(--motion-ease); }
.status-card { transition:border-color .25s,box-shadow .25s; }
.hero-glow { animation:wm-vertical-arrival 1.5s var(--motion-ease) both; }
@keyframes wm-vertical-arrival { from { opacity:0; transform:translateY(36px); } to { opacity:1; transform:translateY(0); } }
@media(hover:hover) and (pointer:fine) { .brand-shot:hover img { transform:scale(1.035); } .brand-shot:hover figcaption { transform:translateY(-4px); } .status-card:hover { border-color:#9db7df; box-shadow:0 12px 32px #123b9210; } }
@media(prefers-reduced-motion:reduce) {
  .hero-glow { animation:none!important; }
  .status-grid.visible .motion-card,.brand-gallery .motion-card.visible,.solution-list .motion-card.visible { animation:wm-rise-gentle 1.08s ease-out both; animation-delay:calc(var(--motion-delay,0ms) * 1.8); }
  .brand-shot:hover img,.brand-shot:hover figcaption { transform:none; }
}
@keyframes wm-rise-gentle { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
.brand-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-bottom:24px; }
.brand-shot { position:relative; margin:0; aspect-ratio:3/2; border-radius:24px; overflow:hidden; background:#0b0f14; border:1px solid #ffffff20; }
.brand-shot img { width:100%; height:100%; object-fit:cover; }
.brand-shot figcaption { position:absolute; inset:auto 0 0; padding:48px 28px 26px; color:white; background:linear-gradient(transparent,#0b0f14ee); }
.brand-shot figcaption span { display:block; margin-bottom:8px; font-size:.8125rem; color:#bccfee; }
.brand-shot figcaption strong { font:600 clamp(1.1rem,2vw,1.5rem) Montserrat,sans-serif; }
.brand-gallery-note { max-width:760px; margin:0 0 32px; font-size:.8125rem; color:#505760; line-height:1.6; }
@media(max-width:700px) { .brand-gallery { grid-template-columns:1fr; gap:18px; } .brand-shot figcaption { padding:40px 20px 20px; } }
.equipment-photo { margin:0 0 28px; position:relative; height:420px; overflow:hidden; border-radius:24px; background:#0b0f14; }
.equipment-photo img { width:100%; height:100%; object-fit:cover; }
.equipment-photo figcaption { position:absolute; bottom:0; inset-inline:0; padding:22px 28px; color:white; background:linear-gradient(transparent,#0b0f14e8); font-size:.875rem; }
.equipment-grid small { display:block; margin-top:24px; padding-top:16px; border-top:1px solid #dce2eb; font-size:.75rem; line-height:1.5; color:#505760; }
.technical-icon { width:48px; height:48px; margin-bottom:24px; padding:10px; color:#123b92; border:1px solid #ccd8eb; border-radius:14px; background:#e9eff8; }
#seguranca .status-card { background:linear-gradient(145deg,#fff,#e7eef8); }
@media(max-width:560px) { .equipment-photo { height:300px; } }
:root { --radius-card:24px; --radius-control:14px; --line:rgba(23,28,36,.12); --canvas:#f3f5f8; }
body { background:var(--canvas); -webkit-font-smoothing:antialiased; }
.site-header { top:16px; left:3vw; width:94vw; height:76px; padding:0 28px; border:1px solid rgba(255,255,255,.18); border-radius:20px; background:rgba(11,15,20,.65); backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px); box-shadow:0 12px 40px #00000015; }
.site-header.scrolled { height:68px; background:rgba(11,15,20,.9); }
.navigation { gap:26px; font-size:.875rem; }
.nav-cta { padding:13px 18px; border:1px solid #ffffff30; border-radius:12px; background:#ffffff09; }
.hero { background:radial-gradient(ellipse at 75% 35%,#163365 0%,transparent 50%),#0b0f14; }
.hero::after { opacity:.35; }
.hero h1 { font-size:clamp(3.6rem,7.4vw,7.8rem); line-height:.98; letter-spacing:-.055em; }
.hero-image { border-radius:32px; box-shadow:0 30px 100px #00000040; }
.hero-glow { border-radius:36px; border-color:#659aef26; }
.hero-image figcaption { font-size:.75rem; letter-spacing:.06em; background:#0b0f1440; backdrop-filter:blur(14px); }
.button { border-radius:var(--radius-control); min-height:54px; font-size:.875rem; transition:background .2s,transform .2s,box-shadow .2s; }
.button:hover { transform:translateY(-2px); }
.button-primary { border:1px solid #668fe466; background:linear-gradient(135deg,#174fa7,#123b92); box-shadow:0 8px 24px #123b9230; }
.button-ghost { background:#ffffff08; backdrop-filter:blur(10px); }
.button-dark { background:#171c24; color:#fff; }
.eyebrow { font-size:.8125rem; letter-spacing:.16em; }
.section-index { font-size:.8125rem; }
.section { padding:110px 0; }
.section-heading { gap:7vw; margin-bottom:56px; }
.manifesto h2,.section-heading h2 { font-size:clamp(2.4rem,4.6vw,4.7rem); line-height:1.08; }
.manifesto-note { padding-top:20px; }
.validation-note { font-size:.8125rem!important; line-height:1.6; }
.solution-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; border:0; }
.solution-item { padding:28px; min-height:280px; display:flex; flex-direction:column; align-items:flex-start; gap:20px; border:1px solid #dce2eb; border-radius:var(--radius-card); background:linear-gradient(145deg,#ffffff,#eaf0f8); box-shadow:0 8px 30px #17325a06; transition:transform .25s,border-color .25s,box-shadow .25s; }
.solution-item:hover { padding-left:28px; transform:translateY(-5px); border-color:#8eaadb; box-shadow:0 16px 36px #17325a12; }
.solution-item h3 { font-size:clamp(1.4rem,2.2vw,2.2rem); }
.solution-item span { font-size:.8125rem; }
.solution-item p { margin:0; }
.solution-item i { display:none; }
.engineering { border-radius:32px; width:94vw; margin:0 auto; overflow:hidden; border:1px solid #ffffff15; }
.engineering-visual { min-height:620px; }
.engineering-copy { padding:64px; }
.engineering-copy h2 { font-size:clamp(2rem,3.5vw,3.8rem); line-height:1.1; }
.specs dt { color:#b3bccb; }
.status-grid { gap:18px; border:0; }
.status-card { min-height:260px; padding:28px; border:1px solid #dce2eb; border-radius:var(--radius-card); background:#ffffffb8; box-shadow:0 8px 30px #17325a05; }
.status-card span { border-radius:8px; font-size:.75rem; margin-bottom:44px; background:#e9eff8; color:#123b92; }
.status-card h3 { line-height:1.25; }
.status-card p { font-size:1rem; }
#seguranca { border-top:0; }
.contact { margin:0 3vw 32px; width:94vw; border-radius:32px; border:1px solid #25416b; background:radial-gradient(ellipse at 10% 50%,#183e7855,transparent 60%),#0b0f14; }
footer { background:#0b0f14; font-size:.875rem; }
.page-hero { margin:0 3vw; border-radius:0 0 32px 32px; }
.route-grid { border:0; gap:20px; }
.route-card { border:1px solid #dce2eb; border-radius:24px; background:#ffffffb8; }
.route-card small,.route-card .number { font-size:.8125rem; }
.route-cta { margin:0 3vw 32px; border-radius:32px; }
.notice-panel,.project-empty,.quote-form { border-radius:24px; }
.catalog { border-radius:24px; overflow:hidden; }
.catalog-tab { font-size:1rem; }
.catalog-tab span { font-size:.8125rem; }
.catalog-copy .eyebrow { font-size:.8125rem; }
.choice { border-radius:16px; }
.field input,.field select { border-radius:12px; }
.field label { font-size:.875rem; }
.field small { font-size:.8125rem; }
.consent,.form-alert { border-radius:14px; }
.quote-aside .breadcrumb a { color:#505760; }
.quote-progress i { border-radius:3px; }
@media(max-width:1000px) { .status-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .solution-list { gap:12px; } .solution-item { padding:22px; } .engineering-copy { padding:48px 6vw; } }
@media(max-width:900px) { .site-header { top:12px; height:68px; padding:0 20px; } .navigation { inset:80px 0 auto; border:1px solid #ffffff25; border-radius:20px; visibility:hidden; pointer-events:none; transform:translateY(-12px); opacity:0; transition:opacity .25s,transform .25s,visibility .25s; } .navigation.open { visibility:visible; pointer-events:auto; opacity:1; transform:none; } .menu-toggle { border-radius:10px; } .hero-image { right:-5vw; border-radius:28px; } .hero-copy { margin-top:12vh; } .hero-image { opacity:.25; } .solution-list { grid-template-columns:1fr; } .solution-item { min-height:190px; padding:28px; } .engineering-visual { min-height:440px; } .section { padding:80px 0; } .hero h1 { font-size:clamp(3.3rem,10vw,5.8rem); } }
@media(max-width:560px) { .site-header { left:4vw; width:92vw; } .status-grid { grid-template-columns:1fr; } .status-card { min-height:220px; } .section-heading h2,.manifesto h2 { font-size:2.35rem; } .hero { padding-top:130px; } .hero-copy { margin-top:8vh; } .hero-image { width:90vw; } .hero-image figcaption { display:none; } .engineering,.contact,.route-cta { width:92vw; margin-left:4vw; margin-right:4vw; border-radius:24px; } .engineering-copy { padding:44px 6vw; } .contact-copy h2 { font-size:2.6rem; line-height:1.08; } .page-hero h1 { font-size:clamp(2.8rem,12vw,3.6rem); line-height:1.05; } .page-hero > div { width:100%; } .quote-aside h1 { font-size:3rem; line-height:1.06; } }
