/* Conexión Católica 5.6.27 · Contrato central de paletas */

/* Paleta normal accesible */
:root,
html[data-a11y-contrast="normal"]{
  --cc-page:#FFF8F2;
  --cc-surface:#FFFFFF;
  --cc-surface-soft:#EEF7F6;
  --cc-text:#173A4A;
  --cc-muted:#4D6570;
  --cc-link:#0B5E66;
  --cc-border:#6E858E;
  --cc-button-bg:#0B5E66;
  --cc-button-text:#FFFFFF;
  --cc-focus:#B53B00;
  --cc-focus-guard:#FFFFFF;
  --cc-success-bg:#E5F6EF;
  --cc-success-text:#0B4F3B;
  --cc-warning-bg:#FFF4CC;
  --cc-warning-text:#4A3500;
  --cc-danger-bg:#FDEBEC;
  --cc-danger-text:#721C24;
  --cc-info-bg:#EAF4FF;
  --cc-info-text:#173A4A;
}

/* Paleta de alto contraste */
html[data-a11y-contrast="high"]{
  --cc-page:#FFFFFF;
  --cc-surface:#FFFFFF;
  --cc-surface-soft:#F2F2F2;
  --cc-text:#111111;
  --cc-muted:#333333;
  --cc-link:#003F8F;
  --cc-border:#111111;
  --cc-button-bg:#003F8F;
  --cc-button-text:#FFFFFF;
  --cc-focus:#B53B00;
  --cc-focus-guard:#FFFFFF;
  --cc-success-bg:#E8F7ED;
  --cc-success-text:#124D2F;
  --cc-warning-bg:#FFF4CC;
  --cc-warning-text:#111111;
  --cc-danger-bg:#FFE8E8;
  --cc-danger-text:#7B1111;
  --cc-info-bg:#E8F2FF;
  --cc-info-text:#111111;

  --surface:var(--cc-surface);
  --surface-soft:var(--cc-surface-soft);
  --text:var(--cc-text);
  --muted:var(--cc-muted);
  --line:var(--cc-border);
  --primary-deep:var(--cc-link);
}

/* Paleta de contraste máximo */
html[data-a11y-contrast="maximum"]{
  --cc-page:#000000;
  --cc-surface:#000000;
  --cc-surface-soft:#111111;
  --cc-text:#FFFFFF;
  --cc-muted:#F2F2F2;
  --cc-link:#FFFF00;
  --cc-border:#FFFFFF;
  --cc-button-bg:#FFFF00;
  --cc-button-text:#000000;
  --cc-focus:#00FFFF;
  --cc-focus-guard:#000000;
  --cc-success-bg:#000000;
  --cc-success-text:#7CFFB2;
  --cc-warning-bg:#000000;
  --cc-warning-text:#FFFF00;
  --cc-danger-bg:#000000;
  --cc-danger-text:#FF9A9A;
  --cc-info-bg:#000000;
  --cc-info-text:#8FD8FF;

  --surface:var(--cc-surface);
  --surface-soft:var(--cc-surface-soft);
  --text:var(--cc-text);
  --muted:var(--cc-muted);
  --line:var(--cc-border);
  --primary-deep:var(--cc-link);
}

/* Clases semánticas obligatorias para nuevos componentes */
.cc-tone-page{background:var(--cc-page)!important;color:var(--cc-text)!important}
.cc-tone-surface{background:var(--cc-surface)!important;color:var(--cc-text)!important;border-color:var(--cc-border)!important}
.cc-tone-soft{background:var(--cc-surface-soft)!important;color:var(--cc-text)!important;border-color:var(--cc-border)!important}
.cc-tone-success{background:var(--cc-success-bg)!important;color:var(--cc-success-text)!important;border-color:currentColor!important}
.cc-tone-warning{background:var(--cc-warning-bg)!important;color:var(--cc-warning-text)!important;border-color:currentColor!important}
.cc-tone-danger{background:var(--cc-danger-bg)!important;color:var(--cc-danger-text)!important;border-color:currentColor!important}
.cc-tone-info{background:var(--cc-info-bg)!important;color:var(--cc-info-text)!important;border-color:currentColor!important}

