/* =========================================================
   ISO Técnica — Calculadora de material (visual do site)
   ========================================================= */
.calc{ min-width:0; }
.calc__sec{ padding:34px 0; border-top:1px solid var(--linha); }
.calc__sec:first-of-type{ border-top:0; padding-top:0; }
.calc__cab{ display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.calc__cab i{ font-style:normal; font-family:var(--f-tit); font-size:15px; font-weight:700; color:#fff; background:var(--orange); padding:5px 10px; }
.calc__cab h2{ font-size:clamp(22px,3vw,30px); color:var(--navy); }
.calc__fs{ border:0; padding:0; margin:0; min-width:0; }
.calc__fs + .calc__fs{ margin-top:26px; }
.calc__leg{ display:block; width:100%; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--tx-suave); font-weight:700; padding-bottom:10px; border-bottom:1px solid var(--linha); }
.calc__aguarda,.calc__vazio{ padding:18px; background:var(--papel); border-left:4px solid var(--orange); color:var(--tx-medio); font-size:15.5px; }
.calc__nojs{ padding:16px 18px; border:1px solid var(--flame-4); font-size:15px; margin-bottom:24px; }

/* opções (ambiente e sistema) */
.calc__lista{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; }
.calc__lista li{ position:relative; }
.calc__lista input{ position:absolute; opacity:0; width:1px; height:1px; margin:0; left:0; top:50%; pointer-events:none; }
.calc__lista label{
  display:grid; grid-template-columns:34px 1fr; gap:2px 10px; align-items:baseline; height:100%;
  padding:14px 14px; border:1.5px solid var(--linha); border-radius:var(--r); background:#fff; cursor:pointer; transition:.18s var(--ease);
}
.calc__lista label i{ font-style:normal; font-family:var(--f-tit); font-weight:700; font-size:14px; color:var(--tx-suave); }
.calc__lista label b{ font-family:var(--f-tit); font-weight:700; font-size:18px; color:var(--navy); line-height:1.15; text-transform:uppercase; letter-spacing:.02em; }
.calc__lista label span{ grid-column:2; font-size:14px; color:var(--tx-medio); line-height:1.45; }
.calc__lista label:hover{ border-color:var(--navy); }
.calc__lista input:checked + label{ border-color:var(--orange); background:#FFF5EE; }
.calc__lista input:checked + label i{ color:var(--orange-600); }
.calc__lista input:focus-visible + label{ outline:3px solid var(--flame-1); outline-offset:2px; }
.calc__selo{ display:inline-block; vertical-align:2px; margin-left:8px; font-family:var(--f-txt); font-size:10.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--orange-600); border:1px solid var(--orange-600); padding:1px 6px; }
.calc__it--fora label b{ color:var(--tx-medio); }

/* medidas */
.calc__campo{ display:grid; grid-template-columns:220px 1fr; gap:6px 20px; padding:14px 0; border-bottom:1px solid var(--linha); align-items:start; }
.calc__campo > label{ font-size:15px; font-weight:650; color:var(--tx); line-height:1.3; padding-top:11px; }
.calc__campo > label small{ display:block; font-size:13px; font-weight:400; color:var(--tx-suave); line-height:1.45; margin-top:3px; }
.calc__ent{ display:flex; align-items:center; gap:12px; }
.calc__ent input{
  width:150px; height:46px; border:1px solid var(--linha); border-radius:var(--r-sm); background:var(--papel); padding:0 14px;
  font-family:var(--f-tit); font-size:20px; font-weight:700; color:var(--navy); text-align:right; font-variant-numeric:tabular-nums;
}
.calc__ent input:focus{ outline:none; border-color:var(--orange); box-shadow:0 0 0 4px rgba(255,106,19,.14); background:#fff; }
.calc__ent input[aria-invalid="true"]{ border-color:var(--flame-4); }
.calc__un{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--tx-suave); font-weight:700; }
.calc__erro{ grid-column:2; font-size:13.5px; color:var(--flame-4); font-weight:500; }
.calc__erro[hidden]{ display:none; }
.calc__seg{ display:inline-flex; position:relative; border:1.5px solid var(--navy); border-radius:var(--r-sm); overflow:hidden; }
.calc__seg input{ position:absolute; opacity:0; width:1px; height:1px; margin:0; pointer-events:none; }
.calc__seg label{ padding:0 18px; height:42px; display:inline-flex; align-items:center; font-family:var(--f-tit); font-size:16px; font-weight:700; color:var(--navy); border-left:1.5px solid var(--navy); cursor:pointer; }
.calc__seg label:first-of-type{ border-left:0; }
.calc__seg input:checked + label{ background:var(--navy); color:#fff; }
.calc__acoes{ margin-top:26px; display:flex; gap:10px; flex-wrap:wrap; }

/* resultado */
.res__cab{ padding:22px 24px; background:var(--navy); color:#fff; border-radius:var(--r); }
.res__cab .rot{ font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--tx-claro-2); font-weight:700; }
.res__num{ display:flex; align-items:baseline; gap:10px; margin-top:6px; }
.res__num b{ font-family:var(--f-tit); font-size:clamp(48px,6vw,72px); font-weight:700; line-height:.95; color:var(--flame-1); font-variant-numeric:tabular-nums; }
.res__num span{ font-family:var(--f-tit); font-size:24px; font-weight:600; color:var(--tx-claro-2); }
.res__frase{ margin-top:12px; font-size:15.5px; color:var(--tx-claro); max-width:60ch; }
.res__tab{ width:100%; border-collapse:collapse; margin-top:22px; font-size:15px; }
.res__tab caption{ text-align:left; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--tx-suave); font-weight:700; padding-bottom:8px; }
.res__tab th,.res__tab td{ padding:11px 6px; border-bottom:1px solid var(--linha); text-align:left; vertical-align:top; }
.res__tab th{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--tx-suave); }
.res__tab th small{ display:block; font-weight:400; letter-spacing:0; text-transform:none; }
.res__tab .n{ text-align:right; white-space:nowrap; font-family:var(--f-tit); font-weight:700; font-size:18px; color:var(--navy); font-variant-numeric:tabular-nums; }
.res__tab tfoot .res__total td{ border-top:2px solid var(--navy); font-weight:700; }
.res__tab tfoot .res__compra td{ font-weight:700; }
.res__tab tfoot .res__compra .n{ color:var(--orange-600); font-size:24px; }
.res__tab tfoot .res__perda td{ color:var(--tx-medio); }
.res__tit{ font-size:24px; color:var(--navy); margin:34px 0 8px; }
.res__tit span{ color:var(--orange-600); }
.res__mat td b{ display:block; font-weight:650; color:var(--tx); }
.res__mat td small{ display:block; font-size:13px; color:var(--tx-suave); margin-top:3px; line-height:1.45; }
.res__mat .n b{ font-size:26px; display:inline; color:var(--navy); }
.res__obs{ list-style:none; margin-top:22px; display:grid; gap:8px; }
.res__obs li{ position:relative; padding-left:22px; font-size:14.5px; color:var(--tx-medio); }
.res__obs li::before{ content:""; position:absolute; left:0; top:8px; width:9px; height:9px; background:var(--orange); }
.res__aviso{ margin-top:22px; padding:16px 18px; background:var(--papel); border-left:4px solid var(--navy); font-size:13.5px; color:var(--tx-medio); line-height:1.55; }
.res__aviso b{ display:block; font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--tx-suave); margin-bottom:6px; }
.res__acoes{ display:flex; gap:10px; flex-wrap:wrap; margin-top:26px; padding-top:22px; border-top:1px solid var(--linha); }
.res__acoes .btn--wa{ flex:1 1 100%; }
.res__copiado{ font-size:13px; color:var(--tx-suave); align-self:center; }
.calc__erro-geral{ padding:16px 18px; border:1px solid var(--flame-4); border-radius:var(--r); font-size:15px; }
.calc__erro-geral[hidden],[data-res-bloco][hidden],.calc__vazio[hidden],.calc__aguarda[hidden]{ display:none; }

