@charset "UTF-8";
/* ============================================================
   doc-a-pac.css -- v3.22.0
   Portal Doc a Pac. Namespace: --dap-*
   ASCII puro (el server sirve text/css sin charset header).

   REGLA DE COLOR: --dap-teal para fills y bordes; --dap-teal-ink para TEXTO
   chico sobre fondo claro (#00BFA5 da 2.33:1, no pasa WCAG AA).
   ============================================================ */

:root{
  --dap-bg:#FFFFFF;
  --dap-bg-soft:#F8F9FC;
  --dap-ink:#0D1117;
  --dap-ink-soft:rgba(13,17,23,.72);
  --dap-ink-muted:rgba(13,17,23,.62);
  --dap-line:rgba(13,17,23,.10);
  --dap-teal:#00BFA5;
  --dap-teal-ink:#00806E;
  --dap-blue:#3B72AD;
  --dap-display:"Bricolage Grotesque", Georgia, serif;
  --dap-body:"Figtree", system-ui, -apple-system, sans-serif;
  --dap-max:1080px;
  --dap-gutter:clamp(20px, 5vw, 80px);
}

/* El header global es fixed y por eso global-chrome.css empuja el body 84px
   (ver --pd-h-h). El header del portal es sticky: ese offset deja una franja
   vacia arriba. body.pd-portal la agrega inc/doc-a-pac.php via body_class.
   Necesita !important: la regla global tambien lo usa y la especificidad
   sola no alcanza. */
body.pd-portal{ padding-top:0 !important; }

.dap-header{
  position:sticky; top:0; z-index:90;
  background:var(--dap-bg);
  border-bottom:1px solid var(--dap-line);
}
.dap-header-bar{
  max-width:var(--dap-max); margin:0 auto;
  padding:0 var(--dap-gutter);
  min-height:68px;
  display:flex; align-items:center; gap:clamp(16px,3vw,36px);
}
.dap-brand{ display:flex; align-items:center; gap:10px; text-decoration:none; padding:8px 0 }
.dap-brand-iso{ width:44px; height:44px; object-fit:contain }
.dap-brand-text{ display:flex; flex-direction:column; line-height:1.1 }
.dap-brand-l1{
  font-family:var(--dap-display); font-weight:700; font-size:1.05rem;
  color:var(--dap-ink); letter-spacing:-.01em;
}
.dap-brand-l2{
  font-family:var(--dap-body); font-size:.7rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--dap-teal-ink);
}
.dap-nav{ display:flex; gap:clamp(10px,2vw,24px); margin-left:auto; flex-wrap:wrap }
.dap-nav a{
  font-family:var(--dap-body); font-size:.95rem; color:var(--dap-ink-soft);
  text-decoration:none; padding:12px 0; min-height:44px;
  display:inline-flex; align-items:center;
  transition:color .2s ease;
}
.dap-nav a:hover{ color:var(--dap-ink) }
.dap-nav a.is-current{
  color:var(--dap-teal-ink); font-weight:700;
  border-bottom:2px solid var(--dap-teal);
}
.dap-pro{
  font-family:var(--dap-body); font-size:.82rem; font-weight:600;
  color:var(--dap-ink-muted); text-decoration:none;
  padding:12px 0; min-height:44px; display:inline-flex; align-items:center;
  border-bottom:1px solid var(--dap-line);
  white-space:nowrap;
}
.dap-pro:hover{ color:var(--dap-teal-ink) }

.dap-header :focus-visible{ outline:2px solid var(--dap-teal); outline-offset:3px; border-radius:4px }

@media (max-width: 860px){
  .dap-header-bar{ flex-wrap:wrap; padding-top:8px; padding-bottom:8px; row-gap:4px }
  .dap-nav{ order:3; width:100%; margin-left:0; border-top:1px solid var(--dap-line) }
  .dap-pro{ margin-left:auto }
}

