/* Implementação v20: connected workflow, concrete handover, optional details. */
body main.impl20 { color:var(--navy); }
body main.impl20 :is(h1,h2,h3) { font-weight:500; letter-spacing:-.04em; text-wrap:balance; }
body main.impl20 .eyebrow { color:#4a5c75; margin:0 0 20px; font-size:12px; line-height:1.5; letter-spacing:.01em; text-transform:none; }
body main.impl20 h1 { font-size:clamp(46px,4.4vw,66px); line-height:1.06; margin:0; }
body main.impl20 h1 em { font-style:normal; color:var(--blue); }
body main.impl20 h2 { font-size:clamp(31px,3.05vw,43px); line-height:1.14; margin:0; }
body main.impl20 h3 { font-size:25px; line-height:1.2; margin:0 0 15px; }
.impl20-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--blue); margin-right:10px; }
.impl20-hero { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.85fr); gap:clamp(40px,6vw,86px); padding-block:52px 65px; align-items:center; }
body main.impl20 .impl20-back { display:inline-flex; align-items:center; gap:9px; text-decoration:none; color:var(--muted); font-size:12px; margin-bottom:30px; }
body main.impl20 .impl20-lead { margin:25px 0 16px; font-size:23px; line-height:1.45; letter-spacing:-.02em; }
body main.impl20 .impl20-intro { font-size:16px; line-height:1.75; color:var(--muted); max-width:585px; margin:0 0 26px; }
.impl20-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px 28px; }
body main.impl20 .button { gap:18px; font-size:13px; }
body main.impl20 .button > span { font-size:20px; font-weight:400; }
body main.impl20 .text-link { color:var(--navy); font-size:13px; }
.impl20-ready { padding:32px; border-radius:16px; background:var(--navy); color:white; }
body main.impl20 .impl20-caption { font-size:11px; margin:0; line-height:1.5; letter-spacing:.02em; color:#b6c8e1; }
.impl20-blueprint svg { display:block; width:100%; height:auto; }
.impl20-blueprint-labels { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; font-size:11px; color:#cbd9ef; text-align:center; margin-top:-10px; }
body main.impl20 .impl20-ready-list { list-style:none; margin:30px 0 0; padding:0; }
body main.impl20 .impl20-ready-list li { display:flex; flex-direction:column; gap:7px; border-top:1px solid #324865; padding:16px 0; font-size:14px; color:#e0e9f7; line-height:1.4; }
body main.impl20 .impl20-ready-list li:last-child { padding-bottom:0; }
.impl20-ready-list span { color:#a8c3f8; font-size:11px; }
.impl20-deliveries { padding-block:64px; background:white; border-block:1px solid var(--line); }
.impl20-split { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(40px,8vw,115px); }
body main.impl20 .impl20-split header > p:not(.eyebrow) { color:var(--muted); font-size:15px; line-height:1.75; margin:22px 0 0; max-width:410px; }
body main.impl20 .impl20-split header > p.impl20-scope { font-size:12px; margin-top:28px; padding-top:20px; border-top:1px solid var(--line); }
.impl20-delivery-list details,.impl20-faq-list details,.impl20-exception-list details { border-bottom:1px solid var(--line); }
.impl20-delivery-list details:first-child,.impl20-faq-list details:first-child,.impl20-exception-list details:first-child { border-top:1px solid var(--line); }
body main.impl20 summary { display:flex; align-items:center; gap:18px; cursor:pointer; list-style:none; padding:21px 0; font-size:20px; line-height:1.3; letter-spacing:-.025em; }
body main.impl20 summary::-webkit-details-marker { display:none; }
body main.impl20 summary::marker { content:''; }
.impl20-index { flex:0 0 26px; color:#657c9e; font-size:11px; letter-spacing:0; }
.impl20-delivery-list summary small { display:block; margin-top:7px; color:var(--muted); font-size:12px; letter-spacing:0; font-weight:400; line-height:1.5; }
.impl20-expand { display:block; position:relative; width:18px; height:18px; flex:0 0 18px; margin-left:auto; }
.impl20-expand::before,.impl20-expand::after { content:''; position:absolute; left:2px; top:8px; width:14px; height:1px; background:var(--blue); }
.impl20-expand::after { transform:rotate(90deg); }
details[open] > summary .impl20-expand::after { transform:none; }
body main.impl20 details > p { color:var(--muted); margin:0; padding:0 35px 22px 44px; font-size:14px; line-height:1.75; }
body main.impl20 summary:hover { color:var(--blue); }
body main.impl20 :is(summary,a):focus-visible { outline:3px solid var(--blue); outline-offset:4px; border-radius:3px; }
.impl20-example { padding-block:60px; }
.impl20-example-heading { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.7fr); gap:60px; align-items:end; margin-bottom:35px; }
body main.impl20 .impl20-example-heading > p { margin:0; font-size:15px; line-height:1.75; color:var(--muted); }
body main.impl20 .impl20-order { margin:0; padding:28px; background:#edf2fb; border:1px solid #d9e3f3; border-radius:14px; }
.impl20-order figcaption { font-size:11px; color:#4c648b; margin-bottom:26px; }
body main.impl20 .impl20-flow { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; list-style:none; padding:0; margin:0; }
.impl20-flow li { position:relative; min-width:0; }
.impl20-flow li:not(:last-child)::after { position:absolute; content:'→'; top:26px; right:-20px; color:#8b9fc4; font-size:21px; }
.impl20-flow-art { width:64px; height:64px; margin-bottom:20px; }
.impl20-flow-art svg { display:block; width:100%; height:100%; stroke:#7189ae; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.impl20-flow-art .accent { stroke:var(--blue); stroke-width:1.7; }
body main.impl20 .impl20-flow h3 { font-size:25px; margin-bottom:12px; }
body main.impl20 .impl20-flow p { margin:0; color:var(--muted); font-size:14px; line-height:1.7; }
.impl20-flow-note { display:flex; gap:14px; border-top:1px solid #d1ddec; margin-top:28px; padding-top:22px; }
.impl20-flow-note > span { color:var(--blue); font-size:24px; line-height:1; }
body main.impl20 .impl20-flow-note p { margin:0; color:#4c6386; font-size:12px; line-height:1.75; }
.impl20-exceptions { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(35px,8vw,115px); margin-top:38px; }
body main.impl20 .impl20-exceptions h3 { font-size:28px; margin:0 0 24px; }
body main.impl20 .impl20-exception-list summary { font-size:17px; padding-block:20px; }
body main.impl20 .impl20-exception-list details > p { padding-left:0; }
.impl20-acceptance { padding-block:52px; background:var(--navy); color:white; }
body main.impl20 .impl20-acceptance .eyebrow { color:#b6c8e1; }
body main.impl20 .impl20-acceptance h2 { color:white; }
body main.impl20 .impl20-acceptance header > p:not(.eyebrow) { color:#c2cede; font-size:15px; line-height:1.75; max-width:650px; margin:22px 0 0; }
.impl20-checks { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px; margin-top:34px; }
.impl20-checks > div { border-top:1px solid #344761; padding-top:22px; }
.impl20-checks span { display:block; font-size:22px; line-height:1.3; letter-spacing:-.02em; color:white; }
body main.impl20 .impl20-checks p { color:#c2cede; font-size:14px; line-height:1.7; margin:14px 0 0; }
.impl20-together { padding-block:55px; align-items:center; }
body main.impl20 .impl20-together p:not(.eyebrow) { color:var(--muted); font-size:15px; line-height:1.75; margin:0 0 25px; }
body main.impl20 .impl20-together ol { display:flex; flex-wrap:wrap; gap:12px 28px; padding:20px 0 0; margin:0; list-style:none; border-top:1px solid var(--line); }
body main.impl20 .impl20-together li { color:#4d6589; font-size:12px; }
.impl20-faq { padding-block:55px; background:#edf2fb; border-block:1px solid #dce5f2; }
body main.impl20 .impl20-faq summary { font-size:19px; padding-block:24px; }
body main.impl20 .impl20-faq details > p { padding-left:0; }
.impl20-contact { display:flex; align-items:center; justify-content:space-between; gap:50px; padding-block:55px; }
body main.impl20 .impl20-contact p:not(.eyebrow) { margin:22px 0 0; font-size:15px; line-height:1.75; max-width:560px; color:var(--muted); }
.impl20-contact .button { flex-shrink:0; }
.impl20-guide { display:flex; flex-wrap:wrap; gap:15px 30px; align-items:center; padding-block:24px; border-top:1px solid var(--line); }
.impl20-guide > span { font-size:12px; color:var(--muted); }
@media(max-width:1050px) {
 .impl20-hero { gap:35px; grid-template-columns:minmax(0,1fr) minmax(0,.8fr); }
 body main.impl20 h1 { font-size:clamp(40px,4.8vw,56px); }
 .impl20-ready { padding:24px; }
 .impl20-split,.impl20-exceptions { gap:45px; }
 .impl20-example-heading { gap:40px; }
 body main.impl20 .impl20-flow { gap:24px; }
}
@media(max-width:760px) {
 .impl20-hero { grid-template-columns:1fr; padding-block:36px 42px; gap:35px; }
 body main.impl20 h1 { max-width:630px; font-size:clamp(41px,7.7vw,56px); }
 .impl20-split,.impl20-example-heading,.impl20-exceptions { grid-template-columns:1fr; gap:30px; }
 body main.impl20 .impl20-split header > p:not(.eyebrow) { max-width:600px; }
 .impl20-deliveries,.impl20-example,.impl20-faq,.impl20-acceptance,.impl20-together { padding-block:44px; }
 body main.impl20 .impl20-flow { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
 .impl20-flow li:nth-child(2)::after { display:none; }
 .impl20-checks { grid-template-columns:1fr; gap:25px; }
 .impl20-contact { flex-direction:column; align-items:flex-start; gap:28px; padding-block:44px; }
}
@media(max-width:480px) {
 body main.impl20 h1 { font-size:clamp(37px,9.4vw,45px); text-wrap:initial; }
 body main.impl20 h2 { font-size:32px; text-wrap:initial; }
 body main.impl20 .impl20-lead { font-size:21px; }
 body main.impl20 .impl20-intro { font-size:15px; }
 .impl20-actions { align-items:flex-start; flex-direction:column; }
 body main.impl20 .button { padding-inline:16px; gap:10px; font-size:12px; }
 .impl20-ready { padding:24px; }
 .impl20-blueprint-labels { font-size:10px; margin-top:-2px; }
 body main.impl20 summary { gap:12px; font-size:19px; }
 .impl20-index { flex-basis:21px; }
 body main.impl20 details > p { padding-left:33px; padding-right:15px; }
 body main.impl20 .impl20-order { padding:24px; }
 body main.impl20 .impl20-flow { grid-template-columns:1fr; gap:25px; }
 .impl20-flow li { display:grid; grid-template-columns:46px minmax(0,1fr); column-gap:16px; }
 .impl20-flow-art { width:46px; height:46px; grid-row:span 2; margin:0; }
 body main.impl20 .impl20-flow h3 { font-size:23px; margin-bottom:9px; }
 .impl20-flow li:not(:last-child)::after { display:none; }
 body main.impl20 .impl20-exceptions h3 { font-size:27px; }
}
