/* ADA WCAG 2.1 BWAT Accessibility - v1.5.5 */

/* CSS Custom Properties for mouse position */
:root {
    --bwat-mouse-x: -100px;
    --bwat-mouse-y: -100px;
}

/* ==================== TOOLBAR BUTTON ==================== */
.bwat-toggle {
    position: fixed;
    left: 20px;
    bottom: 20px;
    width: 60px;
    height: 60px;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    z-index: 2147483647;
    background-size: cover;
    background-position: center;
    background-color: #fff;
    box-shadow: 0 2px 10px rgba(0,0,0,0.3);
    transition: transform 0.15s;
}
.bwat-toggle:hover { transform: scale(1.1); }
.bwat-toggle:focus { outline: 3px solid #ffd700; outline-offset: 2px; }

/* ==================== TOOLBAR PANEL ==================== */
.bwat-panel {
    position: fixed;
    left: 20px;
    bottom: 90px;
    width: 320px;
    max-height: 70vh;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 5px 30px rgba(0,0,0,0.3);
    z-index: 2147483646;
    display: none;
    overflow: hidden;
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 14px;
    line-height: 1.4;
    letter-spacing: normal;
    color: #333;
}
.bwat-panel.open { display: block; }

.bwat-header {
    background: #2557a7;
    color: #fff;
    padding: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.bwat-close {
    background: none;
    border: 2px solid #fff;
    color: #fff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 18px;
    line-height: 24px;
}
.bwat-close:hover { background: #fff; color: #2557a7; }

.bwat-body {
    padding: 15px;
    overflow-y: auto;
    max-height: calc(70vh - 60px);
}

.bwat-section {
    margin-bottom: 15px;
    padding-bottom: 15px;
    border-bottom: 1px solid #eee;
}
.bwat-section:last-child { border-bottom: none; }

.bwat-label {
    font-weight: 600;
    margin-bottom: 8px;
    font-size: 13px;
}

.bwat-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}
.bwat-buttons button {
    padding: 6px 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #f5f5f5;
    cursor: pointer;
    font-size: 12px;
    transition: all 0.1s;
}
.bwat-buttons button:hover { background: #e5e5e5; }
.bwat-buttons button.active { background: #2557a7; color: #fff; border-color: #2557a7; }

.bwat-check {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0;
    cursor: pointer;
    font-size: 13px;
}
.bwat-check input { width: 18px; height: 18px; cursor: pointer; }

.bwat-reset {
    width: 100%;
    padding: 12px;
    background: #dc3545;
    color: #fff;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 14px;
    margin-top: 10px;
}
.bwat-reset:hover { background: #c82333; }

/* ==================== SKIP LINK ==================== */
.bwat-skip {
    position: absolute;
    top: -50px;
    left: 50%;
    transform: translateX(-50%);
    background: #2557a7;
    color: #fff;
    padding: 10px 20px;
    text-decoration: none;
    z-index: 100000;
    border-radius: 0 0 5px 5px;
}
.bwat-skip:focus { top: 0; }


/* ============================================================
   TEXT SIZE - TARGETED FOR TRANSAERO THEME
   Using specific pixel values to avoid percentage compounding
   ============================================================ */

/* ----- LARGE (125%) ----- */
/* Base body text: 13px -> 16px */
html.bwat-text-large body {
    font-size: 16px !important;
}

/* Headings */
html.bwat-text-large h1,
html.bwat-text-large .h1,
html.bwat-text-large .rtd h1 {
    font-size: 38px !important;
}

html.bwat-text-large h2,
html.bwat-text-large .h2,
html.bwat-text-large .rtd h2,
html.bwat-text-large .title-group h2 {
    font-size: 30px !important;
}

html.bwat-text-large h3,
html.bwat-text-large .h3,
html.bwat-text-large .rtd h3 {
    font-size: 25px !important;
}

html.bwat-text-large h4,
html.bwat-text-large .h4,
html.bwat-text-large .rtd h4 {
    font-size: 20px !important;
}

html.bwat-text-large h5,
html.bwat-text-large .h5,
html.bwat-text-large .rtd h5 {
    font-size: 18px !important;
}

html.bwat-text-large h6,
html.bwat-text-large .h6,
html.bwat-text-large .rtd h6 {
    font-size: 14px !important;
}

/* Paragraphs and general text */
html.bwat-text-large p,
html.bwat-text-large li,
html.bwat-text-large td,
html.bwat-text-large th,
html.bwat-text-large span,
html.bwat-text-large label,
html.bwat-text-large .rtd,
html.bwat-text-large article {
    font-size: 16px !important;
}

/* Links */
html.bwat-text-large a:not(.bwat-panel a):not(.bwat-toggle):not(.bwat-skip):not(.my-btn):not(.btn) {
    font-size: 16px !important;
}

/* Theme specific elements */
html.bwat-text-large .subtitle {
    font-size: 15px !important;
}

html.bwat-text-large .service h3 {
    font-size: 23px !important;
}

html.bwat-text-large .service-text {
    font-size: 16px !important;
}

html.bwat-text-large .page-header-title h2 {
    font-size: 44px !important;
}

html.bwat-text-large .blog-item-title h3,
html.bwat-text-large .blog-single-post-title h3 {
    font-size: 25px !important;
}

html.bwat-text-large .fobox {
    font-size: 18px !important;
}

html.bwat-text-large .fobox h4 {
    font-size: 19px !important;
}

html.bwat-text-large .main-menu .navbar-nav > li > a {
    font-size: 16px !important;
}

html.bwat-text-large .dropdown-menu > li > a {
    font-size: 16px !important;
}

html.bwat-text-large .top-bar {
    font-size: 15px !important;
}

html.bwat-text-large .breadcrumb {
    font-size: 15px !important;
}

html.bwat-text-large .sidebar-item,
html.bwat-text-large .widget {
    font-size: 16px !important;
}

html.bwat-text-large .home-review-carousel-text {
    font-size: 16px !important;
}


/* ----- LARGER (150%) ----- */
/* Base body text: 13px -> 20px */
html.bwat-text-larger body {
    font-size: 20px !important;
}

/* Headings */
html.bwat-text-larger h1,
html.bwat-text-larger .h1,
html.bwat-text-larger .rtd h1 {
    font-size: 45px !important;
}

html.bwat-text-larger h2,
html.bwat-text-larger .h2,
html.bwat-text-larger .rtd h2,
html.bwat-text-larger .title-group h2 {
    font-size: 36px !important;
}

html.bwat-text-larger h3,
html.bwat-text-larger .h3,
html.bwat-text-larger .rtd h3 {
    font-size: 30px !important;
}

html.bwat-text-larger h4,
html.bwat-text-larger .h4,
html.bwat-text-larger .rtd h4 {
    font-size: 24px !important;
}

html.bwat-text-larger h5,
html.bwat-text-larger .h5,
html.bwat-text-larger .rtd h5 {
    font-size: 21px !important;
}

html.bwat-text-larger h6,
html.bwat-text-larger .h6,
html.bwat-text-larger .rtd h6 {
    font-size: 17px !important;
}

/* Paragraphs and general text */
html.bwat-text-larger p,
html.bwat-text-larger li,
html.bwat-text-larger td,
html.bwat-text-larger th,
html.bwat-text-larger span,
html.bwat-text-larger label,
html.bwat-text-larger .rtd,
html.bwat-text-larger article {
    font-size: 20px !important;
}

/* Links */
html.bwat-text-larger a:not(.bwat-panel a):not(.bwat-toggle):not(.bwat-skip):not(.my-btn):not(.btn) {
    font-size: 20px !important;
}

/* Theme specific elements */
html.bwat-text-larger .subtitle {
    font-size: 18px !important;
}

html.bwat-text-larger .service h3 {
    font-size: 27px !important;
}

html.bwat-text-larger .service-text {
    font-size: 20px !important;
}

html.bwat-text-larger .page-header-title h2 {
    font-size: 53px !important;
}

html.bwat-text-larger .blog-item-title h3,
html.bwat-text-larger .blog-single-post-title h3 {
    font-size: 30px !important;
}

html.bwat-text-larger .fobox {
    font-size: 21px !important;
}

html.bwat-text-larger .fobox h4 {
    font-size: 23px !important;
}

html.bwat-text-larger .main-menu .navbar-nav > li > a {
    font-size: 19px !important;
}

html.bwat-text-larger .dropdown-menu > li > a {
    font-size: 19px !important;
}

html.bwat-text-larger .top-bar {
    font-size: 18px !important;
}

html.bwat-text-larger .breadcrumb {
    font-size: 18px !important;
}

html.bwat-text-larger .sidebar-item,
html.bwat-text-larger .widget {
    font-size: 20px !important;
}

html.bwat-text-larger .home-review-carousel-text {
    font-size: 20px !important;
}


/* ----- LARGEST (200%) ----- */
/* Base body text: 13px -> 26px */
html.bwat-text-largest body {
    font-size: 26px !important;
}

/* Headings */
html.bwat-text-largest h1,
html.bwat-text-largest .h1,
html.bwat-text-largest .rtd h1 {
    font-size: 60px !important;
}

html.bwat-text-largest h2,
html.bwat-text-largest .h2,
html.bwat-text-largest .rtd h2,
html.bwat-text-largest .title-group h2 {
    font-size: 48px !important;
}

html.bwat-text-largest h3,
html.bwat-text-largest .h3,
html.bwat-text-largest .rtd h3 {
    font-size: 40px !important;
}

html.bwat-text-largest h4,
html.bwat-text-largest .h4,
html.bwat-text-largest .rtd h4 {
    font-size: 32px !important;
}

html.bwat-text-largest h5,
html.bwat-text-largest .h5,
html.bwat-text-largest .rtd h5 {
    font-size: 28px !important;
}

html.bwat-text-largest h6,
html.bwat-text-largest .h6,
html.bwat-text-largest .rtd h6 {
    font-size: 22px !important;
}

/* Paragraphs and general text */
html.bwat-text-largest p,
html.bwat-text-largest li,
html.bwat-text-largest td,
html.bwat-text-largest th,
html.bwat-text-largest span,
html.bwat-text-largest label,
html.bwat-text-largest .rtd,
html.bwat-text-largest article {
    font-size: 26px !important;
}

/* Links */
html.bwat-text-largest a:not(.bwat-panel a):not(.bwat-toggle):not(.bwat-skip):not(.my-btn):not(.btn) {
    font-size: 26px !important;
}

/* Theme specific elements */
html.bwat-text-largest .subtitle {
    font-size: 24px !important;
}

html.bwat-text-largest .service h3 {
    font-size: 36px !important;
}

html.bwat-text-largest .service-text {
    font-size: 26px !important;
}

html.bwat-text-largest .page-header-title h2 {
    font-size: 70px !important;
}

html.bwat-text-largest .blog-item-title h3,
html.bwat-text-largest .blog-single-post-title h3 {
    font-size: 40px !important;
}

html.bwat-text-largest .fobox {
    font-size: 28px !important;
}

html.bwat-text-largest .fobox h4 {
    font-size: 30px !important;
}

html.bwat-text-largest .main-menu .navbar-nav > li > a {
    font-size: 24px !important;
}

html.bwat-text-largest .dropdown-menu > li > a {
    font-size: 24px !important;
}

html.bwat-text-largest .top-bar {
    font-size: 24px !important;
}

html.bwat-text-largest .breadcrumb {
    font-size: 24px !important;
}

html.bwat-text-largest .sidebar-item,
html.bwat-text-largest .widget {
    font-size: 26px !important;
}

html.bwat-text-largest .home-review-carousel-text {
    font-size: 26px !important;
}


/* ----- PROTECT TOOLBAR FROM ALL TEXT SIZE CHANGES ----- */
html.bwat-text-large .bwat-panel,
html.bwat-text-large .bwat-panel *,
html.bwat-text-larger .bwat-panel,
html.bwat-text-larger .bwat-panel *,
html.bwat-text-largest .bwat-panel,
html.bwat-text-largest .bwat-panel *,
html.bwat-text-large .bwat-toggle,
html.bwat-text-larger .bwat-toggle,
html.bwat-text-largest .bwat-toggle {
    font-size: 14px !important;
}

html.bwat-text-large .bwat-panel .bwat-buttons button,
html.bwat-text-larger .bwat-panel .bwat-buttons button,
html.bwat-text-largest .bwat-panel .bwat-buttons button {
    font-size: 12px !important;
}

html.bwat-text-large .bwat-panel .bwat-label,
html.bwat-text-larger .bwat-panel .bwat-label,
html.bwat-text-largest .bwat-panel .bwat-label {
    font-size: 13px !important;
}


/* ==================== LINE HEIGHT ==================== */
html.bwat-line-relaxed body *:not(.bwat-toggle):not(.bwat-panel):not(.bwat-panel *):not(.bwat-cursor):not(.bwat-line):not(.bwat-mask-top):not(.bwat-mask-bottom):not(.bwat-skip) { 
    line-height: 1.8 !important; 
}
html.bwat-line-loose body *:not(.bwat-toggle):not(.bwat-panel):not(.bwat-panel *):not(.bwat-cursor):not(.bwat-line):not(.bwat-mask-top):not(.bwat-mask-bottom):not(.bwat-skip) { 
    line-height: 2.1 !important; 
}
html.bwat-line-extra body *:not(.bwat-toggle):not(.bwat-panel):not(.bwat-panel *):not(.bwat-cursor):not(.bwat-line):not(.bwat-mask-top):not(.bwat-mask-bottom):not(.bwat-skip) { 
    line-height: 2.5 !important; 
}

.bwat-panel, .bwat-panel * { line-height: 1.4 !important; }


/* ==================== LETTER SPACING ==================== */
html.bwat-spacing-wide body *:not(.bwat-toggle):not(.bwat-panel):not(.bwat-panel *):not(.bwat-cursor):not(.bwat-line):not(.bwat-mask-top):not(.bwat-mask-bottom):not(.bwat-skip) { 
    letter-spacing: 1px !important; 
}
html.bwat-spacing-wider body *:not(.bwat-toggle):not(.bwat-panel):not(.bwat-panel *):not(.bwat-cursor):not(.bwat-line):not(.bwat-mask-top):not(.bwat-mask-bottom):not(.bwat-skip) { 
    letter-spacing: 2px !important; 
}
html.bwat-spacing-widest body *:not(.bwat-toggle):not(.bwat-panel):not(.bwat-panel *):not(.bwat-cursor):not(.bwat-line):not(.bwat-mask-top):not(.bwat-mask-bottom):not(.bwat-skip) { 
    letter-spacing: 3px !important; 
}

.bwat-panel, .bwat-panel * { letter-spacing: normal !important; }


/* ==================== CONTRAST ==================== */
html.bwat-contrast-high body {
    background: #fff !important;
    color: #000 !important;
}
html.bwat-contrast-high body *:not(.bwat-toggle):not(.bwat-panel):not(.bwat-panel *):not(.bwat-cursor):not(.bwat-line):not(.bwat-mask-top):not(.bwat-mask-bottom):not(.bwat-skip) {
    background: #fff !important;
    color: #000 !important;
    border-color: #000 !important;
}
html.bwat-contrast-high a:not(.bwat-panel a):not(.bwat-skip) {
    color: #00e !important;
}

/* INVERTED */
html.bwat-contrast-inverted {
    filter: invert(1) hue-rotate(180deg);
    -webkit-filter: invert(1) hue-rotate(180deg);
}

html.bwat-contrast-inverted .bwat-toggle,
html.bwat-contrast-inverted .bwat-panel,
html.bwat-contrast-inverted .bwat-cursor,
html.bwat-contrast-inverted .bwat-line,
html.bwat-contrast-inverted .bwat-mask-top,
html.bwat-contrast-inverted .bwat-mask-bottom,
html.bwat-contrast-inverted .bwat-skip {
    filter: invert(1) hue-rotate(180deg);
    -webkit-filter: invert(1) hue-rotate(180deg);
}


/* ==================== GRAYSCALE ==================== */
html.bwat-grayscale {
    filter: grayscale(1);
    -webkit-filter: grayscale(1);
}

html.bwat-grayscale .bwat-toggle,
html.bwat-grayscale .bwat-panel,
html.bwat-grayscale .bwat-cursor,
html.bwat-grayscale .bwat-line,
html.bwat-grayscale .bwat-mask-top,
html.bwat-grayscale .bwat-mask-bottom,
html.bwat-grayscale .bwat-skip {
    filter: grayscale(0);
    -webkit-filter: grayscale(0);
}


/* ==================== BRIGHTNESS ==================== */
html.bwat-brightness-bright { 
    filter: brightness(1.2); 
    -webkit-filter: brightness(1.2);
}
html.bwat-brightness-dim { 
    filter: brightness(0.8); 
    -webkit-filter: brightness(0.8);
}

html.bwat-brightness-bright .bwat-toggle,
html.bwat-brightness-bright .bwat-panel {
    filter: brightness(0.833);
    -webkit-filter: brightness(0.833);
}

html.bwat-brightness-dim .bwat-toggle,
html.bwat-brightness-dim .bwat-panel {
    filter: brightness(1.25);
    -webkit-filter: brightness(1.25);
}


/* ==================== HIGHLIGHT LINKS ==================== */
html.bwat-links a:not(.bwat-panel a):not(.bwat-toggle):not(.bwat-skip) {
    background: #ff0 !important;
    color: #000 !important;
    padding: 2px 4px !important;
}


/* ==================== STOP ANIMATIONS ==================== */
html.bwat-animations *,
html.bwat-animations *::before,
html.bwat-animations *::after {
    animation: none !important;
    transition: none !important;
}

html.bwat-animations .bwat-toggle,
html.bwat-animations .bwat-panel,
html.bwat-animations .bwat-panel * {
    transition: all 0.15s ease !important;
}


/* ==================== DYSLEXIC FONT ==================== */
@font-face {
    font-family: 'OpenDyslexic';
    src: url('https://cdn.jsdelivr.net/npm/open-dyslexic@1.0.3/woff/OpenDyslexic-Regular.woff') format('woff');
}
html.bwat-dyslexic body *:not(.bwat-toggle):not(.bwat-panel):not(.bwat-panel *) {
    font-family: 'OpenDyslexic', sans-serif !important;
}
.bwat-panel, .bwat-panel * { font-family: -apple-system, BlinkMacSystemFont, sans-serif !important; }


/* ==================== BIG CURSOR ==================== */
.bwat-cursor {
    position: fixed;
    width: 40px;
    height: 40px;
    border: 3px solid #f00;
    border-radius: 50%;
    background: rgba(255,255,0,0.3);
    pointer-events: none;
    z-index: 2147483647;
    left: var(--bwat-mouse-x);
    top: var(--bwat-mouse-y);
    transform: translate(-50%, -50%);
    display: none;
    will-change: left, top;
}
html.bwat-cursor-on .bwat-cursor { display: block; }
html.bwat-cursor-on, html.bwat-cursor-on * { cursor: none !important; }
html.bwat-cursor-on .bwat-toggle,
html.bwat-cursor-on .bwat-panel,
html.bwat-cursor-on .bwat-panel * { cursor: pointer !important; }


/* ==================== READING LINE ==================== */
.bwat-line {
    position: fixed;
    left: 0;
    width: 100%;
    height: 8px;
    background: rgba(255,255,0,0.5);
    pointer-events: none;
    z-index: 2147483640;
    top: var(--bwat-mouse-y);
    transform: translateY(-50%);
    display: none;
    will-change: top;
}
html.bwat-line-on .bwat-line { display: block; }


/* ==================== READING MASK ==================== */
.bwat-mask-top,
.bwat-mask-bottom {
    position: fixed;
    left: 0;
    width: 100%;
    background: rgba(0,0,0,0.7);
    pointer-events: none;
    z-index: 2147483639;
    display: none;
    will-change: height, top;
}
.bwat-mask-top { top: 0; height: calc(var(--bwat-mouse-y) - 60px); }
.bwat-mask-bottom { top: calc(var(--bwat-mouse-y) + 60px); bottom: 0; height: auto; }

html.bwat-mask-on .bwat-mask-top,
html.bwat-mask-on .bwat-mask-bottom { display: block; }


/* ==================== FOCUS STYLES ==================== */
*:focus {
    outline: 3px solid #2557a7 !important;
    outline-offset: 2px !important;
}

a:focus {
    outline: 3px solid #2557a7 !important;
    outline-offset: 2px !important;
    background-color: rgba(37, 87, 167, 0.1) !important;
}

a:focus-visible {
    outline: 3px solid #2557a7 !important;
    outline-offset: 2px !important;
    background-color: rgba(37, 87, 167, 0.15) !important;
}

button:focus,
input:focus,
select:focus,
textarea:focus {
    outline: 3px solid #2557a7 !important;
    outline-offset: 2px !important;
}

.bwat-toggle:focus {
    outline: 3px solid #ffd700 !important;
    outline-offset: 2px !important;
}

.bwat-panel button:focus,
.bwat-panel input:focus {
    outline: 2px solid #2557a7 !important;
    outline-offset: 1px !important;
}


/* ==================== MOBILE ==================== */
@media (max-width: 400px) {
    .bwat-panel { width: calc(100% - 40px); left: 20px; right: 20px; }
}