/* <=480px: brand + link "profesional" no entran juntos a font/tamano normal
   (medido: ~160px + ~220px > ~320px de contenido disponible a 360px de
   viewport). Se achican ambos para que compartan la primera fila y el header
   no pase de 2 filas (brand+pro / nav) -- a 3 filas ocupaba 25-35% de la
   pantalla en un telefono chico, fijo por el sticky. */
@media (max-width: 480px){
  .dap-brand-iso{ width:34px; height:34px }
  .dap-brand-l2{ display:none }
  .dap-brand-l1{ font-size:.88rem }
  .dap-pro{
    font-size:.7rem; line-height:1.2; white-space:normal; text-align:right;
    max-width:150px; border-bottom:0; padding:6px 0;
  }
}

@media (prefers-reduced-motion: reduce){
  .dap-nav a, .dap-pro{ transition:none }
}

/* -- Pieza individual ----------------------------------------- */
.dap{ background:var(--dap-bg); color:var(--dap-ink); font-family:var(--dap-body); line-height:1.7 }
.dap *{ box-sizing:border-box }
.dap-shell{ max-width:760px; margin:0 auto; padding:0 var(--dap-gutter) }
.dap-piece{ padding-top:clamp(40px,7vh,72px); padding-bottom:clamp(64px,10vh,110px) }

.dap-piece-kicker{ margin:0 0 14px; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase }
.dap-piece-kicker a{ color:var(--dap-teal-ink); text-decoration:none; font-weight:700 }

.dap-piece-title{
  font-family:var(--dap-display); font-weight:500;
  font-size:clamp(2rem,5vw,3.2rem); line-height:1.08; letter-spacing:-.025em;
  margin:0 0 18px; text-wrap:balance;
}

/* La firma es protagonica: la autoridad clinica de la pieza es el profesional,
   no Plataforma Doc. */
.dap-piece-author{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:10px;
  margin:0 0 24px; padding-bottom:18px; border-bottom:1px solid var(--dap-line);
}
.dap-piece-author-name{ font-family:var(--dap-display); font-size:1.1rem; font-weight:600; color:var(--dap-ink) }
.dap-piece-author-esp{ font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; color:var(--dap-ink-muted) }

.dap-piece-lead{ font-size:1.15rem; line-height:1.65; color:var(--dap-ink-soft); margin:0 0 30px; text-wrap:pretty }

.dap-embed{ position:relative; width:100%; aspect-ratio:16/9; background:#000; border-radius:10px; overflow:hidden; margin-bottom:32px }
.dap-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0 }

.dap-audio{ width:100%; margin-bottom:32px }

.dap-pdf{
  display:inline-flex; flex-direction:column; gap:4px;
  padding:18px 26px; margin-bottom:32px; min-height:44px;
  background:var(--dap-teal); color:#04120F; border-radius:10px;
  font-weight:700; text-decoration:none;
  transition:transform .2s ease, box-shadow .2s ease;
}
.dap-pdf:hover{ transform:translateY(-1px); box-shadow:0 16px 30px -18px rgba(0,191,165,.7) }
.dap-pdf-meta{ font-weight:500; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; opacity:.85 }

.dap-piece-body{ font-size:1.05rem; color:var(--dap-ink-soft) }
.dap-piece-body h2{ font-family:var(--dap-display); font-size:1.6rem; color:var(--dap-ink); margin:36px 0 12px; line-height:1.2 }
.dap-piece-body p{ margin:0 0 18px }
/* WCAG 1.4.1: el color solo (1.57:1 contra el texto que lo rodea) no alcanza
   para distinguir un link. El subrayado es el indicador que no depende del
   contraste de color. */
.dap-piece-body a{
  color:var(--dap-teal-ink); text-decoration:underline; text-underline-offset:2px;
}
.dap-piece-body a:hover{ text-decoration-thickness:2px }

.dap-piece-origen{
  margin-top:44px; padding-top:20px; border-top:1px solid var(--dap-line);
  font-size:.9rem; color:var(--dap-ink-muted);
}
.dap-piece-origen a{ color:var(--dap-teal-ink); font-weight:600 }

