/* The cookie banner and settings panel (partials/consent.php, js/consent.js). The banner is a bar along the bottom of
   the screen, non-modal: the page stays usable behind it. Accept and Reject have equal weight. While it shows, the Talk to us launcher
   sits above it (--a1cb-h), so the launcher never covers the banner's buttons. */
.a1cb { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; background: var(--ink); color: #f2efe9;
  border-top: 3px solid var(--orange); box-shadow: 0 -8px 24px rgba(0,0,0,.18); }
.a1cb[hidden] { display: none; }
.a1cb-in { max-width: var(--container-max, 1200px); margin: 0 auto; padding: 18px var(--section-pad-x, 40px);
  display: flex; align-items: center; justify-content: space-between; gap: 16px 32px; flex-wrap: wrap; }
.a1cb-tx { margin: 0; font-size: 15px; line-height: 1.55; max-width: 62ch; }
.a1cb-tx a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.a1cb-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }   /* Accept all and Accept essentials: the same size (acceptance C-09) */
.a1cb-b { min-height: 44px; min-width: 190px; padding: 10px 20px; font: 700 13px/1 var(--font-sans, 'Archivo', sans-serif);
  letter-spacing: .1em; text-transform: uppercase; background: transparent; color: #f2efe9; border: 1px solid #f2efe9; cursor: pointer; }
.a1cb-b:hover, .a1cb-b:focus-visible { background: #f2efe9; color: var(--ink); }
.a1cb-b:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }
body.a1cb-on .a1tw .fab { bottom: calc(var(--a1cb-h, 0px) + 16px); }
/* The settings panel, from the footer's Cookie settings: the banner's colors and buttons, over a dimmed page. */
.a1cp { position: fixed; inset: 0; z-index: 80; background: rgba(0,0,0,.55); display: flex; align-items: center; justify-content: center; padding: 16px; }
.a1cp[hidden] { display: none; }
.a1cp-box { width: 100%; max-width: 560px; max-height: calc(100vh - 32px); overflow-y: auto; background: var(--ink); color: #f2efe9;
  border-top: 3px solid var(--orange); padding: 28px; box-shadow: 0 16px 48px rgba(0,0,0,.35); }
.a1cp-box:focus { outline: none; }
.a1cp-box:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }
.a1cp-h { margin: 0 0 10px; font: 800 22px/1.2 var(--font-sans, 'Archivo', sans-serif); color: #fff; }
.a1cp-intro, .a1cp-cat p { margin: 0; font-size: 15px; line-height: 1.55; }
.a1cp-cat { border-top: 1px solid rgba(242,239,233,.2); margin-top: 18px; padding-top: 16px; }
.a1cp-cat p { margin-top: 6px; color: #c9c4bb; }
.a1cp-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.a1cp-ch { margin: 0; font: 700 16px/1.3 var(--font-sans, 'Archivo', sans-serif); color: #fff; }
.a1cp-on { font-size: 13.5px; font-style: italic; color: #c9c4bb; }
.a1cp-sw { position: relative; flex: none; width: 48px; height: 28px; border-radius: 14px; border: 1px solid #f2efe9; background: transparent; cursor: pointer; padding: 0; }
.a1cp-knob { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #f2efe9; transition: transform .15s; }
.a1cp-sw[aria-checked="true"] { background: var(--orange-deep, var(--orange)); border-color: var(--orange-deep, var(--orange)); }
.a1cp-sw[aria-checked="true"] .a1cp-knob { transform: translateX(20px); }
.a1cp-sw:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }
.a1cp .a1cb-btns { margin-top: 24px; }
body.a1cp-open { overflow: hidden; }
.footer-cookie { background: none; border: 0; padding: 0; color: inherit; font: inherit; cursor: pointer; }
.footer-cookie:hover, .footer-cookie:focus-visible { color: #fff; text-decoration: underline; }
@media (max-width: 640px) {
  .a1cb-in { padding: 16px; }
  .a1cb-btns { width: 100%; }
  .a1cb-b { min-width: 0; }
  .a1cp-box { padding: 22px 18px; }
  .a1cp .a1cb-btns { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .a1cp-knob { transition: none; } }
