:root {
    --font-size-multiplier: 1;
}
/* Accessibility Menu Styles */
#accessibility-menu-container {
    position: fixed;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    z-index: 10000;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    pointer-events: none;
    font-family: 'Playfair Display', serif;
}

#accessibility-menu-toggle svg
{
    height: 50px;
    width: 50px;
}

@media(max-width: 991px)
{
    #accessibility-menu-container
    {
        position: absolute;
        transform: none;
    }
    .cam-bottom-right #accessibility-menu-toggle
    {
        bottom: 100px !important;
        right: 26px !important;
    }
    #accessibility-menu-toggle svg
    {
        height: 50px;
        width: 50px;
    }
}

#accessibility-menu-toggle {
    position: fixed;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    background-color: #2c3e50;
    color: white;
    border: none;
    border-radius: 50%;
    width: 60px;
    height: 60px;
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    z-index: 10002;
    pointer-events: auto;
}

#accessibility-menu-toggle:hover {
    background-color: #1a252f;
    transform: translateY(-50%) scale(1.1);
}

#accessibility-menu {
    position: fixed;
    top: 50%;
    right: 0;
    transform: translate(0, -50%);
    width: 500px;
    background: white;
    border-radius: 12px;
    box-shadow: 0 5px 25px rgba(0, 0, 0, 0.15);
    overflow: hidden;
    transition: all 0.4s ease;
    z-index: 10002;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    max-height: 80vh;
    overflow-y: auto;
}

#accessibility-menu.cam-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.cam-header {
    background: linear-gradient(135deg, #2c3e50 0%, #4a6580 100%);
    color: white;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cam-header h3 {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 600;
}

#cam-close {
    background: none;
    border: 2px solid white;
    font-weight: 700;
    color: white;
    font-size: 24px;
    cursor: pointer;
    padding: 0;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background 0.2s;
}

#cam-close:hover {
    background: rgba(255, 255, 255, 0.2);
}

.cam-option-group {
    padding: 15px 20px;
    border-bottom: 1px solid #eee;
}

.cam-option-group:last-child {
    border-bottom: none;
}

.cam-option-group h4 {
    margin: 0 0 12px 0;
    font-size: 16px;
    color: #333;
    font-weight: 600;
}

.cam-button-group {
    display: flex;
    gap: 8px;
    margin-bottom: 10px;
}

.cam-btn {
    padding: 8px 12px;
    border: 1px solid #ddd;
    background: #f8f9fa;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
    flex: 1;
}

.cam-btn:hover {
    background: #e9ecef;
    border-color: #ccc;
}

.cam-btn-secondary {
    background: #0080ff;
    color: white;
    border: none;
}

.cam-btn-secondary:hover {
    background: #5a6268;
}

.cam-btn-toggle {
    display: flex;
    align-items: center;
    background: #e9ecef;
    padding: 4px;
    position: relative;
    width: 100px;
    height: 36px;
}

.cam-toggle-switch {
    position: absolute;
    width: 28px;
    height: 28px;
    background: white;
    border-radius: 50%;
    left: 4px;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.cam-btn-toggle[aria-pressed="true"] .cam-toggle-switch {
    left: calc(100% - 32px);
    background: #000;
}

.cam-btn-toggle[aria-pressed="true"] {
    background: #0080ff;
}

.cam-toggle-label {
    flex: 1;
    text-align: center;
    font-size: 12px;
    font-weight: 600;
    z-index: 1;
}

.cam-btn-toggle[aria-pressed="true"] .cam-toggle-label:first-child,
.cam-btn-toggle[aria-pressed="false"] .cam-toggle-label:last-child {
    color: #000;
}

.cam-btn-toggle[aria-pressed="false"] .cam-toggle-label:first-child,
.cam-btn-toggle[aria-pressed="true"] .cam-toggle-label:last-child {
    color: white;
}

.cam-footer {
    padding: 20px;
    text-align: center;
}

/* Overlay for when menu is open */
.cam-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.cam-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* Accessibility Styles */
body.cam-high-contrast {
    background: #000 !important;
    color: #fff !important;
}

body.cam-high-contrast a {
    color: #ffff00 !important;
}

/* Apply readable font everywhere except icons */
body.cam-readable-font *:not(i):not(.fa):not(.icon):not(.material-icons) {
    font-family: Arial, Helvetica, sans-serif !important;
}

/* Reset inside accessibility menu */
body.cam-readable-font #accessibility-menu-container,
body.cam-readable-font #accessibility-menu-container *:not(i):not(.fa):not(.icon):not(.material-icons),
body.cam-readable-font #accessibility-menu,
body.cam-readable-font #accessibility-menu *:not(i):not(.fa):not(.icon):not(.material-icons) {
    font-family: 'Playfair Display', serif !important;
}