/* Aviso solo-editor: falta un medio esperado o la atribucion CCS. El
   visitante nunca ve esto -- current_user_can('edit_posts') en el template. */
.dap-editor-warn{
  margin:0 0 32px; padding:14px 18px;
  background:#FFF6E5; border:1px solid #E8A93B; border-radius:8px;
  color:#7A5200; font-size:.9rem; font-weight:600; line-height:1.5;
}

.dap-transcript{
  margin:0 0 32px; padding:16px 20px;
  background:var(--dap-bg-soft); border:1px solid var(--dap-line); border-radius:8px;
}
.dap-transcript summary{
  cursor:pointer; font-weight:700; color:var(--dap-ink);
  min-height:44px; display:flex; align-items:center;
}
.dap-transcript-body{ margin-top:12px; color:var(--dap-ink-soft); font-size:.95rem; line-height:1.7 }
.dap-transcript-body p{ margin:0 0 14px }
.dap-transcript-body p:last-child{ margin-bottom:0 }

/* Namespace propio de focus, para no heredar el azul del :focus-visible
   global (enhance.css) mezclado con el teal de la pagina. */
.dap :focus-visible{ outline:2px solid var(--dap-teal); outline-offset:3px; border-radius:4px }

@media (prefers-reduced-motion: reduce){
  .dap-pdf{ transition:none }
  .dap-pdf:hover{ transform:none }
}

/* -- Captura profesional (v3.22.0) ------------------------------
   El PDF de la pieza ya se descarga sin friccion arriba -- este bloque no
   repite esa ficha a cambio de datos. Entrega el set completo de fichas del
   portal por email, pensado para consultorio. Fills en --dap-teal, texto
   chico sobre claro en --dap-teal-ink (WCAG AA). */
.dap-pro{
  margin-top:48px; padding-top:40px; border-top:1px solid var(--dap-line);
}
.dap-pro-inner{
  background:var(--dap-bg-soft); border:1px solid var(--dap-line); border-radius:14px;
  padding:clamp(24px,4vw,40px);
}
.dap-pro-title{
  font-family:var(--dap-display); font-weight:500;
  font-size:clamp(1.25rem,2.6vw,1.6rem); line-height:1.3; letter-spacing:-.015em;
  margin:0 0 10px; color:var(--dap-ink); text-wrap:balance;
}
.dap-pro-lead{ font-size:.95rem; line-height:1.6; color:var(--dap-ink-soft); margin:0 0 26px; text-wrap:pretty }

