/* FEP r18 — superficies, lectura y controles compartidos.
   Capa visual sobre r17: no modifica la marca, el libro, el tríptico ni sus relojes.
   Los colores de acción son más oscuros que el celeste de marca para texto pequeño. */
:root {
  --fep-ui-ink:#203b4b;
  --fep-ui-muted:#506675;
  --fep-ui-action:#24658c;
  --fep-ui-action-hover:#194e70;
  --fep-ui-tint:#f1f7fb;
  --fep-ui-line:#d3e1ea;
  --fep-ui-field:#7893a5;
  --fep-ui-focus:#15557e;
  --fep-ui-shadow:0 2px 5px #183f5505,0 12px 28px -14px #183f5526;
  --fep-ui-shadow-hover:0 3px 8px #183f5509,0 16px 30px -14px #183f5533;
}

@media screen {
  /* Un único borde de foco, visible sobre superficies claras y oscuras.
     !important sólo supera las numerosas excepciones de la hoja heredada. */
  body :is(a,button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible {
    outline:3px solid var(--fep-ui-focus)!important;
    outline-offset:4px!important;
  }
  body[data-route=inicio] .header :is(a,button):focus-visible {outline-color:#fff!important}
  .portada .cta:focus-visible {outline-offset:-6px!important}
  .portada .cta-main:focus-visible {outline-color:#fff!important}
  .offer-card-link:focus-visible {outline-offset:-5px!important}
  .offer-card:focus-within {outline:3px solid var(--fep-ui-focus);outline-offset:4px}

  /* Encabezado: se conservan geometría y bloques de entrada; desaparece el doble marco. */
  .header .nav-campus {
    background:var(--fep-ui-action);border-color:var(--fep-ui-action);color:#fff;
    border-radius:10px;box-shadow:0 2px 4px #183f550d;
  }
  .header .nav-campus::before {content:none}
  .header .nav-campus:hover {background:var(--fep-ui-action-hover);border-color:var(--fep-ui-action-hover);box-shadow:none}
  body[data-route=inicio] .header .nav-campus {
    background:#ffffff0a;border-color:#ffffffa6;color:#fff;box-shadow:none;
  }
  body[data-route=inicio] .header .nav-campus:hover {background:#ffffff20;border-color:#fff}
  .header nav a:not(.nav-campus):hover,.header nav a[aria-current=page]:not(.nav-campus) {color:var(--fep-ui-action-hover)}
  body[data-route=inicio] .header nav a:not(.nav-campus):hover,
  body[data-route=inicio] .header nav a[aria-current=page]:not(.nav-campus) {color:#fff}

  /* Inicio: acabado de los accesos, sin tocar posición, tamaño ni animación de la portada. */
  .portada-cta {box-shadow:0 0 0 1px var(--fep-ui-line),0 12px 24px -14px #183f5540}
  .academy-about {border-bottom:1px solid var(--fep-ui-line)}
  .academy-about h2 {--fep-h2:clamp(28px,2.8vw,36px)}
  .academy-about-copy {color:var(--fep-ui-muted)}
  .academy-about-ties {border-color:var(--fep-ui-line)}
  .academy-partner-link {border-radius:8px}

  /* Catálogo: fotografía y lectura en superficies separadas; el pliegue se conserva. */
  .offer-backdrop {background:linear-gradient(180deg,#edf5fa 0,#fff 260px)}
  .offer-backdrop-scene .ambient-network {opacity:.22}
  .offer-heading h1,.offer-heading h2 {--fep-h1:clamp(32px,3.4vw,44px);--fep-h2:clamp(28px,2.7vw,36px);color:var(--fep-ui-ink)}
  .offer-heading p,.offer-count {color:var(--fep-ui-muted)}
  .offer-grid {gap:30px}
  .offer-card {--fep-h3:21px;--fep-h2:21px;min-height:392px;border-radius:14px;box-shadow:0 0 0 1px var(--fep-ui-line),var(--fep-ui-shadow)}
  .offer-card:hover {box-shadow:0 0 0 1px #a6c3d6,var(--fep-ui-shadow-hover)}
  .offer-paper::after {content:none}
  .offer-image {height:calc(100% - 184px);object-position:center}
  .offer-kind {
    top:18px;left:18px;border:1px solid #ffffff80;border-radius:5px;
    background:var(--fep-ui-action);box-shadow:0 1px 3px #102d401a;
    -webkit-backdrop-filter:none;backdrop-filter:none;font-size:11px;letter-spacing:.065em;
  }
  .offer-caption {
    inset:auto 0 0;height:184px;padding:18px 20px;display:flex;flex-direction:column;
    background:#fff;border-top:1px solid #dce7ee;
  }
  .offer-caption::before {content:none}
  .offer-card .offer-caption :is(h2,h3) {font-size:21px!important;line-height:1.22!important;letter-spacing:-.02em!important;margin:0 0 8px;color:var(--fep-ui-ink)}
  .offer-caption p {--fep-body:14px;margin:0 0 8px;line-height:1.5;white-space:normal;overflow:visible;text-overflow:clip;color:var(--fep-ui-muted)}
  .offer-card-action {margin-top:auto;padding-top:10px;border-color:#dce7ee;font-size:13px;color:var(--fep-ui-action)}
  .offer-reveal {background:linear-gradient(135deg,#286d97,#215c80)}

  /* Comunidad: un panel de trabajo, una separación clara entre temas y conversación. */
  .forum-section {background:linear-gradient(180deg,#edf5fa,#f7fafc);color:var(--fep-ui-ink);border-block:1px solid var(--fep-ui-line)}
  .forum-section>.ambient-field {opacity:.14}
  .forum-heading h2 {--fep-h2:clamp(28px,2.8vw,36px);color:var(--fep-ui-ink)}
  .forum-heading p {color:var(--fep-ui-muted)}
  .forum-section .forum-feed>[role=status] {color:var(--fep-ui-muted)}
  .forum-heading .section-label,.forum-heading>.editorial-link {color:var(--fep-ui-action)}
  .forum-heading>.editorial-link {border-color:#9ebbcf}
  .forum-section .forum-workspace {
    padding:0;gap:0;background:#fff;border:1px solid #c4d8e5;border-radius:18px;
    box-shadow:var(--fep-ui-shadow);-webkit-backdrop-filter:none;backdrop-filter:none;
  }
  .forum-section .forum-topic-rail {
    background:#f6f9fc;border:0;border-right:1px solid var(--fep-ui-line);
    border-radius:18px 0 0 18px;box-shadow:none;padding:24px 20px;
  }
  .forum-section .forum-topic-rail>.forum-toolbar {
    background:#f6f9fc;-webkit-backdrop-filter:none;backdrop-filter:none;border-color:var(--fep-ui-line);
  }
  .forum-section .forum-topic-rail .forum-toolbar h3 {--fep-h3:18px;letter-spacing:-.015em!important}
  .forum-section .forum-topic-row {border:1px solid var(--fep-ui-line);border-radius:10px;box-shadow:none}
  .forum-section .forum-topic-rail .forum-topic-row.is-open {border-color:#b8d1e2;box-shadow:none}
  .forum-section .forum-topic-rail .forum-topic-toggle {background:#fff;border-radius:9px;padding:18px 16px;box-shadow:none}
  .forum-section .forum-topic-rail .forum-topic-row.is-open .forum-topic-toggle {
    background:#e8f2f9;box-shadow:inset 3px 0 var(--fep-ui-action);color:var(--fep-ui-ink);
  }
  .forum-section .forum-topic-rail .forum-topic-row.is-open :is(.forum-topic-title,.forum-topic-meta strong) {color:var(--fep-ui-ink)}
  .forum-section .forum-topic-rail .forum-topic-row.is-open :is(.forum-topic-preview,.forum-topic-meta) {color:var(--fep-ui-muted)}
  .forum-section .forum-topic-rail .forum-topic-row.is-open :is(.forum-topic-meta>span,.forum-topic-meta>time) {color:var(--fep-ui-muted)}
  .forum-section .forum-topic-rail .forum-topic-row.is-open .forum-topic-chevron {color:var(--fep-ui-action)}
  .forum-section .forum-topic-rail .forum-topic-meta {border-color:#c6dce9;line-height:1.6}
  .forum-section .forum-topic-rail .forum-topic-title {font-size:16px;line-height:1.45;letter-spacing:-.01em}
  .forum-section .forum-topic-toggle[aria-pressed=true] .forum-topic-chevron {background:#fff;border-color:#bad2e2;color:var(--fep-ui-action)}
  .forum-section .forum-topic-rail .forum-topic-toggle:hover {background:#f1f7fb}
  .forum-section .forum-topic-rail .forum-topic-row.is-open .forum-topic-toggle:hover {background:#deedf7}
  .forum-section .forum-conversation {background:#fff;border:0;border-radius:0 18px 18px 0;box-shadow:none;padding:28px}
  .forum-section .forum-conversation .forum-topic-detail {
    padding:0 0 24px;margin-bottom:24px;background:#fff;border:0;border-bottom:1px solid var(--fep-ui-line);border-radius:0;box-shadow:none;
  }
  .forum-section .forum-conversation .forum-detail-title {--fep-h3:clamp(21px,1.8vw,25px);line-height:1.35!important;letter-spacing:-.02em!important}
  .forum-section .forum-post-list>.forum-card {padding:20px;border:1px solid var(--fep-ui-line);border-radius:10px;box-shadow:none;background:#fbfdfe}
  .forum-section .forum-avatar {box-shadow:none;border:1px solid #ccdeea;background:#edf5fa;color:var(--fep-ui-action)}
  .forum-section .forum-action {min-height:36px;border-radius:6px;color:var(--fep-ui-muted)}
  .forum-section .forum-action:hover {background:#eaf3f9;color:var(--fep-ui-action-hover)}

  /* Cursos y diplomaturas: títulos de apoyo, desplegables y paneles de igual familia. */
  .course-journey {--course-action:var(--fep-ui-action);--course-action-hover:var(--fep-ui-action-hover);--course-ink:var(--fep-ui-ink);--course-muted:var(--fep-ui-muted);--course-line:var(--fep-ui-line);--course-shadow:var(--fep-ui-shadow);--course-glass:#f7fafc}
  .course-journey .offer-detail-hero::before {background:linear-gradient(90deg,#f8fbfe 0,#f0f7fcf7 38%,#eaf4fae8 57%,#e5f1f955 80%,#e5f1f914 100%)}
  .course-journey .course-chapter h2 {--fep-h2:30px;letter-spacing:-.025em!important}
  .course-journey .course-section-heading h2 {font-size:30px!important}
  .course-journey .course-enrollment h2 {font-size:24px!important;line-height:1.25!important}
  .course-journey :is(.course-enrollment,.course-access,.course-hero-audit) {border-color:var(--fep-ui-line);box-shadow:var(--fep-ui-shadow);-webkit-backdrop-filter:none;backdrop-filter:none;background:#f7fafc;border-radius:14px}
  .course-journey .course-index {background:#fffffff7;border-color:var(--fep-ui-line);-webkit-backdrop-filter:none;backdrop-filter:none}
  .course-journey .course-lesson,.course-journey .academic-disclosure {border-radius:8px;border-bottom-color:var(--fep-ui-line)}
  .course-journey .course-lesson summary,.course-journey .academic-disclosure>summary {border-radius:7px}
  .course-journey .course-lesson[open],.course-journey .academic-disclosure[open] {background:#f1f7fb;border-color:#b8d1e2;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:8px}
  .course-journey .course-lesson summary:hover {background:#f1f7fb;border-radius:7px}
  .course-journey .funding-switch {background:#e7eff5;border-radius:9px}
  .course-journey .funding-switch button[aria-pressed=true] {color:var(--fep-ui-action-hover);border-color:#b7cedd;box-shadow:0 1px 3px #183f550d}
  .course-journey .plan-options label:has(input:checked) {background:#eaf4fb;border-color:var(--fep-ui-action)}
  .course-journey .payment-cta:disabled {background:#e4ecf2;border-color:#c8d8e3;color:#536a79;box-shadow:none}

  /* Formularios: límites perceptibles, lectura cómoda y estados consistentes. */
  .identity-page.identity-access {max-width:720px;padding-block:36px 48px}
  .identity-access .identity-heading h1 {--fep-h1:clamp(32px,3.1vw,42px);color:var(--fep-ui-ink)}
  .identity-access .identity-heading>p:last-child {line-height:1.65;color:var(--fep-ui-muted)}
  .identity-access .identity-panel {padding:28px;border-color:var(--fep-ui-line);border-radius:14px;background:#fff;box-shadow:var(--fep-ui-shadow)}
  .identity-access .form-grid {gap:16px}
  .identity-access .access-tabs {margin-bottom:24px;background:#f1f6fa;border-color:var(--fep-ui-line);border-radius:9px}
  .identity-access .access-tabs a {color:var(--fep-ui-muted);border-radius:6px}
  .identity-access .access-tabs a[aria-current=page] {color:var(--fep-ui-action-hover);box-shadow:inset 0 -2px var(--fep-ui-action)}
  .identity-access .field {gap:7px;color:var(--fep-ui-ink)}
  :is(.identity-panel,.institutional-form-panel,.forum-editor) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea) {
    min-height:48px;background:#fff;border:1px solid var(--fep-ui-field);border-radius:8px;box-shadow:none;color:var(--fep-ui-ink);font-size:16px;line-height:1.5;
  }
  :is(.identity-panel,.institutional-form-panel,.forum-editor) :is(input,select,textarea)::placeholder {color:#586f7e;opacity:1}
  :is(.identity-panel,.institutional-form-panel,.forum-editor) :is(input,select,textarea):focus-visible {border-color:var(--fep-ui-focus)}
  .password-control [data-password-toggle] {right:3px;top:3px;bottom:3px;min-height:42px;background:#edf4f9;color:var(--fep-ui-action-hover);border-radius:5px}
  main .identity-access :is(.identity-note,.registration-password-guide) {font-size:13px!important;line-height:1.65;color:var(--fep-ui-muted)}
  .identity-access .identity-foot a {min-height:44px;color:var(--fep-ui-action-hover)}
  .identity-access .registration-photo>summary {min-height:44px}
  main :is(.identity-panel,.student-guide,.empty) .btn.primary:not(:disabled),.institutional-button-primary {background:var(--fep-ui-action);border-color:var(--fep-ui-action);color:#fff;border-radius:8px;box-shadow:0 2px 4px #183f550d;min-height:46px}
  main :is(.identity-panel,.student-guide,.empty) .btn.primary:not(:disabled):hover,.institutional-button-primary:hover {background:var(--fep-ui-action-hover);border-color:var(--fep-ui-action-hover);box-shadow:none}
  .identity-message:not(:empty),.institutional-form-error:not(:empty) {border-radius:8px;line-height:1.6}

  /* Guía, documentos y pie: misma escala de paneles, sin uniformar la lectura jurídica. */
  .student-guide .page-header h1 {color:var(--fep-ui-ink)}
  .student-guide .guide-grid .panel {border:1px solid var(--fep-ui-line);border-radius:14px;background:linear-gradient(160deg,#fff,#f7fafc);box-shadow:var(--fep-ui-shadow)}
  .student-guide .guide-grid h2 {font-size:26px!important;line-height:1.25!important;letter-spacing:-.025em!important;color:var(--fep-ui-ink)}
  .student-guide .guide-grid p {color:var(--fep-ui-muted);line-height:1.7}
  .student-guide .faq h2,.student-guide .student-support h2 {--fep-h2:30px;color:var(--fep-ui-ink)}
  .student-guide .faq details {border-color:var(--fep-ui-line)}
  .student-guide .faq summary {padding-block:4px;min-height:44px}
  .institutional-document-card {border-color:var(--fep-ui-line);border-top-color:#78a6c2;border-radius:10px;box-shadow:var(--fep-ui-shadow)}
  .institutional-document-card:hover {border-color:#7fa8c1;box-shadow:var(--fep-ui-shadow-hover)}
  .institutional-document-card h3 {font-size:22px!important;line-height:1.3!important}
  .institutional-page :is(.institutional-request-callout,.institutional-form-panel,.institutional-request-help,.institutional-document-help) {border-color:var(--fep-ui-line);border-radius:12px;box-shadow:none}
  .institutional-article {border-color:var(--fep-ui-line);border-top-color:#78a6c2;border-radius:8px;box-shadow:var(--fep-ui-shadow)}
  .institutional-document-nav a {border-radius:0 6px 6px 0}
  .institutional-page :is(.institutional-button,.institutional-shortcuts a) {border-radius:8px}
  .footer {border-top-color:var(--fep-ui-line)}
  .footer .footer-contact,.footer .contact-item,.footer .footer-legal a {text-underline-offset:4px;text-decoration-thickness:1px}
  .footer :is(.footer-contact,.contact-item,.footer-legal a):hover {text-decoration:underline}
  .footer .footer-contacts {border-color:var(--fep-ui-line)}

  @media(max-width:760px) {
    .forum-section .forum-topic-rail {border-right:0;border-bottom:1px solid var(--fep-ui-line);border-radius:18px 18px 0 0;padding:20px 16px}
    .forum-section .forum-conversation {border-radius:0 0 18px 18px;padding:22px 16px}
    .forum-section .forum-topic-rail .forum-toolbar h3 {max-width:none}
    .forum-section .forum-action {min-height:44px}
    .forum-section .forum-post-list>.forum-card {padding:16px}
  }
  @media(max-width:700px) {
    .offer-grid {gap:24px}
    .identity-page.identity-access {padding-block:24px 36px}
    .identity-access .identity-panel {padding:20px}
    .course-journey .course-chapter h2 {--fep-h2:26px}
    .course-journey .course-section-heading h2 {font-size:26px!important}
    .course-journey .course-enrollment h2 {font-size:23px!important}
    .student-guide .guide-grid h2 {font-size:24px!important}
    .institutional-document-card h3 {font-size:21px!important}
  }
  @media(max-width:380px) {
    .offer-caption {padding-inline:16px}
    .offer-card .offer-caption :is(h2,h3) {font-size:20px!important}
    .identity-access .identity-panel {padding:18px 16px}
    .identity-access .access-tabs a {font-size:13px}
  }
  @media(prefers-reduced-motion:reduce) {
    .offer-card,.institutional-document-card,.header .nav-campus {transition:none}
  }
  @media(forced-colors:active) {
    body :is(a,button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible {outline-color:Highlight!important}
    .offer-card,.forum-section .forum-workspace,.forum-section .forum-topic-row {border:1px solid CanvasText}
    .offer-kind,.offer-caption,.forum-section,.forum-section .forum-topic-toggle {background:Canvas;color:CanvasText}
  }
}

/* r19 — conversación compacta: texto completo, metadatos en línea y un pie por mensaje. */
@media screen {
  .forum-section {padding-block:40px}
  .forum-section .forum-heading {margin-bottom:20px;gap:16px}
  .forum-section .forum-workspace {
    grid-template-columns:minmax(250px,26%) minmax(0,1fr);
    height:auto;max-height:none;align-items:stretch;
  }
  .forum-section .forum-topic-rail {padding:16px;max-height:min(760px,calc(100dvh - 160px))}
  .forum-section .forum-topic-rail>.forum-toolbar {top:-16px;padding:10px 0;margin:-10px 0 12px}
  .forum-section .forum-topic-list {gap:8px}
  .forum-section .forum-topic-rail .forum-topic-toggle {padding:12px}
  .forum-section .forum-topic-rail .forum-topic-title {line-height:1.4}
  .forum-section .forum-topic-rail .forum-topic-preview {margin:8px 0;line-height:1.5}
  .forum-section .forum-topic-rail .forum-topic-meta {gap:2px 8px;padding-top:8px;line-height:1.5}
  .forum-section .forum-topic-meta>span:first-child {flex-basis:auto}
  .forum-section .forum-conversation {
    padding:18px 20px;min-height:0;max-height:min(760px,calc(100dvh - 160px));scroll-padding-block:18px;
  }
  .forum-section .forum-conversation .forum-topic-detail {padding-bottom:12px;margin-bottom:12px}
  .forum-section .forum-conversation .forum-detail-title {margin-bottom:10px}
  .forum-section .forum-author {gap:8px;min-width:0}
  .forum-section .forum-avatar {flex-basis:32px;width:32px;height:32px;min-width:32px}
  .forum-section .forum-author>div {display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px;min-width:0}
  .forum-section .forum-author strong {overflow-wrap:anywhere}
  .forum-section .forum-conversation .forum-author time {margin:0}
  .forum-section .forum-message-row {margin:8px 0 4px}
  .forum-section .forum-conversation .forum-message-row>.forum-message {font-size:16px;line-height:1.6}
  .forum-section .forum-message-expand {min-height:44px;padding:6px 0;color:var(--fep-ui-action);text-align:left;text-decoration:underline;text-underline-offset:3px;font-size:13px;font-weight:600}
  .forum-section .forum-message-expand:hover {background:transparent;color:var(--fep-ui-action-hover)}
  .forum-section .forum-card-footer {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 8px;min-width:0}
  .forum-section .forum-card-footer:empty {display:none}
  .forum-section .forum-card-footer>.forum-actions {margin:0;min-height:44px;gap:0;flex-wrap:wrap}
  .forum-section .forum-card-footer .forum-entry-tools {padding-left:4px;gap:0}
  .forum-section .forum-card-footer>.forum-reply-toolbar {margin:0 0 0 auto;padding:0;border:0;gap:4px;flex-wrap:wrap}
  .forum-section .forum-card-footer .forum-action {min-height:44px;min-width:44px;padding:6px 8px}
  .forum-section .forum-card-footer .forum-icon {padding:10px}
  .forum-section .forum-card-footer>.forum-action {margin-left:auto}
  .forum-section .forum-card-footer .forum-reply-toolbar .forum-action:last-child {padding:6px 10px;border-radius:6px;box-shadow:none;background:transparent}
  .forum-section .forum-card-footer .forum-reply-toolbar .forum-action:last-child:hover {background:#eaf3f9}
  .forum-section .forum-conversation .forum-toolbar {margin-bottom:10px;gap:12px}
  .forum-section .forum-post-list>.forum-card {padding:12px 14px;margin-bottom:10px}
  .forum-section .forum-post-list>.forum-card:last-child {margin-bottom:0}
  .forum-section .forum-replies {margin-top:10px;padding-left:12px}
  .forum-section .forum-replies .forum-card {padding:10px 12px;margin:0 0 8px;border-radius:8px}
  .forum-section .forum-replies .forum-thread-reply {margin-top:8px}
  .forum-section .forum-reply-context {display:block;margin-bottom:8px}
  .forum-section .forum-editor {padding:16px;margin-top:10px}
  .forum-section .forum-form-actions {gap:8px}
  .forum-section .forum-form-actions>button {min-height:44px}
  @media(max-width:760px) {
    .forum-section {padding-block:28px}
    .forum-section .forum-heading {margin-bottom:16px}
    .forum-section .forum-topic-rail {padding:12px;max-height:230px;scroll-padding-block:12px}
    .forum-section .forum-topic-rail>.forum-toolbar {top:-12px;padding:8px 0;margin:-8px 0 8px}
    .forum-section .forum-topic-rail .forum-toolbar h3 {max-width:none}
    /* La vista previa repite el mensaje íntegro de la conversación seleccionada. */
    .forum-section .forum-topic-rail .forum-topic-preview {display:none}
    .forum-section .forum-topic-rail .forum-topic-meta {margin-top:8px;padding-top:6px}
    .forum-section .forum-conversation {padding:16px 12px;max-height:none;overflow:visible;scrollbar-gutter:auto}
    .forum-section .forum-post-list>.forum-card {padding:12px}
    .forum-section .forum-replies {padding-left:8px}
    .forum-section .forum-replies .forum-card {padding:10px 8px}
  }
}
