/* in5.us — loop fixes 2026-10-14 (in5-docs #142): the contact categories and the FAQ questions keep their native radio controls, hidden from sight but not from the keyboard or assistive technology.
   Before: input{display:none} removed them from the tab order and the accessibility tree. Rollback: remove the <link> line in includes/htmlhead.two-one.php. */
.bug-types label, .faq-section .inner-container .faqs .accordion > li label { position: relative; }
.bug-types label input, .faq-section .inner-container .faqs .accordion > li label input { display: block !important; position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.bug-types label:has(input:focus-visible), .faq-section .inner-container .faqs .accordion > li label:has(input:focus-visible) { outline: 3px solid #3a5fe6; outline-offset: 2px; }
/* #140: the Summary dialog's close control shows where keyboard focus is */
#modal #closeModal:focus-visible { outline: 3px solid #3a5fe6; outline-offset: 2px; }
/* #130: a drop-down opened from the keyboard looks like one opened by the pointer */
#primary-menu > li > .mega-menu-container.active { display: block; }
#primary-menu > li > a:focus-visible { outline: 3px solid #3a5fe6; outline-offset: 2px; }
/* 2026-10-14 15:4x (Tim: "the font/tile sizes on the Purchase page seem too big"; in5-docs #129): one step down on PHONES only (≤ 640 px) for the purchase page —
   the headline, the plan title and price, the card padding and the Select button, the logo tiles, the section headings. Desktop unchanged (measured 36 / 28 / 206-px cards).
   Rollback: delete this block (the file is versioned ?v=2 in the head include). */
@media (max-width: 640px) {
  .theme-new-b .plans-section .description h1.plans-h1 { font-size: 24px; line-height: 1.2; }
  .theme-new-b .pricing_item { padding: 16px; }
  .plans-section > .inner-container form .pricing .pricing_item .inner-container .price-content .pricing_title { font-size: 18px; }
  .plans-section > .inner-container form .pricing .pricing_item .inner-container .price-content .price .rate { font-size: 24px; line-height: 1.2; }
  .footer-cta .footer-cta-container .description h2 { font-size: 24px; }
  .theme-new-b .pricing_item .pricing_action { min-height: 44px; height: 44px; }
  .theme-new-b .in_page_links a, .theme-new-b .in_page_links label { min-height: 40px; font-size: 15px; }
  /* (logo tiles deliberately untouched: the strip moves at a fixed 3 s per slide, so a narrower slide would slow its pace — Tim 15:32) */
  .theme-new-b .description h2, .theme-new-b .precheck h2 { font-size: 24px; line-height: 1.25; }
}
/* desktop: the two 40-px section headings on the purchase page join the others at 36 px (one scale, one step) */
@media (min-width: 641px) { .theme-new-b .plans-section ~ * .description h2, .theme-new-b .precheck h2 { font-size: 36px; } }
/* desktop (> 1024 px): the plan cards were left out of the 2026-10-14 typography step-down — price 40 → 32 px, card title 24 → 22 px (one step, same scale as the headings) */
@media (min-width: 1025px) {
  .plans-section > .inner-container form .pricing .pricing_item .inner-container .price-content .price .rate { font-size: 32px; }
  .plans-section > .inner-container form .pricing .pricing_item .inner-container .price-content .pricing_title { font-size: 22px; }
}
/* 2026-10-14 15:4x — the Purchase page consistency pass (two reviewer audits on in5-docs #129, Tim 15:31): the money page joins the site scale.
   Desktop targets: h1 32, comparison heading 32, plan name 20 / 600, price 32 / 500 with the suffix at 16, 8 px between name and price, tile radius 12 (the site cards),
   plan illustration 32, table plan headers 20, table cells 14, small print 14. Body text stays 16. The phone block above still applies at <= 640. Rollback: delete this block. */
@media (min-width: 641px) {
  .theme-new-b .plans-section .description h1.plans-h1 { font-size: 32px; }
  .plans-section > .inner-container form .pricing .pricing_item .inner-container .price-content .pricing_title { font-size: 20px; margin-bottom: 8px; }
  .plans-section > .inner-container form .pricing .pricing_item .inner-container .price-content .price .rate { font-size: 32px; font-weight: 500; }
  .plans-section > .inner-container form .pricing .pricing_item .inner-container .price-content .pricing_title img { height: 32px; width: 32px; }
  .plans-comparison .inner-container .table-wrapper table thead tr th .plan-table h3 { font-size: 20px; }
  .plans-comparison .inner-container .table-wrapper table tbody tr td { font-size: 14px; }
  .theme-new-b .plans-section ~ * .description h2, .theme-new-b .precheck h2, .plans-comparison .description h2 { font-size: 32px; }
}
.plans-section > .inner-container form .pricing .pricing_item .inner-container .price-content .price .rate { font-weight: 500; }
.plans-section > .inner-container form .pricing .pricing_item .inner-container .price-content .price .rate .duration, .plans-section > .inner-container form .pricing .pricing_item .inner-container .price-content .price .rate span { font-size: 16px; font-weight: 400; }
.plans-section > .inner-container form .pricing .pricing_item { border-radius: 12px; }
.plans-section > .inner-container form .pricing .pricing_item .inner-container .pricing_feature-list li { line-height: 1.4; margin-bottom: 6px; }
.plans-section .fine-print, .plans-section small, .plans-section .small-print { font-size: 14px; }
/* in5-docs #170: the Annual / Monthly selector by keyboard — the radios stay in the tab order (visually hidden, not display:none) and the chosen tab shows focus */
.plans-section > .inner-container .price-selectors .subscription-tab label input, .plans-comparison .description .subscription-tab label input { display: block !important; position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.plans-section > .inner-container .price-selectors .subscription-tab label:has(input:focus-visible), .plans-comparison .description .subscription-tab label:has(input:focus-visible) { outline: 3px solid #3a5fe6; outline-offset: 2px; }
.plans-section .price-selectors .prices-usd { display: block; text-align: center; font-size: 14px; color: #636363; margin-top: 8px; }
/* in5-docs #170 (reviewer 2026-10-15): the Academy Annual / Monthly tabs get the same treatment — radios in the tab order, focus shown on the chosen tab */
.academy-subscriptions .subscription-tab label input { display: block !important; position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.academy-subscriptions .subscription-tab label { position: relative; }
.academy-subscriptions .subscription-tab label:has(input:focus-visible) { outline: 3px solid #3a5fe6; outline-offset: 2px; }