body.cam-link-highlight a {
    outline: 2px solid #ffa500 !important;
    text-decoration: underline !important;
}

body.cam-pause-animations * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
}

body.cam-screen-reader-mode .screen-reader-only {
    position: static !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
}

body.cam-increased-letter-spacing * :not(#accessibility-menu-container *):not(#accessibility-menu-container) {
    letter-spacing: 0.12em !important;
}

body.cam-increased-letter-spacing * :not(#accessibility-menu *){
    letter-spacing: 0.12em !important;
}

body.cam-decreased-letter-spacing * :not(#accessibility-menu-container *):not(#accessibility-menu-container) {
    letter-spacing: -0.03em !important;
}

body.cam-decreased-letter-spacing * :not(#accessibility-menu *){
    letter-spacing: -0.03em !important;
}

/* Global increase */
body.cam-increased-line-height * {
    line-height: 2 !important;
}

/* Global decrease */
body.cam-decreased-line-height * {
    line-height: 1.2 !important;
}

/* Reset for accessibility menu */
body.cam-increased-line-height #accessibility-menu-container,
body.cam-increased-line-height #accessibility-menu-container *,
body.cam-increased-line-height #accessibility-menu,
body.cam-increased-line-height #accessibility-menu * {
    line-height: normal !important;
}

body.cam-decreased-line-height #accessibility-menu-container,
body.cam-decreased-line-height #accessibility-menu-container *,
body.cam-decreased-line-height #accessibility-menu,
body.cam-decreased-line-height #accessibility-menu * {
    line-height: normal !important;
}

/* Focus styles for keyboard navigation */
.cam-btn:focus,
#accessibility-menu-toggle:focus,
#cam-close:focus {
    outline: 3px solid #4a90e2;
    outline-offset: 2px;
}

/* Responsive Design */
@media (max-width: 768px) {
    #accessibility-menu {
        width: 90%;
    }
    
    #accessibility-menu-toggle {
        width: 50px;
        height: 50px;
        right: 15px;
    }
}

/* Screen reader only text */
.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* New Accessibility Styles */
body.cam-smart-contrast::before {
    content: '';
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    backdrop-filter: contrast(1.5);
    pointer-events: none;
    z-index: 999;
}

/*body.cam-dyslexia-friendly *:not(i):not(.fa):not(.icon):not(.material-icons) {
    font-family: "OpenDyslexic", Arial, sans-serif !important;
    letter-spacing: 0.05em !important;
    line-height: 1.8 !important;
}*/

/* Apply dyslexia friendly font everywhere except icons */
body.cam-dyslexia-friendly *:not(i):not(.fa):not(.icon):not(.material-icons) {
    font-family: "OpenDyslexic", Arial, sans-serif !important;
}

/* Apply letter-spacing and line-height only outside accessibility menu */
body.cam-dyslexia-friendly *:not(i):not(.fa):not(.icon):not(.material-icons):not(#accessibility-menu-container):not(#accessibility-menu-container *) {
    letter-spacing: 0.05em !important;
    line-height: 1.8 !important;
}

/* Reset font inside accessibility menu */
body.cam-dyslexia-friendly #accessibility-menu-container,
body.cam-dyslexia-friendly #accessibility-menu-container *:not(i):not(.fa):not(.icon):not(.material-icons),
body.cam-dyslexia-friendly #accessibility-menu,
body.cam-dyslexia-friendly #accessibility-menu *:not(i):not(.fa):not(.icon):not(.material-icons) {
    font-family: 'Playfair Display', serif !important;
}