.dap-pro-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px }
.dap-pro-field{ display:flex; flex-direction:column; gap:6px; margin-bottom:16px }
.dap-pro-field:last-child{ margin-bottom:0 }
.dap-pro-field label{
  font-size:.78rem; font-weight:600; letter-spacing:.04em; color:var(--dap-ink);
}
.dap-pro-field input{
  appearance:none; width:100%; min-height:44px;
  border:1px solid var(--dap-line); background:var(--dap-bg); color:var(--dap-ink);
  padding:11px 16px; border-radius:8px;
  font-family:var(--dap-body); font-size:.97rem; line-height:1.4;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.dap-pro-field input:focus{
  outline:none; border-color:var(--dap-teal); box-shadow:0 0 0 4px rgba(0,191,165,.16);
}

/* Honeypot: fuera de pantalla, no solo oculto -- un lector de pantalla no
   debe anunciarlo (aria-hidden) y el tab no debe pasar por el (tabindex=-1
   en el input, ver single-doc_a_pac.php). */
.dap-pro-hp{ position:absolute; left:-9999px }

.dap-pro-submit{
  display:inline-flex; align-items:center; gap:10px; min-height:44px;
  padding:13px 26px; margin-top:6px;
  background:var(--dap-teal); color:#04120F; border:none; border-radius:999px;
  font-family:var(--dap-body); font-weight:700; font-size:.97rem; cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease;
}
.dap-pro-submit:hover{ transform:translateY(-1px); box-shadow:0 14px 28px -16px rgba(0,191,165,.7) }
.dap-pro-submit svg{ width:15px; height:15px }

.dap-pro-legal{ margin:16px 0 0; font-size:.78rem; color:var(--dap-ink-muted); line-height:1.55 }

.dap-pro-status{
  display:flex; align-items:flex-start; gap:12px;
  padding:16px 20px; border-radius:8px; font-size:.92rem; line-height:1.5;
}
.dap-pro-status svg{ flex:0 0 auto; margin-top:2px }
.dap-pro-status--ok{
  background:rgba(27,158,102,.10); border:1px solid rgba(27,158,102,.30); color:#0d6e44;
}
.dap-pro-status--err{
  background:rgba(209,67,67,.08); border:1px solid rgba(209,67,67,.25); color:#9b2a2a;
}

@media (max-width: 600px){
  .dap-pro-row{ grid-template-columns:1fr; gap:0 }
}

@media (prefers-reduced-motion: reduce){
  .dap-pro-submit{ transition:none }
  .dap-pro-submit:hover{ transform:none }
}

/* -- Listado --------------------------------------------------- */
.dap-shell--wide{ max-width:var(--dap-max) }
.dap-archive{ padding-top:clamp(40px,7vh,72px); padding-bottom:clamp(64px,10vh,110px) }
.dap-archive-title{
  font-family:var(--dap-display); font-weight:500;
  font-size:clamp(1.9rem,4.4vw,2.9rem); letter-spacing:-.025em; margin:0 0 26px;
}

.dap-filters{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px }
.dap-filter{
  min-height:44px; padding:11px 20px; border-radius:999px; cursor:pointer;
  border:1px solid var(--dap-line); background:transparent;
  font-family:var(--dap-body); font-size:.92rem; color:var(--dap-ink-soft);
  transition:border-color .2s ease, color .2s ease, background-color .2s ease;
}
.dap-filter:hover{ color:var(--dap-ink) }
.dap-filter.is-on{ border-color:var(--dap-teal); color:var(--dap-teal-ink); background:rgba(0,191,165,.08); font-weight:700 }

.dap-count{ margin:0 0 24px; font-size:.9rem; color:var(--dap-ink-muted); min-height:1.2em }

.dap-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.4vw,28px) }
.dap-card{ border:1px solid var(--dap-line); border-radius:12px; overflow:hidden; background:var(--dap-bg) }
.dap-card[hidden]{ display:none }
.dap-card-link{ display:flex; flex-direction:column; height:100%; padding-bottom:20px; text-decoration:none; color:inherit }
.dap-card-img{ aspect-ratio:16/10; overflow:hidden; margin-bottom:16px }
.dap-card-img img{ width:100%; height:100%; object-fit:cover; display:block }
.dap-card-formato{
  margin:0 20px 8px; font-size:.68rem; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--dap-teal-ink);
}
.dap-card-title{
  font-family:var(--dap-display); font-size:1.15rem; font-weight:500;
  line-height:1.25; letter-spacing:-.015em; margin:0 20px 10px; color:var(--dap-ink);
}
.dap-card-author{ margin:auto 20px 0; font-size:.85rem; color:var(--dap-ink-muted) }
.dap-card:hover{ border-color:rgba(13,17,23,.22) }

.dap-empty{ margin:8px 0 0; font-size:1rem; color:var(--dap-ink-muted) }

.dap-pager{ margin-top:40px }
.dap-pager .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:44px; min-height:44px; padding:0 10px;
  text-decoration:none; color:var(--dap-ink-soft);
}
.dap-pager .page-numbers.current{ color:var(--dap-teal-ink); font-weight:700 }

@media (max-width: 860px){ .dap-grid{ grid-template-columns:1fr } }
@media (min-width: 861px) and (max-width: 1100px){ .dap-grid{ grid-template-columns:repeat(2,1fr) } }

