
:root{
 --a:#0C6A63; --a-soft:#E2EFED; --a-line:#9CC6C1; --a-ink:#00463f;
 --bg:#FBFBFA; --bg2:#FFFFFF; --bg3:#F3F4F2;
 --ink:#14181A; --ink2:#454F52; --ink3:#788386;
 --rule:#E1E4E1; --rule2:#EDEFEC;
 --warn:#8A5300; --warn-soft:#FCF3E3; --warn-line:#E0C393;
 --ok:#2C6B3F; --bad:#9A3327;
 --sh:0 1px 2px rgba(20,24,26,.05),0 10px 30px -20px rgba(20,24,26,.35);
 --r:3px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
 --a:#5FB8AE; --a-soft:#12302E; --a-line:#2A4E4A; --a-ink:#5FB8AE;
 --bg:#0D1011; --bg2:#151A1B; --bg3:#1B2122;
 --ink:#E8EBE9; --ink2:#B3BCBA; --ink3:#7E8988;
 --rule:#2A3132; --rule2:#1E2425;
 --warn:#D9A860; --warn-soft:#2A2114; --warn-line:#4C3C1E;
 --ok:#79B98C; --bad:#D98C7F;
 --sh:0 1px 2px rgba(0,0,0,.5),0 10px 30px -20px rgba(0,0,0,.9);
}}
:root[data-theme="dark"]{
 --a:#5FB8AE; --a-soft:#12302E; --a-line:#2A4E4A; --a-ink:#5FB8AE;
 --bg:#0D1011; --bg2:#151A1B; --bg3:#1B2122;
 --ink:#E8EBE9; --ink2:#B3BCBA; --ink3:#7E8988;
 --rule:#2A3132; --rule2:#1E2425;
 --warn:#D9A860; --warn-soft:#2A2114; --warn-line:#4C3C1E;
 --ok:#79B98C; --bad:#D98C7F;
 --sh:0 1px 2px rgba(0,0,0,.5),0 10px 30px -20px rgba(0,0,0,.9);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Public Sans","Segoe UI",system-ui,sans-serif;font-size:16.5px;line-height:1.62;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
a{color:var(--a-ink)}
.ic{width:1.25em;height:1.25em;flex:none;vertical-align:-.22em}
.wrap{max-width:1220px;margin:0 auto;padding:0 22px}
h1,h2,h3,h4{font-family:"Newsreader",Georgia,serif;font-weight:500;letter-spacing:-.012em;text-wrap:balance;margin:0}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace}
mark.nc{background:var(--warn-soft);color:var(--warn);padding:1px 6px;border-radius:2px;box-shadow:inset 0 -1px 0 var(--warn-line);box-decoration-break:clone;-webkit-box-decoration-break:clone}
mark.nc i{font-style:italic}

/* ---- barra superior ---- */
.top{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}
.topin{display:flex;align-items:center;gap:18px;min-height:66px}
.brand{display:flex;align-items:center;gap:11px;color:var(--a);text-decoration:none;flex:none}
.brand .bn{display:flex;flex-direction:column;line-height:1.05}
.brand b{font-family:"Newsreader",Georgia,serif;font-weight:600;font-size:19px;color:var(--ink);letter-spacing:-.01em}
.brand span{font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-top:2px}
nav.mainnav{margin-left:auto;display:flex;gap:0;align-items:center;flex-wrap:nowrap}
nav.mainnav a{display:block;white-space:nowrap;padding:8px 10px;font-size:14.5px;color:var(--ink2);text-decoration:none;border-radius:var(--r)}
nav.mainnav a:hover{color:var(--a-ink);background:var(--a-soft)}
nav.mainnav a[aria-current]{color:var(--a-ink);font-weight:600;box-shadow:inset 0 -2px 0 var(--a)}
.tools{display:flex;gap:6px;align-items:center;margin-left:8px}
.iconbtn{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--rule);background:var(--bg2);color:var(--ink2);border-radius:var(--r);cursor:pointer}
.iconbtn:hover{color:var(--a-ink);border-color:var(--a-line)}
.burger{display:none}
@media(max-width:1180px){nav.mainnav{display:none}.burger{display:grid}}
.drawer{display:none;border-top:1px solid var(--rule);background:var(--bg2);padding:14px 0 22px}
.drawer.open{display:block}
.drawer .grp{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink3);margin:14px 0 6px}
.drawer a{display:flex;align-items:center;gap:10px;padding:9px 0;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule2);font-size:15px}
.drawer a .ic{color:var(--a)}

