/* Foco Goiás – Widget de previsão do tempo */
.widget.widget_fg_weather{padding:0;background:transparent;overflow:visible}
.widget.widget_fg_weather .widget-title{margin:0 0 10px}

.fgw{position:relative;border-radius:16px;overflow:hidden;color:#fff;isolation:isolate;min-height:300px;
  font-family:var(--fg-font,system-ui,sans-serif);box-shadow:0 10px 30px -12px rgba(15,30,60,.45);
  -webkit-font-smoothing:antialiased}
.fgw__inner{position:relative;z-index:2;padding:14px 14px 10px}

/* ---------- Fundo com transição suave entre condições ---------- */
.fgw__bg{position:absolute;inset:0;z-index:0}
.fgw__layer{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease;background:linear-gradient(160deg,#3a8dde,#5fb4f5 55%,#9fd6ff)}
.fgw__layer.is-on{opacity:1}
.fgw-t-clear{background:linear-gradient(160deg,#2f80d8 0%,#4ea6ef 50%,#8fd0ff 100%)}
.fgw-t-partly{background:linear-gradient(160deg,#3f78bf 0%,#6ea4dc 55%,#a9cdee 100%)}
.fgw-t-cloudy{background:linear-gradient(160deg,#5b6f8a 0%,#7f93ad 55%,#a8b7ca 100%)}
.fgw-t-cloudy-night{background:linear-gradient(160deg,#151c2b 0%,#2a3549 55%,#3f4d66 100%)}
.fgw-t-rain{background:linear-gradient(160deg,#2f425a 0%,#4b6280 55%,#6d86a3 100%)}
.fgw-t-rain-night{background:linear-gradient(160deg,#111a2a 0%,#24344d 55%,#364c6b 100%)}
.fgw-t-storm{background:linear-gradient(160deg,#171c2b 0%,#2d3550 55%,#4a5274 100%)}
.fgw-t-fog{background:linear-gradient(160deg,#6f7c8a 0%,#97a3b0 55%,#c0c9d2 100%)}
.fgw-t-snow{background:linear-gradient(160deg,#7aa0c4 0%,#a9c4dd 55%,#dbe7f2 100%)}
.fgw-t-clear-night{background:linear-gradient(160deg,#08112a 0%,#1a2c5c 55%,#2f4b84 100%)}

/* Efeitos de fundo por clima */
.fgw__fx{position:absolute;inset:0;pointer-events:none;transition:opacity 1s ease;opacity:0}
.fgw__fx::before,.fgw__fx::after{content:"";position:absolute;inset:-20%}
.fgw[data-theme] .fgw__fx{opacity:1}
/* sol: brilho que respira */
.fgw[data-theme="clear"] .fgw__fx::before,.fgw[data-theme="partly"] .fgw__fx::before{
  inset:auto;top:-90px;left:-70px;width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,236,150,.55),rgba(255,236,150,0) 65%);animation:fgw-breathe 6s ease-in-out infinite}
/* nuvens passando */
.fgw[data-theme="partly"] .fgw__fx::after,.fgw[data-theme="cloudy"] .fgw__fx::after,.fgw[data-theme="cloudy-night"] .fgw__fx::after,.fgw[data-theme="fog"] .fgw__fx::after{
  inset:auto;top:30%;left:-60%;width:220%;height:140px;opacity:.18;
  background:radial-gradient(60px 30px at 10% 50%,#fff 98%,transparent),radial-gradient(90px 40px at 35% 40%,#fff 98%,transparent),radial-gradient(70px 30px at 62% 60%,#fff 98%,transparent),radial-gradient(80px 36px at 88% 45%,#fff 98%,transparent);
  filter:blur(8px);animation:fgw-clouds 40s linear infinite}
/* chuva: riscos diagonais */
.fgw[data-theme^="rain"] .fgw__fx::before,.fgw[data-theme="storm"] .fgw__fx::before{
  background:repeating-linear-gradient(105deg,rgba(255,255,255,.0) 0 14px,rgba(255,255,255,.16) 14px 15px,rgba(255,255,255,0) 15px 30px);
  background-size:120px 120px;animation:fgw-rainbg .6s linear infinite}
/* tempestade: relâmpago no fundo */
.fgw[data-theme="storm"] .fgw__fx::after{background:rgba(220,230,255,.9);opacity:0;animation:fgw-flashbg 7s ease-out infinite}
/* noite: estrelas */
.fgw[data-theme="clear-night"] .fgw__fx::before{
  background-image:radial-gradient(1.2px 1.2px at 12% 18%,#fff 99%,transparent),radial-gradient(1px 1px at 30% 8%,#fff 99%,transparent),radial-gradient(1.4px 1.4px at 52% 22%,#fff 99%,transparent),radial-gradient(1px 1px at 70% 12%,#fff 99%,transparent),radial-gradient(1.3px 1.3px at 88% 26%,#fff 99%,transparent),radial-gradient(1px 1px at 22% 40%,#fff 99%,transparent),radial-gradient(1.1px 1.1px at 80% 44%,#fff 99%,transparent),radial-gradient(1px 1px at 60% 6%,#fff 99%,transparent);
  inset:0;animation:fgw-twinkle 4s ease-in-out infinite alternate}
/* neve */
.fgw[data-theme="snow"] .fgw__fx::before{
  background-image:radial-gradient(2px 2px at 20% 20%,#fff 99%,transparent),radial-gradient(2px 2px at 60% 10%,#fff 99%,transparent),radial-gradient(1.6px 1.6px at 80% 40%,#fff 99%,transparent),radial-gradient(2px 2px at 40% 60%,#fff 99%,transparent);
  background-size:140px 140px;animation:fgw-snowbg 8s linear infinite}

@keyframes fgw-breathe{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.12);opacity:1}}
@keyframes fgw-clouds{from{transform:translateX(0)}to{transform:translateX(45%)}}
@keyframes fgw-rainbg{from{background-position:0 0}to{background-position:-30px 120px}}
@keyframes fgw-flashbg{0%,88%,100%{opacity:0}89%{opacity:.35}90%{opacity:0}92%{opacity:.25}95%{opacity:0}}
@keyframes fgw-twinkle{from{opacity:.55}to{opacity:1}}
@keyframes fgw-snowbg{from{background-position:0 0}to{background-position:40px 140px}}

/* ---------- Cabeçalho / escolha de cidade ---------- */
.fgw__head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.fgw__city{position:relative;display:inline-flex;align-items:center;gap:6px;flex:1;min-width:0;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:6px 30px 6px 11px;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .25s,transform .25s;font-weight:700;font-size:14px}
.fgw__city:hover{background:rgba(255,255,255,.28)}
.fgw__city:focus-within{box-shadow:0 0 0 3px rgba(255,255,255,.45)}
.fgw__city--static{padding-right:12px;flex:0 1 auto}
.fgw__select{appearance:none;-webkit-appearance:none;background:transparent;border:0;color:#fff;font:inherit;width:100%;cursor:pointer;outline:0;text-overflow:ellipsis;padding:0}
.fgw__select option{color:#14181f}
.fgw__chev{position:absolute;right:11px;pointer-events:none;transition:transform .25s}
.fgw__city:hover .fgw__chev{transform:translateY(1px)}
.fgw__geo{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.18);color:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .25s,transform .3s}
.fgw__geo:hover{background:rgba(255,255,255,.3);transform:scale(1.06)}
.fgw__geo.is-busy svg{animation:fgw-spin 1.2s linear infinite}
.fgw__geo.is-denied{animation:fgw-shake .4s}
@keyframes fgw-shake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}

/* ---------- Agora ---------- */
.fgw__now{display:flex;align-items:center;gap:6px;margin:2px 0 6px}
.fgw__big{flex:none;width:104px;height:104px;filter:drop-shadow(0 6px 12px rgba(0,0,0,.18))}
.fgw__big .fgw-icon{animation:fgw-float 5s ease-in-out infinite}
.fgw__temp{line-height:1;flex:1;min-width:0}
.fgw__deg{font-size:56px;font-weight:800;letter-spacing:-2px;font-variant-numeric:tabular-nums;text-shadow:0 2px 12px rgba(0,0,0,.15)}
.fgw__temp sup{font-size:18px;font-weight:700;vertical-align:top;position:relative;top:8px;margin-left:2px;opacity:.9}
.fgw__desc{font-size:15px;font-weight:700;margin-top:6px}
.fgw__range{display:flex;gap:10px;font-size:13px;opacity:.9;margin-top:5px;font-weight:600}

/* ---------- Indicadores ---------- */
.fgw__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}
.fgw__stat{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:7px 4px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:1px;transition:transform .3s,background .3s}
.fgw__stat:hover{transform:translateY(-2px);background:rgba(255,255,255,.24)}
.fgw__stat svg{opacity:.9;margin-bottom:2px}
.fgw__stat b{font-size:13px}
.fgw__stat span{font-size:10px;opacity:.85;text-transform:uppercase;letter-spacing:.3px}

/* ---------- Painéis ---------- */
.fgw__panel{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:9px 10px;margin-bottom:9px;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.fgw__label{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;font-weight:800;opacity:.85;margin-bottom:6px}
.fgw__hours{display:flex;gap:2px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  -webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
.fgw__hours::-webkit-scrollbar{display:none}
.fgw__hour{flex:0 0 48px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0;border-radius:10px;transition:background .25s}
.fgw__hour:hover{background:rgba(255,255,255,.14)}
.fgw__hour:first-child{background:rgba(255,255,255,.2)}
.fgw__h{font-size:11px;font-weight:700;opacity:.9}
.fgw__hour b{font-size:14px}
.fgw__pp{font-size:10px;font-weight:700;color:#bfe3ff}
.fgw__pp.is-low{opacity:0}

.fgw__days{list-style:none;margin:0;padding:0}
.fgw__day{display:grid;grid-template-columns:42px 30px 26px 26px 1fr 26px;align-items:center;gap:4px;padding:3px 0;font-size:13px;font-weight:600}
.fgw__day + .fgw__day{border-top:1px solid rgba(255,255,255,.12)}
.fgw__dname{font-weight:700}
.fgw__dpp{font-size:10.5px;color:#bfe3ff;font-weight:700;text-align:center}
.fgw__min{opacity:.75;text-align:right}
.fgw__max{text-align:right}
.fgw__bar{position:relative;height:5px;border-radius:5px;background:rgba(0,0,0,.18);overflow:hidden;margin:0 4px}
.fgw__bar i{position:absolute;top:0;bottom:0;border-radius:5px;background:linear-gradient(90deg,#7dd3fc,#fde047,#fb923c);
  transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:calc(.3s + var(--i,0) * .07s)}
.fgw.is-ready .fgw__bar i{transform:scaleX(1)}

.fgw__foot{font-size:10.5px;opacity:.75;text-align:right;padding:2px 2px 0}
.fgw__foot a{color:#fff;text-decoration:underline}

/* ---------- Entrada / troca de cidade ---------- */
.fgw-in{opacity:0;transform:translateY(10px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s)}
.fgw.is-ready .fgw-in{opacity:1;transform:none}
.fgw__day{opacity:0;transform:translateX(-8px);transition:opacity .45s ease,transform .45s ease;transition-delay:calc(.28s + var(--i,0) * .06s)}
.fgw.is-ready .fgw__day{opacity:1;transform:none}
.fgw.is-switching .fgw__inner > :not(.fgw__head){opacity:0;transform:translateY(-6px);transition:opacity .2s,transform .2s}
.fgw.is-loading .fgw__big .fgw-icon{opacity:.6}

/* ---------- Carregando ---------- */
.fgw:not([data-theme]) .fgw__layer.is-on{background:linear-gradient(160deg,#4f7fb8,#7aa6d6)}
.fgw__skeleton{display:grid;gap:10px}
.fgw__sk{display:block;border-radius:12px;background:linear-gradient(90deg,rgba(255,255,255,.14),rgba(255,255,255,.3),rgba(255,255,255,.14));background-size:200% 100%;animation:fgw-shimmer 1.3s linear infinite}
.fgw__sk--pill{height:32px;width:70%;border-radius:999px}
.fgw__sk--hero{height:104px}
.fgw__sk--row{height:46px}
@keyframes fgw-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
.fgw__error{font-size:14px;padding:30px 6px;text-align:center}
.fgw__retry{margin-top:10px;background:#fff;color:#14181f;border:0;border-radius:999px;padding:6px 14px;font-weight:700;cursor:pointer}

/* ---------- Animações dos desenhos ---------- */
.fgw-icon{overflow:visible;display:block}
.fgw-icon [class*="fgw-a-"]{transform-box:fill-box}
.fgw-a-rays{transform-origin:center;animation:fgw-spin 18s linear infinite}
.fgw-a-glow{transform-origin:center;animation:fgw-pulse 3.2s ease-in-out infinite}
.fgw-a-moon{transform-origin:center;animation:fgw-rock 7s ease-in-out infinite}
.fgw-a-star{transform-origin:center;animation:fgw-star 2.6s ease-in-out infinite}
.fgw-a-drift{animation:fgw-drift 6s ease-in-out infinite}
.fgw-a-drift--slow{animation-duration:9s;animation-direction:alternate-reverse;opacity:.9}
.fgw-a-drop{animation:fgw-drop 1s cubic-bezier(.5,0,.9,.6) infinite}
.fgw-a-flake{transform-origin:center;animation:fgw-flake 2.4s ease-in infinite}
.fgw-a-bolt{animation:fgw-bolt 3.4s ease-out infinite}
.fgw-a-fog{animation:fgw-fog 4s ease-in-out infinite alternate}
.fgw-a-fog--r{animation-direction:alternate-reverse}

@keyframes fgw-spin{to{transform:rotate(360deg)}}
@keyframes fgw-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
@keyframes fgw-rock{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
@keyframes fgw-star{0%,100%{opacity:.25;transform:scale(.6)}50%{opacity:1;transform:scale(1.1)}}
@keyframes fgw-drift{0%,100%{transform:translateX(-2px)}50%{transform:translateX(3px)}}
@keyframes fgw-drop{0%{transform:translateY(-4px);opacity:0}20%{opacity:1}100%{transform:translateY(9px);opacity:0}}
@keyframes fgw-flake{0%{transform:translate(0,-5px) rotate(0);opacity:0}25%{opacity:1}100%{transform:translate(3px,9px) rotate(180deg);opacity:0}}
@keyframes fgw-bolt{0%,62%,100%{opacity:0}64%{opacity:1}68%{opacity:.2}72%{opacity:1}88%{opacity:0}}
@keyframes fgw-fog{from{transform:translateX(-4px)}to{transform:translateX(4px)}}
@keyframes fgw-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

/* Ícones pequenos animam menos (desempenho) */
.fgw__hour .fgw-icon *,.fgw__day .fgw-icon *{animation-duration:0s!important;animation:none!important}
.fgw__hour:hover .fgw-a-rays,.fgw__day:hover .fgw-a-rays{animation:fgw-spin 6s linear infinite!important}

/* Fora da tela: pausa tudo */
.fgw.is-paused *,.fgw.is-paused .fgw__fx::before,.fgw.is-paused .fgw__fx::after{animation-play-state:paused!important}

@media (prefers-reduced-motion:reduce){
  .fgw *,.fgw__fx::before,.fgw__fx::after{animation:none!important;transition:none!important}
  .fgw-in,.fgw__day{opacity:1;transform:none}
  .fgw__bar i{transform:none}
}

/* Compact containers and touch / keyboard usability. */
.fgw{container-type:inline-size}
.fgw__bg::after{content:"";position:absolute;inset:0;background:rgba(4,20,42,.48)}
.fgw__select{font-size:16px;min-height:30px}
.fgw__city{min-height:44px}
.fgw__city>svg{flex-shrink:0}
.fgw__geo{width:44px;height:44px}
.fgw__foot,.fgw__min,.fgw__stat span,.fgw__label{opacity:1}
.fgw__pp,.fgw__dpp{color:#fff}
.fgw__hours{scrollbar-width:thin;scrollbar-color:#fff transparent;overscroll-behavior-x:contain}
.fgw__hours::-webkit-scrollbar{display:block;height:4px}
.fgw__hours::-webkit-scrollbar-thumb{background:#fff;border-radius:4px}
.fgw button:focus-visible,.fgw select:focus-visible,.fgw a:focus-visible,.fgw__hours:focus-visible{outline:2px solid #fff;outline-offset:3px}
.fgw__stat{min-width:0}
.fgw__stat b{overflow-wrap:anywhere}
.fgw__day{grid-template-columns:38px 30px 26px 26px minmax(0,1fr) 26px;gap:3px}
.fgw__error button{min-height:44px}
.fgw__notice{font-size:12px;line-height:1.5;margin:8px 0}
@container(max-width:280px){
  .fgw__inner{padding:12px 10px}
  .fgw__stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fgw__big{width:80px;height:80px}.fgw__big svg{width:80px;height:80px}
  .fgw__deg{font-size:48px}
  .fgw__day{grid-template-columns:32px 26px 24px 24px minmax(0,1fr) 24px;gap:2px;font-size:12px}
  .fgw__panel{padding:8px}
}