@media (prefers-reduced-motion: reduce){ .dap-filter{ transition:none } }

/* -- Portada ---------------------------------------------------- */
.dap-hero{ padding:clamp(48px,9vh,96px) 0 clamp(32px,5vh,56px); background:var(--dap-bg-soft) }
.dap-hero-eyebrow{ margin:0 0 14px; font-size:.72rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--dap-teal-ink) }
.dap-hero-title{
  font-family:var(--dap-display); font-weight:500;
  font-size:clamp(2.1rem,5.4vw,3.6rem); line-height:1.06; letter-spacing:-.028em;
  margin:0 0 20px; max-width:18ch; text-wrap:balance;
}
.dap-hero-lead{ font-size:1.1rem; line-height:1.7; color:var(--dap-ink-soft); max-width:60ch; margin:0; text-wrap:pretty }

.dap-h2{
  font-family:var(--dap-display); font-weight:500;
  font-size:clamp(1.5rem,3vw,2.1rem); letter-spacing:-.02em; margin:0 0 24px;
}
.dap-secciones{ padding:clamp(44px,7vh,80px) 0 0 }
.dap-sec-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px }
.dap-sec{
  display:flex; flex-direction:column; gap:6px; min-height:44px;
  padding:22px 24px; border:1px solid var(--dap-line); border-radius:12px;
  text-decoration:none; color:inherit; transition:border-color .2s ease;
}
.dap-sec:hover{ border-color:var(--dap-teal) }
.dap-sec-name{ font-family:var(--dap-display); font-size:1.1rem; font-weight:500; color:var(--dap-ink) }
.dap-sec-desc{ font-size:.9rem; color:var(--dap-ink-muted); line-height:1.55 }

.dap-destacadas{ padding:clamp(44px,7vh,80px) 0 clamp(64px,10vh,110px) }
.dap-vermas{ margin:32px 0 0 }
.dap-vermas a{
  display:inline-flex; align-items:center; min-height:44px;
  color:var(--dap-teal-ink); font-weight:700; text-decoration:none;
  border-bottom:2px solid var(--dap-teal);
}

/* Estado vacio: hoy 0 piezas publicadas. Reemplaza al bloque de
   destacadas para que la portada no se vea con un hueco. Contenido
   editorial atemporal -- sin fechas, sin tono de "en construccion". */
.dap-intro{ padding:clamp(44px,7vh,80px) 0 clamp(72px,11vh,120px) }
.dap-intro-head{ max-width:68ch; margin:0 0 40px }
.dap-intro-lead{ font-size:1.05rem; line-height:1.75; color:var(--dap-ink-soft); margin:0; text-wrap:pretty }

.dap-intro-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:clamp(16px,2.4vw,28px); margin:0 0 40px;
}
.dap-intro-item{
  padding:24px 26px; border:1px solid var(--dap-line); border-radius:12px;
  background:var(--dap-bg-soft);
}
.dap-intro-item-title{
  display:block; font-family:var(--dap-display); font-size:1.08rem; font-weight:600;
  color:var(--dap-ink); margin:0 0 10px;
}
.dap-intro-item-desc{ margin:0; font-size:.92rem; line-height:1.6; color:var(--dap-ink-muted) }

.dap-intro-formats{
  display:flex; flex-wrap:wrap; align-items:center; gap:14px 18px;
  padding-top:28px; border-top:1px solid var(--dap-line);
}
.dap-intro-formats-label{ font-size:.9rem; color:var(--dap-ink-muted) }
.dap-intro-formats-list{ display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:0; padding:0 }
.dap-intro-formats-list li{
  display:inline-flex; align-items:center; min-height:36px;
  padding:8px 16px; border-radius:999px; border:1px solid var(--dap-line);
  font-size:.85rem; font-weight:600; color:var(--dap-teal-ink);
}

@media (prefers-reduced-motion: reduce){
  .dap-sec{ transition:none }
}
