/* ==========================================================================
   Foxall & Young — GDPR/PECR cookie consent (custom, lightweight)
   Loads site-wide. Theme-matched (accent #ffb600). WCAG 2.1: focus states,
   contrast, keyboard/SR support. Cache-safe: HTML always rendered, JS toggles.
   ========================================================================== */
:root{
  --cc-accent:#ffb600; --cc-accent-d:#e0a000; --cc-ink:#1a1d1f; --cc-muted:#5b6169;
  --cc-line:rgba(20,22,24,.12); --cc-radius:14px;
  --cc-shadow:0 -6px 40px -12px rgba(18,22,26,.28);
}
.fy-cc[hidden]{display:none;}
.fy-cc *{box-sizing:border-box;}

/* ---- Banner (non-modal, bottom bar) ---- */
.fy-cc-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:99990;
  background:#fff;border-top:3px solid var(--cc-accent);box-shadow:var(--cc-shadow);
  padding:20px clamp(16px,4vw,40px);
  transform:translateY(110%);transition:transform .45s cubic-bezier(.22,.61,.36,1);
  font-family:'Montserrat','Helvetica Neue',Helvetica,Arial,sans-serif;
}
.fy-cc.is-open .fy-cc-banner{transform:none;}
.fy-cc-banner-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:26px;flex-wrap:wrap;}
.fy-cc-text{flex:1 1 420px;min-width:280px;}
.fy-cc-h{font:700 17px/1.3 'Montserrat',sans-serif;color:var(--cc-ink);margin:0 0 6px;}
.fy-cc-text p{font-size:14px;line-height:1.6;color:var(--cc-muted);margin:0;}
.fy-cc-text a{color:var(--cc-accent-d);text-decoration:underline;text-underline-offset:2px;}
.fy-cc-actions{display:flex;gap:10px;flex-wrap:wrap;flex:0 0 auto;}

/* ---- Buttons — equal prominence, no dark patterns ---- */
.fy-cc-btn{
  font:700 13px/1 'Montserrat',sans-serif;letter-spacing:.03em;text-transform:uppercase;
  padding:14px 22px;border-radius:9px;cursor:pointer;border:2px solid transparent;
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease,border-color .25s ease;
  white-space:nowrap;
}
.fy-cc-btn:hover{transform:translateY(-2px);}
.fy-cc-accept{background:var(--cc-accent);border-color:var(--cc-accent);color:#1a1d1f;}
.fy-cc-accept:hover{background:var(--cc-accent-d);border-color:var(--cc-accent-d);}
.fy-cc-reject{background:var(--cc-ink);border-color:var(--cc-ink);color:#fff;}
.fy-cc-reject:hover{background:#000;border-color:#000;}
.fy-cc-manage,.fy-cc-save{background:#fff;border-color:var(--cc-line);color:var(--cc-ink);}
.fy-cc-manage:hover,.fy-cc-save:hover{border-color:var(--cc-accent);color:var(--cc-accent-d);}

/* ---- Preferences modal ---- */
.fy-cc-modal[hidden]{display:none;}
.fy-cc-modal{position:fixed;inset:0;z-index:99995;display:flex;align-items:center;justify-content:center;padding:20px;}
.fy-cc-modal-overlay{position:absolute;inset:0;background:rgba(12,13,15,.6);animation:ccFade .3s ease;}
.fy-cc-modal-box{position:relative;background:#fff;border-radius:16px;max-width:560px;width:100%;max-height:88vh;
  overflow:auto;box-shadow:0 40px 90px -30px rgba(0,0,0,.5);font-family:'Montserrat','Helvetica Neue',Helvetica,Arial,sans-serif;
  animation:ccPop .35s cubic-bezier(.22,.61,.36,1);}
@keyframes ccFade{from{opacity:0}to{opacity:1}}
@keyframes ccPop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.fy-cc-modal-head{display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border-bottom:1px solid var(--cc-line);}
.fy-cc-modal-head h2{font:700 20px/1.2 'Montserrat',sans-serif;color:var(--cc-ink);margin:0;}
.fy-cc-x{background:none;border:0;font-size:20px;line-height:1;color:var(--cc-muted);cursor:pointer;padding:6px;border-radius:6px;}
.fy-cc-x:hover{color:var(--cc-ink);}
.fy-cc-modal-body{padding:22px 26px;}
.fy-cc-modal-body>p{font-size:14px;color:var(--cc-muted);line-height:1.6;margin:0 0 20px;}
.fy-cc-modal-body a{color:var(--cc-accent-d);text-decoration:underline;}
.fy-cc-cat{border:1px solid var(--cc-line);border-radius:12px;padding:16px 18px;margin:0 0 12px;}
.fy-cc-cat-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:6px;}
.fy-cc-cat-head h3{font:700 15px/1.3 'Montserrat',sans-serif;color:var(--cc-ink);margin:0;}
.fy-cc-cat p{font-size:13px;line-height:1.6;color:var(--cc-muted);margin:0;}
.fy-cc-always{font:600 11px/1 'Montserrat',sans-serif;letter-spacing:.05em;text-transform:uppercase;
  background:rgba(28,160,90,.12);color:#1a8a4e;padding:6px 11px;border-radius:30px;white-space:nowrap;}
.fy-cc-modal-foot{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;padding:18px 26px;border-top:1px solid var(--cc-line);}

/* Toggle switch */
.fy-cc-switch{position:relative;display:inline-block;width:46px;height:26px;flex:0 0 auto;}
.fy-cc-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;}
.fy-cc-slider{position:absolute;inset:0;background:#cfd3d8;border-radius:26px;transition:background .3s ease;pointer-events:none;}
.fy-cc-slider:before{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;background:#fff;border-radius:50%;
  transition:transform .3s cubic-bezier(.22,.61,.36,1);box-shadow:0 1px 3px rgba(0,0,0,.3);}
.fy-cc-switch input:checked + .fy-cc-slider{background:var(--cc-accent);}
.fy-cc-switch input:checked + .fy-cc-slider:before{transform:translateX(20px);}
.fy-cc-switch input:focus-visible + .fy-cc-slider{outline:2px solid var(--cc-accent-d);outline-offset:2px;}

/* ---- Accessibility: visible focus everywhere ---- */
.fy-cc-btn:focus-visible,.fy-cc-x:focus-visible,.fy-cc a:focus-visible{
  outline:3px solid var(--cc-accent-d);outline-offset:2px;
}

/* ---- Responsive ---- */
@media(max-width:860px){
  .fy-cc-banner-inner{flex-direction:column;align-items:stretch;gap:16px;}
  .fy-cc-actions{justify-content:stretch;}
  .fy-cc-actions .fy-cc-btn{flex:1 1 auto;text-align:center;}
}
@media(max-width:480px){
  .fy-cc-actions{flex-direction:column;}
  .fy-cc-modal-foot{justify-content:stretch;}
  .fy-cc-modal-foot .fy-cc-btn{flex:1 1 auto;text-align:center;}
}

/* ---- Reduced motion ---- */
@media (prefers-reduced-motion: reduce){
  .fy-cc-banner,.fy-cc-btn,.fy-cc-slider:before,.fy-cc-modal-box,.fy-cc-modal-overlay{transition:none !important;animation:none !important;}
}

/* ---- Reopen link cursor (footer/policy) ---- */
.fy-cookie-settings-link,.fy-cookie-settings,[data-cc="show-preferences"]{cursor:pointer;}