body.cam-text-align-left * :not(#accessibility-menu *):not(#accessibility-menu) {
    text-align: left !important;
}

body.cam-text-align-center * :not(#accessibility-menu *):not(#accessibility-menu) {
    text-align: center !important;
}
body.cam-text-align-right * :not(#accessibility-menu *):not(#accessibility-menu) {
    text-align: right !important;
}

body.cam-text-align-justify * :not(#accessibility-menu *):not(#accessibility-menu) {
    text-align: justify !important;
}

body.cam-saturation-grayscale::before {
  content: "";
  position: fixed;
  inset: 0;
  background: #fff;
  mix-blend-mode: color;
  pointer-events: none;
  z-index: 99999;
}


body.cam-saturation-high .site-content::before {
  content: "";
  position: fixed;      /* cover the whole viewport */
  inset: 0;             /* shorthand for top:0; right:0; bottom:0; left:0 */
  background: #ff0000;  /* strong color overlay boosts saturation */
  mix-blend-mode: saturation;
  pointer-events: none; /* don’t block clicks */
  z-index: 9999;        /* above site content */
}




body.cam-hide-images img,
body.cam-hide-images picture,
body.cam-hide-images video,
body.cam-hide-images iframe[src*="youtube"],
body.cam-hide-images iframe[src*="vimeo"],
body.cam-hide-images [style*="background"],
body.cam-hide-images [style*="background-image"],
body.cam-hide-images [class*="background"],
body.cam-hide-images [class*="bg-"] {
    background-image: none !important;
    visibility: hidden !important;
}

body.cam-hide-images section,
body.cam-hide-images [style*="background"],
body.cam-hide-images [style*="background-image"],
body.cam-hide-images [class*="background"]{
    background-image: none !important;
    visibility: visible !important;
}

/* Exclusion: Reset background and visibility inside #accessibility-menu */
body.cam-hide-images #accessibility-menu .cam-header [style*="background"],
body.cam-hide-images #accessibility-menu .cam-header {
    background: linear-gradient(135deg, #0080ff 0%, #0080ff 100%) !important;
    visibility: visible !important;
}




/*
body.cam-hide-images::before {
    content: "Images are hidden to reduce cognitive load";
    position: fixed;
    bottom: 20px;
    right: 20px;
    background: #ffcc00;
    color: #000;
    padding: 10px;
    border-radius: 5px;
    z-index: 10001;
    font-size: 14px;
}*/

body.cam-big-cursor,
body.cam-big-cursor * {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Ctitle%3Ecursor-arrow%3C/title%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='invisible_box' data-name='invisible box'%3E%3Crect width='48' height='48' fill='none'/%3E%3C/g%3E%3Cg id='icons_Q2' data-name='icons Q2'%3E%3Cpath fill='blue' d='M25.1,46,19.2,30.1,13.6,33a2.3,2.3,0,0,1-2.5-.2A2.5,2.5,0,0,1,10,30.4L13.3,4.5a2.7,2.7,0,0,1,1.8-2.3,2.5,2.5,0,0,1,2.8.6l19.3,17a2.5,2.5,0,0,1,.7,2.5,2.4,2.4,0,0,1-1.8,1.8l-6,1.7L36,41.7ZM21.4,24.5l6,16.3,3.5-1.4L24.8,23.1,32.5,21,17,7.2,14.3,28.1Zm-9.6,4.9h0Zm23.3-9.1ZM15.3,5.7h0Zm2-.7h0Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") 24 24, pointer !important;
}


/*tooltip CSS START*/