/* resumo na lateral */
.rail__res dl{ margin:0; }
.rail__res dl > div{ display:grid; grid-template-columns:1fr auto; gap:10px; align-items:baseline; padding:9px 0; border-bottom:1px solid var(--linha); }
.rail__res dl > div:last-child{ border:0; }
.rail__res dt{ letter-spacing:.14em; text-transform:uppercase; color:var(--tx-suave); font-weight:700; font-size:11px; }
.rail__res dd{ margin:0; font-family:var(--f-tit); font-size:20px; font-weight:700; color:var(--navy); font-variant-numeric:tabular-nums; }
.rail__res dd[data-res="areaComPerda"]{ color:var(--orange-600); }
.rail__res dd[data-res="ambiente"]{ font-size:15px; }
.seta{ display:inline-flex; align-items:center; gap:7px; font-weight:650; color:var(--orange-600); font-size:14px; margin-top:12px; }
.seta svg{ width:15px; height:15px; }

@media (max-width:1000px){ .rail__res{ display:none; } }
@media (max-width:760px){
  .calc__lista{ grid-template-columns:1fr; }
  .calc__campo{ grid-template-columns:1fr; gap:8px; }
  .calc__campo > label{ padding-top:0; }
  .calc__erro{ grid-column:1; }
  .res__tab{ font-size:14px; } .res__mat .n b{ font-size:22px; }
  .res__acoes .btn{ flex:1 1 100%; }
}
@media (max-width:420px){ .calc__ent input{ width:120px; font-size:18px; } .calc__seg label{ padding:0 12px; font-size:15px; } }
@media print{ .topo,.cab,.lado,.faixa,.rodape,.wa,.capa__acoes,.res__acoes,.calc__acoes,#p-01,#p-02,#p-03{ display:none !important; } .corpo{ display:block; } }

.res__tab .n small,.res__tab .n span{ margin-left:4px; font-size:13px; font-weight:600; color:var(--tx-suave); }

/* identificação e trava do resultado */
.calc__ent--txt input{ width:100%; max-width:420px; text-align:left; font-family:var(--f-txt); font-size:16px; font-weight:500; }
.res--travado{ filter:blur(6px); pointer-events:none; user-select:none; max-height:420px; overflow:hidden; position:relative; }
.res--travado::after{ content:""; position:absolute; inset:0; background:linear-gradient(to bottom, rgba(255,255,255,0), #fff 85%); }
.res__trava{ padding:18px 20px; border:1.5px solid var(--orange); border-radius:var(--r); background:#FFF5EE; font-size:15.5px; margin-bottom:14px; }
.res__trava a{ color:var(--orange-600); font-weight:700; text-decoration:underline; }
.res__trava[hidden]{ display:none; }
