/* accessibility widget - site theme + accessible behaviour (loaded after accessibility-extra.css) */
:root{
  --acs-main:#0b3358;
  --acs-main-dark:#07223b;
  --acs-accent:#38ac1b;
  --acs-focus:#07223b;
  --acs-text:#1f1f1f;
  --acs-soft:#f4f5f6;
}

/* opener: round green button, fixed so it is reachable from anywhere on the page */
.edit_icon{position:fixed; top:150px; right:12px; width:auto; padding:0; float:none; z-index:9990;}
.edit_icon .acs_open{display:flex; align-items:center; justify-content:center; width:54px; height:54px; padding:0; margin:0;
  border-radius:50%; border:3px solid #fff; background:var(--acs-main); box-shadow:0 3px 10px rgba(0,0,0,.28);
  cursor:pointer; transition:transform .15s ease, background-color .15s ease;}
.edit_icon .acs_open img{width:30px; height:31px; display:block;}
.edit_icon .acs_open:hover{background:var(--acs-main-dark); transform:scale(1.06);}
.edit_icon .acs_open[aria-expanded="true"]{background:var(--acs-main-dark);}

/* panel */
.edit_menu{position:fixed; top:0; right:0; width:auto; overflow:visible; z-index:9995; text-align:right; float:none;}
.visible_menu{position:fixed; top:100px; right:76px; left:auto; width:380px; max-width:calc(100vw - 24px); margin:0; float:none;
  max-height:calc(100vh - 120px); overflow-y:auto; scrollbar-width:none; -ms-overflow-style:none; border-radius:14px; box-shadow:0 10px 34px rgba(0,0,0,.3); background:#fff;}
.edit_menu .close_icon{display:none !important;}
.edit_menu .edit_menu_details{width:100%; float:none; border:0; box-shadow:none; border-radius:14px; overflow:hidden; font-size:15px; background:#fff; color:var(--acs-text);}
.edit_menu .edit_menu_details .acs_head{display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:var(--acs-main); color:#fff; padding:12px 16px; border-bottom:4px solid var(--acs-accent);}
.edit_menu .edit_menu_details h2{background:none; border:0; margin:0; padding:0; color:#fff; font-size:20px; font-weight:700; text-align:right; font-family:inherit;}
.edit_menu .acs_close{width:40px; height:40px; min-width:40px; border-radius:50%; border:2px solid rgba(255,255,255,.85); background:transparent;
  color:#fff; font-size:26px; line-height:1; cursor:pointer; padding:0; display:flex; align-items:center; justify-content:center;}
.edit_menu .acs_close:hover{background:rgba(255,255,255,.18);}
.edit_menu .acs_hint{margin:0; padding:10px 16px 0; font-size:14px; color:#444; text-align:right;}

/* option tiles: 3-column grid, large touch targets */
.edit_menu .edit_menu_details .main_link{float:none; padding:10px 12px 12px;}
.edit_menu .edit_menu_details ul{float:none; width:auto; margin:0; padding:0;}
.edit_menu .edit_menu_details .main_link > ul{display:grid; gap:8px;}
.edit_menu .edit_menu_details ul li{float:none; width:auto; border:0; list-style:none; margin:0; padding:0;}
.edit_menu .edit_menu_details .main_link > ul > li > ul{display:grid; grid-template-columns:repeat(3,1fr); gap:8px;}
.edit_menu .edit_menu_details ul li ul li{width:auto; float:none;}
.edit_menu .edit_menu_details ul li ul li a{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; float:none; width:auto;
  min-height:68px; padding:8px 4px; border-radius:10px; border:2px solid #dfe5d8; background:var(--acs-soft); color:var(--acs-text);
  text-decoration:none; text-align:center; font-size:14px; line-height:1.25; transition:background-color .15s ease, border-color .15s ease, color .15s ease;}
.edit_menu .edit_menu_details ul li ul li img{width:30px; height:auto; margin:0; padding:0; border:0;}
.edit_menu .edit_menu_details ul li ul li a:hover{background:#e7eedf; border-color:var(--acs-main); color:var(--acs-text);}
.edit_menu .edit_menu_details ul li ul li:hover img{filter:none; -webkit-filter:none;}
.edit_menu .edit_menu_details ul li ul li a.active,
.edit_menu .edit_menu_details ul li ul li a[aria-pressed="true"]{background:var(--acs-main); border-color:var(--acs-main-dark); color:#fff;}
.edit_menu .edit_menu_details ul li ul li a.active img,
.edit_menu .edit_menu_details ul li ul li a[aria-pressed="true"] img{filter:brightness(0) invert(1); -webkit-filter:brightness(0) invert(1);}

/* footer links */
.edit_menu .edit_menu_details .link_holder{display:flex; justify-content:space-between; gap:10px; float:none; width:auto; padding:12px 16px;
  background:#f3f3f3; border-top:1px solid #dcdcdc; font-size:15px;}
.edit_menu .edit_menu_details .link_holder a{color:var(--acs-main-dark); font-weight:700; text-decoration:underline; padding:6px 2px;}
.edit_menu .edit_menu_details .link_holder a:hover{color:var(--acs-focus);}
.edit_menu .text_holder{display:none;}

/* visible keyboard focus everywhere in the widget */
.acs_widget a:focus-visible, .acs_widget button:focus-visible, .edit_icon .acs_open:focus-visible{
  outline:3px solid var(--acs-focus) !important; outline-offset:2px; box-shadow:0 0 0 6px var(--acs-accent) !important;}

/* status text for screen readers only */
.acs_live{position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

/* the widget keeps readable colours in the dark / light contrast modes */
#acs_body.acs--body-dark .acs_widget .acs_head, #acs_body.acs--body-dark .edit_icon .acs_open{background:#000 !important; border:2px solid gold !important;}
#acs_body.acs--body-dark .acs_widget ul li ul li a{border:2px solid #fff !important;}
#acs_body.acs--body-dark .acs_widget ul li ul li img{filter:invert(1) !important; -webkit-filter:invert(1) !important;}
#acs_body.acs--body-dark .edit_icon img, #acs_body.acs--body-dark .acs_widget ul li ul li a.active img{filter:none !important; -webkit-filter:none !important;}
#acs_body.acs--body-dark .acs_widget ul li ul li a.active, #acs_body.acs--body-dark .acs_widget ul li ul li a.active span{background:gold !important; color:#000 !important; border-color:gold !important;}
#acs_body.acs--body-light .edit_icon .acs_open{background:#fff !important; border:2px solid #000 !important;}
#acs_body.acs--body-light .edit_icon .acs_open img{filter:brightness(0) !important;}

@media (max-width:600px){
  .edit_icon{top:auto; bottom:90px; right:10px;}
  .edit_icon .acs_open{width:50px; height:50px;}
  .visible_menu{top:auto; bottom:12px; right:12px; left:12px; width:auto; max-width:none; max-height:calc(100vh - 24px);}
  .edit_menu .edit_menu_details ul li ul li a{min-height:66px; font-size:13px;}
}
@media (prefers-reduced-motion:reduce){
  .edit_icon .acs_open, .edit_menu .edit_menu_details ul li ul li a{transition:none;}
}

/* tiles stay clean when "links underline" is on */
#acs_body .acs_widget ul li ul li a{text-decoration:none !important;}
#acs_body.acs--body-dark .acs_widget ul li ul li img{background:transparent !important;}
.visible_menu::-webkit-scrollbar{display:none; width:0; height:0;}
/* site list styles (clearfix / bullets pseudo elements) must not become grid cells */
.acs_widget ul::before, .acs_widget ul::after, .acs_widget li::before, .acs_widget li::after{content:none !important; display:none !important;}
/* keep the widget self-contained against site-wide styles and scripts */
.acs_widget, .acs_widget *, .edit_icon, .edit_icon *{box-sizing:border-box;}
.acs_widget ul > :not(li){display:none !important;}
.visible_menu{direction:rtl;}
.acs_widget ul li ul li > a:not([data-action]){display:none !important;}
.acs_widget .main_link, .acs_widget .main_link ul, .acs_widget .main_link li, .acs_widget .acs_hint, .acs_widget .link_holder{width:auto !important; max-width:none !important; float:none !important; margin-left:0; margin-right:0;}
.acs_widget .main_link, .acs_widget .acs_hint{display:block !important;}
