/* ============ Accessibility widget ============ */
.a11y-btn{
  position:fixed;right:18px;bottom:18px;z-index:60;width:52px;height:52px;border-radius:50%;
  background:var(--bg-band);color:var(--on-band);border:2px solid var(--accent);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:0 14px 30px -10px rgba(0,0,0,.4);transition:transform .18s ease;
}
.a11y-btn:hover{transform:translateY(-2px);}
.a11y-btn svg{width:26px;height:26px;}
@media (max-width:560px){ .a11y-btn{width:46px;height:46px;right:14px;bottom:14px;} .a11y-btn svg{width:22px;height:22px;} }

.a11y-panel{
  position:fixed;right:18px;bottom:82px;z-index:60;width:300px;max-width:calc(100vw - 36px);
  background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:16px;
  box-shadow:0 26px 48px -18px rgba(0,0,0,.35);padding:16px;display:none;max-height:70vh;overflow-y:auto;
}
.a11y-panel.is-open{display:block;}
.a11y-panel h2{font-size:16px;margin:0 0 12px;color:var(--heading);}
.a11y-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px;font-weight:700;}
.a11y-row:last-of-type{border-bottom:none;}
.a11y-row button{
  background:var(--bg-alt);border:1px solid var(--line);border-radius:8px;padding:6px 10px;
  font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;color:var(--text);
}
.a11y-row button.is-active{background:var(--accent);color:#fff;border-color:transparent;}
.a11y-reset{
  width:100%;margin-top:12px;padding:10px;border-radius:9px;border:none;background:var(--cta);
  color:var(--cta-ink);font-family:inherit;font-weight:800;font-size:13.5px;cursor:pointer;
}
.a11y-statement-link{display:block;text-align:center;margin-top:10px;font-size:12.5px;color:var(--accent);text-decoration:underline;}

/* Accessibility state classes applied to <html> */
html.a11y-font-lg{ font-size:112%; }
html.a11y-font-xl{ font-size:126%; }
html.a11y-underline-links a{ text-decoration:underline !important; }
html.a11y-grayscale{ filter:grayscale(1); }
html.a11y-contrast body{ background:#000 !important; color:#fff !important; }
html.a11y-contrast :is(section,header,footer,.card,.service-card,.review-card,.area-card,.factor-card,.faq-item,.navbar,.topbar){ background:#000 !important; color:#fff !important; border-color:#fff !important; }
html.a11y-contrast a{ color:#8fcb9c !important; }
html.a11y-contrast .btn-cta,html.a11y-contrast .btn-whatsapp{ background:#fff !important; color:#000 !important; }
html.a11y-stop-motion *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }

/* Better keyboard focus everywhere */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, [tabindex]:focus-visible{
  outline:3px solid var(--cta); outline-offset:2px; border-radius:4px;
}

/* ============ Cookie banner ============ */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--bg-band-2);color:var(--on-band-soft);
  padding:16px 20px;box-shadow:0 -10px 30px -10px rgba(0,0,0,.4);display:none;
}
.cookie-banner.is-open{display:block;}
.cookie-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.cookie-inner p{margin:0;font-size:13.5px;flex:1;min-width:240px;}
.cookie-inner a{color:var(--accent);font-weight:700;text-decoration:underline;}
.cookie-actions{display:flex;gap:10px;flex:none;}
.cookie-actions button{
  padding:10px 18px;border-radius:100px;border:none;font-family:inherit;font-weight:800;font-size:13.5px;cursor:pointer;
}
.cookie-accept{background:var(--cta);color:var(--cta-ink);}
.cookie-decline{background:transparent;color:var(--on-band);border:1.5px solid rgba(255,255,255,.3) !important;}
