/* ==========================================================================
   NEST — cookie banner, accessibility toolbar, floating WhatsApp
   ========================================================================== */

/* ── cookie banner ── */
.cookies {
  position: fixed; z-index: 9000;
  inset-inline: clamp(.8rem, 2vw, 1.5rem); inset-block-end: clamp(.8rem, 2vw, 1.5rem);
  max-width: 760px; margin-inline: auto;
  display: flex; align-items: center; gap: 1rem 1.6rem; flex-wrap: wrap;
  padding: 1.1rem 1.4rem;
  border-radius: 14px;
  background: rgba(20, 23, 25, .97);
  color: var(--silver-200, #d7dbe0);
  box-shadow: 0 20px 60px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.08);
  font-size: .92rem; line-height: 1.6;
}
.cookies[hidden] { display: none; }
.cookies__text { flex: 1 1 300px; margin: 0; }
.cookies__text a { color: var(--blue-300, #4a85c8); text-decoration: underline; text-underline-offset: 2px; margin-inline-start: .3rem; }
.cookies__btns { display: flex; gap: .6rem; flex-wrap: wrap; }
.cookies .btn { padding: .65rem 1.2rem; font-size: .9rem; }

/* ── accessibility toolbar ── */
.a11y {
  position: fixed; z-index: 8900;
  inset-inline-start: clamp(.7rem, 1.5vw, 1.2rem);
  inset-block-end: clamp(.7rem, 1.5vw, 1.2rem);
  transition: inset-block-end .3s;
}
html.has-cookies .a11y { inset-block-end: 7.5rem; }
@media (max-width: 640px) { html.has-cookies .a11y { inset-block-end: 12.5rem; } }
.a11y__toggle {
  width: 46px; height: 46px; border-radius: 50%;
  display: grid; place-items: center;
  border: 0; cursor: pointer;
  color: #fff; background: #1f5fae;
  box-shadow: 0 6px 18px rgba(0,0,0,.28);
}
.a11y__toggle svg { width: 26px; height: 26px; }
.a11y__toggle:focus-visible { outline: 3px solid #ffbf00; outline-offset: 3px; }
.a11y__panel {
  position: absolute; inset-block-end: 56px; inset-inline-start: 0;
  width: min(320px, calc(100vw - 1.6rem));
  padding: 1rem;
  border-radius: 14px;
  background: #fff; color: #16181a;
  box-shadow: 0 20px 60px rgba(0,0,0,.3);
  font-family: Arial, "Heebo", sans-serif;
}
.a11y__panel[hidden] { display: none; }
.a11y__head { display: flex; justify-content: space-between; align-items: center; margin-block-end: .7rem; font-size: 1.05rem; }
.a11y__close { border: 0; background: none; font-size: 1.6rem; line-height: 1; cursor: pointer; color: #16181a; padding: 0 .3rem; }
.a11y__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; }
.a11y__opt, .a11y__reset {
  padding: .7rem .5rem; border-radius: 8px;
  border: 1px solid #d0d4d8; background: #f5f6f7; color: #16181a;
  font: inherit; font-size: .88rem; cursor: pointer; text-align: center;
}
.a11y__opt[aria-pressed="true"] { background: #1f5fae; border-color: #1f5fae; color: #fff; }
.a11y__opt:focus-visible, .a11y__reset:focus-visible, .a11y__close:focus-visible, .a11y__foot a:focus-visible { outline: 3px solid #ffbf00; outline-offset: 2px; }
.a11y__foot { display: flex; justify-content: space-between; align-items: center; gap: .6rem; margin-block-start: .8rem; font-size: .88rem; }
.a11y__foot a { color: #1f5fae; text-decoration: underline; }

/* what the options do */
html.a11y-fs-1 { font-size: 112%; }
html.a11y-fs-2 { font-size: 125%; }
html.a11y-fs-3 { font-size: 140%; }
html.a11y-gray { filter: grayscale(1); }
html.a11y-links a { text-decoration: underline !important; outline: 2px solid #ffbf00 !important; outline-offset: 2px; }
html.a11y-font body, html.a11y-font body * { font-family: Arial, "Heebo", sans-serif !important; letter-spacing: normal !important; }
html.a11y-still *, html.a11y-still *::before, html.a11y-still *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html.a11y-still [data-reveal], html.a11y-still .hero__w > span, html.a11y-still .hero__reveal > * { opacity: 1 !important; transform: none !important; }
html.a11y-focus :focus { outline: 3px solid #ffbf00 !important; outline-offset: 3px !important; }
html.a11y-contrast body, html.a11y-contrast body *:not(img):not(video):not(svg):not(path):not(circle):not(rect) {
  background-color: #000 !important; background-image: none !important;
  color: #fff !important; border-color: #fff !important;
  text-shadow: none !important; -webkit-text-fill-color: currentColor !important;
}
html.a11y-contrast body a, html.a11y-contrast body a * { color: #ffeb3b !important; }
html.a11y-contrast .hero__scrim, html.a11y-contrast .prop__scrim, html.a11y-contrast .panel__scrim { opacity: 0 !important; }
/* the toolbar itself stays readable whatever is switched on */
html.a11y-contrast .a11y__panel, html.a11y-contrast .a11y__panel * { background-color: #fff !important; color: #000 !important; border-color: #000 !important; }
html.a11y-contrast .a11y__opt[aria-pressed="true"] { background-color: #000 !important; color: #ffeb3b !important; }

/* ── floating WhatsApp: phones only, where the side rail is hidden ── */
.wa-float {
  position: fixed; z-index: 8800;
  inset-inline-end: clamp(.7rem, 1.5vw, 1.2rem);
  inset-block-end: clamp(.7rem, 1.5vw, 1.2rem);
  width: 54px; height: 54px; border-radius: 50%;
  display: none; place-items: center;
  color: #fff; background: #25d366;
  box-shadow: 0 8px 22px rgba(0,0,0,.3);
}
.wa-float svg { width: 28px; height: 28px; }
@media (max-width: 640px) { .wa-float { display: grid; } }
html.has-cookies .wa-float { inset-block-end: 12.5rem; }

/* ── legal pages ── */
.legal__list { list-style: none; padding: 0; margin: 1rem 0; }
.legal__list li { margin-block-end: .35rem; }

/* on a wide screen the banner keeps to the far corner, clear of the hero copy */
@media (min-width: 900px) {
  .cookies { inset-inline-start: auto; inset-inline-end: 4.5rem; margin-inline: 0; max-width: 540px; }
  html.has-cookies .a11y { inset-block-end: clamp(.7rem, 1.5vw, 1.2rem); }
}
