/* v1.2.0: accessible light/dark palettes, native device preference and 320px+ layouts.
   All rules are scoped to .aeoa to avoid modifying the WordPress theme. */
.aeoa {
  --aeoa-bg: #ffffff;
  --aeoa-bg2: #f1f5f9;
  --aeoa-panel: #ffffff;
  --aeoa-panel-muted: #f7f9fc;
  --aeoa-text: #172435;
  --aeoa-muted: #44566b;
  --aeoa-stroke: #c4d0dc;
  --aeoa-accent: #8a410c;
  --aeoa-link: #165b96;
  --aeoa-positive: #136344;
  --aeoa-star: #9e5600;
  --aeoa-star-empty: #697b8b;
  --aeoa-button: #a24a0b;
  --aeoa-button-text: #ffffff;
  --aeoa-button-hover: #80370a;
  --aeoa-error-bg: #fbeae8;
  --aeoa-error-text: #8c251b;
  --aeoa-focus: #136eb3;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--aeoa-text);
  background: var(--aeoa-bg);
  color-scheme: light;
  border: 1px solid var(--aeoa-stroke);
  border-radius: 18px;
  box-shadow: 0 10px 34px rgb(0 0 0 / .09);
  padding: clamp(18px, 3.2vw, 42px);
  width: 100%;
  max-width: 1240px;
  margin: 22px auto;
  box-sizing: border-box;
  overflow-wrap: anywhere;
}
/* The Auto setting follows system settings live, including OS changes. */
@media (prefers-color-scheme: dark) {
  .aeoa:not([data-theme="light"]) {
    --aeoa-bg: #182431;
    --aeoa-bg2: #243443;
    --aeoa-panel: #20303f;
    --aeoa-panel-muted: #1c2b38;
    --aeoa-text: #f6f9fc;
    --aeoa-muted: #ccd8e4;
    --aeoa-stroke: #607487;
    --aeoa-accent: #ffbd7f;
    --aeoa-link: #a7d8ff;
    --aeoa-positive: #9be9c0;
    --aeoa-star: #ffcc86;
    --aeoa-star-empty: #a8bacb;
    --aeoa-button: #ffc080;
    --aeoa-button-text: #1a2937;
    --aeoa-button-hover: #ffdbad;
    --aeoa-error-bg: #4c292b;
    --aeoa-error-text: #ffe1dd;
    --aeoa-focus: #a7d8ff;
    color-scheme: dark;
  }
}
/* Explicit dark mode provides an override, but Auto stays the default. */
.aeoa[data-theme="dark"] {
  --aeoa-bg: #182431;
  --aeoa-bg2: #243443;
  --aeoa-panel: #20303f;
  --aeoa-panel-muted: #1c2b38;
  --aeoa-text: #f6f9fc;
  --aeoa-muted: #ccd8e4;
  --aeoa-stroke: #607487;
  --aeoa-accent: #ffbd7f;
  --aeoa-link: #a7d8ff;
  --aeoa-positive: #9be9c0;
  --aeoa-star: #ffcc86;
  --aeoa-star-empty: #a8bacb;
  --aeoa-button: #ffc080;
  --aeoa-button-text: #1a2937;
  --aeoa-button-hover: #ffdbad;
  --aeoa-error-bg: #4c292b;
  --aeoa-error-text: #ffe1dd;
  --aeoa-focus: #a7d8ff;
  color-scheme: dark;
}
.aeoa, .aeoa * { box-sizing: border-box; }
.aeoa [hidden] { display: none !important; }
.aeoa :is(h2,h3,h4,p,li,label,strong,small,summary) { color: inherit; }
.aeoa :is(h2,h3,h4) { font-family: inherit !important; font-style: normal; text-transform: none !important; line-height: 1.25; letter-spacing: -.02em; color: var(--aeoa-text) !important; }
.aeoa h2 { font-size: clamp(27px, 3.4vw, 39px); font-weight: 780; margin: 7px 0 14px; }
.aeoa h3 { font-size: clamp(22px, 2.3vw, 27px); font-weight: 750; margin: 0; }
.aeoa h4 { font-size: 17px; font-weight: 740; margin: 0; }
.aeoa a { color: var(--aeoa-link) !important; }
.aeoa a:hover { text-decoration-thickness: 2px; }
.aeoa :is(button,input,select,a,summary):focus-visible { outline: 3px solid var(--aeoa-focus) !important; outline-offset: 3px; }
.aeoa .aeoa-topline { display: flex; flex-wrap: wrap; gap: 14px 20px; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.aeoa .aeoa-kicker { display: inline-block; color: var(--aeoa-accent); font-size: 13px; font-weight: 760; letter-spacing: .075em; text-transform: uppercase; }
.aeoa .aeoa-theme-picker { display: inline-flex; gap: 10px; align-items: center; min-width: 0; }
.aeoa .aeoa-theme-picker label { font-size: 14px; font-weight: 650; color: var(--aeoa-muted); margin: 0; }
.aeoa .aeoa-theme-select { min-height: 44px; padding: 8px 28px 8px 12px; font: inherit; font-size: 14px; font-weight: 650; color: var(--aeoa-text) !important; background: var(--aeoa-panel) !important; border: 1px solid var(--aeoa-stroke) !important; border-radius: 9px !important; max-width: 100%; }
.aeoa .aeoa-hero > p { max-width: 800px; font-size: 17px; line-height: 1.65; color: var(--aeoa-muted); margin: 0 0 24px; }
.aeoa .aeoa-form { margin: 0; border: 1px solid var(--aeoa-stroke); background: var(--aeoa-panel-muted); padding: 22px; border-radius: 13px; box-shadow: none; }
.aeoa .aeoa-form > label { display: block; font-weight: 730; font-size: 16px; margin: 0 0 9px; }
.aeoa .aeoa-form-row { display: flex; align-items: stretch; gap: 12px; }
.aeoa input[type="url"] { display: block; flex: 1; min-width: 0; width: 100%; min-height: 51px; padding: 12px 14px; background: var(--aeoa-panel) !important; color: var(--aeoa-text) !important; border: 1px solid var(--aeoa-stroke) !important; border-radius: 9px !important; box-shadow: none !important; font-family: inherit; font-size: 16px !important; font-weight: 450; line-height: 1.45; }
.aeoa input[type="url"]::placeholder { color: var(--aeoa-muted) !important; opacity: .95; }
.aeoa button { cursor: pointer; font-family: inherit !important; font-size: 15px; font-weight: 680; line-height: 1.35; text-transform: none; text-decoration: none; transition: background .15s ease, border-color .15s ease; }
.aeoa .aeoa-submit { display: flex; justify-content: center; align-items: center; gap: 10px; padding: 11px 20px; min-height: 51px; flex-shrink: 0; white-space: nowrap; color: var(--aeoa-button-text) !important; background: var(--aeoa-button) !important; border: 1px solid var(--aeoa-button) !important; border-radius: 9px !important; }
.aeoa .aeoa-submit:hover:not(:disabled) { background: var(--aeoa-button-hover) !important; }
.aeoa button:disabled { opacity: .67; cursor: wait; }
.aeoa .aeoa-hint, .aeoa .aeoa-disclaimer { color: var(--aeoa-muted); font-size: 14px; line-height: 1.65; margin: 12px 0 0; }
.aeoa .aeoa-status { font-size: 15px; color: var(--aeoa-text); background: var(--aeoa-bg2); border: 1px solid var(--aeoa-stroke); border-radius: 9px; padding: 13px 15px; margin-top: 14px; }
.aeoa .aeoa-status:not(.aeoa-error)::before { content: ""; display: inline-block; width: 13px; height: 13px; border: 2px solid var(--aeoa-accent); border-right-color: transparent; vertical-align: -.12em; border-radius: 50%; animation: aeoa-spin .8s linear infinite; margin-right: 9px; }
.aeoa .aeoa-error { color: var(--aeoa-error-text); background: var(--aeoa-error-bg); }
.aeoa .aeoa-disclaimer { margin-top: 20px; }
.aeoa .aeoa-results { padding-top: 30px; margin-top: 30px; border-top: 1px solid var(--aeoa-stroke); }
.aeoa .aeoa-report-header { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 18px; }
.aeoa .aeoa-report-heading { flex: 1; min-width: 0; }
.aeoa .aeoa-report-heading h3 { margin: 6px 0; overflow-wrap: anywhere; }
.aeoa .aeoa-report-heading > p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--aeoa-muted); max-width: 660px; }
.aeoa .aeoa-tools { display: flex; align-items: stretch; gap: 9px; flex-wrap: wrap; }
/* Primary commercial CTA: mirrors the orange homepage demo button in light and dark mode. */
.aeoa .aeoa-demo-cta, .aeoa .aeoa-demo-cta:visited {
  display: inline-flex; justify-content: center; align-items: center;
  min-height: 44px; padding: 11px 19px; border-radius: 9px;
  border: 1px solid var(--aeoa-button) !important;
  background: var(--aeoa-button) !important; color: var(--aeoa-button-text) !important;
  font: 700 15px/1.35 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-decoration: none !important; text-align: center; white-space: nowrap;
}
.aeoa .aeoa-demo-cta::after { content: "\2192"; margin-left: 9px; }
.aeoa .aeoa-demo-cta:hover { background: var(--aeoa-button-hover) !important; border-color: var(--aeoa-button-hover) !important; }
.aeoa .aeoa-tool { padding: 11px 14px; min-height: 44px; background: var(--aeoa-panel) !important; border: 1px solid var(--aeoa-stroke) !important; color: var(--aeoa-text) !important; border-radius: 9px !important; }
.aeoa .aeoa-tool:hover { background: var(--aeoa-bg2) !important; border-color: var(--aeoa-accent) !important; }
.aeoa .aeoa-summary { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; margin-top: 24px; }
.aeoa .aeoa-metric { min-width: 0; padding: 24px; border: 1px solid var(--aeoa-stroke); background: var(--aeoa-panel); border-radius: 13px; }
.aeoa .aeoa-metric-label { font-size: 14px; font-weight: 720; color: var(--aeoa-muted); }
.aeoa .aeoa-metric-note { display: block; font-size: 16px; font-weight: 700; margin: 4px 0; }
.aeoa .aeoa-fit { font-size: clamp(27px, 3vw, 36px); font-weight: 780; line-height: 1.25; margin: 12px 0; color: var(--aeoa-accent); overflow-wrap: anywhere; }
.aeoa .aeoa-mini { font-size: 14px; color: var(--aeoa-muted); margin: 10px 0 0; line-height: 1.6; }
.aeoa .aeoa-section { margin: 32px 0 0; }
.aeoa .aeoa-section-title { padding-bottom: 13px; margin: 0 0 15px; border-bottom: 1px solid var(--aeoa-stroke); }
.aeoa .aeoa-section-intro { margin: 0 0 15px; font-size: 15px; color: var(--aeoa-muted); }
.aeoa .aeoa-checks { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.aeoa .aeoa-check { min-width: 0; border: 1px solid var(--aeoa-stroke); background: var(--aeoa-panel); border-radius: 13px; padding: 21px; }
.aeoa .aeoa-check-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; flex-wrap: wrap; }
.aeoa .aeoa-check-name { min-width: 0; display: flex; align-items: baseline; gap: 9px; flex: 1 1 190px; }
.aeoa .aeoa-check-index { color: var(--aeoa-accent); font-size: 14px; font-weight: 760; }
.aeoa .aeoa-stars { display: inline-flex; align-items: baseline; white-space: nowrap; line-height: 1.2; font-family: Arial, "Segoe UI Symbol", sans-serif; font-weight: 400; letter-spacing: .005em; }
.aeoa .aeoa-stars-full { color: var(--aeoa-star); }
.aeoa .aeoa-stars-empty { color: var(--aeoa-star-empty); }
.aeoa .aeoa-check-stars { font-size: 25px; padding: 5px 9px; border: 1px solid var(--aeoa-stroke); background: var(--aeoa-bg2); border-radius: 9px; }
.aeoa .aeoa-overall-stars { display: flex; width: fit-content; font-size: clamp(31px,4vw,44px); margin: 15px 0 10px; }
.aeoa .aeoa-rating { margin: 12px 0 5px; font-weight: 710; font-size: 16px; color: var(--aeoa-text); }
.aeoa .aeoa-level-4 .aeoa-rating, .aeoa .aeoa-level-5 .aeoa-rating { color: var(--aeoa-positive); }
.aeoa .aeoa-check-note { margin: 0; color: var(--aeoa-muted); font-size: 15px; line-height: 1.65; }
.aeoa .aeoa-indicators { margin-top: 14px; padding: 14px 0 0; border-top: 1px solid var(--aeoa-stroke); font-size: 14px; color: var(--aeoa-muted); }
.aeoa .aeoa-indicators summary { padding: 3px 0; font-weight: 700; color: var(--aeoa-link); cursor: pointer; }
.aeoa .aeoa-indicators ul { padding-left: 22px; margin: 10px 0 0; line-height: 1.65; }
.aeoa .aeoa-indicators li { margin: 4px 0; }
.aeoa .aeoa-indicator-found { color: var(--aeoa-positive) !important; }
.aeoa .aeoa-indicator-missing { color: var(--aeoa-muted) !important; }
.aeoa .aeoa-evidence { display: flex; flex-direction: column; gap: 7px; border-top: 1px solid var(--aeoa-stroke); padding-top: 14px; margin-top: 14px; }
.aeoa .aeoa-evidence-label { font-size: 13px; font-weight: 750; color: var(--aeoa-muted); }
.aeoa .aeoa-source { display: block; width: fit-content; max-width: 100%; color: var(--aeoa-link) !important; font-size: 14px; line-height: 1.6; text-decoration: underline !important; text-underline-offset: 2px; overflow-wrap: anywhere; }
.aeoa .aeoa-no-evidence { color: var(--aeoa-muted); font-size: 14px; }
.aeoa .aeoa-body { color: var(--aeoa-text); font-size: 16px; line-height: 1.75; max-width: 960px; }
.aeoa .aeoa-subtitle { font-size: 18px; font-weight: 730; margin: 20px 0 8px; }
.aeoa .aeoa-list { padding-left: 25px; margin: 8px 0 0; color: var(--aeoa-text); font-size: 15px; line-height: 1.7; }
.aeoa .aeoa-list li { padding: 4px 0; }
.aeoa .aeoa-list li::marker { color: var(--aeoa-accent); }
.aeoa .aeoa-tags { display: flex; gap: 8px; flex-wrap: wrap; margin: 13px 0; }
.aeoa .aeoa-tag { font-size: 14px; font-weight: 620; padding: 5px 12px; color: var(--aeoa-text); border: 1px solid var(--aeoa-stroke); background: var(--aeoa-bg2); border-radius: 999px; }
.aeoa .aeoa-pages { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.aeoa .aeoa-limitations { color: var(--aeoa-muted); font-size: 14px; }
.aeoa .aeoa-report-footer { color: var(--aeoa-muted); border-top: 1px solid var(--aeoa-stroke); padding-top: 15px; margin-top: 26px; font-size: 14px; }
/* High-specificity text colors protect the widget from global WordPress theme styles. */
.aeoa p, .aeoa li, .aeoa label { color: var(--aeoa-text) !important; }
.aeoa .aeoa-hero > p, .aeoa :is(.aeoa-hint,.aeoa-disclaimer,.aeoa-report-heading > p,.aeoa-mini,.aeoa-section-intro,.aeoa-check-note,.aeoa-no-evidence,.aeoa-limitations,.aeoa-report-footer) { color: var(--aeoa-muted) !important; }
.aeoa .aeoa-theme-picker label, .aeoa .aeoa-metric-label, .aeoa .aeoa-evidence-label { color: var(--aeoa-muted) !important; }
.aeoa .aeoa-kicker, .aeoa .aeoa-check-index, .aeoa .aeoa-fit { color: var(--aeoa-accent) !important; }
.aeoa .aeoa-level-4 .aeoa-rating, .aeoa .aeoa-level-5 .aeoa-rating, .aeoa .aeoa-indicator-found { color: var(--aeoa-positive) !important; }
.aeoa .aeoa-stars-full { color: var(--aeoa-star) !important; }
.aeoa .aeoa-stars-empty { color: var(--aeoa-star-empty) !important; }
.aeoa .aeoa-indicators summary { color: var(--aeoa-link) !important; }
.aeoa .aeoa-indicator-missing { color: var(--aeoa-muted) !important; }
@keyframes aeoa-spin { to { transform: rotate(360deg); } }
@media (max-width: 900px) { .aeoa .aeoa-checks, .aeoa .aeoa-pages { grid-template-columns: 1fr; } }
@media (max-width: 680px) {
  .aeoa { margin: 10px auto; padding: 20px 14px; border-radius: 12px; }
  .aeoa .aeoa-form { padding: 16px; }
  .aeoa .aeoa-form-row { flex-direction: column; }
  .aeoa .aeoa-submit { width: 100%; white-space: normal; }
  .aeoa .aeoa-summary { grid-template-columns: 1fr; }
  .aeoa .aeoa-metric, .aeoa .aeoa-check { padding: 17px; }
  .aeoa .aeoa-report-header { display: block; }
  .aeoa .aeoa-tools { margin-top: 16px; }
  .aeoa .aeoa-tool, .aeoa .aeoa-demo-cta { flex: 1 1 140px; }
  .aeoa .aeoa-hero > p { font-size: 16px; }
}
/* Container queries also adapt when embedded inside a narrow WordPress column on desktop. */
@supports (container-type: inline-size) {
  .aeoa { container-type: inline-size; }
  @container (max-width: 630px) {
    .aeoa .aeoa-form-row { flex-direction: column; }
    .aeoa .aeoa-submit { width: 100%; }
    .aeoa .aeoa-summary, .aeoa .aeoa-checks, .aeoa .aeoa-pages { grid-template-columns: 1fr; }
    .aeoa .aeoa-report-header { display: block; }
    .aeoa .aeoa-tools { margin-top: 16px; }
    .aeoa .aeoa-demo-cta, .aeoa .aeoa-tool { flex: 1 1 140px; }
  }
}
@media (max-width: 365px) {
  .aeoa { padding: 15px 11px; }
  .aeoa .aeoa-topline { align-items: flex-start; }
  .aeoa .aeoa-theme-picker { width: 100%; justify-content: space-between; }
  .aeoa .aeoa-form { padding: 12px; }
  .aeoa .aeoa-check-stars { font-size: 23px; }
  .aeoa .aeoa-demo-cta, .aeoa .aeoa-tool { flex-basis: 100%; width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .aeoa *, .aeoa *::before { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
@media print {
  body * { visibility: hidden !important; }
  .aeoa .aeoa-results, .aeoa .aeoa-results * { visibility: visible !important; }
  .aeoa { border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; }
  .aeoa .aeoa-results { position: absolute !important; left: 0 !important; top: 0 !important; width: 100% !important; padding: 0 !important; border: 0 !important; background: #fff !important; color: #111 !important; }
  .aeoa .aeoa-results * { background: #fff !important; color: #141414 !important; border-color: #999 !important; box-shadow: none !important; }
  .aeoa .aeoa-tools { display: none !important; }
  .aeoa .aeoa-check, .aeoa .aeoa-metric { break-inside: avoid; }
  .aeoa .aeoa-section-title { break-after: avoid; }
  .aeoa .aeoa-stars-full, .aeoa .aeoa-stars-empty { color: #111 !important; }
}

/* 1.2.1: disclosed AI-driven assistance full-rating explanation. */
.aeoa .aeoa-check-rule { margin: 12px 0; padding: 10px 13px; border: 1px solid var(--aeoa-border, #94a3b8); border-radius: 8px; font-weight: 650; line-height: 1.5; }
