/* Shared fixes loaded after screen styles. These improve specific barriers;
   their presence does not constitute a complete conformance certification. */
body :focus-visible,
body .ap-tones input:focus-visible+span{
 outline:3px solid #1a4f94!important;
 outline-offset:3px!important;
 box-shadow:0 0 0 2px #fff!important;
}

.accessibility-skip{
 position:fixed;
 inset-block-start:10px;
 inset-inline-start:10px;
 z-index:10000;
 max-width:calc(100vw - 20px);
 transform:translateY(calc(-100% - 24px));
 padding:12px 18px;
 border:2px solid #1a4f94;
 border-radius:6px;
 background:#fff;
 color:#1a4f94;
 font:700 16px/1.5 Manrope,Arial,sans-serif;
 text-decoration:underline;
 text-underline-offset:3px;
}
.accessibility-skip:focus{transform:none}
#main-content,#app-content{scroll-margin-block-start:16px}

/* The exercise meaning and pronunciation are content, rather than decoration. */
body .reading-phon,
body .reset-button,
body .sentence-slots .placeholder,
body .reading-assembled .placeholder,
body .home-save-strip p,
body .word-review-top>span:last-child{color:#45627d}
body .alef-vowel-tabs button{color:#285c90}
body .alef-vowel-tabs button.selected,
body .alef-vowel-tabs button[aria-pressed=true]{color:#fff;background:#285c90;border-color:#285c90}

/* Underlines make prose links distinguishable without depending on colour. */
body :is(main,#app-content) :is(p,li,dd) a:not([role=button]):not([class*=button]):not(:where(nav a,[role=navigation] a)){
 text-decoration:underline;
 text-underline-offset:.17em;
 text-decoration-thickness:.08em;
}

@media(prefers-reduced-motion:reduce){
 html,body,body *,body *::before,body *::after{
  scroll-behavior:auto!important;
  animation-duration:.01ms!important;
  animation-iteration-count:1!important;
  transition-duration:.01ms!important;
 }
}
@media(forced-colors:active){
 body :focus-visible,body .ap-tones input:focus-visible+span{
  outline-color:Highlight!important;
  box-shadow:none!important;
 }
 body .alef-vowel-tabs button.selected,body .alef-vowel-tabs button[aria-pressed=true]{
  border:2px solid Highlight;
 }
 .accessibility-skip{border-color:LinkText;color:LinkText;background:Canvas}
}

/* Service information stays reachable on every generated tool page. */
.footer .footer-service-links{display:flex;flex-wrap:wrap;gap:8px 20px;flex-basis:100%;align-items:center}
.footer .footer-service-links a{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;min-height:44px;color:#365b7e;font-size:14px;line-height:1.5;text-decoration:underline;text-underline-offset:3px}
.footer .footer-operator{flex-basis:100%;margin:0;color:#45627d;font-size:13px;line-height:1.6}
.app-mobile-menu nav>a{display:block;padding:12px 14px;min-height:44px;color:#244e74;font-size:14px;text-decoration:underline;text-underline-offset:3px}
body .guided-note,
body .course-meta>button,
body .course-lesson-copy>small,
body .letter-card>span,
body .reading-block-number,
body .alef-introduction small,
body .alef-contrast strong,
body .alef-word-demo>span{color:#45627d}
body .course-lesson-copy>small.review-needed{color:#785332}

/* Small instructional copy must remain readable too: the previous practice
   transcription (#879aab on white) was only 2.90:1; these foregrounds exceed
   4.5:1 on the existing white and light-blue reading/practice surfaces. */
body .ap-page :is(.ap-small,.ap-privacy,.ap-phon,.ap-field-meta,.ap-quota,.ap-tag),
body .ap-card-copy>small,
body .ap-phrase>small,
body .ap-page .ap-nav>.ap-button:not([aria-current=page]),
body .reader-audio-note,
body .reader-coach-line small,
body .reader-page .reader-question-head strong{color:#45627d!important}