/* Foco consistente: doble borde para funcionar sobre fondos claros y oscuros */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid var(--cc-focus)!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 2px var(--cc-focus-guard)!important;
}

/* Contrato para botones, campos y enlaces en los modos reforzados */
html:is([data-a11y-contrast="high"],[data-a11y-contrast="maximum"]){
  background:var(--cc-page)!important;
}
html:is([data-a11y-contrast="high"],[data-a11y-contrast="maximum"]) body{
  background:var(--cc-page)!important;
  color:var(--cc-text)!important;
}
html:is([data-a11y-contrast="high"],[data-a11y-contrast="maximum"]) a:not(.button){
  color:var(--cc-link)!important;
  text-decoration:underline!important;
  text-decoration-thickness:2px!important;
  text-underline-offset:3px!important;
}
html:is([data-a11y-contrast="high"],[data-a11y-contrast="maximum"]) :where(.button,button){
  background:var(--cc-button-bg)!important;
  color:var(--cc-button-text)!important;
  border:2px solid var(--cc-border)!important;
  background-image:none!important;
}
html:is([data-a11y-contrast="high"],[data-a11y-contrast="maximum"]) :where(input,select,textarea){
  background:var(--cc-surface)!important;
  color:var(--cc-text)!important;
  border:2px solid var(--cc-border)!important;
}
html:is([data-a11y-contrast="high"],[data-a11y-contrast="maximum"]) :where(input,textarea)::placeholder{
  color:var(--cc-muted)!important;
  opacity:1!important;
}

/* Corrección completa de la guía de confesión */
body[data-page="confession-guide"]{
  --conf-page:var(--cc-page);
  --conf-surface:var(--cc-surface);
  --conf-soft:var(--cc-surface-soft);
  --conf-text:var(--cc-text);
  --conf-muted:var(--cc-muted);
  --conf-link:var(--cc-link);
  --conf-border:var(--cc-border);
}

body[data-page="confession-guide"] :where(
  .confession-foundations-v5626 article,
  .confession-roadmap-v5626,
  .confession-section-v5626,
  .commandment-card-v5626,
  .precept-grid-v5626 article,
  .vice-grid-v5626 article,
  .state-grid-v5626 article,
  .mercy-columns-v5626 article,
  .official-sources-v5625
){
  background:var(--conf-surface)!important;
  color:var(--conf-text)!important;
  border-color:var(--conf-border)!important;
}

body[data-page="confession-guide"] :where(
  .confession-roadmap-v5626 li,
  .commandment-card-v5626,
  .catechesis-list-v5625 article,
  .official-sources-v5625 li
){
  background:var(--conf-soft)!important;
  color:var(--conf-text)!important;
  border-color:var(--conf-border)!important;
}

body[data-page="confession-guide"] :where(
  h1,h2,h3,h4,p,li,strong,label,summary,small,dt,dd
){
  color:var(--conf-text);
}

body[data-page="confession-guide"] :where(
  .section-intro-v5625,
  .official-sources-v5625 li span
){
  color:var(--conf-muted)!important;
}

body[data-page="confession-guide"] :where(
  .confession-hero-v5626>aside,
  .confession-safety-v5626
){
  background:var(--cc-warning-bg)!important;
  color:var(--cc-warning-text)!important;
  border-color:var(--cc-warning-text)!important;
  background-image:none!important;
}

body[data-page="confession-guide"] :where(
  .confession-hero-v5626>aside h2,
  .confession-hero-v5626>aside h3,
  .confession-hero-v5626>aside p,
  .confession-hero-v5626>aside strong,
  .confession-safety-v5626 h2,
  .confession-safety-v5626 p,
  .confession-safety-v5626 li,
  .confession-safety-v5626 strong
){
  color:var(--cc-warning-text)!important;
}

body[data-page="confession-guide"] .confession-section-v5626.mercy{
  background:var(--cc-info-bg)!important;
  color:var(--cc-info-text)!important;
  border-color:var(--cc-border)!important;
  background-image:none!important;
}
body[data-page="confession-guide"] .confession-section-v5626.mercy :where(h2,h3,p,li,strong){
  color:var(--cc-info-text)!important;
}
body[data-page="confession-guide"] .omission-list-v5626 li{
  background:var(--cc-surface)!important;
  color:var(--cc-text)!important;
  border-color:var(--cc-border)!important;
}

