/* G4.1-PEN-BUNDLE-STAGE-RC2
 * Harmonía visual Penal con Inicio BAC y Cuota alimentaria.
 * Reutiliza tokens y componentes existentes; no crea paleta ni sistema paralelo.
 */

/* Las páginas Penal no tienen retrato aprobado en el hero. La grilla de Cuota
 * se colapsa a una columna real para evitar una segunda columna vacía. */
[data-bac-main-context^="penal-"] .bac-service-hero__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-areas:"title";
  gap:0;
  align-items:start;
}

[data-bac-main-context^="penal-"] .bac-service-hero__content{
  grid-area:title;
  width:100%;
  max-width:72rem;
  align-self:start;
}

[data-bac-main-context^="penal-"] .bac-service-hero h1{
  max-width:26ch;
  font-size:clamp(3.25rem,5.7vw,5.1rem);
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

[data-bac-main-context^="penal-"] .bac-service-hero__lede{
  max-width:50rem;
  text-wrap:pretty;
}

[data-bac-main-context^="penal-"] .bac-service-hero .bac-route-map{
  width:min(100%,56rem);
  margin-top:clamp(1.8rem,4vw,2.8rem);
}

/* Misma jerarquía de Inicio/Cuota: inicio de orientación primario, controles
 * internos tranquilos y acciones oficiales secundarias. */
[data-bac-main-context^="penal-"] .bac-control[data-action="open-orienter"],
[data-bac-main-context^="penal-"] .bac-control[data-action="open-orientation"]{
  appearance:none;
  min-height:3.5rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.8rem 1.1rem;
  border:1px solid var(--institutional);
  background:var(--institutional);
  color:var(--paper);
  cursor:pointer;
  font-size:.84rem;
  font-weight:800;
  line-height:1.3;
  text-align:center;
  text-decoration:none;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}

[data-bac-main-context^="penal-"] .bac-control[data-action="open-orienter"]:hover,
[data-bac-main-context^="penal-"] .bac-control[data-action="open-orienter"]:focus-visible,
[data-bac-main-context^="penal-"] .bac-control[data-action="open-orientation"]:hover,
[data-bac-main-context^="penal-"] .bac-control[data-action="open-orientation"]:focus-visible{
  background:var(--accent);
  border-color:var(--accent);
  color:var(--paper);
}

[data-bac-main-context^="penal-"] .bac-control:not([data-action="open-orienter"]):not([data-action="open-orientation"]){
  appearance:none;
  min-height:44px;
  padding:.55rem .4rem;
  border:0;
  background:transparent;
  color:var(--institutional);
  cursor:pointer;
  font-size:.94rem;
  font-weight:700;
  line-height:1.4;
  text-align:center;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:.2em;
}

[data-bac-main-context^="penal-"] .bac-official-action{
  appearance:none;
  min-height:3.5rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:100%;
  padding:.8rem 1.1rem;
  border:1px solid var(--institutional);
  background:transparent;
  color:var(--institutional);
  font-size:.84rem;
  font-weight:800;
  line-height:1.3;
  text-align:center;
  text-decoration:none;
}

[data-bac-main-context^="penal-"] .bac-official-action:hover,
[data-bac-main-context^="penal-"] .bac-official-action:focus-visible{
  background:var(--institutional);
  color:var(--paper);
}

[data-bac-main-context^="penal-"] .bac-secondary-link{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  padding:.4rem 0;
  border:0;
  border-bottom:1px solid currentColor;
  background:transparent;
  color:var(--accent);
  text-decoration:none;
}

/* Recuadros: misma lógica editorial de Cuota/Inicio, sin radios ni sombra. */
[data-bac-main-context^="penal-"] .bac-privacy-box,
[data-bac-main-context^="penal-"] .bac-pen-rev__procedural-caution,
[data-bac-main-context^="penal-"] .bac-pen-eje__execution-caution{
  padding:1.1rem 1.25rem;
  border-radius:0;
  box-shadow:none;
}

[data-bac-main-context^="penal-"] .bac-section-heading,
[data-bac-main-context^="penal-"] .bac-service-section-heading,
[data-bac-main-context^="penal-"] .bac-service-module__header{
  max-width:54rem;
}

@media(max-width:519px){
  [data-bac-main-context^="penal-"] .bac-service-hero{
    padding-block:3.2rem 3.8rem;
  }

  [data-bac-main-context^="penal-"] .bac-service-hero h1{
    max-width:100%;
    font-size:clamp(2.35rem,11.3vw,3.15rem);
    line-height:.97;
    letter-spacing:-.05em;
  }

  [data-bac-main-context^="penal-"] .bac-control[data-action="open-orienter"],
  [data-bac-main-context^="penal-"] .bac-control[data-action="open-orientation"],
  [data-bac-main-context^="penal-"] .bac-official-action{
    width:100%;
  }
}

@media(min-width:520px){
  [data-bac-main-context^="penal-"] .bac-service-hero h1{
    max-width:26ch;
    font-size:clamp(3rem,7vw,4.25rem);
  }
}

@media(min-width:768px){
  [data-bac-main-context^="penal-"] .bac-service-hero__inner{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"title";
    gap:0;
  }

  [data-bac-main-context^="penal-"] .bac-service-hero h1{
    max-width:30ch;
    font-size:clamp(3.8rem,5.2vw,4.8rem);
  }
}

@media(forced-colors:active){
  [data-bac-main-context^="penal-"] .bac-control[data-action="open-orienter"],
  [data-bac-main-context^="penal-"] .bac-control[data-action="open-orientation"],
  [data-bac-main-context^="penal-"] .bac-official-action{
    border-color:ButtonText;
  }
}


/* RC3 — paridad funcional con los cuadros de Cuota alimentaria. */
[data-bac-main-context^="penal-"] .bac-penal-pro-priority .bac-section-heading{
  max-width:70rem;
}

[data-bac-main-context^="penal-"] .bac-penal-pro-priority h2{
  max-width:19ch;
  font-size:clamp(2rem,3.65vw,3.8rem);
  line-height:1.04;
  text-wrap:balance;
}

[data-bac-main-context^="penal-"] .bac-official-grid .bac-secondary-link{
  min-height:3.5rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:fit-content;
  max-width:100%;
  padding:.8rem 1.1rem;
  border:1px solid var(--institutional);
  background:transparent;
  color:var(--institutional);
  font-size:.84rem;
  font-weight:800;
  line-height:1.3;
  text-align:center;
  text-decoration:none;
}

[data-bac-main-context^="penal-"] .bac-official-grid .bac-secondary-link:hover,
[data-bac-main-context^="penal-"] .bac-official-grid .bac-secondary-link:focus-visible{
  background:var(--institutional);
  color:var(--paper);
}

[data-bac-main-context^="penal-"] .bac-penal-professional-method__title{
  margin-top:2rem;
  margin-bottom:1rem;
  font-family:var(--display);
  font-size:clamp(1.35rem,2vw,1.75rem);
  font-weight:400;
  line-height:1.08;
}

[data-bac-main-context^="penal-"] .bac-penal-professional-method{
  counter-reset:bac-penal-method;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin:0;
  padding:1px;
  list-style:none;
  background:var(--line);
}

[data-bac-main-context^="penal-"] .bac-penal-professional-method>li{
  counter-increment:bac-penal-method;
  min-width:0;
  margin:0;
  padding:1.15rem;
  background:var(--paper);
}

[data-bac-main-context^="penal-"] .bac-penal-professional-method>li::before{
  content:"0" counter(bac-penal-method);
  display:block;
  margin-bottom:.65rem;
  color:var(--accent);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.12em;
}

[data-bac-main-context^="penal-"] .bac-orientation-controls,
[data-bac-main-context^="penal-"] .workspace-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.75rem 1rem;
  margin-top:1.5rem;
}

@media(max-width:767px){
  [data-bac-main-context^="penal-"] .bac-penal-professional-method{
    grid-template-columns:minmax(0,1fr);
  }
  [data-bac-main-context^="penal-"] .bac-official-grid .bac-secondary-link{
    width:100%;
  }
  [data-bac-main-context^="penal-"] .bac-orientation-controls,
  [data-bac-main-context^="penal-"] .workspace-actions{
    flex-direction:column;
    align-items:stretch;
  }
  [data-bac-main-context^="penal-"] .bac-orientation-controls>* ,
  [data-bac-main-context^="penal-"] .workspace-actions>*{
    width:100%;
  }
}