/* Tooltip popup */
body.cam-tooltips-enabled [aria-label]::after,
body.cam-tooltips-enabled [alt]::after,
body.cam-tooltips-enabled [data-tooltip]::after,
body.cam-tooltips-enabled [aria-describedby]::after {
    content: attr(aria-label) attr(alt) attr(data-tooltip) attr(aria-describedby);
    position: absolute;
    bottom: 10%; /* show above element */
    left: 50%;
    transform: translateX(-50%);
    background: #000;
    color: #fff;
    padding: 15px 15px;
    border-radius: 4px;
    font-size: 13px;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease-in-out;
    z-index: 999999 !important;
    isolation: isolate; /* forces a new stacking context */
}


/* Show on hover or focus */
body.cam-tooltips-enabled [aria-label]:hover::after,
body.cam-tooltips-enabled [aria-label]:focus::after,
body.cam-tooltips-enabled [alt]:hover::after,
body.cam-tooltips-enabled [alt]:focus::after,
body.cam-tooltips-enabled [data-tooltip]:hover::after,
body.cam-tooltips-enabled [data-tooltip]:focus::after,
body.cam-tooltips-enabled [aria-describedby]:hover::after,
body.cam-tooltips-enabled [aria-describedby]:focus::after,
body.cam-tooltips-enabled [aria-label]:hover::before,
body.cam-tooltips-enabled [aria-label]:focus::before,
body.cam-tooltips-enabled [alt]:hover::before,
body.cam-tooltips-enabled [alt]:focus::before,
body.cam-tooltips-enabled [data-tooltip]:hover::before,
body.cam-tooltips-enabled [data-tooltip]:focus::before,
body.cam-tooltips-enabled [aria-describedby]:hover::before,
body.cam-tooltips-enabled [aria-describedby]:focus::before {
    opacity: 1;
    visibility: visible;
}

/* Exclude tooltip styles from inside #accessibility-menu */
body.cam-tooltips-enabled #accessibility-menu [aria-label]::after,
body.cam-tooltips-enabled #accessibility-menu [alt]::after,
body.cam-tooltips-enabled #accessibility-menu [data-tooltip]::after,
body.cam-tooltips-enabled #accessibility-menu [aria-describedby]::after,
body.cam-tooltips-enabled #accessibility-menu [aria-label]::before,
body.cam-tooltips-enabled #accessibility-menu [alt]::before,
body.cam-tooltips-enabled #accessibility-menu [data-tooltip]::before,
body.cam-tooltips-enabled #accessibility-menu [aria-describedby]::before,
body.cam-tooltips-enabled #accessibility-menu [aria-label]:hover::after,
body.cam-tooltips-enabled #accessibility-menu [aria-label]:focus::after,
body.cam-tooltips-enabled #accessibility-menu [alt]:hover::after,
body.cam-tooltips-enabled #accessibility-menu [alt]:focus::after,
body.cam-tooltips-enabled #accessibility-menu [data-tooltip]:hover::after,
body.cam-tooltips-enabled #accessibility-menu [data-tooltip]:focus::after,
body.cam-tooltips-enabled #accessibility-menu [aria-describedby]:hover::after,
body.cam-tooltips-enabled #accessibility-menu [aria-describedby]:focus::after,
body.cam-tooltips-enabled #accessibility-menu [aria-label]:hover::before,
body.cam-tooltips-enabled #accessibility-menu [aria-label]:focus::before,
body.cam-tooltips-enabled #accessibility-menu [alt]:hover::before,
body.cam-tooltips-enabled #accessibility-menu [alt]:focus::before,
body.cam-tooltips-enabled #accessibility-menu [data-tooltip]:hover::before,
body.cam-tooltips-enabled #accessibility-menu [data-tooltip]:focus::before,
body.cam-tooltips-enabled #accessibility-menu [aria-describedby]:hover::before,
body.cam-tooltips-enabled #accessibility-menu [aria-describedby]:focus::before {
    opacity: 0 !important;
    visibility: hidden !important;
}

/*tooltip CSS END*/

body.cam-page-structure header,
body.cam-page-structure nav,
body.cam-page-structure main,
body.cam-page-structure section,
body.cam-page-structure article,
body.cam-page-structure aside,
body.cam-page-structure footer {
    outline: 2px dashed #4a90e2 !important;
    position: relative;
}