body[data-page="confession-guide"] .confession-local-check-v5626{
  background:var(--cc-surface)!important;
  color:var(--cc-text)!important;
  border-color:var(--cc-border)!important;
}
body[data-page="confession-guide"] .confession-local-check-v5626 input{
  accent-color:var(--cc-link);
}

body[data-page="confession-guide"] .confession-roadmap-v5626 li>span,
body[data-page="confession-guide"] .commandment-card-v5626 summary>span,
body[data-page="confession-guide"] .confession-safety-v5626>span{
  background:var(--cc-button-bg)!important;
  color:var(--cc-button-text)!important;
  border:2px solid var(--cc-border)!important;
}

body[data-page="confession-guide"] .v56-private-note{
  color:var(--cc-text)!important;
}
body[data-page="confession-guide"] .v56-private-note textarea{
  background:var(--cc-surface)!important;
  color:var(--cc-text)!important;
  border-color:var(--cc-border)!important;
}

/* El hero conserva identidad solo en modo normal */
html[data-a11y-contrast="normal"] body[data-page="confession-guide"] .confession-hero-v5626>div{
  color:#FFFFFF;
}
html[data-a11y-contrast="normal"] body[data-page="confession-guide"] .confession-hero-v5626>div :where(h1,h2,h3,p,strong,span){
  color:#FFFFFF;
}

/* Alto y máximo: sin degradados, sin texto heredado incorrectamente */
html:is([data-a11y-contrast="high"],[data-a11y-contrast="maximum"])
body[data-page="confession-guide"] .confession-hero-v5626>div{
  background:var(--cc-surface)!important;
  background-image:none!important;
  color:var(--cc-text)!important;
  border:2px solid var(--cc-border)!important;
  box-shadow:none!important;
}
html:is([data-a11y-contrast="high"],[data-a11y-contrast="maximum"])
body[data-page="confession-guide"] .confession-hero-v5626>div :where(
  h1,h2,h3,h4,p,li,strong,small,span
){
  color:var(--cc-text)!important;
}
html:is([data-a11y-contrast="high"],[data-a11y-contrast="maximum"])
body[data-page="confession-guide"] :where(
  .confession-foundations-v5626 article,
  .confession-roadmap-v5626,
  .confession-section-v5626,
  .commandment-card-v5626,
  .precept-grid-v5626 article,
  .vice-grid-v5626 article,
  .state-grid-v5626 article,
  .mercy-columns-v5626 article,
  .official-sources-v5625,
  .official-sources-v5625 li
){
  box-shadow:none!important;
  background-image:none!important;
}

/* Nota del panel de accesibilidad */
.a11y-palette-note-v5627{
  display:block;
  margin:.55rem 0 0;
  color:var(--cc-muted);
  font-size:.82rem;
}

/* Laboratorio */
.contrast-lab-hero-v5627{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);
  gap:1rem;
  margin-bottom:1rem;
}
.contrast-lab-hero-v5627>div{
  padding:clamp(1.4rem,4vw,2.7rem);
  border-radius:26px;
  background:var(--cc-surface);
  color:var(--cc-text);
  border:1px solid var(--cc-border);
}
.contrast-lab-hero-v5627 h1{margin:.3rem 0;font-size:clamp(2.1rem,4vw,3.7rem)}
.contrast-lab-hero-v5627 aside{
  display:grid;
  place-items:center;
  align-content:center;
  text-align:center;
  padding:1.2rem;
  border-radius:26px;
  border:2px solid var(--cc-border);
}
.contrast-lab-hero-v5627 aside.is-pass{
  background:var(--cc-success-bg);
  color:var(--cc-success-text);
}
.contrast-lab-hero-v5627 aside.is-fail{
  background:var(--cc-danger-bg);
  color:var(--cc-danger-text);
}
.contrast-lab-hero-v5627 aside strong{font-size:2.2rem}
.contrast-lab-hero-v5627 aside span,.contrast-lab-hero-v5627 aside small{display:block;color:inherit}