/* ---- carril esquerdo ---- */
.rail{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:50;background:var(--bg2);border:1px solid var(--rule);border-left:none;border-radius:0 6px 6px 0;box-shadow:var(--sh);padding:6px 0;display:flex;flex-direction:column}
.rail a{display:flex;align-items:center;gap:0;padding:9px 12px;color:var(--ink2);text-decoration:none;font-size:13.5px;white-space:nowrap;max-width:46px;overflow:hidden;transition:max-width .22s ease,color .15s}
.rail a .ic{flex:none;color:var(--a)}
.rail a span{opacity:0;margin-left:0;transition:opacity .18s,margin-left .22s}
.rail:hover a{max-width:230px}
.rail:hover a span{opacity:1;margin-left:11px}
.rail a:hover{background:var(--a-soft);color:var(--a-ink)}
.rail a[aria-current]{color:var(--a-ink);font-weight:600;background:var(--a-soft)}
@media(max-width:1400px){.rail{display:none}}
@media(prefers-reduced-motion:reduce){.rail a,.rail a span{transition:none}}

/* ---- herói ---- */
.hero{border-bottom:1px solid var(--rule);background:linear-gradient(180deg,var(--a-soft),transparent 78%)}
.heroin{padding:56px 0 46px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:52px;align-items:center}
@media(max-width:980px){.heroin{grid-template-columns:1fr;gap:34px;padding:40px 0 34px}}
.kicker{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--a-ink);display:flex;align-items:center;gap:9px;margin-bottom:16px}
.kicker::before{content:"";width:26px;height:2px;background:var(--a)}
h1{font-size:clamp(31px,4.6vw,50px);line-height:1.07;margin-bottom:16px;max-width:19ch}
.lead{font-size:19px;color:var(--ink2);max-width:56ch;font-weight:300}
.ctas{display:flex;flex-wrap:wrap;gap:11px;margin-top:26px}
.btn{display:inline-flex;align-items:center;gap:9px;padding:11px 19px;border-radius:var(--r);text-decoration:none;font-size:15px;font-weight:600;border:1px solid transparent}
.btn.p{background:var(--a);color:#fff}
.btn.p:hover{background:var(--a-ink)}
:root[data-theme="dark"] .btn.p,:root:not([data-theme="light"]) .btn.p{color:#0D1011}
@media(prefers-color-scheme:light){:root:not([data-theme="dark"]) .btn.p{color:#fff}}
.btn.s{border-color:var(--rule);color:var(--ink);background:var(--bg2)}
.btn.s:hover{border-color:var(--a-line);color:var(--a-ink)}
.quote{background:var(--bg2);border:1px solid var(--rule);border-top:3px solid var(--a);padding:24px 26px;box-shadow:var(--sh)}
.quote .src{font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin-bottom:12px}
.quote p{font-family:"Newsreader",Georgia,serif;font-size:18.5px;line-height:1.5;margin:0;color:var(--ink)}

/* ---- alerta ---- */
.alarm{background:var(--warn-soft);border-top:1px solid var(--warn-line);border-bottom:1px solid var(--warn-line)}
.alarm .in{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:start;padding:20px 0}
@media(max-width:820px){.alarm .in{grid-template-columns:auto minmax(0,1fr)}.alarm .in .btn{grid-column:2}}
.alarm .ic{color:var(--warn);width:26px;height:26px;margin-top:2px}
.alarm b{display:block;font-size:16px;margin-bottom:5px;color:var(--ink)}
.alarm p{margin:0;font-size:14.5px;color:var(--ink2)}

/* ---- secções ---- */
section.blk{padding:56px 0;border-bottom:1px solid var(--rule2)}
section.blk:last-of-type{border-bottom:none}
.eyebrow{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--a-ink);margin-bottom:10px}
h2{font-size:clamp(25px,3.2vw,34px);line-height:1.16;margin-bottom:12px;max-width:24ch}
h3{font-size:21px;line-height:1.28;margin-bottom:6px}
.sublead{color:var(--ink2);max-width:62ch;font-size:17px;font-weight:300}
p{margin:0 0 14px}
.prose p{max-width:66ch;color:var(--ink2)}
.prose p strong{color:var(--ink);font-weight:600}

/* ---- números ---- */
.nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));border:1px solid var(--rule);background:var(--bg2)}
.nums>div{padding:22px;border-right:1px solid var(--rule)}
.nums>div:last-child{border-right:none}
@media(max-width:820px){.nums>div{border-right:none;border-bottom:1px solid var(--rule)}.nums>div:last-child{border-bottom:none}}
.nums b{display:block;font-family:"Newsreader",Georgia,serif;font-size:34px;font-weight:500;color:var(--a-ink);line-height:1;font-variant-numeric:tabular-nums}
.nums span{display:block;font-size:14px;color:var(--ink2);margin-top:9px}
.nums em{display:block;font-family:"IBM Plex Mono",monospace;font-size:10px;color:var(--ink3);margin-top:7px;font-style:normal;letter-spacing:.03em}

