/* ============================================================
   NUVON · Cobertura — estilos premium (alinhado ao design do site)
   ============================================================ */
.cov{
  position:relative;padding:130px 0 90px;min-height:100vh;
  background:
    radial-gradient(120% 80% at 85% -10%,rgba(47,125,106,.12),transparent 60%),
    radial-gradient(90% 70% at 0% 0%,rgba(168,208,144,.14),transparent 55%),
    linear-gradient(180deg,var(--paper),var(--paper-2));
  overflow:hidden;
}
.cov::before{
  content:"";position:absolute;inset:0;z-index:0;opacity:.5;pointer-events:none;
  background-image:linear-gradient(rgba(24,72,64,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(24,72,64,.04) 1px,transparent 1px);
  background-size:48px 48px;mask-image:radial-gradient(120% 70% at 50% 0%,#000,transparent 70%);
}
.cov .container{position:relative;z-index:1}

/* ---------- Header ---------- */
.cov__head{display:flex;flex-direction:column;gap:16px;margin-bottom:28px}
.cov__eyebrow{align-self:flex-start;color:var(--green-600);background:rgba(47,125,106,.1);border-color:rgba(47,125,106,.18)}
.cov__eyebrow .eyebrow__dot{background:var(--emerald)}
.cov__title{display:flex;align-items:center;gap:18px}
.cov__ico{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;font-size:1.8rem;
  background:var(--grad-dark);box-shadow:var(--shadow-md);position:relative;flex:0 0 auto}
.cov__ico::after{content:"";position:absolute;inset:0;border-radius:18px;border:1px solid rgba(168,208,144,.3)}
.cov__ico svg{width:30px;height:30px;color:#bfe3a6}
.cov__title h1{font-size:clamp(1.8rem,4vw,2.8rem);color:var(--green-700);letter-spacing:-.03em}
.cov__title p{color:var(--muted);font-size:1.02rem;margin-top:4px;max-width:62ch}
.cov__title strong{color:var(--green-600)}

/* ---------- Busca + localização SOBRE o mapa ---------- */
.cov-search-overlay{position:absolute;top:14px;left:14px;z-index:8;width:min(460px,calc(100% - 28px))}
.cov-search{position:relative;display:flex;align-items:center;gap:8px;
  background:rgba(10,32,28,.8);backdrop-filter:blur(16px) saturate(1.3);
  border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:7px 7px 7px 14px;box-shadow:var(--shadow-md)}
.cov-search__ico{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:#9fb8ad;stroke-width:2;stroke-linecap:round}
.cov-search input{flex:1;min-width:0;background:none;border:0;color:#fff;font-family:var(--font-b);font-size:.95rem;padding:8px 0}
.cov-search input::placeholder{color:#9fb8ad}
.cov-search input:focus{outline:none}
.cov-locate{flex:0 0 auto;width:40px;height:40px;border-radius:10px;border:0;cursor:pointer;
  background:var(--grad);color:#06231b;display:grid;place-items:center;transition:transform .25s var(--ease)}
.cov-locate:hover{transform:scale(1.06)}
.cov-locate svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cov-suggest{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:60;background:#fff;border:1px solid var(--line);
  border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden;max-height:280px;overflow-y:auto}
/* enquanto busca, esconde o "Coordenadas exatas"/status para não cobrir as sugestões */
.cov-search-overlay.searching .cov-overlay__foot{display:none}
.cov-suggest button{display:block;width:100%;text-align:left;padding:12px 16px;background:none;border:0;cursor:pointer;
  font-size:.92rem;color:var(--ink);border-bottom:1px solid var(--line);transition:.2s}
.cov-suggest button:hover{background:var(--paper-2);padding-left:20px}
.cov-overlay__foot{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-top:8px}
.cov-adv{font-size:.78rem}
.cov-adv summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;color:#bfe3a6;font-weight:600;
  background:rgba(10,32,28,.72);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);padding:6px 12px;border-radius:100px}
.cov-adv summary::-webkit-details-marker{display:none}
.cov-adv summary::before{content:"⌖";font-size:1em;color:var(--sage)}
.cov-adv__row{display:flex;gap:8px;margin-top:8px;background:rgba(10,32,28,.8);backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:10px;max-width:340px}
.cov-adv__row input{flex:1;min-width:0;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);
  border-radius:8px;color:#fff;padding:9px 10px;font-size:.85rem;font-family:var(--font-b)}
.cov-adv__row input:focus{outline:none;border-color:var(--sage)}
.cov-adv__row .btn{flex:0 0 auto}
.cov__status{color:#bfe3a6;font-weight:600;font-size:.76rem;background:rgba(10,32,28,.72);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.12);padding:6px 11px;border-radius:100px;align-self:center}
.cov__status:empty{display:none}

/* ---------- Layout: mapa protagonista (full-width) + resultados abaixo ---------- */
.cov__layout{display:block;margin-top:20px}
.cov__mapwrap{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg);
  border:1px solid rgba(24,72,64,.18)}
.cov__mapwrap::after{content:"";position:absolute;inset:0;border-radius:var(--radius);pointer-events:none;z-index:6;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),inset 0 60px 80px -60px rgba(10,32,28,.6)}
.cov__map{width:100%;height:64vh;min-height:480px;max-height:720px;background:#0b231d}
.cov-maperr{display:grid;place-items:center;height:100%;color:#cfe0d6;font-family:var(--font-h);font-size:1rem;text-align:center;padding:24px}

/* legenda flutuante (canto inferior direito) */
.cov-legend{position:absolute;right:16px;bottom:16px;z-index:7;background:rgba(10,32,28,.62);backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:7px;
  box-shadow:var(--shadow-md);font-size:.78rem;font-weight:500}
.cov-legend span{display:flex;align-items:center;gap:9px;color:#dcefe0}
.cov-legend i{width:11px;height:11px;border-radius:50%;box-shadow:0 0 0 2px rgba(255,255,255,.15)}
.cov-legend__me{background:#fff;border:3px solid var(--emerald);box-shadow:0 0 0 2px rgba(16,185,129,.4)}

/* pins */
.cov-pin-me{width:36px;height:36px;border-radius:50%;background:#fff;border:2px solid var(--emerald);
  box-shadow:0 0 0 4px rgba(16,185,129,.25),0 3px 9px rgba(0,0,0,.5);position:relative;display:grid;place-items:center}
.cov-pin-me img{width:23px;height:22px;display:block}
.cov-pin-me::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid var(--emerald);animation:ping 2.2s infinite}

/* popup mapbox */
.cov-pop .mapboxgl-popup-content{background:rgba(10,32,28,.92);backdrop-filter:blur(10px);color:#eaf6ea;
  border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:10px 13px;font-family:var(--font-h);font-size:.82rem;box-shadow:var(--shadow-md)}
.cov-pop .mapboxgl-popup-content span{color:#9fb8ad;font-weight:500}
.cov-pop .mapboxgl-popup-tip{display:none}

/* ---------- Resultados abaixo do mapa ---------- */
.cov__below{margin-top:18px;scroll-margin-top:90px}
.cov-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:18px;
  background:rgba(255,255,255,.7);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px 20px}
.cov-foot__note{font-size:.82rem;color:var(--muted);max-width:62ch;flex:1 1 280px}
.cov-foot__note b{color:var(--green-600)}
.cov-foot__cta{display:flex;gap:10px;flex-wrap:wrap}

/* veredito flutuante sobre o mapa */
.cov-verdict{position:absolute;left:16px;bottom:16px;z-index:7;display:flex;align-items:center;gap:14px;
  background:rgba(10,32,28,.84);backdrop-filter:blur(14px) saturate(1.3);color:#fff;border:1px solid rgba(255,255,255,.16);
  border-radius:16px;padding:15px 20px;box-shadow:var(--shadow-lg);overflow:hidden;animation:fadeUp .5s var(--ease);
  max-width:min(440px,calc(100% - 210px))}
.cov-verdict::before{content:"";position:absolute;inset:0;opacity:.5;
  background:radial-gradient(60% 120% at 90% 0,rgba(168,208,144,.25),transparent 70%)}
.cov-verdict--green::before{background:radial-gradient(60% 120% at 90% 0,rgba(47,163,106,.4),transparent 70%)}
.cov-verdict--yellow::before{background:radial-gradient(60% 120% at 90% 0,rgba(217,154,31,.35),transparent 70%)}
.cov-verdict--red::before{background:radial-gradient(60% 120% at 90% 0,rgba(214,87,69,.4),transparent 70%)}
.cov-verdict>*{position:relative;z-index:1}
.cov-dot{width:14px;height:14px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 4px rgba(255,255,255,.14);animation:pulse 2.2s infinite}
.cov-verdict strong{display:block;font-family:var(--font-h);font-size:1.12rem}
.cov-verdict span{font-size:.83rem;color:#cfe0d6}

.cov-empty{background:rgba(255,255,255,.6);border:1px dashed rgba(24,72,64,.25);border-radius:var(--radius-sm);
  padding:26px 22px;color:var(--muted);font-size:.9rem;text-align:center;display:flex;flex-direction:column;gap:6px}
.cov-empty strong{font-family:var(--font-h);color:var(--green-700);font-size:1.05rem}
.cov-empty b{color:var(--green-600)}

#covResults{scroll-margin-top:90px}
.cov-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:stretch}
.cov-cards .cov-card{height:100%;display:flex;flex-direction:column}
#covResults.is-loading{opacity:.55;pointer-events:none;filter:saturate(.6)}
.cov-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:18px 20px;box-shadow:var(--shadow-md);
  position:relative;overflow:hidden}
.cov-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--lv,var(--green-400))}
.cov-card__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.cov-op{display:flex;align-items:center;gap:8px;font-family:var(--font-h);font-weight:700;color:var(--green-700)}
.cov-op i{width:12px;height:12px;border-radius:50%}
.cov-badge{font-size:.76rem;font-weight:600;color:var(--lv);background:color-mix(in srgb,var(--lv) 13%,#fff);
  border:1px solid color-mix(in srgb,var(--lv) 32%,#fff);padding:5px 11px;border-radius:100px;white-space:nowrap;
  display:inline-flex;align-items:center;gap:5px}
.cov-ic{width:14px;height:14px;display:inline-block;flex:0 0 auto}
.cov-verdict .cov-ic{width:16px;height:16px;vertical-align:-3px}
.cov-card__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.cov-card__grid label{display:block;font-size:.7rem;color:var(--muted);margin-bottom:3px;text-transform:uppercase;letter-spacing:.04em}
.cov-card__grid b{font-family:var(--font-h);font-size:.95rem;color:var(--ink)}
.cov-freq{display:block;font-size:.68rem;color:var(--green-500);font-weight:600;margin-top:1px}
.cov-bar{height:7px;border-radius:100px;background:var(--paper-2);overflow:hidden;margin-bottom:10px}
.cov-bar span{display:block;height:100%;border-radius:100px;transition:width 1s var(--ease)}
.cov-reason{font-size:.83rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}
.cov-elev{margin-top:auto;padding-top:12px}
.cov-elev svg{width:100%;height:70px;display:block;background:var(--paper);border-radius:10px;border:1px solid var(--line)}
.cov-elev__cap{display:block;font-size:.7rem;color:var(--muted);margin-top:5px}

.cov-cta{background:var(--grad-dark);color:#fff;border-radius:var(--radius-sm);padding:20px;text-align:center;position:relative;overflow:hidden}
.cov-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 50% 0,rgba(168,208,144,.18),transparent 70%)}
.cov-cta p{font-size:.92rem;color:#cfe0d6;margin-bottom:14px;position:relative}
.cov-cta .btn{position:relative}

/* lead pós-resultado (WhatsApp) */
.cov-lead{background:linear-gradient(135deg,rgba(16,185,129,.12),rgba(168,208,144,.16));
  border:1px solid rgba(47,125,106,.28);border-radius:var(--radius-sm);padding:18px 20px;animation:fadeUp .5s var(--ease)}
.cov-lead strong{display:block;font-family:var(--font-h);color:var(--green-700);margin-bottom:4px;font-size:1rem}
.cov-lead p{font-size:.85rem;color:var(--muted);margin-bottom:12px}

.cov-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);z-index:200;
  background:var(--green-800);color:#fff;padding:13px 20px;border-radius:12px;box-shadow:var(--shadow-lg);
  font-size:.9rem;opacity:0;pointer-events:none;transition:.3s var(--ease);max-width:90vw;text-align:center}
.cov-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Mapbox UI tema */
.mapboxgl-ctrl-group{border-radius:10px!important;overflow:hidden;background:rgba(10,32,28,.7)!important;backdrop-filter:blur(8px)}
.mapboxgl-ctrl-group button+button{border-top:1px solid rgba(255,255,255,.1)!important}
.mapboxgl-ctrl-group button .mapboxgl-ctrl-icon{filter:invert(1) brightness(1.6)}
.mapboxgl-ctrl-attrib{font-size:10px!important;background:rgba(10,32,28,.5)!important}
.mapboxgl-ctrl-attrib a{color:#bcd2c6!important}

/* ---------- Responsivo ---------- */
@media(max-width:1024px){
  .cov__map{height:54vh;min-height:420px}
  .cov-cards{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
  .cov{padding-top:100px}
  .cov-cards{grid-template-columns:1fr}
  .cov-card__grid{grid-template-columns:repeat(3,1fr)}
  .cov__map{height:62vh;min-height:380px;max-height:560px}
  .cov__title{gap:12px}
  .cov__ico{width:50px;height:50px}
  .cov__ico svg{width:26px;height:26px}
  /* veredito vira faixa inferior; legenda some (cores já estão nos cards) */
  .cov-verdict{left:12px;right:12px;bottom:12px;max-width:none}
  .cov-legend{display:none}
  /* afasta os controles do Mapbox do overlay de busca */
  .cov__mapwrap .mapboxgl-ctrl-top-right{margin-top:96px}
  .cov-search-overlay{top:12px;left:12px;width:calc(100% - 24px)}
  .cov-foot{flex-direction:column;align-items:stretch}
  .cov-foot__cta .btn{width:100%}
}
