/*
Theme Name: Thinking Accessible Theme
Theme URI: https://www.leonardipaolo.com/
Author: Paolo Leonardi
Description: Accessible classic WordPress theme for Paolo Leonardi, Digital Accessibility & Quality Assurance Specialist.
Version: 1.0.1
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: thinking-accessible-theme
*/

:root {
  --ta-blue: #0b315f;
  --ta-green: #9acb3f;
  --ta-brown: #8d674d;
  --ta-text: #37353a;
  --ta-muted: #4e4d50;
  --ta-footer: #101010;
  --ta-white: #ffffff;
  --ta-hero-start: #efd9c6;
  --ta-hero-end: #c29b8f;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--ta-text);
  background: #fff;
  font-size: 18px;
  line-height: 1.6;
}
a { color: #0645d9; }
a:hover, a:focus { text-decoration-thickness: 0.18em; }
:focus-visible { outline: 3px solid var(--ta-blue); outline-offset: 3px; }
.skip-link {
  position: absolute;
  left: -999px;
  top: 0;
  z-index: 9999;
  background: #fff;
  color: #000;
  padding: 0.75rem 1rem;
  border: 3px solid var(--ta-blue);
}
.skip-link:focus { left: 1rem; top: 1rem; }

.ta-site-header {
  background: #fff;
  padding: 1rem clamp(1rem, 3vw, 2.5rem);
}
.ta-header-inner {
  max-width: 1480px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 0.9rem 1.3rem;
  border-radius: 0 0 16px 16px;
  box-shadow: 0 1px 8px rgba(0,0,0,.18);
  background: #fff;
}
.ta-logo-link { flex: 0 0 auto; display: inline-flex; align-items: center; }
.ta-logo { width: 150px; height: 150px; object-fit: contain; display: block; }
.ta-main-nav { flex: 1 1 auto; }
.ta-main-nav ul { list-style: none; padding: 0; margin: 0; }
.ta-main-menu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.3rem 1.25rem;
}
.ta-main-menu a, .ta-main-menu summary {
  color: #09294e;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
}
.ta-main-menu a:hover, .ta-main-menu a:focus, .ta-main-menu summary:hover, .ta-main-menu summary:focus { text-decoration: underline; }
.ta-main-menu details { position: relative; }
.ta-submenu {
  min-width: 260px;
  margin-top: .45rem !important;
  padding: .7rem !important;
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: .6rem;
  box-shadow: 0 6px 16px rgba(0,0,0,.18);
  z-index: 20;
}
@media (min-width: 900px) { .ta-main-menu details[open] .ta-submenu { position: absolute; left: 0; } }
.ta-submenu li + li { margin-top: .45rem; }
.ta-header-cta { flex: 0 0 auto; }
.ta-button {
  display: inline-block;
  background: var(--ta-brown);
  color: #fff;
  padding: .7rem 1rem;
  border-radius: .45rem;
  font-weight: 700;
  text-decoration: none;
  text-align: center;
  line-height: 1.2;
}
.ta-button:hover, .ta-button:focus { color: #fff; }

main { display: block; }
.ta-hero {
  max-width: 1480px;
  margin: 1.5rem auto 3rem;
  min-height: 360px;
  border-radius: 0 0 22px 22px;
  background: linear-gradient(110deg, var(--ta-hero-start), var(--ta-hero-end));
  padding: clamp(2.4rem, 6vw, 6rem) clamp(1.8rem, 5vw, 4rem);
  display: flex;
  align-items: center;
}
.ta-hero-content { max-width: 850px; }
h1 {
  margin: 0 0 1.2rem;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.15;
  color: var(--ta-text);
}
.ta-hero p { color: var(--ta-muted); font-size: 1.2rem; max-width: 980px; }
.ta-section {
  max-width: 1000px;
  margin: 3.5rem auto;
  padding: 0 1.5rem;
}
.ta-section h2 { text-align: center; font-size: clamp(1.8rem, 3vw, 2.5rem); font-weight: 500; margin: 0 0 1.7rem; }
.ta-accessible-list { max-width: 850px; margin: 0 auto; padding-left: 2rem; font-weight: 600; }
.ta-accessible-list li { margin-bottom: 1rem; }
.ta-about { text-align: center; }
.ta-profile-image { width: 240px; max-width: 80%; height: auto; border-radius: 12px; }
.ta-about-text { max-width: 850px; margin: 1.2rem auto; color: var(--ta-brown); }
.ta-latest-posts { text-align: center; }
.ta-post-list { list-style: none; padding: 0; margin: 0 auto 1.5rem; }
.ta-post-list li { margin: .25rem 0; }
.ta-no-posts { color: var(--ta-muted); }

.ta-site-footer {
  background: var(--ta-footer);
  color: #fff;
  margin-top: 4rem;
}
.ta-footer-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 3rem;
  padding: 4rem 1.5rem 2.5rem;
}
.ta-footer-column h2 { font-size: 1.35rem; margin-top: 0; }
.ta-site-footer a { color: #fff; }
.ta-site-footer ul { margin: 0; padding-left: 1.4rem; }
.ta-site-footer li { margin: .55rem 0; }
.ta-copyright { text-align: center; padding: 1.25rem 1rem 2rem; color: #fff; }
.ta-copyright p { margin: 0; }
.sr-only {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

@media (max-width: 1100px) {
  .ta-header-inner { align-items: flex-start; }
  .ta-main-menu { justify-content: flex-start; }
  .ta-header-cta { display: none; }
}
@media (max-width: 800px) {
  body { font-size: 17px; }
  .ta-header-inner { flex-direction: column; gap: 1rem; }
  .ta-logo { width: 118px; height: 118px; }
  .ta-main-menu { flex-direction: column; align-items: flex-start; gap: .55rem; }
  .ta-main-menu a, .ta-main-menu summary { white-space: normal; }
  .ta-submenu { box-shadow: none; }
  .ta-hero { min-height: auto; margin-top: 1rem; border-radius: 0 0 18px 18px; }
  .ta-footer-inner { grid-template-columns: 1fr; gap: 2rem; }
}

.ta-hero-motto {
  margin: -0.4rem 0 1.1rem;
  font-size: clamp(1.25rem, 2.2vw, 1.7rem) !important;
  font-weight: 700;
  color: var(--ta-brown) !important;
}
.ta-footer-column ul ul {
  margin-top: .45rem;
  padding-left: 1.2rem;
}
.ta-footer-menu details {
  margin: 0;
}
.ta-footer-menu summary {
  color: #fff;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: .12em;
}
.ta-footer-menu summary:hover,
.ta-footer-menu summary:focus {
  text-decoration-thickness: 0.18em;
}
.ta-footer-menu details > ul {
  margin-top: .55rem;
}

/* FIX submenu long item wrapping */
.main-navigation ul ul li a {
    white-space: normal;
    line-height: 1.4;
    display: block;
    padding-right: 10px;
}

.main-navigation ul ul li {
    text-align: left;
}

.main-navigation ul ul {
    padding-left: 0;
}


/* Final logo sizing: restore larger centered logo without changing menu position */
.ta-header-inner {
  align-items: center !important;
}

.ta-logo-link {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 230px !important;
}

.ta-logo {
  width: 230px !important;
  height: 230px !important;
  max-width: 230px !important;
  max-height: 230px !important;
  object-fit: contain !important;
  display: block !important;
}

/* Keep the mobile menu in its original left-aligned position */
@media (max-width: 800px) {
  .ta-header-inner {
    align-items: center !important;
    text-align: left !important;
  }

  .ta-logo-link {
    flex: 0 0 auto !important;
    width: 100% !important;
    justify-content: center !important;
  }

  .ta-logo {
    width: 185px !important;
    height: 185px !important;
    max-width: 185px !important;
    max-height: 185px !important;
  }

  .ta-main-nav {
    width: 100% !important;
  }

  .ta-main-menu {
    align-items: flex-start !important;
    text-align: left !important;
  }

  .ta-main-menu details,
  .ta-main-menu summary {
    text-align: left !important;
  }
}

/* Keep long menu labels aligned with the other entries when they wrap */
.ta-main-menu summary {
  white-space: normal;
  line-height: 1.35;
}

.ta-submenu {
  padding-left: .7rem !important;
}

/* FINAL LOGO SIZE FIX */
.ta-logo {
    width: 220px !important;
    height: auto !important;
    max-width: 220px !important;
}

@media (max-width: 768px) {
    .ta-logo {
        width: 170px !important;
    }
}

/* REMOVE LOGO BORDER FINAL FIX */
.ta-logo,
.ta-logo-link img {
    border: none !important;
}

.ta-logo-link {
    border: none !important;
    box-shadow: none !important;
}

/* FINAL DEFINITIVE: remove visible border/outline only around logo */
.ta-logo-link,
.ta-logo-link:focus,
.ta-logo-link:focus-visible,
.ta-logo-link:active,
.ta-logo-link:hover,
.ta-logo-link img,
.ta-logo {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    text-decoration: none !important;
}

.ta-logo-link:focus .ta-logo,
.ta-logo-link:focus-visible .ta-logo,
.ta-logo-link:active .ta-logo,
.ta-logo-link:hover .ta-logo {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

/* REFINED ACCESSIBLE FOCUS FOR LOGO */
.ta-logo-link:focus,
.ta-logo-link:focus-visible {
    outline: 3px solid #1a73e8 !important;
    outline-offset: 6px !important;
    border-radius: 14px !important;
    box-shadow: none !important;
}

.ta-logo-link:focus:not(:focus-visible) {
    outline: none !important;
}


/* =========================================
   Accessibility Test Platform
========================================= */

.thinking-accessible-platform{
    max-width:1100px;
    margin:40px auto;
    padding:20px;
}

.wcag-pagination{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:24px;
}

.wcag-step{
    display:none;
}

.wcag-step.active{
    display:block;
}

.wcag-step-button,
.platform-actions button,
#generate-report{
    border:none;
    padding:12px 18px;
    border-radius:8px;
    cursor:pointer;
}

.verification-card{
    border:1px solid #d9d9d9;
    padding:20px;
    border-radius:10px;
    margin-bottom:24px;
}

.verification-card textarea{
    width:100%;
    min-height:120px;
}

.platform-actions{
    margin-top:30px;
}


.wcag-tabs{
display:flex;
gap:10px;
flex-wrap:wrap;
margin-bottom:30px;
}

.wcag-tab{
padding:12px 18px;
border-radius:8px;
border:1px solid #ccc;
background:#f5f5f5;
cursor:pointer;
}

.wcag-tab.active{
font-weight:bold;
border-color:#000;
}

.wcag-panel{
display:none;
}

.wcag-panel.active{
display:block;
}

.criterion-card{
border:1px solid #ddd;
padding:24px;
margin-bottom:30px;
border-radius:10px;
}

.verification-block{
border-top:1px solid #ddd;
padding-top:20px;
margin-top:20px;
}

.action-list{
padding-left:20px;
}

.verification-block textarea{
width:100%;
min-height:120px;
margin-bottom:20px;
}


/* Accessibility platform v4 - scoped */
.thinking-accessible-platform{max-width:1180px;margin:40px auto;padding:20px;}
.thinking-accessible-platform .panel,
.thinking-accessible-platform details.criterion{background:#fff;border:1px solid #c8c8d0;border-radius:.75rem;margin:1rem 0;padding:1rem;}
.thinking-accessible-platform .fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;}
.thinking-accessible-platform .criterion-text{background:#eef5fb;border-left:4px solid #003b71;padding:1rem;border-radius:.35rem;margin:1rem 0;}
.thinking-accessible-platform .verification-section{border:1px solid #c8c8d0;border-radius:.5rem;background:#fff;margin:1rem 0;padding:1rem;}
.thinking-accessible-platform .result-gate{padding:.5rem;border-left:4px solid #777;background:#f4f4f4;}
.thinking-accessible-platform .result-gate.ready{border-left-color:#195b2c;background:#eef8ef;}
.thinking-accessible-platform input[type=text],
.thinking-accessible-platform textarea,
.thinking-accessible-platform input[type=date]{width:100%;max-width:50rem;border:1px solid #777;border-radius:.25rem;padding:.5rem;}
.thinking-accessible-platform textarea{min-height:5rem;}
.thinking-accessible-platform .criteria-list{list-style:none;margin:0;padding:0;}
.thinking-accessible-platform .criteria-list>li{margin:.75rem 0;}
.thinking-accessible-platform summary{cursor:pointer;font-weight:700;}
.thinking-accessible-platform .wcag-tabs{display:flex;gap:12px;flex-wrap:wrap;margin:2rem 0;}
.thinking-accessible-platform .wcag-tab{padding:.8rem 1rem;border:1px solid #c8c8d0;border-radius:.5rem;cursor:pointer;background:#fff;}
.thinking-accessible-platform .wcag-tab.active{font-weight:700;border:2px solid #003b71;}
.thinking-accessible-platform .wcag-panel{display:none;}
.thinking-accessible-platform .wcag-panel.active{display:block;}
.thinking-accessible-platform .platform-summary-actions{display:flex;gap:1rem;margin:2rem 0;}
.thinking-accessible-platform .platform-summary-actions button{padding:.8rem 1rem;border-radius:.5rem;border:1px solid #c8c8d0;cursor:pointer;}

#accessibility-save-status{font-weight:600;margin:1rem 0;}
#complete-accessibility-test{margin-left:.5rem;}


.wcag-step-navigation{
  margin: 2rem 0 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

.wcag-step-navigation button{
  padding: .75rem 1rem;
  border: 1px solid #c8c8d0;
  border-radius: .5rem;
  cursor: pointer;
  background: #fff;
}


.ta-in-progress-tests{
  background: #fff;
  border: 1px solid #c8c8d0;
  border-radius: .75rem;
  padding: 1rem;
  margin: 1rem 0;
}

.ta-in-progress-tests ul{
  margin-bottom: 0;
}

.verification-section[hidden], .actions li[hidden]{display:none!important;}


/* Remove decorative icons/list markers before checklist action checkboxes */
.thinking-accessible-platform .actions ul,
.thinking-accessible-platform .actions li{
  list-style: none !important;
}

.thinking-accessible-platform .actions li::before,
.thinking-accessible-platform .actions label::before,
.thinking-accessible-platform .actions input[type="checkbox"]::before{
  content: none !important;
  display: none !important;
  background: none !important;
}

.thinking-accessible-platform .actions label{
  background-image: none !important;
}


.ta-final-report{
  margin-top: 2rem;
  padding: 1rem;
  border: 1px solid #c8c8d0;
  border-radius: .75rem;
  background: #fff;
}

.ta-final-report dl{
  display: grid;
  grid-template-columns: minmax(10rem, 18rem) 1fr;
  gap: .5rem 1rem;
}

.ta-final-report dt{
  font-weight: 700;
}

.ta-report-verification{
  border-top: 1px solid #c8c8d0;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
}

.ta-report-actions button{
  margin-right: .5rem;
  margin-bottom: .5rem;
}

@media print{
  body *{
    visibility: hidden;
  }

  #report-output,
  #report-output *{
    visibility: visible;
  }

  #report-output{
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
  }

  .ta-report-actions{
    display: none !important;
  }
}

.ta-complete-test-button{margin-left:.5rem;}#ta-completed-view-message{font-weight:600;margin:1rem 0;}

#ta-global-save-status{font-weight:600;margin:1rem 0;}


.ta-completed-tests-details{
  margin: 1rem 0;
  padding: .75rem;
  border: 1px solid #c8c8d0;
  border-radius: .5rem;
  background: #fff;
}

.ta-completed-tests-details summary{
  cursor: pointer;
  font-weight: 700;
}


.ta-in-progress-tests-details{
  margin: 1rem 0;
  padding: .75rem;
  border: 1px solid #c8c8d0;
  border-radius: .5rem;
  background: #fff;
}

.ta-in-progress-tests-details summary{
  cursor: pointer;
  font-weight: 700;
}


.ta-assigned-tests-details{
  margin: 1rem 0;
  padding: .75rem;
  border: 1px solid #c8c8d0;
  border-radius: .5rem;
  background: #fff;
}

.ta-assigned-tests-details summary{
  cursor: pointer;
  font-weight: 700;
}


.ta-assignment-meta{margin-top:.75rem;}
.ta-assigned-tests-list>li{margin-bottom:1.25rem;}
.ta-accept-assigned-test-inline,#ta-accept-assigned-test-v51{margin-top:.5rem;}


.ta-admin-assignment-tabs [role="tablist"]{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin:1rem 0;
}

.ta-admin-assignment-tabs [role="tab"]{
  padding:.5rem .75rem;
}

.ta-admin-assignment-tabs [role="tab"][aria-selected="true"]{
  font-weight:700;
  text-decoration:underline;
}

.ta-assignment-list-item{
  margin-bottom:1.25rem;
}

.ta-admin-row-details{margin:.5rem 0;}
.ta-admin-row-details summary{font-weight:700;cursor:pointer;}


.ta-timeline-table caption{
  font-weight: 700;
  margin-bottom: .5rem;
  text-align: left;
}

.ta-report-timeline-details{
  margin: 1rem 0;
}

.ta-report-timeline-details summary{
  font-weight: 700;
  cursor: pointer;
}


.ta-report-main-summary{
  margin-bottom: 1rem;
}

.ta-report-timeline-details,
.ta-report-guideline-details,
.ta-report-criterion-details{
  margin: 1rem 0;
}

.ta-report-timeline-details summary,
.ta-report-guideline-details summary,
.ta-report-criterion-details summary{
  font-weight: 700;
  cursor: pointer;
}

.ta-report-macroarea{
  margin-top: 1.5rem;
}

.ta-report-verification{
  margin: 1rem 0;
}

.ta-admin-approve-test{margin-top:.25rem;}


.ta-nonconformity-fields{
  margin:1rem 0;
  padding:1rem;
  border:1px solid currentColor;
}
.ta-nonconformity-fields legend,
.ta-nonconformity-fields label{
  font-weight:700;
}
.ta-nonconformity-report-list{
  margin-top:.75rem;
}


.ta-result-extra-fields{
  margin:1rem 0;
  padding:1rem;
  border:1px solid currentColor;
}
.ta-result-extra-fields legend,
.ta-result-extra-fields label{
  font-weight:700;
}
.ta-nonconformity-report-list,
.ta-notapplicable-report-list{
  margin-top:.75rem;
}