/* ---- cartões ---- */
.grid{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(285px,1fr))}
.card{background:var(--bg2);padding:26px}
.card .ic{color:var(--a);width:26px;height:26px;margin-bottom:14px}
.card h3{font-size:19px;margin-bottom:7px}
.card p{font-size:15px;color:var(--ink2);margin:0}

/* ---- passos ---- */
.steps{counter-reset:s;border-top:1px solid var(--rule)}
.step{counter-increment:s;display:grid;grid-template-columns:56px minmax(0,1fr);gap:20px;padding:20px 0;border-bottom:1px solid var(--rule2)}
.step::before{content:counter(s,decimal-leading-zero);font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--a-ink);padding-top:4px;font-weight:500}
.step b{display:block;font-family:"Newsreader",Georgia,serif;font-size:19px;font-weight:500;margin-bottom:4px}
.step p{margin:0;font-size:15px;color:var(--ink2);max-width:70ch}

/* ---- dor → solução ---- */
.dor{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;padding:22px 0;border-bottom:1px solid var(--rule2)}
.dor>.ic{color:var(--a);width:24px;height:24px;margin-top:5px}
.dor .q{font-family:"Newsreader",Georgia,serif;font-size:20px;color:var(--ink);margin-bottom:7px;display:block}
.dor .r{font-size:15.5px;color:var(--ink2);max-width:72ch;margin:0}

/* ---- ficha de serviço ---- */
.svc{background:var(--bg2);border:1px solid var(--rule);padding:26px;display:flex;flex-direction:column;gap:12px}
.svc .hd{display:flex;align-items:flex-start;gap:14px}
.svc .hd .ic{color:var(--a);width:26px;height:26px;margin-top:3px}
.cod{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.09em;color:var(--a-ink);background:var(--a-soft);padding:3px 8px;border-radius:2px}
.svc p{font-size:15px;color:var(--ink2);margin:0}
.meta{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-family:"IBM Plex Mono",monospace;font-size:11px;padding:4px 9px;border:1px solid var(--rule);color:var(--ink2);background:var(--bg)}
.chip.u{border-color:var(--warn-line);color:var(--warn);background:var(--warn-soft)}
.dl{list-style:none;padding:0;margin:0}
.dl li{display:flex;gap:10px;padding:6px 0;font-size:15px;color:var(--ink2);border-bottom:1px solid var(--rule2)}
.dl li:last-child{border-bottom:none}
.dl li .ic{color:var(--a);width:17px;height:17px;margin-top:4px}
.hd4{font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);margin:18px 0 8px}

/* ---- tabela ---- */
.tw{overflow-x:auto;border:1px solid var(--rule);background:var(--bg2)}
table{border-collapse:collapse;width:100%;font-size:14.5px}
th{text-align:left;font-family:"IBM Plex Mono",monospace;font-weight:500;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);padding:12px 15px;border-bottom:1px solid var(--rule);white-space:nowrap}
td{padding:12px 15px;border-bottom:1px solid var(--rule2);vertical-align:top;color:var(--ink2)}
tr:last-child td{border-bottom:none}
td:first-child{color:var(--ink);font-weight:600}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:1px}
.dot.forte{background:var(--ok)}.dot.medio{background:var(--warn)}.dot.fraco{background:var(--bad)}