body.cam-page-structure header::before,
body.cam-page-structure nav::before,
body.cam-page-structure main::before,
body.cam-page-structure section::before,
body.cam-page-structure article::before,
body.cam-page-structure aside::before,
body.cam-page-structure footer::before {
    content: attr(id) " (" attr(class) ")";
        position: absolute;
        top: -20px;
        left: 0;
        background: #4a90e2;
        color: white;
        padding: 2px 5px;
        font-size: 10px;
        border-radius: 3px;
        z-index: 10001;
    }

/* Contrast modes - Fixed to prevent menu from disappearing */
body.cam-contrast-high {
    background: #000 !important;
    color: #fff !important;
}

body.cam-contrast-high a, body.cam-contrast-high p, body.cam-contrast-high div{
    color: #ffff00 !important;
}

body.cam-contrast-reverse {
  position: relative;
  color: #000; /* fallback text color */
  background: #fff; /* fallback background */
}

body.cam-contrast-reverse::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  background-color: #fff;
  mix-blend-mode: difference;
  transition: background-color 0.3s ease;
}


/* Ensure accessibility menu is not affected by contrast filters */
#accessibility-menu-container,
#accessibility-menu,
#accessibility-menu-toggle,
.cam-overlay {
    filter: none !important;
}

/* Button styles for new options */
.cam-btn-contrast[aria-pressed="true"],
.cam-btn-align[aria-pressed="true"],
.cam-btn-cursor[aria-pressed="true"] {
    background: #0080ff !important;
    color: white !important;
}

.cam-range-container {
    margin: 10px 0;
}

.cam-range-container input[type="range"] {
    width: 100%;
    margin: 10px 0;
}

.cam-range-labels {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: #666;
}

/* Menu positioning classes */
.cam-middle-right #accessibility-menu-toggle {
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
}

.cam-bottom-right #accessibility-menu-toggle {
    right: 20px;
    bottom: 20px;
    top: auto;
    transform: none;
}

.cam-bottom-left #accessibility-menu-toggle {
    left: 20px;
    bottom: 20px;
    top: auto;
    right: auto;
    transform: none;
}

.cam-top-right #accessibility-menu-toggle {
    right: 20px;
    top: 20px;
    transform: none;
}

.cam-top-left #accessibility-menu-toggle {
    left: 20px;
    top: 20px;
    right: auto;
    transform: none;
}

/* Scrollable options container */
.cam-options-container {
    max-height: 60vh;
    overflow-y: auto;
}

/* Font size adjustments */
/* Apply font scaling to all text elements except the accessibility menu */
body.cam-font-size-adjusted *:not(#accessibility-menu-container *):not(#accessibility-menu-container) {
    font-size: calc(var(--base-font-size, 1em) * var(--font-size-multiplier)) !important;
}

/* Set base font sizes for elements that use REM units */
body.cam-font-size-adjusted h1:not(#accessibility-menu-container h1) {
    --base-font-size: 2.2rem;
}

body.cam-font-size-adjusted h2:not(#accessibility-menu-container h2) {
    --base-font-size: 1.8rem;
}

body.cam-font-size-adjusted h3:not(#accessibility-menu-container h3) {
    --base-font-size: 1.5rem;
}

body.cam-font-size-adjusted h4:not(#accessibility-menu-container h4) {
    --base-font-size: 1.3rem;
}

body.cam-font-size-adjusted h5:not(#accessibility-menu-container h5) {
    --base-font-size: 1.1rem;
}

body.cam-font-size-adjusted h6:not(#accessibility-menu-container h6) {
    --base-font-size: 1rem;
}

/* For elements that don't have explicit font sizes */
body.cam-font-size-adjusted :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(#accessibility-menu-container *):not(#accessibility-menu-container) {
    --base-font-size: 1rem;
}

/* Ensure accessibility menu is not affected */
/*#accessibility-menu-container,
#accessibility-menu-container * {
    font-size: inherit !important;
    --font-size-multiplier: 1 !important;
}*/

/* Ensure icons are not affected by font changes */
.cam-icon {
    font-family: inherit !important;
}