.contrast-contract-v5627,.contrast-debug-v5627{
  display:grid;
  grid-template-columns:minmax(230px,.6fr) minmax(0,1.4fr);
  gap:1rem;
  padding:1.2rem;
  border:1px solid var(--cc-border);
  border-radius:20px;
  background:var(--cc-surface);
  color:var(--cc-text);
  margin:1rem 0;
}
.contrast-contract-v5627 ul{margin:0;display:grid;gap:.4rem}

.contrast-mode-switcher-v5627{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  padding:.8rem;
  border:1px solid var(--cc-border);
  border-radius:18px;
  background:var(--cc-surface);
  margin:1rem 0;
}
.contrast-mode-switcher-v5627 button{
  display:flex;
  align-items:center;
  gap:.45rem;
}
.contrast-preview-dot-v5627{
  width:22px;
  height:22px;
  border-radius:50%;
  background:var(--dot-bg);
  border:3px solid var(--dot-fg);
}

.contrast-palette-grid-v5627{display:grid;gap:1.1rem}
.contrast-palette-card-v5627{
  padding:1.2rem;
  border:1px solid var(--cc-border);
  border-radius:22px;
  background:var(--cc-surface);
  color:var(--cc-text);
}
.contrast-palette-card-v5627>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}
.contrast-palette-card-v5627>header h2{margin:.25rem 0}
.contrast-palette-card-v5627>header>strong{
  padding:.45rem .7rem;
  border-radius:999px;
}
.contrast-palette-card-v5627 .pass{
  background:var(--cc-success-bg);
  color:var(--cc-success-text);
  border:1px solid currentColor;
}
.contrast-palette-card-v5627 .fail{
  background:var(--cc-danger-bg);
  color:var(--cc-danger-text);
  border:1px solid currentColor;
}

.contrast-swatches-v5627{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:.65rem;
  margin:1rem 0;
}
.contrast-swatches-v5627>div{
  display:grid;
  grid-template-columns:42px 1fr;
  gap:.55rem;
  align-items:center;
  padding:.65rem;
  border:1px solid var(--cc-border);
  border-radius:14px;
  background:var(--cc-surface);
}
.contrast-swatches-v5627>div>span{
  grid-row:1/3;
  width:40px;
  height:40px;
  border-radius:10px;
  background:var(--swatch);
  border:1px solid var(--cc-border);
}
.contrast-swatches-v5627 code{font-size:.78rem}

.contrast-component-sample-v5627{
  display:grid;
  gap:.65rem;
  padding:1rem;
  border:2px solid var(--sample-border);
  border-radius:18px;
  background:var(--sample-surface);
  color:var(--sample-text);
}
.contrast-component-sample-v5627 h3,.contrast-component-sample-v5627 p{color:var(--sample-text)}
.contrast-component-sample-v5627 p span{color:var(--sample-muted)}
.contrast-component-sample-v5627 a{color:var(--sample-link)}
.contrast-component-sample-v5627 button{
  justify-self:start;
  background:var(--sample-button);
  color:var(--sample-button-text);
  border:2px solid var(--sample-border);
}
.contrast-component-sample-v5627 input{
  display:block;
  width:min(100%,420px);
  margin-top:.25rem;
  background:var(--sample-surface);
  color:var(--sample-text);
  border:2px solid var(--sample-border);
}
.contrast-component-sample-v5627 :focus-visible{
  outline-color:var(--sample-focus)!important;
}

.contrast-results-v5627{margin-top:1rem;overflow:auto}
.contrast-results-v5627 table{min-width:720px}
.contrast-results-v5627 th,.contrast-results-v5627 td{
  padding:.7rem;
  border-bottom:1px solid var(--cc-border);
  text-align:left;
}
.contrast-results-v5627 .pass,.contrast-results-v5627 .fail{
  display:inline-block;
  padding:.25rem .45rem;
  border-radius:999px;
}

@media(max-width:800px){
  .contrast-lab-hero-v5627,.contrast-contract-v5627,.contrast-debug-v5627{
    grid-template-columns:1fr;
  }
  .contrast-palette-card-v5627>header{display:grid}
}