/* ---- calendário ---- */
.tl{border-left:2px solid var(--rule);margin-left:6px}
.tli{display:grid;grid-template-columns:170px minmax(0,1fr);gap:22px;padding:16px 0 16px 24px;position:relative;border-bottom:1px solid var(--rule2)}
@media(max-width:720px){.tli{grid-template-columns:1fr;gap:6px}}
.tli::before{content:"";position:absolute;left:-7px;top:24px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--a-line)}
.tli.on::before{background:var(--a);border-color:var(--a)}
.tli .d{font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--a-ink);font-weight:500}
.tli b{display:block;font-family:"Newsreader",Georgia,serif;font-size:18px;font-weight:500}
.tli p{margin:2px 0 0;font-size:14.5px;color:var(--ink2)}

/* ---- acordeão ---- */
details.faq{border-bottom:1px solid var(--rule2)}
details.faq summary{cursor:pointer;list-style:none;padding:17px 0;display:flex;gap:14px;align-items:flex-start;font-family:"Newsreader",Georgia,serif;font-size:19px;color:var(--ink)}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::before{content:"+";font-family:"IBM Plex Mono",monospace;font-size:17px;color:var(--a);flex:none;line-height:1.4}
details.faq[open] summary::before{content:"−"}
details.faq .ans{padding:0 0 18px 28px;font-size:15.5px;color:var(--ink2);max-width:74ch}
details.faq .ans p{margin:0}

/* ---- normas ---- */
.norm{background:var(--bg2);border:1px solid var(--rule);padding:24px;margin-bottom:-1px}
.norm .rt{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.norm h3{font-size:20px}
.norm .st{font-size:14px;color:var(--ink3);margin:4px 0 14px}
.norm dl{margin:0;border-top:1px solid var(--rule2)}
.norm dt{font-family:"IBM Plex Mono",monospace;font-size:11.5px;color:var(--a-ink);padding-top:12px;letter-spacing:.03em}
.norm dd{margin:3px 0 12px;font-size:15px;color:var(--ink2);border-bottom:1px solid var(--rule2);padding-bottom:12px}
.norm dd:last-of-type{border-bottom:none}
.aviso{background:var(--warn-soft);border-left:3px solid var(--warn-line);padding:13px 16px;font-size:14.5px;color:var(--ink2);margin-top:14px}

/* ---- contactos ---- */
.cx{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.cx>div{background:var(--bg2);padding:24px}
.cx .ic{color:var(--a);width:24px;height:24px;margin-bottom:12px}
.cx b{display:block;font-size:15px;margin-bottom:6px}
.cx a,.cx p{font-size:15px;color:var(--ink2);margin:0;text-decoration:none;display:block}
.cx a:hover{color:var(--a-ink)}

/* ---- pé ---- */
footer{background:var(--bg3);border-top:1px solid var(--rule);margin-top:0}
.fmain{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px;padding:48px 0 38px}
@media(max-width:940px){.fmain{grid-template-columns:1fr 1fr;gap:28px}}
@media(max-width:560px){.fmain{grid-template-columns:1fr}}
.fmain h4{font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink3);font-weight:500;margin-bottom:13px}
.fmain a{display:block;color:var(--ink2);text-decoration:none;font-size:14.5px;padding:3.5px 0}
.fmain a:hover{color:var(--a-ink)}
.fmain p{font-size:14.5px;color:var(--ink2);margin:0 0 4px}
.fmain .self{color:var(--a-ink);font-weight:600}
.fbot{border-top:1px solid var(--rule);padding:18px 0 26px;display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;font-size:13.5px;color:var(--ink3)}
.fbot a{color:var(--ink2);text-decoration:none}
.fbot a:hover{color:var(--a-ink)}
.fbot .sep{margin-left:auto;display:flex;gap:18px;flex-wrap:wrap}
:focus-visible{outline:2px solid var(--a);outline-offset:2px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:99;background:var(--bg2);padding:10px 16px;border:1px solid var(--a)}
